8. Kết quả nghiên cứu, đóng góp của luận án
2.1.1. Kiến trúc hệ thống của bộ công cụ OPC UA Client-Server SDK
Bộ công cụ OPC UA Client-Server SDK xây dựng trong phạm vi luận án cho phép
người phát triển tập trung vào những yêu cầu cụ thểở tầng ứng dụng. Bởi các đặc tả mà
OPC Foudation đưa ra khá phức tạp, nên tác giả sẽ lựa chọn những chức năng cốt lõi, quan trọng nhất của OPC UA để xây dựng vào ba bài toán ứng dụng cụ thểởchương 3, chương 4 nhằm minh họa tính khả thi của bộ công cụ (SDK) khi ứng dụng vào thực tế.
39
Bộ công cụ OPC UA Client-Server SDK cần có những chức năng chính sau: khi phát triển một hệ thống Client-Server. Cả Client và Server đều có những chức năng riêng tùy theo trường hợp được sử dụng, ví dụ như chức năng Server là truy cập đến một nguồn dữ liệu (thiết bịđo, hệ quản trịcơ sở dữ liệu…) còn Client là hiển thị và vẽ đồ thị cho các dữ liệu đó. Tuy nhiên, chúng vẫn có những chức năng chung như quản lý kết nối, xử lý các gói tin gửi đến… nên cố gắng tách riêng thành những chức năng
chung và những chức năng phụ thuộc vào từng trường hợp sử dụng. Tiếp đó, những chức năng chung lại được chia ra thành những chức năng xử lý ở mức cao như quản lý kết nối, phiên làm việc, xử lý các gói tin (sau khi giải mã) và các chức năng ở mức thấp
như mã hóa gói tin, bảo mật và truyền tải gói tin.
Bảo mật kết nối.
Quản lý phiên làm việc, đặt Timeout cho phiên làm việc
Quản lý và cho phép truy cập không gian địa chỉ.
Quản lý các đăng ký theo dõi dữ liệu (Subscription).
Các chức năng hỗ trợ: Logging, bắt ngoại lệ (Exception Handling)…
Các chức năng cần có ở OPC UA Client trong SDK:
Kết nối với Server viết bởi cùng SDK
Quản lý kết nối và phiên làm việc (Session)
Truy nhập, thao tác với không gian địa chỉ (Address Space)
Sử dụng chứng nhận (Certificate) trong bảo mật.
Các chức năng cần có ở OPC UA Server trong SDK:
Cho phép client kết nối và sử dụng các chứng nhận trong kết nối
Quản lý các phiên làm việc của Client
Quản lý các đăng ký theo dõi thông tin nút (Subscription)
Quản lý nút và thuộc tính
Kết nối với tầng thiết bị.
Các bước tiến hành xây dựng:
Các dịch vụ của OPC UA đều đã được định nghĩa đầy đủđầu vào, đầu ra trong file wsdl của dịch vụ, và kèm theo đó là sơ đồ XML cho các kiểu dữ liệu và gói tin cung cấp bởi OPC Foundation [6]. Từ đó, có thể sử dụng các công cụ sinh
code như svcutil của Microsoft hoặc wsimport của java để sinh ra giao diện của dịch vụ và các lớp mô tả các dạng dữ liệu [12].
Từ giao diện của dịch vụ, xây dựng lớp thực thi giao diện đó (ServerBase) và
xây dựng các thành phần hỗ trợ (NodeManager, SessionManager, SubscriptionManager…). Đồng thời xây dựng client có khả năng gọi đến các dịch vụ của Server. Việc xây dựng tiến hành từng bước, từ những dịch vụđể lấy
thông tin điểm cuối (GetEndpoints) đến những dịch vụ kết nối (CreateSession và ActivateSession), cuối cùng là nhóm dịch vụ thao tác với Node và tạo Subscription (NodeManagement Service Set và Subscription Service Set).
40
Cùng với việc xây dựng bộ công cụ OPC UA Client-Server SDK là xây dựng
TestServer và TestClient để kiểm tra tính đúng đắn của SDK đề xuất.
Lựa chọn các công cụ sử dụng dưới đây: Vì có khả năng hỗ trợngười lập trình cao, giao diện dễ sử dụng, phù hợp với việc xây dựng bộ công cụ.
Platform: Microsoft Windows
Ngôn ngữ lập trình: C#, thư viện .NET
IDE: Visual Studio 2010.
Dựa trên kiến trúc phần mềm SDK đã đề xuất là bộ công cụ OPC UA Client-Server SDK (hình 2.1) ở trên, tác giảđề xuất một mô hình chung cho các hệ thống ứng dụng SDK này vào từng bài toán cụ thể trong các hệ thống giám sát, điều khiển công nghiệp (bài toán 1, bài toán 2, bài toán 3 được trình bày trong chương 3 và chương 4).
Hình 2.2. Mô hình ứng dụng đề xuất dựa trên bộ công cụ OPC UA Client-Server SDK
Các thành phần hệ thống:
OPC UA Client SDK: Ứng dụng Client chạy trên PC có giao diện tương tác với OPC Server và hỗ trợ người giám sát trong việc cập nhật các thông số và điều chỉnh thông số của thiết bị phần cứng.
OPC UA Server SDK:Các thiết bị vật lý được tích hợp và mô phỏng trên không
gian địa chỉ của Server. Hay nói các khác Server số hóa các thiết bị vật lý lên không
gian địa chỉ của nó. Qua đó có thể theo dõi và điều khiển các thiết bị. Ngoài ra, Server
đưa ra những dịch vụ giúp cho người dùng có thể sử dụng để điều khiển và giám sát
được các thiết bịđó. Ví dụnhư dịch vụ BẬT/TẮT thiết bị, thay đổi thông số trên thiết bị. Giao diện của Server dùng để hiển thịcác đặc điểm, các thông số và thông báo cần thiết giúp phân biệt các Server.
41
Tầng thiết bị: Là các thiết bị phần cứng trong công nghiệp, có thể kết nối với Server bằng các giao thức Modbus, Profibus, Bacnet, DeviceNet… để cung cấp các thông tin của thiết bị. Sau khi có những tín hiệu điều khiển từ phía Client thì Server sẽ
tiến hành thay đổi trạng thái, tình trạng của các thiết bị.
Bước xây dựng chi tiết của bộ công cụ OPC UA Client-Server SDK:
Khi xây dựng OPC UA Client SDK, tác giả sử dụng phương pháp phân tích, thiết kếhướng đối tượng, ngôn ngữ sử dụng là C#, sử dụng 7 lớp với nhiều phương thức, tùy thuộc vào nhiệm vụ của từng lớp. Thành phần của OPC UA Client SDK gồm các lớp:
(1) Discovery Component – Với chức năng cung cấp truy nhập vào các thiết bịđầu cuối của server. (2) Session Manager – Đại diện cho một kết nối giữa client và một server.
(3) Subscription Manager – Đại diện cho một đăng ký của client với server. (4) Model
Manager – Cung cấp cách thức truy nhập vào server thông qua ánh xạ đối tượng. (5)
Monitoring Manager - Đểđăng ký theo dõi dữ liệu và sự kiện của một nút trong không
gian địa chỉ. (6) ApplicationInstance – Quản lý cấu hình ứng dụng. (7) Cache Manager – Duy trì bộ nhớcache trong không gian địa chỉ của server.
Khi xây dựng OPC UA Server SDK, tác giả sử dụng phương pháp phân tích, thiết kế hướng đối tượng, ngôn ngữ sử dụng là C#, sử dụng 11 lớp, với rất phương thức, tùy thuộc vào nhiệm vụ của từng lớp. Thành phần của OPC UA Server SDK gồm các lớp:
(1) ServerBase – Là lớp mô hình hóa các hoạt động của server, người phát triển có thể
kế thừa lớp này để xây dựng ứng dụng. (2) IServerInternalData – Đây là giao diện của
server, đưa ra các dịch vụ cho client sử dụng. (3) ServiceHost – Dùng để tạo điểm đầu
và điểm cuối cho dịch vụ. (4) MasterNodeManager và INodeManager – Lớp này thực thi tất cả các dịch vụ liên quan đến truy nhập không gian địa chỉ. (5) CoreNodeManager – Lớp này thực thi giao diện INodeManager. (6) SessionManager – Thực thi những nhiệm vụ liên quan đến phiên làm việc như khởi tạo, kích hoạt, đóng
phiền làm việc. (7) Session – Là một phiên làm việc của client và server. (8) SubscriptionManager – Quản lý các đăng ký, thu thập thông tin và theo dõi thông tin.
(9) SessionPublicQueue – Là một hàng đợi của các Subcription trong một phiên làm việc. (10) Subcription – Đây là một đăng ký thu thập thông tin của một nút. (11) MonitoredItem – Theo dõi một nút để lấy dữ liệu.
42