Opc

  

Qua quá trình trao đổi công việc với đối tác, chúng tôi có thảo luận với nhau về khái niệm OPC AU. Thiết nghĩ đây là khái niệm cũng tương đối mới, phù hợp với xu hướng công nghiệp 4.0 và cũng vô tình đọc được bài báo sau. BKAII xin phép được chia sẽ với các bạn: khái niệm cơ bản về OPC UA - giao thức cho công nghiệp 4.0

1. GIỚI THIỆU

Trong khoảng 12 năm trước đây, khái niệm OPC có thể rất lạ lẫm đối với đa số kỹ sư trong ngành tự động hóa công nghiệp. Một thời gian sau OPC được xem như là giải pháp cuối cùng để kết nối SCADA với PLC khi mà trên SCADA không có driver để kết nối với PLC này. Ngày nay OPC rất phổ biến và được hỗ trợ bởi tất cả các phần mềm SCADA. Nhưng đó là OPC Data Access (OPC DA). Bài viết này không đi về phân tích và ứng dụng OPC DA mà là một chuẩn OPC khác – OPC Unified Architecture (OPC UA).

Với kinh nghiệm hơn 15 năm làm việc với OPC DA, nhưng lại khoảng 5 năm gần đây, chúng tôi ít khi sử dụng OPC DA bởi nhiều hạn chế của nó, hơn nữa các phần mềm SCADA đã hỗ trợ sẵn driver để kết nối trực tiếp với PLC. Mặc dù OPC UA ra đời cũng khá lâu, nhưng chưa phải phần mềm SCADA nào cũng đã hỗ trợ, và cũng trong xu thế cuộc cách mạng lần thứ 4, tác giả muốn chuyển tải đến người đọc thấy được sự khác biệt giữa đặc tả OPC DA và OPC UA, những đặc điểm nổi bật khi sử dụng OPC UA, tại sao là giao thức nền tảng cho Industrie 4.0, và ứng dụng kết nối SCADA với PLC dòng S7-1500 sử dụng chuẩn này.

2. OPC DA VÀ OPC UA

OPC được viết tắt từ OLE for Process Control, OLE là Object Linking and Embedding là công nghệ một thời nổi đình nổi đám của Microsoft – Công nghệ COM/DCOM (Component Object Model, D – có nghĩa là Distributed). Như vậy OPC chính là COM/DCOM for Process Control, được hiểu là: Kiến trúc liên kết các đối tượng phân tán (phần mềm) trong tự động hóa công nghiệp. COM ra đời là để thay thế cho DDE (Dynamic Data Exchange). Nếu hiểu DDE là công nghệ dành cho Copy & Paste thì COM là Drag & Drop trong Microsoft Windows. Một số người không muốn hiểu OPC là OLE for Process Control, họ muốn ca ngợi về OPC bằng cách gọi OPC là Openness, Productivity, and Connectivity.

Năm 1994, đặc tả OPC đầu tiên là OPC Data Access hay là OPC truy cập dữ liệu thời gian thực quy định cách thức truy cập SCADA (Client) đến PLC thông qua phần mềm (Server) chạy trên máy tính hệ điều hành Windows. Hiện nay các phần mềm SCADA kết nối với các PLC thông qua 3 cách phổ biến: thông qua driver trực tiếp. SCADA sử dụng các hàm đọc/ghi/cấu hình ở trong file driver (DLL) để truy cập đến PLC; thông qua DDE Server, SCADA đóng vai trò là DDE Client; thông qua OPC Server, SCADA đóng vai trò là OPC Client (OPC ở đây là OPC DA). Thực tế người dùng (kỹ sư lập trình SCADA) hay dùng driver trực tiếp để kết nối với PLC. Khi không có driver trực tiếp, người dùng mới sử dụng OPC DA bởi một số điểm hạn chế của OPC DA sẽ được phân tích sau đây:

  • Tốc độ truy cập SCADA đến PLC bị giảm bởi phải truy cập qua một phần mềm trung gian. OPC Server DA được xem như là một cầu nối giữa SCADA với PLC.
  • Truy cập qua mạng LAN khó thực hiện. Khi SCADA chạy trên một máy tính khác, OPC Server DA chạy trên một máy tính khác thì việc truy cập rất khó khăn, thậm chí (trong thực tế) hoàn toàn không truy cập được. Để làm được điều này, trên các máy tính phải đăng nhập đúng một user name và password, phải dùng DCOM config để cấu hình một loạt thông số không tường minh. Có trường hợp sau khi làm đúng thứ tự các bước được chỉ dẫn, nhưng kết quả vẫn không kết nối được mà làm tốn kém thời gian người dùng.
  • OPC DA sử dung port 135. Port này nằm trong dãy port bị chặn bởi các Firewall truyền thống. Nên việc truy cập qua mạng LAN rất khó khăn.
  • Client và Server không kết nối được qua mạng Internet.
  • OPC DA Server chỉ chạy được trên hệ điều hành Windows và cũng không chạy được trên .NET. Chính điều này cũng không bao giờ chạy trực tiếp được trên PLC.
  • Để SCADA kết nối được được với OPC DA Server thì trên máy tính chạy SCADA phải cần có thông tin Server đã được đăng ký trên registry của Windows. Để có được thông tin này người sử dụng phải cài nguyên phần mềm OPC Server trên máy tính SCADA (mặc dù là chỉ cần Program ID).
  • Nếu đi sâu vào cơ chế hoạt động giữa Client (SCADA) và Server thì sẽ thấy được điểm rất bất cập của OPC DA. Client kết nối với Server bằng kết nối “cứng”, tức là Client tạo một không gian đối tượng trên Server và trỏ (pointer trong C++) đến các đối tượng này. Khi mất kết nối hay Server bi khởi động lại thì Cient sẽ trỏ đến vùng nhớ không xác định. Client cần phải khởi động lại để tạo một không gian đối tượng khác. Như vậy kỹ thuật liên kết “cứng” này hoàn toàn không thích hợp trong việc kết nối qua internet.

OPC UA được hiểu là một chuẩn truyền thông bậc cao độc lập, được phát triển bởi hiệp hội OPC Foundation, nhưng OPC UA hoàn toàn khác trước so với đặc tả đàn anh của mình OPC DA. Chính vì vậy OPC UA được hiểu bằng cụm từ Open Platform Communication (OPC) Unified Architecture (UA) nhằm tránh đi cụm từ đã không hợp thời OLE for Process Control của OPC DA và những đặc tả khác.

OPC UA có những bước tiến gì? Trước tiên, OPC UA khắc phục tât cả các điểm hạn chế của OPC DA đã được liệt kê ở trên. Nhìn chung OPC UA có các ưu điểm sau:

  • OPC UA là chuẩn quốc tế IEC 62541.
  • OPC UA Server và Client có thể được lập trình và chạy trên nhiều hệ điều hành khác nhau.
  • OPC UA Server và Client có thể được chạy trên các thiết bị trường như cảm biến và chấp hành. Như vậy dữ liệu từ cảm biến, thiết bị chấp hành có thể được đưa thẳng lên Cloud.
  • Có tính bảo mật cao, sử dụng nhiều lớp bảo mật:Hỗ trợ tính Fault tolerance và Redundancy.
    • X509 Certificate : Client phải có Certificate do Server cung cấp thì mới truy cập được dữ liệu;
    • Chữ ký : mỗi thông điệp truyền đi đều được kèm theo chữ ký, Server sẽ đối chiếu với chữ ký đăng ký trước mà từ đó chấp nhận/từ chối thông điệp.
    • Mã hóa : mỗi thông điệp truyền đi đều được mã hóa.
    • User/Password: đăng nhập truyền thống để vào Server.
    • Quyền truy cập đến từng point (tag) : mỗi biến trên Server đều có lựa chọn cho phép chỉ đọc, đọc/ghi hay hoàn toàn không truy cập được.
  • Hỗ trợ kỹ thuật Heartbeat hai chiều giữa Client và Server để kiểm tra tình trạng hoạt động với nhau.
  • Hỗ trợ chức năng automatic backfilling dữ liệu. Khi kết nối giữa Client và Server bị gián đoạn thì dữ liệu trong thời gian này được buffer trên Server. Ngay sau khi kết nối được khôi phục thì dữ liệu buffer này được gửi ngay cho Client.
  • Dữ liệu trao đổi giữa Client và Server bao gồm: Biến cơ bản (Elementary variable); Hàm (Method); Sự kiện (Event); Mãng (Array) và Đối tượng (Datablock).
  • Bao gồm luôn History, Alarms & Event. Trước đây các đặc tả này tồn tại riêng biệt: OPC HDA, OPC A&E.
  • Hỗ trợ lưu đồ trạng thái (State-machine).

3. OPC UA TRÊN PLC S7-1500

PLC S7-1500 của hãng Siemens với Firmware 2.0 và được lập trình trên phần mềm TIA Portal version 14 trở đi sẽ được hỗ trợ trợ OPC UA. Có nghĩa là OPC UA Server chạy trực tiếp trên CPU của PLC này. Thành phần chính chạy trên CPU của PLC là chương trình và dữ liệu điều khiển. OPC UA Server là ứng dụng chạy độc lập trên cùng CPU. Khi lập trình trên TIA Portal nên lưu ý 3 bước sau đây để tạo OPC UA server trên PLC S7-1500 (hình 1):

1. Kích hoạt chức năng OPC UA server trên Properties của CPU S7-1500 trong môi trường TIA Portal.

2. Xác nhận là có License đã mua.

3. Cấu hình các biến trên PLC cho phép truy cập đọc/ghi từ OPC UA Client.

Hình 1. Ba bước khi lập trình trên TIA Portal để thực hiện OPC UA Server

Khi OPC UA Client có yêu cầu Server cung cấp không gian tên và cấu trúc dữ liệu, thì Server truy cập vào vùng dữ liệu của chương trình điều khiển, nhận thông tin và gửi lại cho Client (hình 2). 


Hình 2. Cơ chế truy cập không gian tên dữ liệu OPC UA trên S7-1500

Trong bài viết này không đề cập đến cài đặt bảo mật trên Client (SCADA) và Server (S7-1500) cũng như ứng dụng thực tế của OPC UA trong S7-1500. Tác giả xin trình bày các vấn đề chi tiết này ở trong các bài viết ở các số sau.
Có 4 phương pháp trao đổi dữ liệu giữa Client và Server:
•    Đọc/ghi đồng bộ (Synchronous Read/Write).
•    Đọc/ghi bất đồng bộ (Asynchronous Read/Write).
•    Đọc/ghi dữ liệu đăng ký trước (Registered Read/Write).
•    Đăng ký (Subscription).

Trong phương pháp đọc ghi đồng bộ, Client gửi yêu cầu cho Server tên Node cần đọc/ghi và chờ kết quả trong một thời gian nhất định. Đọc/ghi đồng bộ trong OPC UA khác với trong OPC DA là: việc gửi yêu được thực hiện bởi Stack phía Client, và Client chỉ chờ dữ liệu trong phạm vi của mình (hình 2).
Đối với với phương pháp đọc/ghi không đồng bộ: Client gửi cho yêu cầu cho Server tên Node cần đọc/ghi và Client sẽ không chờ việc nhận dữ liệu. Tiếp theo, Server tìm kiếm trên vùng dữ liệu thuộc chương trình điều khiển theo tên yêu cầu, đọc/ghi Node đó và gửi/thông báo lại cho Client. Đọc/ghi không đồng bộ trong OPC UA khác với OPC DA là: Việc gửi yêu cầu được thực hiện bởi Stack phía Client (hình 2).
Chính nhờ Client không kết nối “cứng” với Server nên việc trao đổi dữ liệu giữa chúng thông qua internet được thực hiện dễ dàng và mềm dẽo.
Đối với hai phương pháp này, mỗi lần Client yêu cầu đọc/ghi là Server lại phải tìm kiếm trong hệ thống bằng tên (hình 3a) dẫn đến chi phí thời gian cho mỗi lần trao đổi cao hơn so với phương pháp đọc/ghi Node đã đăng ký trước (hình 3b). Trong phương pháp đọc/ghi Node đã đăng ký trước, mỗi lần trao đỗi dữ liệu, Client chỉ cần gửi Node ID dưới dạng số nguyên và tiếp theo, Server sẽ truy cập trực tiếp vào Node này trên Server để lấy thông tin và gửi lại cho Client. Với phương pháp này rõ ràng tốc độ truy cập nhanh hơn nhiều so với phương pháp truy cập Node không đăng ký trước.
Phương pháp trao đổi dữ liệu Subscription trong OPC UA, về nguyên lý thì giống như OPC DA: Client đăng ký danh sách các Node trên Server, khi và chỉ khi giá trị các Node này thay đổi thì Server mới gửi lại cho Client (hình 4). Phương pháp trao đổi dữ liệu này rõ ràng là chiếm ưu thế trong việc sử dụng đường truyền dữ liệu là Internet. Chúng tôi sẽ phân tích rõ hơn cơ chế này trong các bài viết tiếp theo.
 

Hình 3. Đọc/ghi đồng bộ và bất đồng bộ trong OPC DA và UA

 
Hình 4. Đọc/ghi không đăng ký trước và đọc/ghi đăng ký trước


 
Hình 5. Phương thức trao đổi dữ liệu đăng ký (Subscription)

4. PLC S7-1500 VÀ SỰ CHUẨN BỊ CHO INDUSTRIE 4.0
Với sự có mặt của OPC UA Server tích hợp ngay trên CPU của PLC S7-1500 cho phép SCADA truy cập một cách dể dàng đến PLC này từ mọi ngõ ngách trên thế giới thông qua Internet (hình 5) với tính bảo mật rất cao. Trong mô hình này PLC được kết nối một cách trực tiếp vào Internet mà không cần thông qua một phần mềm nào đó chạy trên máy tính như trước đây.
Ngày nay, SCADA được đám mây hóa (Cloud-based SCADA) và mọi việc thu thập dữ liệu, tính toán, sự kiện, báo động, điều khiển, lưu trữ lược sử và phân tích dữ liệu được thực hiện bởi những Server chạy trên Cloud. Các Server này sẽ kết nối trực tiếp với các PLC S7-1500 bố trí ở các nhà máy trên thế giới. Các hệ thống và thiết bị đầu cuối là các Client và các ứng dụng với mục đích là để hiển thị, cung cấp giao diện điều khiển, giao diện quản lý và giao diện trích xuất dữ liệu (hình 6). Tập đoàn Siemens hiện nay đã đưa vào vận hành Cloud riêng của mình nhằm cung cấp hệ điều hành điện toán đám mây nền tảng cho Industrial Internet of Things và trong đó có Cloud-based SCADA mà giao thức nền tảng là OPC UA – Đó chính là MindSphere.
Đối với các tập đoàn đa quốc gia sở hữu mạng lưới các nhà máy hoạt động phân bố ở các nước khác nhau trên thế giới, việc số hóa và đưa SCADA chạy trên hệ điều hành điện toán đám mây là rất cấp thiết. Điều này đòi hỏi việc thiết kế các hệ thống điều khiển và SCADA ngay từ ban đầu phải cân nhắc đến giao thức công nghiệp cho phép kết nối, trao đổi dữ liệu nhanh, dữ liệu lớn và bảo mật cao – đó chính là OPC UA.

 
Hình 6. PLC S7-1500 kết nối trực tiếp với SCADA sử dụng đường truyền dữ liệu là Internet


Hình 7. Cloud-based SCADA với OPC UA và MindSphere

Nhận xét

Bài đăng phổ biến từ blog này

Bảng tra kích thước vòng bi

Lập Trình PLC Mitsubishi Với Module Analog FX2N-2AD Và FX2N-2DA

Những linh kiện thường hỏng trong nguồn xung .