1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tích hợp giao thức OPC UA trong điều khiển và giám sát hệ thống

91 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tích Hợp Giao Thức OPC UA Trong Điều Khiển Và Giám Sát Hệ Thống
Tác giả Vũ Đức Minh
Người hướng dẫn TS. Tạ Văn Phương
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Kỹ Thuật Điều Khiển Và Tự Động Hóa
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2021
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 91
Dung lượng 7,7 MB

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN (18)
    • 1.1 Đặt vấn đề (18)
    • 1.2 Tổng quan đề tài (19)
    • 1.3 Mục tiêu đề tài (20)
    • 1.4 Giới hạn đề tài (20)
    • 1.5 Nội dung đề tài (20)
  • CHƯƠNG 2. CƠ SỞ LÝ THUYẾT (21)
    • 2.1 Giới thiệu giao thức OPC (21)
      • 2.1.1 OPC (21)
      • 2.1.2 OPC DA (21)
      • 2.1.3 OPC UA (22)
      • 2.1.4 Cấu trúc OPC UA [4] (23)
    • 2.2 Mô hình OPC UA Server và OPC UA Client (24)
      • 2.2.1 Mô hình OPC UA Server (24)
      • 2.2.2 Mô hình OPC UA Client (27)
      • 2.2.3 Giao thức và phương thức bảo mật (0)
    • 2.3 SCADA (32)
    • 2.4 OPC UA client Web Platform (33)
      • 2.4.1 Các phần mềm được sử dụng để thiết kế Web Platform (33)
      • 2.4.2 Các công nghệ phát triển web được dùng trong đồ án (35)
    • 2.5 PLC S7-1500 OPC UA Client (38)
      • 2.5.1 Các khối OPC UA Client trên PLC S7-1500 (38)
      • 2.5.2 Sơ đồ trình tự để các Function Block (FB) thao tác với OPC UA Client trên (39)
  • CHƯƠNG 3. CÁC BƯỚC THIẾT KẾ HỆ THỐNG (42)
    • 3.1 Thiết kế OPC UA Server (43)
      • 3.1.1 Yêu cầu thiết kế của OPC UA Server trong hệ thống (43)
      • 3.1.2 Thiết kế Server Information Modelling (43)
      • 3.1.3 Khởi tạo file ModelDesign.xml (45)
      • 3.1.4 Biên dịch Model vừa tạo bằng OPC UA Compiler (48)
      • 3.1.5 Khởi tạo OPC UA Server (48)
      • 3.1.6 Giao diện để giám sát, quản lí OPC UA Server (51)
      • 3.1.7 Giao diện giám sát OPC UA Server sau khi hoàn thành (52)
    • 3.2 OPC UA Client Web Platform (54)
      • 3.2.1 Yêu cầu thiết kế OPC UA Client Web Platform (54)
      • 3.2.2 Lập trình OPC UA Client Web platform (55)
    • 3.3 PLC S7-1500 OPC UA Client (66)
      • 3.3.1 Yêu cầu kết nối của PLC S7-1500 OPC UA Client (66)
      • 3.3.2 Thực thi OPC UA Client trên PLC S7-1500 với Tia Portal V16 (66)
      • 3.3.3 Kết nối Factory Io với Tia Portal (73)
      • 3.3.4 Mô hình Scada để mô phỏng hệ thống (75)
  • CHƯƠNG 4. KẾT QUẢ MÔ PHỎNG (76)
    • 4.1 OPC UA Server (76)
      • 4.1.1 Giao diện Home (76)
      • 4.1.2 Giao diện Endpoints (77)
      • 4.1.3 Giao diện Session (78)
      • 4.1.4 Giao diện Certification (79)
    • 4.2 OPC UA Client Web platform (79)
    • 4.3 OPC UA Client PLC S7-1500 (84)
  • CHƯƠNG 5. ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN (87)
    • 5.1 Kết quả đạt được (87)
    • 5.2 Những điều thiết sót (87)
    • 5.3 Hướng phát triển đề tài (87)
  • TÀI LIỆU THAM KHẢO (88)

Nội dung

Cuộc cách mạng công nghiệp lần thứ 4 dựa trên nền tảng công nghệ số và tích hợp tất cả các công nghệ thông minh để tối ưu hóa quy trình, phương thức sản xuất; nhấn mạnh những công nghệ đ

TỔNG QUAN

Đặt vấn đề

Trong nền kinh tế hội nhập hiện nay, thông tin là chìa khóa dẫn đến thành công và lợi nhuận của doanh nghiệp.Cuộc cách mạng công nghiệp lần thứ 4 dựa trên nền tảng công nghệ số và tích hợp tất cả các công nghệ thông minh để tối ưu hóa quy trình, phương thức sản xuất; nhấn mạnh những công nghệ đang và sẽ có tác động lớn nhất là công nghệ in 3D, công nghệ sinh học, công nghệ vật liệu mới, công nghệ tự động hóa, người máy…

Cụ thể hơn, trong môi trường của Công nghiệp 4.0, tất cả các bên trong chuỗi cung ứng chia sẻ dữ liệu từ các trang web sản xuất, phương tiện, kho hàng và cơ sở dữ liệu của họ trong thời gian thực (real time) và dữ liệu hàng tồn kho được cập nhật liên tục để người dùng hiểu tình hình kinh doanh Đơn đặt hàng khẩn cấp của khách hàng có thể được cập nhật kịp thời và đáp ứng sự hài lòng của khách hàng Tình trạng và vị trí của sản phẩm có thể theo dõi và kiểm soát được Chất lượng sản phẩm được kiểm soát tốt hơn và hàng tồn kho được quản lý tốt hơn Cài đặt thiết bị được tự điều chỉnh dựa trên các vật liệu được sử dụng, sản phẩm được sản xuất và các điều kiện môi trường khác Sản phẩm sản xuất hàng loạt được tùy chỉnh theo nhu cầu của từng khách hàng Thiết bị có thể được giám sát từ xa và trục trặc có thể được dự đoán chính xác Dù loại hình kinh doanh là gì, công nghệ có thể kết nối khách hàng, nhà cung cấp, đối tác, thiết bị sản xuất và sản phẩm trong suốt vòng đời của sản phẩm và dịch vụ

Tuy nhiên, một trong những thách thức trọng tậm được đặt ra bởi cách mạng công nghiệp 4.0 là việc trao đổi dữ liệu, thông tin đã được chuẩn hóa và an toàn giữa các thiết bị, máy móc với hệ thống giám sát phía trên Và giao thức OPC UA đã ra đời để giải quyết thử thách này

Công nghệ OPC được tạo ra để cho phép thông tin được trao đổi dễ dàng và an toàn giữa các nền tảng đa dạng từ nhiều nhà cung cấp và cho phép tích hợp liền mạch các nền tảng đó mà không cần phát triển phần mềm tốn kém, mất thời gian Công nghệ này là nguồn lực kỹ thuật quan trọng để tối ưu cũng như bảo mật thông tin quan trọng trong doanh nghiệp Do đó, việc triển khai hệ thống điều khiển và giám sát thông qua Internet là rất cần thiết

Tổng quan đề tài

Hình 1.1 Sơ đồ tổng quan đồ án [1]

Hệ thống của luận văn sẽ gồm 5 phần chính:

1 OPC UA Client được triển khai trên PLC S7-1500

2 OPC UA Server được xây dựng bằng NET Standard SDK

3 OPC UA Client trên nền tảng web được xây dựng bằng ASP.NET Core 3

4 Giao diện UI được xây dựng bằng framework Angular 11

5 Database được sử dụng trong hệ thống là SQL Server

• OPC UA Client chạy trên PLC S7-1500 bằng phần mềm Tia Portal vừa đóng vai trong là OPC UA Client, vừa để thực thi chương trình điều khiển như một PLC thông thường

• OPC UA Server đóng vai trò như một trung gian để các client giao tiếp với nhau

• OPC UA Web Platform đươc xây dựng với backend: ASP.NET Core 3; Frontend: Angular 11 framework; Database: SQL Server; đóng vai trò là Client có thể kết nối Server để điều khiển, và giám sát hệ thống

• Web Service sử dụng RESTfull Web Service: Cung cấp các API để giao tiếp với Client

• OPC UA Client Module: Cung cấp giao thức OPC UA để có thể giao tiếp với OPC UA Server

• SignalR được sử dụng khi OPC UA client Subcribe bất kì Node nào trên OPC UA Client

Mục tiêu đề tài

Trong đề tài luận văn này, tôi đặt ra những yêu cầu như sau:

Tìm hiểu chuẩn giao thức OPC UA, OPC UA Client/Server Các thành phần cụ thể:

• Phương thức trao đổi dữ liệu

Lập trình OPC UA Server bằng C# với gói thư viện OPC UA của OPC Foundation Nghiên cứu về Web development

Kết nối Server với nhiều Client ảo khác nhau.

Giới hạn đề tài

Tốc độ tiếp nhận tín hiệu giữa server và client phụ thuộc vào phần cứng máy tính và đường truyền dây

Hệ thống dừng lại ở mức độ mô phỏng, chưa áp dụng phần cứng thực tế.

Nội dung đề tài

Phần còn lại của đề tài có nội dung sau:

• Chương 2: Cơ sở lý thuyết

- Trình bày các yêu cầu, quy trình công nghệ liên quan đến đề tài

• Chương 3: Thiết kế hệ thống

- Yêu cầu, qui trình xây dựng hệ thống

• Chương 4: Kết quả mô phỏng

• Chương 5: Kết luận và hướng phát triển

- Tổng kết kết quả đạt được và việc cải tiến, mở rộng phát triển

CƠ SỞ LÝ THUYẾT

Giới thiệu giao thức OPC

OPC (Open Platform Communications) là một tiêu chuẩn giao tiếp của dữ liệu, được thực hiện giữa các phần mềm với nhau và hoạt động dựa trên cơ chế liên kết và nhúng đối tượng (OLE) để kiểm soát quá trình [2]

Cụ thể hơn, OPC được thiết kế để cung cấp một cầu nối chung cho các ứng dụng phần mềm dựa trên Windows và phần cứng điều khiển quá trình Các tiêu chuẩn xác định các phương pháp nhất quán để truy cập dữ liệu thực tế từ các thiết bị nhà máy Máy chủ OPC (OPC SERVER) cung cấp một thiết bị phần cứng gồm các phương thức để máy khách OPC (OPC CLIENT) truy cập dữ liệu của nó Mục đích là để giảm số lượng trùng lặp dữ liệu từ các nhà sản xuất phần cứng và đối tác phần mềm của họ, cũng như kiểm soát giám sát và thu thập dữ liệu (SCADA) và giao diện người-máy khác (HMI) các nhà sản xuất để giao tiếp song song với nhau Khi một nhà sản xuất phần cứng đã phát triển Máy chủ OPC của họ cho thiết bị phần cứng mới, công việc của họ được thực hiện liên quan đến việc cho phép bất kỳ thiết bị đầu cuối truy cập vào thiết bị của họ và khi nhà sản xuất SCADA đã phát triển ứng dụng OPC Client của họ, nó cho phép truy cập vào bất kỳ phần cứng nào với một máy chủ tuân thủ giao thức OPC

Tóm lại, OPC là một chuẩn giao tiếp theo mô hình Khách-Chủ (Client-Server) cho phép các phần mềm (nền tảng Windows) có thể giao tiếp được với các thiết bị phần cứng trong công nghiệp

OPC DA (OPC DATA ACCESS) là giao thức truyền dữ liệu nhà máy theo thời gian thực giữa các thiết bị điều khiển Vì vậy, OPC DA chỉ xử lý dữ liệu thời gian thực chứ không phải dữ liệu lịch sử (đối với dữ liệu lịch sử, ta cần sử dụng OPC Historical Data

Access hoặc OPC HDA) hoặc các sự kiện (đối với Báo động và Sự kiện, ta cần sử dụng OPC Alarm và OPC Event) [3]

OPC DA vẫn còn các hạn chế như:

• Việc phải truy cập qua một phần mềm trung gian là OPC Server DA – cầu nối giữa PLC và SCADA, làm tốc độ trao đổi giữa PLC và SCADA bị giảm

• Các bước để cấu hình cho giao thức không tường minh, làm tốn kém thời gian của người dùng

• Không thể thiết lập kết nối Client – Server thông qua Internet

• Khó khăn trong việc truy cập mạng LAN do OPC DA Server sử dụng port 135 nằm trong dãy port bị chặn bởi Firewall truyền thống

• Để SCADA kết nối được với OPC DA Server thì trên máy tính chạy SCADA phải có thông tin Server đã được đăng kí trên registry của Windows

• Nền tảng phụ thuộc vào Microsoft

Vì những hạn chế của OPC DA, OPC UA ra đời kế thừa đặc tính cơ bản của OPC DA Ngoài ra, OPC UA còn được hiểu là một chuẩn giao thức bậc cao, độc lập OPC UA được hiểu bằng cụm từ Open Platform Communication (OPC) Unified Archiecture (UA), và đã khắc phục được những hạn chế của OPC DA đã được liệt kê ở trên Những ưu điểm của OPC UA là:

• OPC UA sử dụng được trên mọi nền tảng từ hệ thống nhúng, hệ thống điều khiển, giám sát, quản lí điều hành công nghiệp đến các hệ thống ERP cho doanh nghiệp

• OPC UA Client và Server có thể được tích hợp vào các thiết bị trường như cảm biến, thiết bị chấp hành, … từ đó có thể đưa dữ liệu 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ợ kĩ thuật Heartbeat hai chiều giữa Client và Server để kiểm tra tình trạng hoạt động của nhau

• Hỗ trợ chức năng automatic backfilling dữ liệu

• OPC UA cho phép truyền nhận nhiều dạng tín hiệu và dữ liệu khác nhau

• Bao gồm các đặc tả History, Alarm & Event

• Hỗ trợ lưu đồ trạng thái (State-machine)

Hình 2.1 Các đặc tả OPC UA

Tiêu chuẩn OPC UA bao gồm các thông số kĩ thuật riêng biệt – được gọi là các đặc tả Mỗi thông số mô tả một phần chức năng và chỉ định giao thức giữa Server và Client nào được phép triểm khai cho chắc năng này và hỗ trợ nó OPC Client và Server không hỗ trợ tất cả các đặc tả trên Tùy thuộc và ứng dụng cụ thể, chỉ sử dụng một số các đặc cả riêng biệt Khi sử dụng OPC UA Server và Client cần xem xét đặc tả nào được yêu cầu và sẽ được triển khai bởi Server và Client

OPC UA bao gồm các đặc tả sau:

Không phải tất cả các đặc tả trên đều cần thiết để tìm hiểu chi tiết Một số đặc tả quan trọng được sử dụng trong phạm vi luận văn này:

OPC UA Data Access cho phép đọc, viết và giám sát những biến dữ liệu của quá trình hiện hành

Xác định các quy tắc và thành phần cơ bản để tạp nên mô hình không gian địa chỉ của OPC UA

Dựa vào cơ sở Address Space Model để xác định cá điểm truy cập trong không gian địa chỉ và các kiểu dữ liệu cơ bản như data type, object type, …

Xác định vể các yêu cầu bảo mật cơ bản.

Mô hình OPC UA Server và OPC UA Client

Phần này trình bày cụ thể thành phần cấu thành của OPC UA Server và OPC UA Client là gì

2.2.1 Mô hình OPC UA Server

Node là đơn vị dữ liệu cơ bản trong giao thức OPC UA Tất cả các kiểu, định dạng thông tin khác trong OPC UA đều được xây dựng từ Node Để giải thích rõ hơn về Node ta sử dụng mô hình Address space

• Trong bất kì hệ thống máy tính nào, để thể hiện bất kì loại thông tin/dữ liệu bất kì ta cần một không gian trong bộ nhớ để lưu trữ thông tin/dữ liệu đó

Hình 2.2 Mô hình Address space truyền thống

• Tuy nhiên đối với những thông tin phức tạp hơn mô hình này có thể sẽ không đáp ứng được OPC UA cho ra một định dạng mới là Node để giải quyết vấn đề này:

Hình 2.3 Mô hình OPC UA Node

Thay vì sử dụng Temperature để đại diện cho một biến số thực như thông thường OPC UA có một nhóm các loại biến khác nhau và được biểu thị bằng cùng một cái tên duy nhất – được gọi là Node

Node là đơn vị thông tin/dữ liệu duy nhất trong OPC UA Mọi loại thông tin/dữ liệu khác trong OPC UA đều được tạo ra từ một Node

• Thuộc tính của node – là những thành phần để mô tả Node như tên Node, Nodeid…vv

• Mối quan hệ với các Node khác – được gọi là Reference

Các Node trong OCP UA Server được xác định rõ ràng với nhau bằng cách sử dụng một định dạng được gọi là NodeID NodeID bao gồm:

VD: NodeId = “ns=http://opcfoundation.org/UA/;string:Example”

2.2.1.2 Xây dựng một Information Model phức tạp từ Node cơ bản

OPC UA vay mượn một kĩ thuật rất phổ biến trong phát triển phần mềm – được gọi là lập trình hướng đối tượng (OOP), để định dạng được 8 Node Class khác nhau, tất cả đều kế thừa từ một Node cơ bản

Những đặc điểm cơ bản này bao gồm: NodeId, Node Class, Display Name,…vv

8 Node Class cơ bản bao gồm:

• Variable Node Class: Class này chứa dữ liệu thực tế, như nhiệt độ, tốc độ, độ ẩm,…

• Method Node Class: Được sử dụng để đại diện cho các phương thức hoặc các hàm sẽ trả về kết quả khi được gọi bới Client

• Object Node Class: Đại diện cho một đối tượng thật ở trong nhà máy hoặc hệ thống tự động; như bơm, máy nén, hoặc có thể là cả nhà máy

Namespace uri Indentifier data type

Ví dụ ta có một Object là một máy bơm, máy bơm này bao gồm:

• Trạng thái: On/Off; Speed

• Hành vi: Starting the Pump, Stopping the Pump

Với trạng thái của bơm ta sử dụng Variables Node, còn về hành vi ta có thể sử dụng Methods Node trong OPC UA

• Object Type Node Class: Được dùng để định nghĩa một Object – nhằm phục vụ cho việc mở rộng hệ thống có một Object xuất hiện nhiều hơn một lần Ví dụ một nhà máy bao gồm 100 cái bơm, ta có thể đụng nghĩa ra PumpType Class để có thể kế thừa

• Variable Type Node Class: Được dùng để cung cấp định nghĩa kiểu cho các biến

• Reference Types Node Class: Thể hiện về mối quan hệ tham chiếu giữa các Node với nhau

• View Node Class: Thế hiện một tập hợp con các Node trong không gian địa chỉ của Server

• Data Type Node Class: Mô tả cú pháp của giá trị một biến

2.2.2 Mô hình OPC UA Client

OPC Client là một đối tác logic của OPC UA Server OPC UA Client có thể kết nối với Server và đọc dữ liệu do Server cung cấp OPC UA Server triển khai giao thức được

11 xác định theo tiêu chuẩn OPC, cho nên mỗi Client có thể kết nối đến bất kì Server nào và trao đổi dữ liệu với Server trên cùng một đường truyền

Hình 2.5 Mô hình OPC UA Client

2.2.3 Giao thức và phương thức bảo mật

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)

Ta sẽ đi sâu vào từng phương pháp:

• Đối với phương pháp đọc/ghi bất đồng bộ: Client gửi 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

• 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

12 với OPC DA là: việc gửi yêu cầ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 Chính nhờ việc 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ể hiện dễ dàng

Hình 2.6 Đọc/Ghi đồng bộ và bất đồng bộ trong OPC UA

• Phương pháp đọc/ghi đăng kí trước: mỗi lần trao đổi dữ liệu, Client chỉ cần gửi NodeID 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 Phương pháp này có tốc độ nhanh hơn việc đọc ghi mà không đăng kí trước

Hình 2.7 Đọc/ghi không đăng kí trước và đọc/ghi đăng kí trước

• Phương pháp trao đổi dữ liệu Đăng kí trong OPC UA: Client đăng kí danh sách các

Node trên Server, khi và chỉ khi giá trị của Node này thay đổi thì Server với gửi lại cho Client

Hình 2.8 Phương pháp trao đổi dữ liệu đăng kí (Subcription)

Trong phạm vi luận văn này tôi chỉ sử dụng 2 phương pháp trao đổi dữ liệu là Đọc/ghi bất đồng bộ và Đăng kí

Các phương thức bảo mật của giao thức OPC UA được thể hiện ở bảng sau:

Bảng 2.1 Bảng tùy chọn cơ chế bảo mật OPC UA Server

None – Không sử dụng bảo mật

Basic128Rsa15 – Đặt các thuật toán bảo mật Basic256 – Đặt các thuật toán bảo mật với độ dài khóa nhiều hơn

Basic256Sha256 – Đặt các thuật toán mã hóa tin nhắn sử dụng SHA256

Node – Tin nhắn không bảo mật

Sign – Tin nhắn đã được ký

Sign&Encrypt – Tin nhắn được ký và mã hóa

Anonymous – Không sử dụng xác thực người dùng

User Password – Xác thực người dùng bằng tên và mật khẩu được giải mã

Certificate – Xác thực người dùng bằng chứng chỉ

Cơ chế trao đổi Certificate giữa Client và Server:

Client lấy những thông tin từ Server như Endpoints và thông tin về bảo mật của Server Sau đó Client sẽ kiểm tra coi Certificate của Server đã nằm trong Trusted List hay chưa Nếu chưa người dùng sẽ được hỏi có chấp nhận Server Certificate hay không

Hình 2.9 Client kiểm tra chứng chỉ của Server

Sau khi chọn phương thức bảo mật để kết nối phù hợp, kênh giao tiếp an toàn sẽ được mở và Certificate của Client sẽ được gửi đến cho Server Server sẽ kiểm tra trong Trusted List nếu không có Certificate này sẽ được đưa vào Rejected Lists của Server

SCADA

SCADA (viết tắt tiếng Anh: Supervisory Control and Data Acquisition) được hiểu là một hệ thống điều khiển giám sát và thu thập dữ liệu Nhằm hỗ trợ con người trong quá

16 trình giám sát và điều khiển từ xa SCADA là một hệ thống các yếu tố phần mềm và phần cứng cho phép các tổ chức công nghiệp:

• Kiểm soát các quy trình công nghiệp tại local hoặc tại các địa điểm từ xa

• Theo dõi, thu thập và xử lí dữ liệu thời gian thực

• Tương tác trực tiếp với các thiết bị như cảm biến, van, máy bơm, động cơ và nhiều thứ khác thông qua phần mềm giao diện người-máy (HMI)

• Ghi sự kiện vào một file nhật ký hoặc CSDL.

OPC UA client Web Platform

Đây là giao diện để giao tiếp với người dùng Giao diện này phải đáp ứng các nhu cầu như hiển thị tính trạng hệ thống, giao diện trực quan và số liệu được làm mới liên tục Đồng thời API phải cung cấp khả năng truy xuất đến một tập các hàm hay dùng Và từ đó có thể trao đổi dữ liệu giữa các ứng dụng và hiển thị lên giao diện cho người dùng

2.4.1 Các phần mềm được sử dụng để thiết kế Web Platform

Angular là một javascript framework do google phát triển để xây dựng các Single Page Application (SPA) bằng JavaScript, HTML và TypeScript Angular cung cấp các tính năng tích hợp cho animation, http service và có các tính năng như auto-complete, navigation, toolbar, menu … Code được viết bằng TypeScript, biên dịch thành JavaScript và hiển thị tương tự trong trình duyệt [7] Để học được angular thì ta cần biết các kiển thức cơ bản sau:

Angular mang đến một kiến trúc rõ ràng, dựa trên ba yếu tố chính: class, các dependency được thêm vào và mô hình MVVM (model-view-view/model)

Angular sử dụng class trong ES6 với một loạt các thuộc tính để xây dựng toàn bộ cấu trúc phát triển dứng dụng của nó: component, module, dependency, …

Việc xây dựng client-side (phần tương tác người dùng) có ba yếu tố cần quan tâm chính đó là: giao diện người dùng, mã nguồn điều khiển giao diện và mô hình dữ liệu cho giao diện Angular với MVVM phân biệt hoàn toàn rõ ràng các yếu tố trên nhờ mô hình MVVM:

• Phần giao diện (view) được định nghĩa trong một template bao hàm HTML dành cho một component nhất định Template có thể là toàn bộ layout hoặc là một phần của Layout đó

• Model được định nghĩa là các thuộc tính của component class Có thể hiểu là dữ liệu, dựa vào đó phần View sử dụng để thực thi

• View/Model là class quản lí cả view cũng như model Là phần code sẽ xử lý việc truy xuất dữ liệu, đồng thời thực thi các tương tác của người dùng trên view

ASP.NET Core là một framework của Microsoft có thể được sử dụng để phát triển web với NET chạy trên nhiều nền tảng khác nhau như Windows, Linux, Mac Nó bao gồm các tính năng:

• Các ứng dụng NET Core có thể chạy trên NET Core hoặc trên NET Framework hoàn chỉnh

• Nó đã được thiết kế để cung cấp một framework tối ưu cho các ứng dụng triển khai tới cloud hoặc chạy on-premises

• Nó bao gồm những modular với các thành phần tối thiểu, do đó bạn giữ được tính linh hoạt trong quá trình xây dựng các giải pháp của mình

• Bạn có thể phát triển và chạy các ứng dụng đa nền tảng từ ASP.NET Core trên Windows, Linux, Mac

SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System (RDBMS)) sử dụng câu lệnh SQL (Transact-SQL) để trao đổi dữ liệu giữa máy Client và máy cài SQL Server Một RDBMS bao gồm databases, database engine và các

18 ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS SQL Server được phát triển và tiếp thị bởi Microsoft [9]

SQL Server hoạt động độc quyền trên môi trường Windows trong hơn 20 năm Năm

2016, Microsoft đã cung cấp phiên bản trên Linux SQL Server 2017 ra mắt vào tháng 10 năm 2016 chạy trên cả Windows và Linux, SQL Server 2019 sẽ ra mắt trong năm 2019 SQL Server được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn (Very Large Database Environment) lên đến Tera – Byte

SQL Server thường được sử dụng cho mục đích lưu trữ dữ liệu Ngoài ra, nó còn mang lại những tính năng làm việc giúp người dùng làm việc hiệu quả hơn như sau:

• Giúp người sử dụng có thể duy trì việc lưu trữ bền vững.

• Cho phép bạn tạo ra nhiều cơ sở dữ liệu hơn

• Có khả năng phân tích dữ liệu bằng SSAS

• Nó có khả năng bảo mật cao

• Việc tạo ra được các báo cáo bằng SSRS — SQL Server Reporting Services sẽ được dễ dàng hơn

• Các quá trình sẽ được thực hiện bằng SSIS — SQL Server Integration Services.

2.4.2 Các công nghệ phát triển web được dùng trong đồ án

REST (Representational State Transfer) là một dạng chuyển đổi cấu trúc dữ liệu, một kiểu kiến trúc để viết API Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp giữa các máy Vì vậy, thay vì sử dụng một URL cho việc sử lý một số thông tin gười dùng, REST gửi một yêu cầu HTTP như GET, POST, PUT, DELETE đến một URL để xử lí dữ liệu

REST là một bộ quy tắc để tạo ra một ứng dụng Web Service, nó tuân thủ 4 nguyên tắc sau:

• Sử dụng các phương thức HTTP một cách rõ ràng

• Hiển thị cấu trúc thư mục như URIs

• Truyền tải theo định dạng JSON (JavaScript Object Notation), XML hoặc cả hai

Một Web Service dựa trên REST được gọi là RESTfull Web Service và nó tận dụng được những lợi thế từ việc sử dụng các phương thức HTTP để vận hành CRUD (Create, Read, Update, Delete) trên tài nguyên của hệ thống

• GET (SELECT): Trả về một Resource hoặc một danh sách Resource

• POST (CREATE): Tạo mới một Resource

• PUT (UPDATE): Cập nhật thông tin cho Resource

• DELETE (DELETE): Xoá một Resource

Hình 2.11 Giao thức hoạt động API

2.4.2.2 Xác thực dựa trên token

Xác thực dựa tên token là phương thức xác thực bằng chuỗi mã hóa Một hệ thống sử dụng xác thực bằng token cho phép người dùng nhập username/password để nhận về một chuỗi token Chuỗi token này được sử dụng để xác minh quyền truy cập vào tài nguyên mà không cần phải cung cấp lại username/password nữa

Hình 2.12 Qui trình hoạt động Token Đây là một giải pháp xác thực tối ưu cho công nghệ web sử dụng giao tiếp không trạng thái (stateless comminication) bởi nó giải phóng Máy chủ khỏi việc phải lưu trữ lại các session kết nối Tất cả thông tin về quyền truy cập có thể dễ dàng tích hợp vào token và token này sẽ được cung cấp tại Header của mỗi HTTP request

ASP.NET SignalR là một thư viện cho các lập trình viên Asp.Net đơn giản quá trình thêm chức năng web real-time trong phát triển ứng dụng Đơn giản có thể hiểu nó sẽ có một Hub trên Server làm trung chuyển dữ liệu và client có thể publish dữ liệu và subcribe topic để có thể trao đổi dữ liệu với nhau – gần tương tự như với giao thức MQTT

SignalR có thể sử dụng trong bất kì chức năng web real-time nào Trong đó ứng dụng chat trên web là một ví dụ điển hình Ngoài ra, các ứng dụng cho dashboards, monitoring, collaborative là những gợi ý cho việc sử dụng SignalR

Trong đề tài này, SignalR này được sử dụng khi OPC UA Client Subcribe bất kì Node nào trên OPC UA Client.

PLC S7-1500 OPC UA Client

2.5.1 Các khối OPC UA Client trên PLC S7-1500

Bắt đầu từ firmware 2.6 của dùng PLC S7-1500, OPC UA clients đã được tích hợp OPC UA Client có thể được lập trình qua các khối Function blocks (FB) và không chỉ để mỗi cấu hình

Bảng sau đây nhằm giới thiệu các khối FB được sử dụng với tính năng OPC UA Client trên PLC S7-1500:

Bảng 2.2 Các khối hàm hỗ trợ OPC UA Client trên PLC S7-1500

OPC_UA_Connect Thiết lập kết nối và tạo seesion với OPC UA

OPC_UA_Disconnect Ngắt kết nối với OPC UA Server

OPC_UA_NamespaceGetIndexList Truy vấn các thông số cũng như không gian địa chỉ của OPC UA Server đã được kết nối OPC_UA_NodeGetHandleList Đăng kí NodeIDs để có thể đọc hoặc ghi đếm

OPC_UA_MethodGetHandleList Đăng kí method NodeIDs để có thể gọi method đến OCP UA Server OPC_UA_ReadList Thực hiện đọc các biến đã được đăng kí ở

OPC UA Server OPC_UA_WriteList Thực hiện ghi lên các biến đã được đăng kí ở

OPC UA Server OPC_UA_MethodCall Thực hiện goi Method đã được đăng kí ở OPC

OPC_UA_NodeReleaseHandleList Hủy đăng kí đến các NodeIDs đã đăng kí ở

OPC UA Server OPC_UA_MethodReleaseHandleList Hủy đăng kí đến các method đã đăng kí ở OPC

UA Server OPC_UA_ConnectionGetStatus Hàm trả về chất lượng của kết nối đến OPC

2.5.2 Sơ đồ trình tự để các Function Block (FB) thao tác với OPC UA Client trên PLC [12]

Các hình sau đâu mô tả quy trình làm việc và tương tác giữa các FB của hệ thống OPC UA:

Hình 2.13 Qui trình thực hiện kết nối đến OPC Server

Sau khi FB “OPC_UA_Connect” thiết lập kết nối và kích hoạt seesion thành công, nó sẽ trả về “Connection Handle” - thông số này tham chiếu đế các kết nối/seesion hiện cho cho tất cả các chức năng của OPC UA

Sau khi thiết lập được kết nối, FB “OPC_UA_NamespaceGetIndex” được thực hiện Khối này sẽ trả về namespace index của các node đã được cấu hình ở Client interface Các Readlist, WriteList, và MethodList sau đó sẽ được đăng kí khi các khối OPC_UA_NodeGetHandleList và OPC_UA_MethodGetGandleList

Hình 2.14 Đọc, ghi các biến và gọi Method

Trong phạm vi luận văn này, ta chỉ sử dụng 2 FB là: OPC_UA_ReadList và OPC_UA_WriteList Đọc/Ghi sẽ được thực thi nối khi REQ xuất hiện xung cạnh lên

Hình 2.15 Thực hiện ngắt kết nối đến OPC Server

CÁC BƯỚC THIẾT KẾ HỆ THỐNG

Thiết kế OPC UA Server

3.1.1 Yêu cầu thiết kế của OPC UA Server trong hệ thống

Vì OPC UA Server đóng vai trò là cầu nối giữa OPC Client chạy trên Tia Portal (mô phỏng cơ cấu chấp hành) và OPC UA Web Platform (Scada giao tiếp với người dùng) Nên OPC UA Server khi thiết kế phải có các chức năng như ta hiển thị thời gian bắt đầu chạy Server, tên miền của Server, các giao thức bảo mật đang có và các Client, Subscription đang kết nối với OPC UA Server Giao diện trực quan, dễ hiểu Từ đó, tôi có thể xây dựng OPC UA Server qua các bước dưới đây

3.1.2 Thiết kế Server Information Modelling

Trong phạm vi luận văn này, mô hình được dùng để demo là một hệ thống bồn với hai van nạp và xả; một cảm biến mức; một cảm biến lưu lượng Từ đó tôi có thể xây dựng được một Information model như sau:

+ HighLimit + LowLimit + HighLimitAlarm + LowLimitAlarm + Output

3.1.3 Khởi tạo file ModelDesign.xml

Bước 1: Khởi tạo, khai báo ModelDesign.xml

Hình 3.2 Khởi tạo ModelDesign.xml

Bước 2: Thêm các Object Types

Các Object này dùng để khai báo các thông số PID cho hệ thống

Khai báo dữ liệu của biến

Analog Output Type dùng để khai báo các biến có giá trị Double

Analong Input Type dùng để khai báo các biến Output, HighLimit, LowLimit, HighLimitAlarm, LowLimitAlarm của hệ thống

Digital Type dùng để khai báo loại biến Boolean khi dùng Digital Type

Khai báo loại biến dựa vào dữ liệu của biến ở trên

Khai báo loại biến Valve dựa vào AnalogOutputType

Khai báo loại biến Sensor dựa vào AnalogInputType

Khai báo loại biến Button dựa vào DigitalType

30 Bước 3: Thêm các Object cho Model

Hình 3.7 Object Model của Server

3.1.4 Biên dịch Model vừa tạo bằng OPC UA Compiler

Sau khi build model ta được các tập tin với định dạng như sau:

3.1.5 Khởi tạo OPC UA Server

Hình 3.9 Các thành phần OPC UA Server

Bước 1: Thêm thư viện OPC UA

Hình 3.10 Thêm thư viện OPC UA

Bước 2: Khởi tạo Server với mô hình Standard Server trong thư viên OPC UA

Hình 3.11 Khởi tạo Server với mô hình Standard Server

Bước 3: Thực hiện cấu hình cho Server Để thực hiện cấu hình cho OPC UA Server có hai cách:

• Thực hiện với file configuration.cs

• Thực hiện với file Config.xml

Trong phạm vi luận văn này thì ta chọn cách thử hai, sử dụng file Config.xml để cấu hình cho Server

• Security Configuration: o Certification Management: Đường dẫn của các thư mục chứa danh sách các

Trusted, Rejected Certifications đồng thời chứa Certification của Server – Certificate sẽ gửi cho Client khi Client kết nối với Server

Hình 3.12 Certification Management o User Authorization: Có 3 kiểu xác thực người dùng là Anonymous, UserName và Certificate Tùy vào ứng dụng ta có thể thay đổi tập lệnh cấu hình sau để phù hợp

34 o Security Mode and Policies: Các chế độ bảo mật nhằm xác minh khi OPC UA

Client kết nối với Server

Hình 3.14 Security Mode and Policies

• Server Base Address: Địa chỉ endpoints của Server, mỗi địa chỉ ứng với giao thức hỗ trợ - tcp, https hoặc http

Trong luận văn này sẽ dùng địa chỉ của giao thức thứ nhất là -tcp

3.1.6 Giao diện để giám sát, quản lí OPC UA Server

Ta sử dụng Class Library của UA Server Controls – open source của OPC Foundation, đồng thời phát triển thêm để được giao diện cung cấp các tính năng:

• Trạng thái của Server, danh sách các sessions và subcriptions

• Người dùng có thể cấu hình Security

Hình 3.16 Cấu trúc giao diện giám sát

3.1.7 Giao diện giám sát OPC UA Server sau khi hoàn thành

OPC UA Client Web Platform

3.2.1 Yêu cầu thiết kế OPC UA Client Web Platform Đảm bảo khi thiết kế Client phải có được các chức năng cơ bản của OPC UA

• Thiết lập kết nối đến OPC UA Server với các loại mã hóa và bảo mật khác nhau

• Đọc được giá trị của Node bất kì khi biết được Nodeid dùng với các thuộc tính đi kèm của Node

• Thực hiện Browse được đến Server

• Đoc/Viết được bất kì node nào

• Kết nối database – Microsoft SQL Server, thực hiện thêm bớt, truy suất dữ liệu

• Các API hỗ trợ việc xuất báo cáo Excel

• Hiển thị dữ liệu thời gian thực

Ngoài ra, giao diện của Web phải dễ nhìn, dễ dàng cho người sử dụng, phải có đèn cảnh báo để biết khi nào bồn quá mực nước Từ đó, tôi có thể thiết kế Client như sau

3.2.2 Lập trình OPC UA Client Web platform

3.2.2.1 Backend: OPC UA Client API

Web API được viết bằng Asp.net Web API chịu trách nhiệm cung cấp dữ liệu, chủ yếu ở dạng Json và Xml cho client Web API cung cấp một loạt URL mà Client có thể sử dụng để truy xuất hoặc thay đổi dữ liệu trên Server qua HTTP

3.2.2.1.1 Cấu trúc OPC UA Client API

Hình 3.21 Mô hình OPC UA Client API

Các thành phần cấu thành nên Project:

Bảng 3.1 Các thành phần của OPC UA Client Web platform

Authentication Chứa các Class, function để xử lí về xác thực đăng nhập

Controller Bao gồm các thư mục con:

▪ ApiController: Các API để giao tiếp với Frontend: Get endpoints, Connect, Browse, Read/Write,

▪ AuthenticationController: Các API để giao tiếp với Frontend xử lí các vấn đề về đăng nhập

▪ TankController: Các API riêng biệt cho mô hình Scada được sử dụng trong luận văn này

HubConfig Cấu hình Hub để hỗ trợ cho giao thức

SignalR đảm bảo yêu cầu Real-time của ứng dụng

Model Chứa các models, định dạng dữ liệu được sử dụng trong Project

OPC UA Layer Là module OPC UA chứa các hàm hỗ trợ cho giao thức OPC UA của ứng dụng web: Read/Write, hàm Subcribtion,…

OPCUAWebPlatform.Config.xml File cấu hình chi tiết cho Client như: quản lí client Certificate,…

Tuần tự hoạt động của mô hình:

• Ban đầu người dùng nhập Getendpoint rồi sau đó chọn giao thức bảo mật để kết nối

• Sau khi đã kết nối được với Server, ta chọn có thể điều chỉnh thông số của bồn cho phù hợp với nhu cầu

• Khi gọi tới một API bất kì thì nó sẽ gọi các hàm trong OPC UA Layer để nhằm thực thi các tính năng của giao thức OPC UA

• Ta có thể xuất dữ liệu bồn qua file Exel bất kì dựa vào thời gian bồn đã chạy

3.2.2.1.2 Các hàm quan trọng hỗ trợ giao thức OPC UA

• Hàm lấy tất cả các Server endpoints: Đầu vào là URL Server

• Hàm thiết khởi tạo session và thiết lập kết nối: Đầu vào là Server URL cùng với phương thức bảo mật

• Hàm đọc Node: Đầu vào là NodeId của Node cần đọc

• Hàm Browse Node: Đầu vào là Server URL để lấy tất cả các Node của Server

Hình 3.25 Hàm lấy tất cả các biến

• Hàm Write Node: Đầu vào là Node Id của Node cần ghi, NodeId này được cung cấp bởi hàm Browse

• Thiết lập kết nối đến database Microsoft SQL Server

Demo dưới đây là hàm nhằm lấy 100 giá trị mới nhất của hệ thống trong SQL Server

Dữ liệu trả về là chuỗi JSON bao gồm các cột đã lấy được trong bảng của Database

Hình 3.27 Hàm lấy giá trị Database (100 giá trị)

3.2.2.1.3 Bộ API nền tảng của Web Platform

Bảng 3.2 Bộ API nền tảng của Project

Method API Url Chức năng Dữ liệu gửi Dữ liệu trả về

POST /api/get-endpoints Lấy tất cả các endpoints hiện có của Server

OPC UA Server Url chuỗi JSON chứa tất cả các endpoints của ServerUrl đó

POST /api/data-sets/route Thực hiện chức năng Browse đến

OPC UA Server Url và kiểu bảo mật mong muốn chuỗi JSON chứa Browse Node của OPC UA Server

POST /api/data- sets/nodes/{node_id}

Thực hiện ghi lên Node của OPC

Dữ liệu muốn ghi vào node_id được kèm theo ở đường dẫn

Kết quả của quá trình ghi (Thành công hay không)

POST /api/data-sets/monitor Thực hiện đăng kí Node

Node cần subcription cùng với samplingInterval

Kết quả của quá trình Subcription (Thành công/Thất bại)

POST /api/data-sets/stop- monitor

Thực hiện hủy đăng kí Node

Kết quả quá trình hủy subcription tất cả các Node đã subcription

GET /api/disconnect Thực hiện ngắt kết nối với OPC

UA Server hiện đang kết nối

None Thành công/Thất bại

GET /api/data- sets/nodes/{node_id} Đọc dữ liệu Node

None Giá trị của Node cùng với các thuộc tính đi kèm như NodeId, NodeType,…

3.2.2.1.4 Kết quả API sau khi hoàn thành

Hình 3.28 Swagger UI dùng để test API

Hình 3.29 Cấu trúc Angular Framework

Bảng 3.3 Các thư mục cùng với tính năng của Angular project

_common Chứa tổng quan layout giao diện của

_guards Chứa service để kiểm tra Authentication của người dùng

_helpers Chứa service kiểm tra tokens và thêm token vào hàm gọi API

_models Chứa các định nghĩa thuộc tính cho các components – hiểu nôm na đó là các model dừ liệu do người dùng tự định nghĩa

_modules Chứa tất cả các components được dử dụng trong project

_service Chứa các hàm thực hiện giao tiếp với backend

_utils Chứa các URL của các API được sử dụng trong project

• Thiết lập routing cho toàn bộ project

Hình 3.30 Thiết lập routing cho project

Hình 3.31 Thiết lập kết nối SQL Server

• Khai báo tên và kiểu dữ liệu trong SQL Server

Hình 3.32 Khai báo tên và kiểu dữ liệu SQL Server

• Chọn Identity Specification thành ‘Yes’ để có thể update ID của thông số liên tục

Hình 3.33 Set up thuộc tính ID của SQL Server

Hình 3.34 Hàm JsonResult dùng để trả kết quả về SQL Server trong API

PLC S7-1500 OPC UA Client

3.3.1 Yêu cầu kết nối của PLC S7-1500 OPC UA Client

PLC S7-1500 OPC UA Client phải tiếp nhận được Server, hiển thị và kết nối được với Server thông qua các giao thức bảo mật Server đã cung cấp Ngoài ra, khi kết nối sau này, thông tin Server đã được lưu nên thông số cài đặt không cần phải cài đặt lại

3.3.2 Thực thi OPC UA Client trên PLC S7-1500 với Tia Portal V16

3.3.2.1 Kích hoạt tính năng OPC UA Client

• Đến “Device configuration” của CPU

• Theo đường dẫn “OPC UA > Client > General” và tích vào checkbox “Active OPC UA Client”

Hình 3.36 Kích hoạt OPC UA Client

• Chọn Licence thích hợp trong mục “Runtime licenses > OPC UA”

Hình 3.37 Chọn Licence phù hợp

3.3.2.2 Khởi tạo OPC UA Client interface [8]

Client interface cung cấp các thông tin cần thiết như ReadList, WriteList, MedthodList, cùng các thông tin để kết nối với OPC UA Server: Address URL, Security

Cấu hình thông số kết nối, Autorization và Authentication

• Theo đường dẫn “OPC UA communication > Client interfaces” và double-click và

• Cấu hình các thông tin cần thiết để thiết lập kết nối đến OPC UA Server: o Connection parameter: Phần này ta sẽ cấu hình các thông tin về OCP UA Server như “Address”, “Port”, “Path” cùng với các thông số cần thiết như

“Session timeout” và “Monitoring time”

Hình 3.39 Cấu hình các thông số Connection o Security: chế độ bảo mật khi kết nối với OPC UA Server – trong phạm vi luận văn ta sử dụng PLC SIM Advanced để mô phỏng PLC nên chỉ có thể sử dụng phương thức bảo mật “None Security” khi kết nối đến OPC

Hình 3.40 Cấu hình Security cho Client khi kết nối đến Server

Cấu hình Read Lists, Write Lists và Method Lists

• Đến Client interface đã tạo và cấu hình bên trên > Data access > Read lists/Write list hoặc Method lists, và nháy đúp vào Add new read list/Add new write list/Add new method list

Hình 3.41 Danh sách các Read lists, Write lists được sử dụng trong phạm vi luận văn

• Có hai cách để điền các biến vào các danh sách này o Truy cập Offline: bằng cách sử dụng Server interface file dưới dạng xml

Hình 3.42 Truy cập OPC UA Server theo phương thức Offline o Truy cập Online: bằng việc kết nối trực tiếp vào OPC UA Server đang hoạt động Source: Online > Online access> Nhập OPC UA server address muốn truy cập

> Find selected server > Chọn endpoint cùng với các phương thức bảo mật thích hợp

Hình 3.43 Truy cập OPC UA Server theo phương thức Online

Hình 3.44 Truy cập Server bằng hình thức online

• Kéo thả để điền các biến vào các Read lists và Write lists tương ứng đã tạo

Hình 3.45 Điền các biến cho Client interface

• Biên dịch lại chương trình để khởi tạo các Data blocks “Configuration” và “Data”

Hình 3.46 Các data block cần thiết cho chức năng OPC UA Client

3.3.3.3 Trình tự các Function block cho kết nối OPC UA Client trên PLC S7-1500

Hình 3.47 Lập trình hàm OPC UA Client

FB OPCUAClient trên bao gồm các biến vào ra như sau:

• Ngõ vào: o opcUaConnect (Boolean): Thiết lập kết nối đến OPC UA Client o opcUaDisconnect (Boolean): Ngắt kết nối đến OPC UA Client

55 o opcUaReadList (Boolean): Thực hiện đọc các Node đã được đăng kí o opcUaWriteList (Boolean): Thực hiện ghi các Node đã được đăng kí

• Ngõ ra: o opcUaConnected (Boolean): true khi thực hiện kết nối thành công o opcUaConnected (Word): Thế hiện trạng thái của kết nối

Sơ đồ tuần tự các OPC UA FB được sử dụng:

Hình 3.48 Tuần tự thực hiện thiết lập kết nối và thực hiện đọc, ghi dữ liệu

Hình 3.49 Thực hiện ngắt kết nối với OPC UA Server

Khi thao tác với các OPC AU Client FB lưu ý cần chọn Client interface đã khởi tạo:

Hình 3.50 Chọn Client interface đã tạo ở bước trên

3.3.3 Kết nối Factory Io với Tia Portal

Tôi dùng PLCSim Advanced 3.0 để làm PLC ảo kết nối với Factory IO thông qua cài đặt IP của PLCSim Advanced

Hình 3.51 Cài đặt IP kết nối PLCSim Advanced cho Factory IO

3.3.4 Mô hình Scada để mô phỏng hệ thống

Tôi dùng mô hình bồn nước có sẵn trong phần mềm Factory IO để làm dữ liệu mô phỏng gửi cho OPC UA Client trên PLC S7-1500

Hình 2.16 Mô hình dùng để mô phỏng tích hợp hệ thống

Các tính năng của hệ thống mô phỏng:

Hai chế độ làm việc Auto và Manual:

• Khi ở chế độ Auto người dùng có thể:

• Thiết lập các thông số cho bộ điều khiển PID, Setpoint mực nước mong muốn

• Start để khởi động và Stop để ngừng hệ thống

• Khi ở chế độ Manual người dùng có thể:

• Truy cập và điều khiển đến từng van bao gồm cả van nạp và van xả

• Thiết lập các thông số Alarm của mực nước

• Start để khởi động và Stop để ngừng hệ thống

KẾT QUẢ MÔ PHỎNG

OPC UA Server

OPC UA Server hoạt động ổn định, đầy đủ và đáp ứng các tính năng của giao thức OPC UA Người dùng có thể:

• Quản lí các Sessions và Subcription của Server

• Cấu hình Security cho Server

• Quản lí Certificate của Server cũng như các Client

Hình 4.1 Giao diện quản lí hoạt động của Server

Trang này cho phép người dùng quản lý tổng quan OPC UA Server bao gồm:

• Server URL ở cả tcp và htpps

• Trạng thái hoạt động của OPC UA Server

• Tổng thời gian hoạt động của OPC UA Server

Hình 4.2 Giao diện cấu hình Security cho OPC UA Server

Trang này cho phép người dùng cấu hình OPC UA Server bao gồm:

• Các chế độ Security của OPC UA Server

Hình 4.3 Server đang giám sát kết nối của Web Client và PLC S7-1500

Hình 4.4 Server đang giám sát kết nối các phần mềm Client

Hình 4.4, Server đang quản lí kết nối của các phần mềm OPC UA như Prosys OPC

UA Client (phần mềm mô phỏng Client ảo), Kepware UA Client (phần mềm OPC UA đang được dùng phổ biến hiện nay cho các dòng PLC) và MX OPCUA (phần mềm OPC

Giao diện trên cho phép người dùng quản lý các Session kết nối đến Server cùng với các Subcriptions đang có

Hình 4.5 Giao diện quản lí Certificate

Giao diện trên cho phép người dùng quản lý Certificate của Server bao gồm các chứng chỉ đã tin tưởng và các chứng chỉ bị Server từ chối.

OPC UA Client Web platform

Hệ thống các API hoạt động ổn định và đáp ứng được nhu cầu của hệ thống

Giao diện UI tường minh thân thiện dễ sử dụng và khi truy cập vào OPC UA Server được quy định sẵn thì hệ thống sẽ có thể hoạt động như một hệ scada để giám sát và thu thập dư liệu dưới định dang web

Hình 4.6 Giao diện Get endpoints và kết nối

Hình 4.7 Giao diện Browse và đọc/ghi Node

Giao diện này cho phép người dùng có thể kết nối đến bất kì OPC UA Server nào Giao diện này chứa các chức năng:

• Lấy tất cá các endpoints của OPC UA Server

• Thực hiện kết nối đến OPC UA Server – bao gồm cả Security và None security

• Thực hiện đọc, ghi đến các node của OPC UA Server

Giao diện Home của Web

Giao diện này ta có thể nhìn thấy tổng quan hệ thống cũng như điều khiển hệ thống thông qua giao diện này Ở chế độ Manual, ta có thể bật tắt các Fill valve và Discharge Ở chế độ Auto, ta có thể cài đặt các thông số Ki, Kp, Kd và Setpoint và bật bồn để chạy đúng như thông số đã cài đặt

Hình 4.8 Giao diện Home hệ Scada được xây dựng

Hình 4.9 Hiển thị dữ liệu và vẽ đồ thị

Khi người dùng truy cập đến trang trên, Front end sẽ tự đồng gọi API đến backend để subcribe các Node cần cho hệ Scada này để thiết lập giao tiếp real-time giữa backend và frontend

Hình 4.10 Truy xuất dữ liệu theo ngày tháng và xuất cáo cáo excel Đồng thời, giao diện này cho phép người dùng truy xuất dữ liệu của hệ thống theo ngày, tháng, năm

OPC UA Client PLC S7-1500

PLC S7-1500 kết nối ổn định đến Server và có thể thiết lập kết nối lại mỗi khi mất kết nối

Thực hiện trao đổi dữ liệu ổn định và đáp ứng yêu cầu của hệ thống

Hình 4.11 PLC kết nối thành công đến OPC UA Server

Hình 4.12 IP Adress của OPC UA Client trên Tia Portal

Hình 4.13 PLCSim Advanced kết nối thành công đến OPC UA Client trên Tia Portal

Hình 4.14 Factory IO đã kết nối thành công đến PLCSim Advanced và đang được điều khiển qua giao diện Web

ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN

Kết quả đạt được

• Hiểu được mô hình OPC UA Server và xây dựng được OPC UA Server sử dụng NET Standard SDK

• Nghiên cứu và triển khai thành công chức năng OPC UA Client trên PLC S7-1500

• Xây dựng được backend sử dụng ASP.NET tích hợp giao thức OPC UA và bộ API giúp giao tiếp với Server

• Xây dựng giao diện người dùng tường minh và rõ ràng

• Triển khai kết nối toàn bộ hệ thống và hệ thống hoạt động một cách ổn định

• Hệ thống Scada được tích hợp hầu hết các tính năng cơ bản của một hệ Scada truyền thống: vẽ đồ thị, cơ sở dữ liệu và xuất file excel, hỗ trợ người dùng tương tác trực tiếp với hệ thống và hiển thị trạng thái hệ thống một cách tường minh rõ ràng.

Những điều thiết sót

• Chưa tận dụng được hết các chức năng của OPC UA Server như method, các loại bảo mật

• Hệ thống Scada triển khai với mô hình dữ liệu còn khá đơn giản.

Hướng phát triển đề tài

• Triển khai với hệ thống thực tế với một hệ thống có mô hình dữ liệu phức tạp hơn

• Tối ưu OPC UA Server và thêm các tính năng giúp người dùng có thế thêm bớt node trực tiếp trên giao diện Khai thác được hết các tính năng của OPC UA Server

• Tối ưu code phía Client: bao gồm cả backend và frontend

Ngày đăng: 25/02/2024, 15:00

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w