ĐỊNH HƯỚNG GIẢI PHÁP VÀ CƠ SỞ
Những nhiệm vụ của đề tài
Mục đích của đề tài là thiết kế hoàn chỉnh hệ thống điều khiển các thiết bị điều hòa nhiệt độ cho tòa nhà, căn hộ thông minh theo đặc tả OPC UA Hệ thống này có chức năng giám sát và tối ưu hóa hoạt động của thiết bị đặt trong tòa nhà cũng như làm hài lòng nhu cầu của người sử dụng dựa trên việc điều chỉnh nhiệt độ và độ ẩm của môi trường phù hợp Cụ thể hơn, hệ thống được phát triển gồm các chức năng sau:
Chức năng giám sát: giám sát các thiết bị điều hòa nhiệt độ trong tòa nhà, bao gồm nhiệt độ, độ ẩm, thời gian hoạt động, điện năng tiêu thụ, trạng thái tắt mở và mức nhiệt độ, độ ẩm
Chức năng quản lý: quản lý việc bật, tắt thiết bị điều hòa nhiệt độ, thay đổi nhiệt độ, độ ẩm phù hợp với yêu cầu và nhiệt độ môi trường.
Ngoài ra, hệ thống được thiết kế theo đặc tả OPC UA dành cho các hệ thống công nghiệp lớn, đảm bảo tương thích với các hệ thống khác tương thích với OPC UA. Giao thức kết nối giữa các thiết bị được sử dụng là Modbus, đặc tả chuyên dụng cho điều khiển và tự động hóa các thiết bị công nghiệp.
Với các yêu cầu về chức năng giám sát, quản lý và các yêu cầu về đặc tả và giao thức như trên, đề tài hướng đến các kết quả như sau :
Nghiên cứu các mô hình chung về giám sát và quản lý hệ thống tòa nhà văn phòng , căn hộ thông minh trên thế giới nhằm đánh giá và đưa ra những ưu, nhược điểm của hệ thống hiện tại Bên cạnh đó, nghiên cứu về đặc tả OPC UA và giao thức Modbus cho việc đề xuất và phát triển đề tài. Đề xuất giải pháp quản lý và giám sát điều hòa nhiệt độ cho hệ thống tòa nhà văn phòng, căn hộ theo đặc tả Modbus Với kiến trúc client-server của hệ thống OPC UA, đề tài hướng đến phát triển thành công cả hệ thống client và server Trong đó OPC
Tài liệu hoá quá trình phân tích và thiết kế hệ thống giám sát thiết bị điều hòa nhiệt độ thành bài toán chung, gồm các vấn đề cần thiết cho phát triển và triển khai hệ thống, lập trình và kiểm thử.
Như vậy, kết quả của đề tài sẽ là hệ client-server, trong đó phía server theo dõi trạng thái về nhiệt độ, độ ẩm cũng như tương tác với thiết bị ngoại vi, ở đây là điều hòa nhiệt độ để thực hiện điều khiển Ở phía client, người quản lý thực hiện việc theo dõi hoạt động của hệ thống thiết bị, cũng như đưa ra quyết định về việc bật, tắt và điều chỉnh mức nhiệt độ, độ ẩm trong tòa nhà Giao diện điều khiển thực hiện qua ứng dụng dành cho phía máy khách.
1.1.2 Cách tiếp cận và phương pháp nghiên cứu
Các giải pháp quản lý và điều khiển thiết bị thông minh cho hệ thống tòa nhà đang là vấn đề được quan tâm trên khắp thế giới Do đó, khi thực hiện nghiên cứu và phát triển đề tài cần chú ý đến sự phát triển của các hệ thống lớn trên thế giới và ứng dụng thực tế của chúng tại Việt Nam Khi nghiên cứu đề tài tác giả thực hiện cách tiếp cận như sau :
Nghiên cứu các mô hình hệ thống đang tồn tại hoặc đang được phát triển trên thế giới, xem xét các bài toán đã được giải quyết, đánh giá ưu nhược điểm và áp dụng đối với hệ thống sẵn có Lựa chọn áp dụng hoặc đưa ra các cải tiến cần thiết.
Nghiên cứu các đặc tả được các tổ chức như OPC Foundation cung cấp cho việc phát triển phần mềm cho hệ thống công nghiệp lớn, giải pháp Modbus cho hệ thống nhà thông minh Việc tuân theo các đặc tả này giúp hệ thống tương thích với các hệ thống lớn đã phát triển, cũng như phát huy ưu điểm của các đặc tả đã được thế giới nghiên cứu trong thời gian dài.
Từ các nghiên cứu về các bài toán đã được giải quyết và các đặc tả, áp dụng vào vấn đề đang được nghiên cứu, cải tiến các thiếu sót của các giải pháp hiện tại, đề xuất ra mô hình hệ thống và giải pháp tối ưu cho hệ thống giám sát thiết bị điều hòa nhiệt độ.
Xây dựng hệ thống theo mô hình và giải pháp đã được đề ra nhằm đảm bảo thực hiện được các tiêu chí và mục tiêu đề tài
Thực hiện kiểm thử chức năng trên hệ thống của trường đại học Bách Khoa Hà Nội và các công ty cho phép.
Phân tích, thiết kế và triển khai thử nghiệm
Phân tích các mô hình, thông tin thu được từ kết quả khảo sát để đưa ra thiết kế thích hợp đảm bảo các yêu cầu đã đặt ra cũng như các tiêu chí của hệ thống phần mềm, dựa trên phương pháp phân tích phạm vi lĩnh vực (domain analysis) và thiết kế dựa trên phạm vi lĩnh vực (domain design), đưa ra giải pháp tổng thể cho bài toán và xây dựng hệ thống nhằm đảm bảo bảy tiêu chí như sau: đáp ứng những yêu cầu chung (generic requirements), phương pháp luận (methodology), mềm dẻo (flexibility), khả năng mở rộng (scalability), khả năng sử dụng lại (reusability), sự mở (openness) và khả năng thích ứng (adaptability).
Sản phẩm sẽ được kiểm thử và đưa ra chạy thử tại các phòng nghiên cứu và phát triển nhằm đánh ra yêu cầu, và kết quả đạt được sau khi thực hiện
1.2 Kiến trúc OPC UA và giao thức Modbus trong hệ thống công nghiệp
1.2.1 Giới thiệu và tổng quan về OPC UA
OPC UA là đặc tả mới nhất của tổ chức OPC Foundation và có thay đổi rất nhiều so với các đặc tả trước đó Phiên bản đầu tiên của UA được đưa ra vào năm 2006 Mục tiêu chính của OPC Foundation khi đưa ra đặc tả này là nhằm cung cấp việc kết nối giữa mô hình kết nối OPC UA truyền thống (COM/DCOM) sang mô hình kết nối kiến trúc hướng đối tượng (service-oriented architecture – SOA) và giới thiệu kiến trúc đa nền cho quản lý tiến trình, đồng thời cải thiện tính bảo mật và cung cấp mô hình thông tin.
Hình 1.Phân bố thành viên của OPC Foundation trên thế giới [3]
Các mục tiêu chính mà OPC UA hướng đến:
Độc lập với các platform
Bảo mật và quản lý truy cập
Mô hình chung cho mọi dữ liệu OPC
Dữ liệu và phương thức phức hợp
Mở rộng từ đơn giản đến phức tạp
Mô hình cơ sở trừu tượng
Cơ sở cho các mô hình dữ liệu chuẩn khác
Bảng 1.Các mục tiêu chính của OPC UA Để đạt được các mục tiêu trên, kiến trúc OPC UA được xây dựng trên các lớp theo biểu đồ sau :
Hình 2.Nền móng của OPC UA[1]
XÂY DỰNG KIẾN TRÚC PHẦN MỀM THEO KIẾN TRÚC OPC UA KẾT NỐI GIAO THỨC THEO CHUẨN MODBUS
Thiết kế OPC UA Server/Client
Các kiến trúc OPC UA Client mô hình hóa điểm cuối phía client của tương tác client/ server Biểu đồ sau minh họa các thành phần chính của một OPC UA Client và cách chúng tương tác với nhau.
OPC UA Client Client-Application
Requests to send service requests
Delivery of received service responses
Req Msg Rsp Msg Publ Msg Notif Msg
Requests to send publishing requests
Hình 14.Kiếntrúc OPC UA Client[2] Ứng dụng client là đoạn mã thực thi các chức năng của một Client Nó sử dụng các OPC UA Client API để gửi và nhận các yêu cầu dịch vụ OPC UA và phản hồi đếnOPC UA Server Các dịch vụ xác định cho OPC UA được mô tả trong mệnh đề 7 và
Chú ý rằng “OPC UA Client API” là các giao diện trong tách biệt phần mã ứng dụng Client khỏi OPC UA Communication Stack Trong đó OPC UA Communication Stack chuyển các phần gọi OPC UA Client API thành thông điệp và gửi chúng qua các truyền thông tầng dưới đến Server OPC UA Communication Stack cũng nhận các phản hồi và thông điệp thông báo từ các thuộc tính truyền thông và phân phối chúng đến ứng dụng Client qua OPC UA Client API
Kiến trúc OPC UA Server mô hình hóa điểm cuối Server của sự tương tác client/server Biểu đồ sau minh họa các thành phần chính của OPC UA Server và cách chúng liên hệ với nhau.
OPC UA Server OPC UA Server Application
Req Msg Rsp Msg Publ Msg Notif Msg
Hình 14.Kiến trúc OPC UA Server[2]
Các đối tượng thật là đối tượng phần mềm hoặc vật lý có thể truy cập được bởi các ứng dụng OPC UA Server hoặc được quản lý nội bộ Ví dụ bao gồm các thiết bị vật lý và bộ đếm chẩn đoán
Ứng dụng OPC UA Server
Các ứng dụng OPC UA Server là phần mã thực thi các hàm của Server Nó sử dụng các OPC UA Server API để gửi và nhận các thông điệp OPC UA từ OPC
UA Clients Chú ý rằng “OPC UA Server API” là các giao diện bên trong cách ly mã ứng dụng Server với OPC UA Communication Stack.
Không gian địa chỉ OPC UA
Các Node không gian địa chỉ
Không gian địa chỉ được mô hình hóa như tập hợp các node truy cập được bởi Clients sử dụng các dịch vụ OPC UA (giao diện hoặc phương thức) Các node trong không gian địa chỉ được sử dụng để thể hiện các đối tượng thật, các định nghĩa và tham chiếu lẫn nhau.
Tổ chức không gian địa chỉ
Chứa các chi tiết của siêu mô hình “building blocks” sử dụng để tạo một không gian địa chỉ từ các node liên kết nối Các Server được quyền tổ chức các node trong không gian địa chỉ theo cách riêng Việc sử dụng các tham chiếu giữa các node trong không gian địa chỉ cho phép tổ chức không gian địa chỉ thành các cây phân cấp Xác định các node và tham chiếu OPC UA và các tổ chức được trông đợi trong không gian địa chỉ. Một vài profiles không đòi hỏi tất cả các UA nodes được thực thi.
Views không gian địa chỉ
Các views được sử dụng để giới hạn các node mà Server cho hiển thị cho Client, do đó giới hạn cỡ của không gian địa chỉ cho các truy vấn dịch vụ gọi bởi Client View mặc định là toàn bộ không gian địa chỉ. Các servers có thể tùy chọn định nghĩa Views khác Views ẩn một vài Nodes và tham chiếu trong không gian địa chỉ Views hiển thị trên không gian địa chỉ và Clients có thể duyệt các Views để xác định cấu trúc của chúng Views thông thường được phân cấp do đó dễ hơn cho Clients để duyệt và tái hiện một cây phân cấp.
Hỗ trợ các mô hình thông tin
Không gian địa chỉ OPC UA hỗ trợ các mô hình thông tin Việc hỗ trợ này được cung cấp qua:
- Tham chiếu các Nodes cho phép các đối tượng trong không gian địa chỉ liên quan lẫn nhau.
- ObjectTypes Nodes cung cấp thông tin ngữ nghĩa cho các đối tượng thật (định nghĩa kiểu).
- ObjectTypes Nodes hỗ trợ phân lớp con của các định nghĩa kiểu.
- Các chuẩn hướng dẫn OPC UA cho phép các tập đoàn công nghiệp định nghĩa các mô hình thông tin của họ để tái hiện trên không gian địa chỉ OPC UA
Là các thực thể trên Server tạo bởi Client để giám sát các node không gian địa chỉ và các bản sao thực tế Khi chúng xác định một thay đổi dữ liệu hoặc một sự kiện hay cảnh báo chúng tạo ra một thông báo được gửi tới Client bởi Subscription.
Là một đầu cuối trong đó Server gửi các thông báo tới Clients Clients điều khiển tần suất nhận thông báo bằng cách gửi các thông điệp công bố.
Giao diện dịch vụ OPC UA
Các dịch vụ yêu cầu/phản hồi
Các dịch vụ yêu cầu/phản hồi là các dịch vụ gọi bởi Client qua giao diện dịch vụ OPC UA để thực hiện một tác vụ xác định trên một hoặc nhiều node trong không gian địa chỉ và trả lại một phản hồi.
Các dịch vụ thông báo
Các dịch vụ thông báo là các dịch vụ được gọi qua giao diện dịch vụ OPC UA mới mục đích đều đặn gửi thông báo tới Clients Các thông báo bao gồm các sự kiện, cảnh báo, thay đổi dữ liệu và đầu ra chương trình.
Tương tác liên server là các tương tác khi một Server đóng vai trò là Client của một Server khác Các tương tác Server đến Server cho phép sự phát triển của các servers.
Trao đổi thông tin ngang hàng (peer to peer) có thể bao gồm sự dư thừa hoặc các Servers cách biệt được sử dụng để quản lý các định nghĩa kiểu trên toàn hệ thống. Được mắc trong kiến trúc lớp của các Servers nhằm cung cấp :
Kết tập dữ liệu từ các Servers lớp thấp hơn
Xây dựng dữ liệu lớp cao hơn cho Clients
Các giao diện tập trung cho Clients cho các điểm đơn truy cập đến nhiều Server khác nhau.
Hình sau minh họa các tương tác giữa các Servers:
OPC Server client interface server interface
OPC Server server interface client interface
Hình 15.Tương tác ngang hàng giữa các Servers[2]
Biểu đồ sau mở rộng ví dụ trước và minh họa việc móc nối của các OPC UA Servers để truy cập dọc đến dữ liệu trong kinh doanh.
Enterprise Semantic Layer Enterprise Network
Semantic Layer Plant Floor Network
Hình 16 Ví dụ ràng buộc giữa các Server[2]
2.2 Kiến trúc của hệ thống
Hình 17.Mô hình hệ thống
Các thanh ghi Modbus và tập lệnh
Các giá trị nhiệt độ độ ẩm cùng với các hàm chức năng đọc ghi của thiết bị thể hiện trong các thanh ghi được miêu tả trong sơ đồ sau :
Bảng 11 Các thanh ghi Modbus của thiết bị và chức năng
Lập trình kết nối với thiết bị điều hòa nhiệt độ qua giao thức Modbus
Trong quá trình thực hiện đề tài tác giả có sử dụng thư viện C# Nmodbus trong việc hỗ trợ kết nối tới các thanh ghi của thiết bị Modbus Thư viện này hỗ trợ các giao thức Modbus RTU/ASCII, TCP và UDP Để phù hợp với thiết bị giả lập tác giả sử dụng chế độ truyền Modbus RTU qua RS485 là giao thức truyền với khoảng cách xa phù hợp với các thiết bị trong công nghiệp Đối với hệ thống này OPC UA Server cũng đóng vai trò như một Modbus Serial Master trong đó thư viện NModbus hỗ trợ các hàm đọc dữ liệu từ các thanh ghi như: public: virtualarray^ ReadCoils( unsigned charslaveAddress, unsigned shortstartAddress, unsigned shortnumberOfPoints
Address of device to read values from startAddress (UInt16)
Address to begin reading numberOfPoints (UInt16)
Number of coils to read
Coils status public: virtualarray^ ReadHoldingRegisters( unsigned charslaveAddress, unsigned shortstartAddress, unsigned shortnumberOfPoints
Address of device to read values from startAddress (UInt16)
Address to begin reading numberOfPoints (UInt16)
Number of holding registers to read
Holding registers status public: virtualarray^ ReadInputRegisters( unsigned charslaveAddress, unsigned shortstartAddress, unsigned shortnumberOfPoints
Address of device to read values from startAddress (UInt16)
Address to begin reading numberOfPoints (UInt16)
Number of holding registers to read
Input registers status public: virtualarray^ ReadInputs( unsigned charslaveAddress, unsigned shortstartAddress, unsigned shortnumberOfPoints
Address of device to read values from startAddress (UInt16)
Address to begin reading numberOfPoints (UInt16)
Number of discrete inputs to read
Discrete inputs status public: virtualarray^ ReadWriteMultipleRegisters( unsigned charslaveAddress, unsigned shortstartReadAddress, unsigned shortnumberOfPointsToRead, unsigned shortstartWriteAddress, array^ writeData
Address of device to read values from startReadAddress (UInt16)
Address to begin reading (Holding registers are addressed starting at 0) numberOfPointsToRead (UInt16)
Number of registers to read startWriteAddress (UInt16)
Address to begin writing (Holding registers are addressed starting at 0) writeData (array[]()[])
Register values to write public: virtualvoidWriteMultipleCoils( unsigned charslaveAddress, unsigned shortstartAddress, array^ data
Address of the device to write to startAddress (UInt16)
Address to begin writing values data (array[]()[])
Values to write public: virtualvoidWriteMultipleRegisters( unsigned charslaveAddress, unsigned shortstartAddress, array^ data
Address of the device to write to startAddress (UInt16)
Address to begin writing values data (array[]()[])
Values to write public: virtualvoidWriteSingleCoil( unsigned charslaveAddress, unsigned shortcoilAddress, boolvalue
Address of the device to write to coilAddress (UInt16)
Address to write value to value (Boolean)
Value to write public: virtualvoidWriteSingleRegister( unsigned charslaveAddress, unsigned shortregisterAddress, unsigned shortvalue
Address of the device to write to registerAddress (UInt16)
Address to write value (UInt16)
Value to write Đối với thiết bị giả lập sử dụng trong đồ án, giá trị được lưu trữ tại các thanh ghi
000H: Giá trị đo nhiệt độ bao gồm 2 bytes có giá trị như sau:
Như vậy giá trị nhiệt độ thu được sẽ được tính như sau:
Ví dụ ta thu được 2 byte là 0702H Byte đầu là 07H, byte thứ 2 là 02H vậy giá trị thu được sẽ được tính:
001H: Giá trị đo độ ẩm, bao gồm 2 bytes có giá trị như sau:
Như vậy giá trị nhiệt độ thu được sẽ được tính như sau:
Ví dụ ta thu được 2 byte là 19E1H Byte đầu là 19H, byte thứ 2 là E1H vậy giá trị thu được sẽ được tính:
002H: Giá trị đo điểm sương, bao gồm 2 bytes có giá trị như sau:
Như vậy giá trị nhiệt độ thu được sẽ được tính như sau:
Ví dụ ta thu được 2 byte là 0409H Byte đầu là 04H, byte thứ 2 là 09H vậy giá trị thu được sẽ được tính:
Minh họa một đoạn Code đọc 2 giá trị liên tiếp nhau từ thiết bị Modbus có địa chỉ SlaveAddress, địa chỉ khởi đầu StartAddress. array^ vals = gcnewarray(2); unsigned int16ary[2]; array^ data = gcnewarray(2); unsignedchar* bytes; vals = master->ReadInputRegisters(slaveAddress, startAddress, 2); ary[0]=vals[0]; ary[1]=vals[1]; bytes[0] = ary[0]; ary[0] = ary[0]>>8; bytes[1] = ary[0]; data[0] =((double)bytes[1]*256+(double)bytes[0])/100; bytes[0] = ary[1]; ary[1] = ary[1]>>8; bytes[1] = ary[1]; data[1] =((double)bytes[1]*256+(double)bytes[0])/100; returndata;
Modbus Master là một class được thiết kế dựa trên Singleton Pattern, đảm bảo việc đóng, mở cổng COM và đọc ghi dữ liệu từ các thanh ghi Chỉ có một Modbus Master được tạo ra đối với mỗi thiết bị Modbus được kết nối Modbus Master đảm bảo một đầu vào toàn cục đến các thiết bị Modbus.
#using"Modbus.dll" usingnamespaceModbus; usingnamespaceSystem; usingnamespaceSystem::IO::Ports; usingnamespaceModbus::Device; publicrefclassModbusSvr { public: staticModbusSvr^ Instance();
ModbusSvr(); // Private so that it can not be called staticModbusSvr^ m_pInstance; staticIModbusSerialMaster^ master;
Kết chương
Chương này đã chỉ ra kiến trúc của OPC UA Server và Client Các thành phần của một SDK do Unified Automation cung cấp cùng các thiết kế cho hệ thống OPC Server và OPC Client của đề tài Kết quả của chương này được dùng để triển khai thử nghiệm OPC Server/OPC Client và tích hợp với các thiết bị điều khiển.
Thêm vào đó chương này đã trình bày thiết bị phần cứng với giao thức Modbus được sử dụng trong đồ án, chi tiết về các thanh ghi và thư viện đươc sử dụng Thiết kế của ModbusMaster cũng được trình bày cung cấp kết nối từ OPC UA Server đến các thiết bị phần cứng dùng Modbus dựa trên địa chỉ thanh ghi và các hàm chức năng được cung cấp bởi nhà sản xuất, đảm bảo việc thiết lập, đóng kết nối đến các thiết bị này.
XÂY DỰNG PHẦN MỀM VÀ THỬ NGHIỆM
Mô tả mô hình thực nghiệm
Hệ thống được triển khai trên mô hình hoàn chỉnh OPC UA Server và OPC UA Client kết nối với thiết bị Modbus, ở đây là các sensors của thiết bị điều hòa nhiệt độ. Truyền thông với modbus qua RS485 và với Client qua giao thức TCP/IP.
Hình 29 Mô hình thực nghiệm
Hệ thống được thiết kế để giám sát các thiết bị điều hòa nhiệt độ trong một tòa nhà hoặc xí nghiệp Các thiết bị tầng dưới giao tiếp theo chuẩn Modbus với OPC Server, đưa ra các thông tin về nhiệt độ, độ ẩm và trạng thái của thiết bị điều hòa nhiệt độ, từ đó người giảm sát có thể ra quyết định thích hợp để điều chỉnh nhiệt độ hoặc tắt mở các thiết bị từ xa mà không cần tương tác vật lý trực tiếp với thiết bị Hệ thống có thể mở rộng với đa số các thiết bị sử dụng giao thức Modbus hiện nay.
OPC Server kết nối với thiết bị sensors của điều hòa nhiệt độ sử dụng Modbus quaRS485, chế độ truyền RTU, kết nối qua cổng COM nhờ RS485/RS232 Converter
OPC Client kết nối với server để thực hiện giám sát các thông số của thiết bị đồng thời duyệt OPC Server và gọi các phương thức cho phép trên không gian địa chỉ.
Các tiêu chí đặt ra đối với hệ thống như sau:
Chi phí phát triển đối với hệ thống được tối thiểu: Đảm bảo hệ thống tương tác với số lượng lớn thiết bị sẵn có dùng Modbus và thích hợp với nhiều môi trường khác nhau như công sở, doanh nghiệp, xưởng sản xuất…
Tiết kiệm chi phí vận hành cho hệ thống Tuy nhiên do khuôn khổ thời gian làm đồ án các chi phí điều kiện thao tác với các thiết bị phần cứng không cho phép Tác giả xin trình bày kịch bản trong khuôn khổ đồ án như sau:
Một hoặc nhiều chiếc máy tính đóng vai trò là Client kết nối đến OPC Server (trên cùng một máy tính hoặc các máy tính khác thông qua chuẩn OPC UA dựa trên SDK của Unified Automation (http://www.unified-automation.com)).
OPC Server kết nối đến thiết bị Sensor dùng Modbus của thiết bị điều hòa nhiệt độ OPC Server sử dụng các hàm chức năng để thực hiện truy vấn dữ liệu từ các sensor này để đưa ra điều kiện nhiệt độ và độ ẩm của môi trường theo chuẩn Modbus.Client được thiết kế để giám sát một hoặc nhiều thiết bị điều hòa nhiệt độ trong hệ thống sử dụng Modbus, đặt giá trị nhiệt độ, độ ẩm cũng như gọi các phương thức trênServer được OPC Server cung cấp qua các dịch vụ.
Kiến trúc mô hình thực nghiệm của đồ án
Hình 30 Kiến trúc mô hình thực nghiệm
Giới thiệu các thành phần trong hệ thống:
- Thiết bị: Thiết bị sensor sử dụng Modbus Ở đây tác giả sử dụng
Module Flex 1000 với các sensor đo nhiệt độ, độ ẩm
- SDK: SDK do Unified Automation cung cấp, hỗ trợ các chức năng cơ bản trong kết nối OPC UA Bao gồm các file thư viện uabase.lib, uapki.lib, uamodule.lib …
- OPC Server: Chương trình OPC Server do tác giả phát triển là ứng dụng dạng Console thực hiện kết nối với các thiết bị ngoại vi dùng Modbus
- OPC Client: Ứ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ị điều hòa nhiệt độ.
Thiết kế các biểu đồ của hệ thống
3.3.1 Biểu đồ phân rã chức năng
Hình 31 Phân rã chức năng OPC UA Server
Hình 32 Phân rã chức năng OPC UA Client
3.3.2 Biểu đồ luồng dữ liệu mức vật lý
Hình 33 Biểu đồ thiết lập kết nối
Đọc thông tin từ Sensor
Hình 34 Biểu đồ đọc thông tin từ Sensor
Hình 35 Biểu đồ thiết lập thông số
Hình 36 Biểu đồ ngắt kết nối
Trình tự khởi động chương trình được thể hiện như sau:
Chạy OPC Server là ứng dụng Console do tác giả phát triển, thiết bị được kết nối qua cổng COM.
Server thông báo đã mở cổng thành công:
Hình 37 Giao diện Console của OPC UA Server
Nhấn “Allow Access” cho phép Server mở cổng TCP đối với các thiết bị trong LAN
Chạy chương trình OPC Client để tiến hành giám sát:
Nhấn node “Start” để thiết lập kết nối đến OPC UA Server
Hình 39 Kết nối từ OPC UA Client – Server
Tiến hành duyệt OPC UA Server và đưa kết quả ra màn hình:
Hình 40 Giao diện giám sát của OPC UA Client
Theo dõi thông tin nhiệt độ độ ẩm:
Dùng OPC UA Server Explorer để duyệt các thông tin và các hàm chức năng của Server:
Hình 42 Duyệt không gian địa chỉ
Thực hiện gọi phương thức thiết lập giá trị nhiệt độ, độ ẩm:
Hình 43 Thiết lập thông số điều hòa nhiệt độ
Thực hiện tắt, mở điều hòa nhiệt độ:
Hình 44 Thực hiện tắt/mở thiết bị
Hình 45 Hiển thị kết quả tắt/mở
Kết thúc: Nhấn Exit để thoát khỏi chương trình
Hình 46 Kết thúc chương trình
Kết chương
Trong chương này tác giả đã trình bày kiến trúc thử nghiệm hệ thống OPC UA Server và Client kết nối với thiết bị SENSIRION FLEX 1000 cho phép giám sát, điều khiển các thiết bị điều khiển điều hòa nhiệt độ sử dụng Modbus trên kiến trúc OPC UA Từ đó có thể mở rộng phát triển hệ thống OPC UA hỗ trợ thêm nhiều thiết bị Modbus cho các hệ thống công nghiệp, không chỉ dừng lại ở thiết bị điều hòa nhiệt độ mà tiến tới mở rộng ra hệ thống các thiết bị máy móc công nghiệp hoặc điều khiển thông minh cho các căn hộ cao cấp gồm các thiết bị đa dạng khác nhau. ĐÁNH GIÁ VÀ ĐỊNH HƯỚNG PHÁT TRIỂN ĐỀ TÀI Đánh giá kết quả đạt được:
Sau một quá trình nghiên cứu và tìm hiểu, đồ án đã đề xuất ra một giải pháp cho bài toán giảm chi phí xây dựng, phát triển, vận hành, bảo trì hệ thống điều khiển thông minh cho các thiết bị tự động hóa công nghiệp.
Các kết quả cụ thể mà đồ án đạt được:
Nghiên cứu, tìm hiểu và hệ thống hóa các nội dung cơ bản về OPC UA Lợi ích của việc áp dụng mô hình này đối với phát triển phần mềm cho các hệ thống công nghiệp Hiểu được các mô hình thông tin, bảo mật và trao đổi dữ liệu của OPC UA Xây dựng thành công bộ chương trình OPC UA Server/Client đối với thiết bị Modbus Đồng thời nghiên cứu các SDK do các tổ chức trên thế giới cung cấp như OPC Foundation, OPC System.NET, OPC Connect, Unified Automation Kết quả lựa chọn SDK Unified Automation do tổ chức này cung cấp bản dùng thử SDK miễn phí, dễ download để phát triển các ứng dụng OPC UA, đồng thời hỗ trợ các chức năng đơn giản phù hợp với yêu cầu phát triển của đề tài, giá thành rẻ.
Thiết kế thành công ModbusMaster để kết nối với thiết bị Modbus chuẩn, thu thập thông tin từ các thiết bị Modbus Slaves bao gồm các thông số ghi nhận từ các Sensor và hỗ trợ các hàm điều khiển thiết bị
Phát triển thành công hệ thống OPC Server/OPC Client, liên hệ hai chuẩn OPC
UA và giao thức Modbus là giao thức rất phổ biến trong các hệ thống công nghiệp Cho phép kết nối tới bất cứ thiết bị điều hòa sử dụng Modbus nào.
Mô hình OPC Server/OPC Client kết nối tới các thiết bị Modbus thành công chứng tỏ được sức mạnh của kiến trúc OPC UA và tính tương tác được của nó đối với các hệ thống công nghiệp, có thể có tiềm năng mở rộng lớn đối với các thiết bị sử dụng giao thức Modbus nói riêng và các chuẩn công nghiệp khác nói chung. Định hướng phát triển đề tài:
Tiếp tục xây dựng và phát triển hệ thống áp dụng cho hệ thống căn hộ cao cấp và hệ thống công nghiệp ở Việt Nam.
Hoàn thành bài báo về tiếp cận xây dựng hệ thống OPC UA và Modbus
Do đây là lĩnh vực khá mới mẻ ở Việt Nam và đặc biệt cần thiết cho phát triển ngành tự động hóa công nghiệp, tác giả rất mong muốn được liên hệ với các doanh nghiệp và các tổ chức để được hỗ trợ thử nghiệm triển khai và tiếp tục phát triển đề tài này cho các hệ thống công nghiệp
Tham gia cùng các cá nhân hoặc tổ chức phát triển SDK, giúp bản thân có thể làm chủ công nghệ này trong quá trình phát triển công cụ phần mềm.
Đưa ra ứng dụng webservices và hỗ trợ các smartphone trong việc điều khiển và quản lý tòa nhà cũng như hệ thống công nghiệp Giúp giảm chi phí vận hành và bảo trì các hệ thống công nghiệp cũng như hao tổn điện năng.