Phát triển hệ thống giám sát và điều khiển dùng opc ua kết nối với thiết bị ngoại vi bacnet (bacnet buiding automation control netwwork) 273025
- 67 trang
- file .pdf
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------
NGUYỄN TRÍ DŨNG
NGUYỄN TRÍ DŨNG
CÔNG NGHỆ THÔNG TIN
PHÁT TRIỂN HỆ THỐNG GIÁM SÁT VÀ ĐIỀU KHIỂN DÙNG
OPC UA KẾT NỐI VỚI THIẾT BỊ NGOẠI VI BACNET (BACNET -
BUILDING AUTOMATION CONTROL NETWORK)
LUẬN VĂN THẠC SĨ KỸ THUẬT
CÔNG NGHỆ THÔNG TIN
KHOÁ 2012B
Hà Nội – Năm 2013
LỜI CẢM ƠN
Em xin chân thành cám ơn các Thầy cô giáo trong Viện CNTT & TT - Trường Đại
học Bách khoa Hà Nội đã tạo điều kiện thuận lợi cho em trong quá trình học tập,
nghiên cứu và thực hiện luận văn.
Đặc biệt, em gửi lời biết ơn sâu sắc đến Thầy giáo PGS.TS. Huỳnh Quyết Thắng.
Thầy đã chỉ bảo, tạo điều kiện, giúp đỡ em rất nhiều trong quá trình nghiên cứu và
hoàn thiện luận văn.
Em cũng chân thành cảm ơn chị ThS. Nguyễn Thị Thanh Tú đã cho em những ý kiến
đóng góp giá trị, động viên em trong thời gian thực hiện đề tài.
Luận văn chắc chắn sẽ có những thiếu sót, em xin chân thành cám ơn những nhận xét
của Thầy cô, các bạn để luận văn được hoàn thiện hơn.
1
LỜI CAM ĐOAN
Tôi xin cam đoan, dưới sự hướng dẫn của PGS.TS. Huỳnh Quyết Thắng, luận văn với
đề tài:
Phát triển hệ thống giám sát và điều khiển dùng OPC UA kết nối với
thiết bị ngoại vi BACnet
(BACnet - Building Automation Control network)
được hoàn thành với nhận thức của chính tác giả, không sao chép toàn văn của bất kỳ
công trình nào khác.
Trong quá trình làm luận văn, tôi kế thừa thành tựu của các nhà khoa học với sự trân
trọng và biết ơn.
2
Mục lục
1 Cơ sở lý thuyết 13
1.1 Tổng quan về OPC UA . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1.1 OPC (OLE for Process Control) . . . . . . . . . . . . . . . . . . 13
1.1.2 OPC UA (OPC Unified Architecture) . . . . . . . . . . . . . . . 16
1.2 Đặc tả lịch sử và bảo mật trong OPC UA . . . . . . . . . . . . . . . . 18
1.2.1 Đặc tả bảo mật . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2.2 Đặc tả lịch sử . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.3 Giao thức BACnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.3.1 Kiến trúc của giao thức BACnet . . . . . . . . . . . . . . . . . . 24
1.3.2 Các kiểu mạng BACnet . . . . . . . . . . . . . . . . . . . . . . 25
1.3.3 Đối tượng BACnet và dịch vụ . . . . . . . . . . . . . . . . . . . 26
2 Kiến trúc của hệ thống giám sát và điều khiển thiết bị theo đặc tả
OPC UA 30
2.1 Thiết kế hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.1.1 Kiến trúc của ứng dụng OPC UA . . . . . . . . . . . . . . . . . 30
2.1.2 Các thành phần của Server . . . . . . . . . . . . . . . . . . . . 32
2.1.3 Các thành phần của Client . . . . . . . . . . . . . . . . . . . . . 34
2.2 Giải pháp bảo mật . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.2.1 Secure channel management . . . . . . . . . . . . . . . . . . . . 35
2.2.2 Session management . . . . . . . . . . . . . . . . . . . . . . . . 37
2.2.3 Security strategy management module . . . . . . . . . . . . . . 37
2.2.4 User authorization, user authentication và application layer . . . 37
2.3 Lịch sử dữ liệu và sự kiện . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.3.1 Lịch sử sự kiện . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.3.2 Lịch sử dữ liệu trong khoảng thời gian . . . . . . . . . . . . . . 39
2.3.3 Lịch sử dữ liệu tại thời điểm chính xác . . . . . . . . . . . . . . 39
3
2.4 Kết nối với thiết bị ngoại vi BACnet . . . . . . . . . . . . . . . . . . . 40
2.4.1 Các thuộc tính và tham số . . . . . . . . . . . . . . . . . . . . . 40
2.4.2 Tìm kiếm thiết bị trong mạng . . . . . . . . . . . . . . . . . . . 41
2.4.3 Đọc và ghi giá trị . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3 Cài đặt và thử nghiệm hệ thống 45
3.1 Mô hình hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.1.1 Mô tả hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.1.2 Các mục tiêu của hệ thống . . . . . . . . . . . . . . . . . . . . . 46
3.1.3 Kiến trúc ứng dụng . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2 Xây dựng Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2.1 Giả lập thiết bị . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2.2 Xây dựng tổng thể Server . . . . . . . . . . . . . . . . . . . . . 50
3.2.3 Cài đặt lưu trữ lịch sử . . . . . . . . . . . . . . . . . . . . . . . 52
3.2.4 Cài đặt giải pháp bảo mật . . . . . . . . . . . . . . . . . . . . . 53
3.3 Ứng dụng Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.4 Thực nghiệm chương trình . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.4.1 Yêu cầu hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.4.2 Ứng dụng Server . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.4.3 Thử nghiệm bảo mật . . . . . . . . . . . . . . . . . . . . . . . . 57
3.4.4 Thử nghiệm lịch sử . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.4.5 Gọi phương thức . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4
Danh sách hình vẽ
1.1 Kiến trúc truyền thông cổ điển . . . . . . . . . . . . . . . . . . . . . . 14
1.2 Kiến trúc truyền thông trong OPC . . . . . . . . . . . . . . . . . . . . 14
1.3 Tổng quan đặc tả OPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4 Nền tảng của OPC UA . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5 Kiến trúc phân tầng OPC UA . . . . . . . . . . . . . . . . . . . . . . . 17
1.6 Kiến trúc hệ thống OPC UA . . . . . . . . . . . . . . . . . . . . . . . . 18
1.7 Môi trường bảo mật OPC UA . . . . . . . . . . . . . . . . . . . . . . . 19
1.8 Kiến trúc bảo mật OPC . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.9 Mô hình UPC UA Server hỗ trợ việc truy cập lịch sử . . . . . . . . . . 22
1.10 Mô hình biến với dữ liệu lịch sử trong không gian địa chỉ . . . . . . . . 23
1.11 Kiến trúc phân tầng của BACnet . . . . . . . . . . . . . . . . . . . . . 25
1.12 Định dạng Object_Identifier . . . . . . . . . . . . . . . . . . . . . . . . 27
1.13 Định dạng gói tin BACnet/IP . . . . . . . . . . . . . . . . . . . . . . . 29
2.1 Kiến trúc tổng quát phần mềm OPC UA . . . . . . . . . . . . . . . . . 31
2.2 Cấu trúc của stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3 Các thành phần của Prosys Java SDK . . . . . . . . . . . . . . . . . . 32
2.4 Kiến trúc OPC UA Server . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.5 Kiến trúc OPC UA Client . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.6 Mô hình bảo mật cho ứng dụng . . . . . . . . . . . . . . . . . . . . . . 36
3.1 Kiến trúc tổng thể hệ thống . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2 Kiến trúc ứng dụng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3 Kiến trúc OPC UA Server Application . . . . . . . . . . . . . . . . . . 48
3.4 Biểu đồ lớp của ObjectSimulator . . . . . . . . . . . . . . . . . . . . . 50
3.5 Biểu đồ lớp của Server . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.6 Biểu đồ lớp cho việc lưu trữ lịch sử . . . . . . . . . . . . . . . . . . . . 52
3.7 Biểu đồ lớp xây dựng bảo mật Session cho ứng dụng . . . . . . . . . . 54
5
3.8 Giao diện ứng dụng Server . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.9 Xác nhận tham số khởi động Server . . . . . . . . . . . . . . . . . . . . 57
3.10 Lỗi đăng nhập bằng chế độ Anonymous . . . . . . . . . . . . . . . . . . 57
3.11 Đăng nhập Username/Password . . . . . . . . . . . . . . . . . . . . . . 58
3.12 Lựa chọn cơ chế Encrypt Server cung cấp . . . . . . . . . . . . . . . . . 58
3.13 Xem lịch sử sự kiện . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.14 Xem lịch sử dữ liệu dạng đồ thị . . . . . . . . . . . . . . . . . . . . . . 59
3.15 Xem lịch sử dữ liệu dạng bảng . . . . . . . . . . . . . . . . . . . . . . . 60
3.16 Ngắt kết nối từ Client đến Server . . . . . . . . . . . . . . . . . . . . . 60
3.17 Truy cập lịch sử sau khi kết nối lại . . . . . . . . . . . . . . . . . . . . 61
3.18 Gọi phương thức . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6
Danh sách bảng
1 Danh mục từ viết tắt trong luận văn . . . . . . . . . . . . . . . . . . . 8
1.1 Các đặc tả OPC UA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2 Các đoạn mã thể hiện yêu cầu được thực thi tốt . . . . . . . . . . . . . 24
1.3 Các kiểu đối tượng trong chuẩn BACnet . . . . . . . . . . . . . . . . . 27
1.4 Các thuộc tính của đối tượng Binary Output . . . . . . . . . . . . . . . 28
1.5 Các thuộc tính của đối tượng Analog Output . . . . . . . . . . . . . . 28
2.1 Các kiểu lịch sử . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.2 Các tham số của mô hình lịch sử dữ liệu và sự kiện . . . . . . . . . . . 38
2.3 Các tham số của lịch sử sự kiện . . . . . . . . . . . . . . . . . . . . . . 38
2.4 Các tham số của lịch sử dữ liệu trong một khoảng thời gian . . . . . . 39
2.5 Tham số của lịch sử dữ liệu tại thời điểm chính xác . . . . . . . . . . . 40
2.6 Các tham số để truy cập thiết bị BACnet . . . . . . . . . . . . . . . . 40
2.7 Các phương thức của lớp CPort . . . . . . . . . . . . . . . . . . . . . . 41
2.8 Các phương thức của lớp CBACnetServiceReadProperty . . . . . . . . 43
2.9 Các phương thức của lớp CBACnetServiceWriteProperty . . . . . . . . 44
3.1 Các thuộc tính và phương thức của lớp ObjectSimulator . . . . . . . . 49
3.2 Các thành phần của Server . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.3 Các thuộc tính và phương thức của lớp EventHistory . . . . . . . . . . 53
3.4 Các thuộc tính và tham số của lớp ValueHistory . . . . . . . . . . . . . 53
7
Từ viết tắt Từ đầy đủ
ANSI American National Standards Institute
API Application Programming Interface
BACnet Building Automation Control network
COM Component Object Model
DCOM Distributed Component Object Model
DCS Distributed Control System
ERP Enterprise Resource Planning
GUI Graphics User Interface
HDN History Data Node
HEN History Event Node
ISO International Organization for Standardization
LAN Local Area Network
MES Manufacturing Execution System
OPC Object Linking and Embedding (OLE) for Process
Control
OPC A & E OPC Alarms and Events
OPC DA OPC Data Access
OPC HDA OPC Historical Data Access
OPC UA OPC Unified Architecture
PLC Programmable Logic Controller
PTP Point - to - Point
Bảng 1: Danh mục từ viết tắt trong luận văn
8
MỞ ĐẦU
Cơ sở khoa học và tính thực tiễn của luận văn
Thực trạng về lĩnh vực nghiên cứu
Trong những năm gần đây, nhu cầu tiết kiệm năng lượng ngày càng trở nên cấp thiết
không chỉ trên thế giới mà ngay ở cả Việt Nam. Các thiết bị tiết kiệm năng lượng,
các hệ thống nhà thông minh được phát triển. Nhu cầu kết hợp công nghệ thông tin
vào trong công nghiệp là rất cần thiết cho quá trình kiểm soát và tự động hóa các hệ
thống thiết bị. Chính vì vậy, chuẩn OPC ra đời vào đầu những năm 1990 - đây là một
chuẩn công nghiệp ứng dụng cho các hệ thống giám sát và điều khiển tự động hóa.
Sau nhiều năm phát triển, hoàn thiện, phiên bản mới nhất hiện nay là OPC Unified
Architecture (OPC UA) có tính cấu trúc và linh động cao, được nhiều nhà cung cấp
hệ thống tự động hóa sử dụng. Hiện nay, tổ chức OPC Foundation có trên 450 thành
viên, hơn 2500 nhà cung cấp với trên 15000 mẫu sản phẩm đang hoạt động trên thị
trường có sử dụng đặc tả OPC.
Tại Việt Nam, những năm gần đây đã có nhiều nhà máy đang xây dựng và đưa vào vận
hành các hệ thống tự động hóa với trang thiết bị và hệ điều hành của những thương
hiệu nổi tiếng như: Siemens AG, Rockwell Automation, ABB Inc, Advosol Inc,. . . giao
tiếp với nhau theo chuẩn OPC. Ví dụ như tại các nhà máy giấy, các nhà máy điện,. . .
Các công trình liên quan
Cùng với sự phát triển của các đặc tả OPC, số lượng và chất lượng của các nghiên
cứu trong lĩnh vực này cũng tăng nhanh. Nhóm nghiên cứu Tae-Jin Park và Seung-Ho
Hong ([11], [12]) đã đưa ra một mô hình điều khiển và đánh giá hiệu năng của hệ thống
chiếu sáng, trong đó các thiết bị kết nối với nhau bằng mạng BACnet MS/TP. Mô hình
này giúp tiết kiệm được 40% điện năng, và đảm bảo lưu lượng truyền dữ liệu luôn dưới
một ngưỡng cho phép. Nhóm tác giả Huỳnh Quyết Thắng và Nguyễn Thị Thanh Tú
([15]) xây dựng mô hình điều khiển hệ thống điều hòa nhiệt độ. Mô hình điều khiển
xây dựng theo đặc tả OPC UA kết nối với hệ thống bên ngoài theo giao thức Modbus.
Hệ thống cho phép theo dõi và điều khiển nhằm tối ưu hóa hoạt động của các điều hòa
nhiệt độ. Trong [7], Jang Chuanying, Li He và Liu Zhihong tiến hành phát triển OPC
UA Wrapper phục vụ cho việc tương tác giữa Server/Client theo chuẩn OPC (dựa trên
công nghệ COM/DCOM) với Client/Server theo chuẩn OPC UA.
9
Khi vấn đề theo dõi và điều khiển thiết bị cơ bản đã được giải quyết, các nhóm nghiên
cứu chú tâm nhiều hơn vào vấn đề bảo mật. Các tác giả Huang Renjie, Liu Feng và
Pan Dongbo ([2]) nhìn nhận vấn đề bảo mật từ hai khía cạnh: thứ nhất là khía cạnh
bảo mật trong môi trường mạng, giải pháp cho vấn đề này là OPC UA Server và OPC
UA Client sẽ được cấu hình với các firewall phù hợp, từ đó ngăn chặn được tấn công
ngoài ý muốn; thứ hai là khía cạnh truyền thông bảo mật giữa ứng dụng Client và
Server, giải pháp cho vấn đề này là sử dụng xác thực phiên và kênh truyền bảo mật.
Tuy nhiên, các tác giả dừng lại ở mức nghiên cứu lý thuyết, chưa đưa ra cài đặt thử
nghiệm cho các phương án này. Andreas Fernbach và Wolfgang Kastner ([8]) nghiên
cứu và đưa ra các cách thức cài đặt quản lý chứng thực trong các môi trường lập trình
khác nhau, đảm bảo an toàn cho xác thực phiên kết nối giữa OPC UA Client và OPC
UA Server. Annerose Braune, Stefan Hennig và Sebastian Hegler ([5]) tiến hành cài
đặt thử nghiệm, so sánh tốc độ giữa các phương thức truyền thông bảo mật dựa trên
các thuật toán mã hóa dữ liệu cho các ứng dụng OPC UA trên trình duyệt Web. Các
công trình [5],[8] đã đưa ra những kết quả rõ ràng.
Lý do lựa chọn đề tài
Với hệ thống giám sát và điều khiển thiết bị, vấn đề bảo mật là một tiêu chí vô cùng
quan trọng, bởi nó ảnh hưởng trực tiếp tới sự an toàn của thiết bị, của hệ thống và
của những con người làm việc trong những tòa nhà sử dụng hệ thống. Tuy nhiên, các
hệ thống giám sát và điều khiển trong thực tế lại chưa chú trọng đến vấn đề này. Các
công trình nghiên cứu chỉ dừng ở mức đưa ra mô hình mà chưa tiến hành thực nghiệm
đánh giá.
Vấn đề truy cập lịch sử cũng chưa được nghiên cứu một cách kĩ lưỡng. Trong các hệ
thống thật, việc mất kết nối Client - Server là điều rất dễ xảy ra, do đó nhu cầu truy
cập các thông tin lịch sử là hết sức thực tế, giúp cho việc giám sát hệ thống hiệu quả
hơn.
Giao thức BACnet đang được nhiều nhà máy tại Việt Nam sử dụng, tuy nhiên các hệ
thống này đều phải mua từ nhà cung cấp nước ngoài với chi phí cao. Các nhà máy cần
một hệ thống đảm bảo chất lượng với chi phí hợp lý hơn.
Đáp ứng các nhu cầu đó, tôi tiến hành xây dựng một hệ thống giám sát và điều khiển
kết nối với thiết bị BACnet, nhưng đặc biệt chú trọng vào hai phần: bảo mật và truy
cập lịch sử.
10
Hướng tiếp cận và các đóng góp của luận văn
Hướng tiếp cận
Hướng xây dựng luận văn có thể chia thành các bước như sau:
• Nghiên cứu các đặc tả về OPC UA, phiên bản được tổ chức OPC Foundation
đưa ra năm 2009,
• Nghiên cứu các mô hình điều khiển thực tế, các công trình nghiên cứu trước đó,
từ đó đánh giá những vấn đề đã làm được và những vấn đề chưa được nghiên
cứu kĩ lưỡng trong các ứng dụng OPC UA. Tôi nhận thấy vấn đề truy cập lịch
sử trong các ứng dụng OPC UA chưa được quan tâm, vấn đề bảo mật chưa được
cài đặt thực nghiệm trong các ứng dụng.
• Xây dựng một ứng dụng theo đặc tả OPC UA kết nối với mạng thiết bị sử dụng
giao thức BACnet, chú trọng vào phần lịch sử dữ liệu của thiết bị và bảo mật
truyền thông giữa OPC UA Server và OPC UA Client.
Các đóng góp của luận văn
Dựa trên việc nghiên cứu các tài liệu, tôi tập trung vào các phần quan trọng mà các
công trình trước đó chưa tập trung: lịch sử dữ liệu và bảo mật. Vì vậy, luận văn có
những đóng góp chính sau:
• Nghiên cứu đặc tả lịch sử (History Access) và đặc tả bảo mật (Security Model)
trong mô hình OPC UA, tìm hiểu giao thức BACnet,
• Xây dựng kiến trúc của một ứng dụng OPC UA, đưa ra giải pháp bảo mật và
lịch sử cho ứng dụng, cách kết nối ứng dụng đến thiết bị BACnet,
• Cài đặt thử nghiệm ứng dụng OPC UA Server dùng để giám sát và điều khiển
thiết bị BACnet, đáp ứng các yêu cầu bảo mật và truy cập lịch sử dữ liệu.
Bố cục luận văn
Luận văn gồm 3 chương, với nội dung của mỗi chương như sau:
Chương 1. Cơ sở lý thuyết: Tôi nhắc lại các đặc trưng cơ bản nhất về OPC, OPC
UA, các kiểu đặc tả. Sau đó, tôi tập trung vào đặc tả lịch sử và đặc tả bảo mật. Phần
cuối của chương là lý thuyết về giao thức BACnet.
11
Chương 2. Kiến trúc của hệ thống giám sát và điều khiển thiết bị theo đặc tả OPC
UA: Tiêu chí của một hệ thống được tôi nêu ra trong chương này. Các thành phần
cơ bản của một hệ thống (Server - Client) được phân tích cụ thể. Tôi đưa ra mô hình
cho việc lưu trữ lịch sử dữ liệu, giải pháp đảm bảo an toàn cho hệ thống. Vấn đề kết
nối với thiết bị ngoại vi (BACnet) cũng được tôi đề cập đến với mục tiêu áp dụng cho
những hệ thống giám sát và điều khiển trong thực tế.
Chương 3. Cài đặt và thử nghiệm hệ thống: Trong chương này, tôi xây dựng ứng dụng
Server theo phân tích trong chương 2. Ứng dụng có giao diện đồ họa (GUI - Graphics
User Interface). Sau đó, tôi tiến hành thử nghiệm vấn đề bảo mật và lịch sử của ứng
dụng. Các đánh giá và nhận xét được đưa ra ở phần cuối chương.
Cuối cùng là kết luận, định hướng tiếp theo và danh mục các tài liệu tham khảo.
12
Chương 1
Cơ sở lý thuyết
Trong chương này, tôi sẽ trình bày các kiến thức về OPC, OPC UA, nghiên cứu tập
trung vào đặc tả bảo mật và truy cập lịch sử trong OPC UA. Tôi cũng sẽ trình bày
những điểm quan trọng nhất của giao thức BACnet.
1.1 Tổng quan về OPC UA
1.1.1 OPC (OLE for Process Control)
Giới thiệu về OPC
OPC được đưa ra lần đầu vào năm 1996. Đây là một chuẩn truyền thông trong công
nghiệp cho phép các máy tính có thể kết nối với hệ thống điều khiển phân tán. OPC
là một tập hợp nhiều đặc tả dựa trên công nghệ COM/DCOM của Microsoft. Chuẩn
OPC không những phù hợp cho việc kết nối với các thiết bị trong hệ thống tự động,
mà còn cung cấp cơ chế cho các ứng ở mức cao hơn như các ứng dụng ERP, MES. Sự
khác nhau giữa các chuẩn truyền thông cổ điển với chuẩn OPC được thể hiện trong
hai hình 1.1 và 1.2 ([14]).
Dựa trên kiến trúc Client - Server, OPC Server cung cấp chuẩn giao tiếp với các
đối tượng OPC COM, mỗi OPC Client sẽ trao đổi dữ liệu cũng như điều khiển thiết
bị bằng cách thống nhất. Ứng dụng Client có thể kết nối với một hoặc nhiều Server
bởi những nhà cung cấp khác nhau.
Các đặc tả OPC
OPC là một tập hợp các đặc tả được thống nhất bởi các nhà cung cấp phần mềm và
phần cứng tự động trên toàn thế giới. Nó gồm các chuẩn về đối tượng, phương thức,
13
Hình 1.1: Kiến trúc truyền thông cổ điển
Hình 1.2: Kiến trúc truyền thông trong OPC
các yêu cầu khác nhau của các ứng dụng, cho phép trao đổi dữ liệu hiệu quả giữa thành
phần phần mềm của các nhà sản xuất khác nhau. 4 đặc tả chính của OPC là:
• OPC Data Access Specification
• OPC XML - DA Specification
• OPC Historical Data Access (HDA) Specification
• OPC Alarm and Event (A & E) and Batch
14
Tổng quan về đặc tả OPC được thể hiện trong hình 1.3, chi tiết các đặc tả này được
trình bày trong [14], [16].
Hình 1.3: Tổng quan đặc tả OPC
Các vấn đề với OPC
Kiến trúc OPC có nhiều tiện ích, song nó tồn tại một số vấn đề sau:
• OPC dựa trên công nghệ COM/DCOM của Microsoft, điều này dẫn đến vấn đề
tương thích với các hệ điều hành khác ngoài Windows. Vấn đề xác thực firewall
trong các hệ thống phân tán cũng gặp khó khăn, việc trao đổi dữ liệu với các
tầng của ứng dụng ERP, MES cũng rất phức tạp,
• XML Web Services: kích thước của tin nhắn XML yêu cầu dung lượng truyền
lớn, điều này không gây khó khăn cho các ứng dụng. Có thể sử dụng việc nén dữ
liệu nhị phân để tăng hiệu năng, tuy nhiên nó không giải quyết triệt để vấn đề.
15
Do đó, chuẩn OPC UA ra đời để đáp ứng tốt hơn yêu cầu của các ứng dụng trong hệ
thống công nghiệp thực tế. Trong phần tiếp theo tôi sẽ trình bày các đặc tả cơ bản
nhất của chuẩn này.
1.1.2 OPC UA (OPC Unified Architecture)
OPC UA (OPC Unified Architecture) là chuẩn được phát triển từ chuẩn OPC, bản
đặc tả đầu tiên về OPC UA được đưa ra năm 2006 bởi OPC Foundation. Mục tiêu
của OPC UA là để việc kết nối các thiết bị phần cứng không phụ thuộc vào nền tảng
hay công nghệ của nhà sản xuất. Các cải tiến của OPC UA so với OPC gồm: mô hình
thông tin, đa nền tảng, truy cập Internet, cơ chế bảo mật, hiệu năng cao ([14]). Nền
tảng xây dựng OPC UA được thể hiện trong hình 1.4. Chức năng cơ bản của mỗi thành
Hình 1.4: Nền tảng của OPC UA
phần:
• Transport: Xác định cơ chế tối ưu hóa cho các use case khác nhau. Phiên bản
OPC đầu tiên sử dụng giao thức nhị phân TCP để truyền thông trong mạng nội
bộ và các tiêu chuẩn XML, HTTP cho việc truyền thông trên Internet.
• Data modeling: Các quy tắc và các khối xây dựng cơ bản cần thiết để thể hiện
16
một mô hình thông tin với OPC UA. Nó là điểm bắt đầu để xây dựng một không
gian địa chỉ cho hệ thống.
• UA Services: Giao diện giữa Server và Client, sử dụng cơ chế giao vận (transport
mechanisms) để trao đổi dữ liệu giữa Server và Client.
OPC UA cho phép định nghĩa mô hình thông tin ở các tầng khác nhau của hệ thống,
từ OPC Foundation đến các tổ chức sử dụng và các nhà cung cấp (hình 1.5). Kế thừa
Hình 1.5: Kiến trúc phân tầng OPC UA
các thành công của OPC, OPC UA bao gồm các thành phần cơ bản như Data Access,
Alarm and Conditions, Historical Access, Programs specifies. Các tổ chức xây dựng
mô hình thông tin dựa trên OPC UA để đáp ứng các yêu cầu riêng của mình.
Các đặc tả OPC UA
OPC UA gồm 12 đặc tả, chia làm 2 loại chính: đặc tả thành phần lõi và đặc tả kiểu
truy cập: Trong luận văn này, tôi tập trung vào phần 2 và phần 11 của đặc tả OPC
UA (phần 1.2). Chi tiết các đặc tả được trình bày trong [1],[9].
OPC UA sử dụng kiến trúc Client - Server (hình 1.6), tuy nhiên, mỗi Server có thể là
Client của một Server khác. Hai thành phần cơ bản nhất của OPC UA là không gian
địa chỉ (Address Space) và dịch vụ (Services), dùng trong mọi hệ thống OPC UA.
• Không gian địa chỉ: là một vùng thông tin mô hình hóa các đối tượng thực được
OPC Server khai báo để cung cấp cho Client truy cập đến. Không gian địa chỉ là
tập hợp các node. Mỗi node gồm các thuộc tính và tham chiếu đến node khác.
17
Đặc tả thành phần lõi Đặc tả kiểu truy cập
Phần 1: Các khái niệm Phần 8: Truy cập dữ liệu
Phần 2: Mô hình bảo mật Phần 9: Cảnh báo và điều kiện
Phần 3: Không gian địa chỉ Phần 10: Các chương trình
Phần 4: Các dịch vụ Phần 11: Truy cập lịch sử
Phần 5: Mô hình thông tin Phần 12: Hợp nhất
Phần 6: Ánh xạ dịch vụ Phần 13: Khám phá
Phần 7: Hồ sơ
Bảng 1.1: Các đặc tả OPC UA
Hình 1.6: Kiến trúc hệ thống OPC UA
• Dịch vụ: Các thủ tục gọi từ xa được thực thi bởi UPC UA Server. Client gọi đến
Server và tương tác giữa chúng được thực hiện thông qua các dịch vụ. Mỗi dịch
vụ được ánh xạ thành thông điệp thông qua đặc tả ánh xạ dịch vụ. Hiện nay,
đặc tả ánh xạ thông điệp được cung cấp trong SDK, giúp các nhà phát triển dễ
dàng hơn trong việc xây dựng hệ thống.
1.2 Đặc tả lịch sử và bảo mật trong OPC UA
1.2.1 Đặc tả bảo mật
Môi trường bảo mật các ứng dụng OPC UA
Các ứng dụng OPC UA chạy trong ở nhiều nơi khác nhau, môi trường khác nhau.
Client, Server có thể trong cùng một mạng nội bộ, trong hai mạng nội bộ khác nhau,
hoặc trong môi trường mạng mở, điều đó dẫn đến việc quản lý người sử dụng và bản
thân ứng dụng gặp nhiều khó khăn. Hình 1.7 mô tả tổng quát một môi trường mà ứng
18
dụng OPC UA chạy trên đó. Để đảm bảo được việc điểu khiển và giữ được an toàn
Hình 1.7: Môi trường bảo mật OPC UA
cho hệ thống, ứng dụng OPC UA được thiết kế thỏa mãn các mục tiêu sau:
• Xác thực (Authentication): Tất cả các thực thể khi tham gia kết nối đều phải
cung cấp định danh, và được phép kết nối nếu định danh đó được cho phép.
• Cấp phép (Authorization): Các thao tác đọc, ghi, hoặc thực thi đều phải được
sự cho phép dựa trên các quyền hạn của ứng dụng Client và của người sử dụng.
• Tính bí mật (Confidential): Dữ liệu trao đổi phải được bảo vệ trước các hình
thức tấn công, ví dụ như hình thức nghe trộm. Dữ liệu được mã hóa bằng các
thuật toán mã hóa dựa trên khóa công khai - bí mật.
• Tính toàn vẹn (Integrity): Dữ liệu người nhận được phải đúng so với dữ liệu từ
người gửi đi.
19
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------
NGUYỄN TRÍ DŨNG
NGUYỄN TRÍ DŨNG
CÔNG NGHỆ THÔNG TIN
PHÁT TRIỂN HỆ THỐNG GIÁM SÁT VÀ ĐIỀU KHIỂN DÙNG
OPC UA KẾT NỐI VỚI THIẾT BỊ NGOẠI VI BACNET (BACNET -
BUILDING AUTOMATION CONTROL NETWORK)
LUẬN VĂN THẠC SĨ KỸ THUẬT
CÔNG NGHỆ THÔNG TIN
KHOÁ 2012B
Hà Nội – Năm 2013
LỜI CẢM ƠN
Em xin chân thành cám ơn các Thầy cô giáo trong Viện CNTT & TT - Trường Đại
học Bách khoa Hà Nội đã tạo điều kiện thuận lợi cho em trong quá trình học tập,
nghiên cứu và thực hiện luận văn.
Đặc biệt, em gửi lời biết ơn sâu sắc đến Thầy giáo PGS.TS. Huỳnh Quyết Thắng.
Thầy đã chỉ bảo, tạo điều kiện, giúp đỡ em rất nhiều trong quá trình nghiên cứu và
hoàn thiện luận văn.
Em cũng chân thành cảm ơn chị ThS. Nguyễn Thị Thanh Tú đã cho em những ý kiến
đóng góp giá trị, động viên em trong thời gian thực hiện đề tài.
Luận văn chắc chắn sẽ có những thiếu sót, em xin chân thành cám ơn những nhận xét
của Thầy cô, các bạn để luận văn được hoàn thiện hơn.
1
LỜI CAM ĐOAN
Tôi xin cam đoan, dưới sự hướng dẫn của PGS.TS. Huỳnh Quyết Thắng, luận văn với
đề tài:
Phát triển hệ thống giám sát và điều khiển dùng OPC UA kết nối với
thiết bị ngoại vi BACnet
(BACnet - Building Automation Control network)
được hoàn thành với nhận thức của chính tác giả, không sao chép toàn văn của bất kỳ
công trình nào khác.
Trong quá trình làm luận văn, tôi kế thừa thành tựu của các nhà khoa học với sự trân
trọng và biết ơn.
2
Mục lục
1 Cơ sở lý thuyết 13
1.1 Tổng quan về OPC UA . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1.1 OPC (OLE for Process Control) . . . . . . . . . . . . . . . . . . 13
1.1.2 OPC UA (OPC Unified Architecture) . . . . . . . . . . . . . . . 16
1.2 Đặc tả lịch sử và bảo mật trong OPC UA . . . . . . . . . . . . . . . . 18
1.2.1 Đặc tả bảo mật . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2.2 Đặc tả lịch sử . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.3 Giao thức BACnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.3.1 Kiến trúc của giao thức BACnet . . . . . . . . . . . . . . . . . . 24
1.3.2 Các kiểu mạng BACnet . . . . . . . . . . . . . . . . . . . . . . 25
1.3.3 Đối tượng BACnet và dịch vụ . . . . . . . . . . . . . . . . . . . 26
2 Kiến trúc của hệ thống giám sát và điều khiển thiết bị theo đặc tả
OPC UA 30
2.1 Thiết kế hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.1.1 Kiến trúc của ứng dụng OPC UA . . . . . . . . . . . . . . . . . 30
2.1.2 Các thành phần của Server . . . . . . . . . . . . . . . . . . . . 32
2.1.3 Các thành phần của Client . . . . . . . . . . . . . . . . . . . . . 34
2.2 Giải pháp bảo mật . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.2.1 Secure channel management . . . . . . . . . . . . . . . . . . . . 35
2.2.2 Session management . . . . . . . . . . . . . . . . . . . . . . . . 37
2.2.3 Security strategy management module . . . . . . . . . . . . . . 37
2.2.4 User authorization, user authentication và application layer . . . 37
2.3 Lịch sử dữ liệu và sự kiện . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.3.1 Lịch sử sự kiện . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.3.2 Lịch sử dữ liệu trong khoảng thời gian . . . . . . . . . . . . . . 39
2.3.3 Lịch sử dữ liệu tại thời điểm chính xác . . . . . . . . . . . . . . 39
3
2.4 Kết nối với thiết bị ngoại vi BACnet . . . . . . . . . . . . . . . . . . . 40
2.4.1 Các thuộc tính và tham số . . . . . . . . . . . . . . . . . . . . . 40
2.4.2 Tìm kiếm thiết bị trong mạng . . . . . . . . . . . . . . . . . . . 41
2.4.3 Đọc và ghi giá trị . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3 Cài đặt và thử nghiệm hệ thống 45
3.1 Mô hình hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.1.1 Mô tả hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.1.2 Các mục tiêu của hệ thống . . . . . . . . . . . . . . . . . . . . . 46
3.1.3 Kiến trúc ứng dụng . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2 Xây dựng Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2.1 Giả lập thiết bị . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2.2 Xây dựng tổng thể Server . . . . . . . . . . . . . . . . . . . . . 50
3.2.3 Cài đặt lưu trữ lịch sử . . . . . . . . . . . . . . . . . . . . . . . 52
3.2.4 Cài đặt giải pháp bảo mật . . . . . . . . . . . . . . . . . . . . . 53
3.3 Ứng dụng Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.4 Thực nghiệm chương trình . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.4.1 Yêu cầu hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.4.2 Ứng dụng Server . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.4.3 Thử nghiệm bảo mật . . . . . . . . . . . . . . . . . . . . . . . . 57
3.4.4 Thử nghiệm lịch sử . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.4.5 Gọi phương thức . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4
Danh sách hình vẽ
1.1 Kiến trúc truyền thông cổ điển . . . . . . . . . . . . . . . . . . . . . . 14
1.2 Kiến trúc truyền thông trong OPC . . . . . . . . . . . . . . . . . . . . 14
1.3 Tổng quan đặc tả OPC . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4 Nền tảng của OPC UA . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5 Kiến trúc phân tầng OPC UA . . . . . . . . . . . . . . . . . . . . . . . 17
1.6 Kiến trúc hệ thống OPC UA . . . . . . . . . . . . . . . . . . . . . . . . 18
1.7 Môi trường bảo mật OPC UA . . . . . . . . . . . . . . . . . . . . . . . 19
1.8 Kiến trúc bảo mật OPC . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.9 Mô hình UPC UA Server hỗ trợ việc truy cập lịch sử . . . . . . . . . . 22
1.10 Mô hình biến với dữ liệu lịch sử trong không gian địa chỉ . . . . . . . . 23
1.11 Kiến trúc phân tầng của BACnet . . . . . . . . . . . . . . . . . . . . . 25
1.12 Định dạng Object_Identifier . . . . . . . . . . . . . . . . . . . . . . . . 27
1.13 Định dạng gói tin BACnet/IP . . . . . . . . . . . . . . . . . . . . . . . 29
2.1 Kiến trúc tổng quát phần mềm OPC UA . . . . . . . . . . . . . . . . . 31
2.2 Cấu trúc của stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3 Các thành phần của Prosys Java SDK . . . . . . . . . . . . . . . . . . 32
2.4 Kiến trúc OPC UA Server . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.5 Kiến trúc OPC UA Client . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.6 Mô hình bảo mật cho ứng dụng . . . . . . . . . . . . . . . . . . . . . . 36
3.1 Kiến trúc tổng thể hệ thống . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2 Kiến trúc ứng dụng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3 Kiến trúc OPC UA Server Application . . . . . . . . . . . . . . . . . . 48
3.4 Biểu đồ lớp của ObjectSimulator . . . . . . . . . . . . . . . . . . . . . 50
3.5 Biểu đồ lớp của Server . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.6 Biểu đồ lớp cho việc lưu trữ lịch sử . . . . . . . . . . . . . . . . . . . . 52
3.7 Biểu đồ lớp xây dựng bảo mật Session cho ứng dụng . . . . . . . . . . 54
5
3.8 Giao diện ứng dụng Server . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.9 Xác nhận tham số khởi động Server . . . . . . . . . . . . . . . . . . . . 57
3.10 Lỗi đăng nhập bằng chế độ Anonymous . . . . . . . . . . . . . . . . . . 57
3.11 Đăng nhập Username/Password . . . . . . . . . . . . . . . . . . . . . . 58
3.12 Lựa chọn cơ chế Encrypt Server cung cấp . . . . . . . . . . . . . . . . . 58
3.13 Xem lịch sử sự kiện . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.14 Xem lịch sử dữ liệu dạng đồ thị . . . . . . . . . . . . . . . . . . . . . . 59
3.15 Xem lịch sử dữ liệu dạng bảng . . . . . . . . . . . . . . . . . . . . . . . 60
3.16 Ngắt kết nối từ Client đến Server . . . . . . . . . . . . . . . . . . . . . 60
3.17 Truy cập lịch sử sau khi kết nối lại . . . . . . . . . . . . . . . . . . . . 61
3.18 Gọi phương thức . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6
Danh sách bảng
1 Danh mục từ viết tắt trong luận văn . . . . . . . . . . . . . . . . . . . 8
1.1 Các đặc tả OPC UA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2 Các đoạn mã thể hiện yêu cầu được thực thi tốt . . . . . . . . . . . . . 24
1.3 Các kiểu đối tượng trong chuẩn BACnet . . . . . . . . . . . . . . . . . 27
1.4 Các thuộc tính của đối tượng Binary Output . . . . . . . . . . . . . . . 28
1.5 Các thuộc tính của đối tượng Analog Output . . . . . . . . . . . . . . 28
2.1 Các kiểu lịch sử . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.2 Các tham số của mô hình lịch sử dữ liệu và sự kiện . . . . . . . . . . . 38
2.3 Các tham số của lịch sử sự kiện . . . . . . . . . . . . . . . . . . . . . . 38
2.4 Các tham số của lịch sử dữ liệu trong một khoảng thời gian . . . . . . 39
2.5 Tham số của lịch sử dữ liệu tại thời điểm chính xác . . . . . . . . . . . 40
2.6 Các tham số để truy cập thiết bị BACnet . . . . . . . . . . . . . . . . 40
2.7 Các phương thức của lớp CPort . . . . . . . . . . . . . . . . . . . . . . 41
2.8 Các phương thức của lớp CBACnetServiceReadProperty . . . . . . . . 43
2.9 Các phương thức của lớp CBACnetServiceWriteProperty . . . . . . . . 44
3.1 Các thuộc tính và phương thức của lớp ObjectSimulator . . . . . . . . 49
3.2 Các thành phần của Server . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.3 Các thuộc tính và phương thức của lớp EventHistory . . . . . . . . . . 53
3.4 Các thuộc tính và tham số của lớp ValueHistory . . . . . . . . . . . . . 53
7
Từ viết tắt Từ đầy đủ
ANSI American National Standards Institute
API Application Programming Interface
BACnet Building Automation Control network
COM Component Object Model
DCOM Distributed Component Object Model
DCS Distributed Control System
ERP Enterprise Resource Planning
GUI Graphics User Interface
HDN History Data Node
HEN History Event Node
ISO International Organization for Standardization
LAN Local Area Network
MES Manufacturing Execution System
OPC Object Linking and Embedding (OLE) for Process
Control
OPC A & E OPC Alarms and Events
OPC DA OPC Data Access
OPC HDA OPC Historical Data Access
OPC UA OPC Unified Architecture
PLC Programmable Logic Controller
PTP Point - to - Point
Bảng 1: Danh mục từ viết tắt trong luận văn
8
MỞ ĐẦU
Cơ sở khoa học và tính thực tiễn của luận văn
Thực trạng về lĩnh vực nghiên cứu
Trong những năm gần đây, nhu cầu tiết kiệm năng lượng ngày càng trở nên cấp thiết
không chỉ trên thế giới mà ngay ở cả Việt Nam. Các thiết bị tiết kiệm năng lượng,
các hệ thống nhà thông minh được phát triển. Nhu cầu kết hợp công nghệ thông tin
vào trong công nghiệp là rất cần thiết cho quá trình kiểm soát và tự động hóa các hệ
thống thiết bị. Chính vì vậy, chuẩn OPC ra đời vào đầu những năm 1990 - đây là một
chuẩn công nghiệp ứng dụng cho các hệ thống giám sát và điều khiển tự động hóa.
Sau nhiều năm phát triển, hoàn thiện, phiên bản mới nhất hiện nay là OPC Unified
Architecture (OPC UA) có tính cấu trúc và linh động cao, được nhiều nhà cung cấp
hệ thống tự động hóa sử dụng. Hiện nay, tổ chức OPC Foundation có trên 450 thành
viên, hơn 2500 nhà cung cấp với trên 15000 mẫu sản phẩm đang hoạt động trên thị
trường có sử dụng đặc tả OPC.
Tại Việt Nam, những năm gần đây đã có nhiều nhà máy đang xây dựng và đưa vào vận
hành các hệ thống tự động hóa với trang thiết bị và hệ điều hành của những thương
hiệu nổi tiếng như: Siemens AG, Rockwell Automation, ABB Inc, Advosol Inc,. . . giao
tiếp với nhau theo chuẩn OPC. Ví dụ như tại các nhà máy giấy, các nhà máy điện,. . .
Các công trình liên quan
Cùng với sự phát triển của các đặc tả OPC, số lượng và chất lượng của các nghiên
cứu trong lĩnh vực này cũng tăng nhanh. Nhóm nghiên cứu Tae-Jin Park và Seung-Ho
Hong ([11], [12]) đã đưa ra một mô hình điều khiển và đánh giá hiệu năng của hệ thống
chiếu sáng, trong đó các thiết bị kết nối với nhau bằng mạng BACnet MS/TP. Mô hình
này giúp tiết kiệm được 40% điện năng, và đảm bảo lưu lượng truyền dữ liệu luôn dưới
một ngưỡng cho phép. Nhóm tác giả Huỳnh Quyết Thắng và Nguyễn Thị Thanh Tú
([15]) xây dựng mô hình điều khiển hệ thống điều hòa nhiệt độ. Mô hình điều khiển
xây dựng theo đặc tả OPC UA kết nối với hệ thống bên ngoài theo giao thức Modbus.
Hệ thống cho phép theo dõi và điều khiển nhằm tối ưu hóa hoạt động của các điều hòa
nhiệt độ. Trong [7], Jang Chuanying, Li He và Liu Zhihong tiến hành phát triển OPC
UA Wrapper phục vụ cho việc tương tác giữa Server/Client theo chuẩn OPC (dựa trên
công nghệ COM/DCOM) với Client/Server theo chuẩn OPC UA.
9
Khi vấn đề theo dõi và điều khiển thiết bị cơ bản đã được giải quyết, các nhóm nghiên
cứu chú tâm nhiều hơn vào vấn đề bảo mật. Các tác giả Huang Renjie, Liu Feng và
Pan Dongbo ([2]) nhìn nhận vấn đề bảo mật từ hai khía cạnh: thứ nhất là khía cạnh
bảo mật trong môi trường mạng, giải pháp cho vấn đề này là OPC UA Server và OPC
UA Client sẽ được cấu hình với các firewall phù hợp, từ đó ngăn chặn được tấn công
ngoài ý muốn; thứ hai là khía cạnh truyền thông bảo mật giữa ứng dụng Client và
Server, giải pháp cho vấn đề này là sử dụng xác thực phiên và kênh truyền bảo mật.
Tuy nhiên, các tác giả dừng lại ở mức nghiên cứu lý thuyết, chưa đưa ra cài đặt thử
nghiệm cho các phương án này. Andreas Fernbach và Wolfgang Kastner ([8]) nghiên
cứu và đưa ra các cách thức cài đặt quản lý chứng thực trong các môi trường lập trình
khác nhau, đảm bảo an toàn cho xác thực phiên kết nối giữa OPC UA Client và OPC
UA Server. Annerose Braune, Stefan Hennig và Sebastian Hegler ([5]) tiến hành cài
đặt thử nghiệm, so sánh tốc độ giữa các phương thức truyền thông bảo mật dựa trên
các thuật toán mã hóa dữ liệu cho các ứng dụng OPC UA trên trình duyệt Web. Các
công trình [5],[8] đã đưa ra những kết quả rõ ràng.
Lý do lựa chọn đề tài
Với hệ thống giám sát và điều khiển thiết bị, vấn đề bảo mật là một tiêu chí vô cùng
quan trọng, bởi nó ảnh hưởng trực tiếp tới sự an toàn của thiết bị, của hệ thống và
của những con người làm việc trong những tòa nhà sử dụng hệ thống. Tuy nhiên, các
hệ thống giám sát và điều khiển trong thực tế lại chưa chú trọng đến vấn đề này. Các
công trình nghiên cứu chỉ dừng ở mức đưa ra mô hình mà chưa tiến hành thực nghiệm
đánh giá.
Vấn đề truy cập lịch sử cũng chưa được nghiên cứu một cách kĩ lưỡng. Trong các hệ
thống thật, việc mất kết nối Client - Server là điều rất dễ xảy ra, do đó nhu cầu truy
cập các thông tin lịch sử là hết sức thực tế, giúp cho việc giám sát hệ thống hiệu quả
hơn.
Giao thức BACnet đang được nhiều nhà máy tại Việt Nam sử dụng, tuy nhiên các hệ
thống này đều phải mua từ nhà cung cấp nước ngoài với chi phí cao. Các nhà máy cần
một hệ thống đảm bảo chất lượng với chi phí hợp lý hơn.
Đáp ứng các nhu cầu đó, tôi tiến hành xây dựng một hệ thống giám sát và điều khiển
kết nối với thiết bị BACnet, nhưng đặc biệt chú trọng vào hai phần: bảo mật và truy
cập lịch sử.
10
Hướng tiếp cận và các đóng góp của luận văn
Hướng tiếp cận
Hướng xây dựng luận văn có thể chia thành các bước như sau:
• Nghiên cứu các đặc tả về OPC UA, phiên bản được tổ chức OPC Foundation
đưa ra năm 2009,
• Nghiên cứu các mô hình điều khiển thực tế, các công trình nghiên cứu trước đó,
từ đó đánh giá những vấn đề đã làm được và những vấn đề chưa được nghiên
cứu kĩ lưỡng trong các ứng dụng OPC UA. Tôi nhận thấy vấn đề truy cập lịch
sử trong các ứng dụng OPC UA chưa được quan tâm, vấn đề bảo mật chưa được
cài đặt thực nghiệm trong các ứng dụng.
• Xây dựng một ứng dụng theo đặc tả OPC UA kết nối với mạng thiết bị sử dụng
giao thức BACnet, chú trọng vào phần lịch sử dữ liệu của thiết bị và bảo mật
truyền thông giữa OPC UA Server và OPC UA Client.
Các đóng góp của luận văn
Dựa trên việc nghiên cứu các tài liệu, tôi tập trung vào các phần quan trọng mà các
công trình trước đó chưa tập trung: lịch sử dữ liệu và bảo mật. Vì vậy, luận văn có
những đóng góp chính sau:
• Nghiên cứu đặc tả lịch sử (History Access) và đặc tả bảo mật (Security Model)
trong mô hình OPC UA, tìm hiểu giao thức BACnet,
• Xây dựng kiến trúc của một ứng dụng OPC UA, đưa ra giải pháp bảo mật và
lịch sử cho ứng dụng, cách kết nối ứng dụng đến thiết bị BACnet,
• Cài đặt thử nghiệm ứng dụng OPC UA Server dùng để giám sát và điều khiển
thiết bị BACnet, đáp ứng các yêu cầu bảo mật và truy cập lịch sử dữ liệu.
Bố cục luận văn
Luận văn gồm 3 chương, với nội dung của mỗi chương như sau:
Chương 1. Cơ sở lý thuyết: Tôi nhắc lại các đặc trưng cơ bản nhất về OPC, OPC
UA, các kiểu đặc tả. Sau đó, tôi tập trung vào đặc tả lịch sử và đặc tả bảo mật. Phần
cuối của chương là lý thuyết về giao thức BACnet.
11
Chương 2. Kiến trúc của hệ thống giám sát và điều khiển thiết bị theo đặc tả OPC
UA: Tiêu chí của một hệ thống được tôi nêu ra trong chương này. Các thành phần
cơ bản của một hệ thống (Server - Client) được phân tích cụ thể. Tôi đưa ra mô hình
cho việc lưu trữ lịch sử dữ liệu, giải pháp đảm bảo an toàn cho hệ thống. Vấn đề kết
nối với thiết bị ngoại vi (BACnet) cũng được tôi đề cập đến với mục tiêu áp dụng cho
những hệ thống giám sát và điều khiển trong thực tế.
Chương 3. Cài đặt và thử nghiệm hệ thống: Trong chương này, tôi xây dựng ứng dụng
Server theo phân tích trong chương 2. Ứng dụng có giao diện đồ họa (GUI - Graphics
User Interface). Sau đó, tôi tiến hành thử nghiệm vấn đề bảo mật và lịch sử của ứng
dụng. Các đánh giá và nhận xét được đưa ra ở phần cuối chương.
Cuối cùng là kết luận, định hướng tiếp theo và danh mục các tài liệu tham khảo.
12
Chương 1
Cơ sở lý thuyết
Trong chương này, tôi sẽ trình bày các kiến thức về OPC, OPC UA, nghiên cứu tập
trung vào đặc tả bảo mật và truy cập lịch sử trong OPC UA. Tôi cũng sẽ trình bày
những điểm quan trọng nhất của giao thức BACnet.
1.1 Tổng quan về OPC UA
1.1.1 OPC (OLE for Process Control)
Giới thiệu về OPC
OPC được đưa ra lần đầu vào năm 1996. Đây là một chuẩn truyền thông trong công
nghiệp cho phép các máy tính có thể kết nối với hệ thống điều khiển phân tán. OPC
là một tập hợp nhiều đặc tả dựa trên công nghệ COM/DCOM của Microsoft. Chuẩn
OPC không những phù hợp cho việc kết nối với các thiết bị trong hệ thống tự động,
mà còn cung cấp cơ chế cho các ứng ở mức cao hơn như các ứng dụng ERP, MES. Sự
khác nhau giữa các chuẩn truyền thông cổ điển với chuẩn OPC được thể hiện trong
hai hình 1.1 và 1.2 ([14]).
Dựa trên kiến trúc Client - Server, OPC Server cung cấp chuẩn giao tiếp với các
đối tượng OPC COM, mỗi OPC Client sẽ trao đổi dữ liệu cũng như điều khiển thiết
bị bằng cách thống nhất. Ứng dụng Client có thể kết nối với một hoặc nhiều Server
bởi những nhà cung cấp khác nhau.
Các đặc tả OPC
OPC là một tập hợp các đặc tả được thống nhất bởi các nhà cung cấp phần mềm và
phần cứng tự động trên toàn thế giới. Nó gồm các chuẩn về đối tượng, phương thức,
13
Hình 1.1: Kiến trúc truyền thông cổ điển
Hình 1.2: Kiến trúc truyền thông trong OPC
các yêu cầu khác nhau của các ứng dụng, cho phép trao đổi dữ liệu hiệu quả giữa thành
phần phần mềm của các nhà sản xuất khác nhau. 4 đặc tả chính của OPC là:
• OPC Data Access Specification
• OPC XML - DA Specification
• OPC Historical Data Access (HDA) Specification
• OPC Alarm and Event (A & E) and Batch
14
Tổng quan về đặc tả OPC được thể hiện trong hình 1.3, chi tiết các đặc tả này được
trình bày trong [14], [16].
Hình 1.3: Tổng quan đặc tả OPC
Các vấn đề với OPC
Kiến trúc OPC có nhiều tiện ích, song nó tồn tại một số vấn đề sau:
• OPC dựa trên công nghệ COM/DCOM của Microsoft, điều này dẫn đến vấn đề
tương thích với các hệ điều hành khác ngoài Windows. Vấn đề xác thực firewall
trong các hệ thống phân tán cũng gặp khó khăn, việc trao đổi dữ liệu với các
tầng của ứng dụng ERP, MES cũng rất phức tạp,
• XML Web Services: kích thước của tin nhắn XML yêu cầu dung lượng truyền
lớn, điều này không gây khó khăn cho các ứng dụng. Có thể sử dụng việc nén dữ
liệu nhị phân để tăng hiệu năng, tuy nhiên nó không giải quyết triệt để vấn đề.
15
Do đó, chuẩn OPC UA ra đời để đáp ứng tốt hơn yêu cầu của các ứng dụng trong hệ
thống công nghiệp thực tế. Trong phần tiếp theo tôi sẽ trình bày các đặc tả cơ bản
nhất của chuẩn này.
1.1.2 OPC UA (OPC Unified Architecture)
OPC UA (OPC Unified Architecture) là chuẩn được phát triển từ chuẩn OPC, bản
đặc tả đầu tiên về OPC UA được đưa ra năm 2006 bởi OPC Foundation. Mục tiêu
của OPC UA là để việc kết nối các thiết bị phần cứng không phụ thuộc vào nền tảng
hay công nghệ của nhà sản xuất. Các cải tiến của OPC UA so với OPC gồm: mô hình
thông tin, đa nền tảng, truy cập Internet, cơ chế bảo mật, hiệu năng cao ([14]). Nền
tảng xây dựng OPC UA được thể hiện trong hình 1.4. Chức năng cơ bản của mỗi thành
Hình 1.4: Nền tảng của OPC UA
phần:
• Transport: Xác định cơ chế tối ưu hóa cho các use case khác nhau. Phiên bản
OPC đầu tiên sử dụng giao thức nhị phân TCP để truyền thông trong mạng nội
bộ và các tiêu chuẩn XML, HTTP cho việc truyền thông trên Internet.
• Data modeling: Các quy tắc và các khối xây dựng cơ bản cần thiết để thể hiện
16
một mô hình thông tin với OPC UA. Nó là điểm bắt đầu để xây dựng một không
gian địa chỉ cho hệ thống.
• UA Services: Giao diện giữa Server và Client, sử dụng cơ chế giao vận (transport
mechanisms) để trao đổi dữ liệu giữa Server và Client.
OPC UA cho phép định nghĩa mô hình thông tin ở các tầng khác nhau của hệ thống,
từ OPC Foundation đến các tổ chức sử dụng và các nhà cung cấp (hình 1.5). Kế thừa
Hình 1.5: Kiến trúc phân tầng OPC UA
các thành công của OPC, OPC UA bao gồm các thành phần cơ bản như Data Access,
Alarm and Conditions, Historical Access, Programs specifies. Các tổ chức xây dựng
mô hình thông tin dựa trên OPC UA để đáp ứng các yêu cầu riêng của mình.
Các đặc tả OPC UA
OPC UA gồm 12 đặc tả, chia làm 2 loại chính: đặc tả thành phần lõi và đặc tả kiểu
truy cập: Trong luận văn này, tôi tập trung vào phần 2 và phần 11 của đặc tả OPC
UA (phần 1.2). Chi tiết các đặc tả được trình bày trong [1],[9].
OPC UA sử dụng kiến trúc Client - Server (hình 1.6), tuy nhiên, mỗi Server có thể là
Client của một Server khác. Hai thành phần cơ bản nhất của OPC UA là không gian
địa chỉ (Address Space) và dịch vụ (Services), dùng trong mọi hệ thống OPC UA.
• Không gian địa chỉ: là một vùng thông tin mô hình hóa các đối tượng thực được
OPC Server khai báo để cung cấp cho Client truy cập đến. Không gian địa chỉ là
tập hợp các node. Mỗi node gồm các thuộc tính và tham chiếu đến node khác.
17
Đặc tả thành phần lõi Đặc tả kiểu truy cập
Phần 1: Các khái niệm Phần 8: Truy cập dữ liệu
Phần 2: Mô hình bảo mật Phần 9: Cảnh báo và điều kiện
Phần 3: Không gian địa chỉ Phần 10: Các chương trình
Phần 4: Các dịch vụ Phần 11: Truy cập lịch sử
Phần 5: Mô hình thông tin Phần 12: Hợp nhất
Phần 6: Ánh xạ dịch vụ Phần 13: Khám phá
Phần 7: Hồ sơ
Bảng 1.1: Các đặc tả OPC UA
Hình 1.6: Kiến trúc hệ thống OPC UA
• Dịch vụ: Các thủ tục gọi từ xa được thực thi bởi UPC UA Server. Client gọi đến
Server và tương tác giữa chúng được thực hiện thông qua các dịch vụ. Mỗi dịch
vụ được ánh xạ thành thông điệp thông qua đặc tả ánh xạ dịch vụ. Hiện nay,
đặc tả ánh xạ thông điệp được cung cấp trong SDK, giúp các nhà phát triển dễ
dàng hơn trong việc xây dựng hệ thống.
1.2 Đặc tả lịch sử và bảo mật trong OPC UA
1.2.1 Đặc tả bảo mật
Môi trường bảo mật các ứng dụng OPC UA
Các ứng dụng OPC UA chạy trong ở nhiều nơi khác nhau, môi trường khác nhau.
Client, Server có thể trong cùng một mạng nội bộ, trong hai mạng nội bộ khác nhau,
hoặc trong môi trường mạng mở, điều đó dẫn đến việc quản lý người sử dụng và bản
thân ứng dụng gặp nhiều khó khăn. Hình 1.7 mô tả tổng quát một môi trường mà ứng
18
dụng OPC UA chạy trên đó. Để đảm bảo được việc điểu khiển và giữ được an toàn
Hình 1.7: Môi trường bảo mật OPC UA
cho hệ thống, ứng dụng OPC UA được thiết kế thỏa mãn các mục tiêu sau:
• Xác thực (Authentication): Tất cả các thực thể khi tham gia kết nối đều phải
cung cấp định danh, và được phép kết nối nếu định danh đó được cho phép.
• Cấp phép (Authorization): Các thao tác đọc, ghi, hoặc thực thi đều phải được
sự cho phép dựa trên các quyền hạn của ứng dụng Client và của người sử dụng.
• Tính bí mật (Confidential): Dữ liệu trao đổi phải được bảo vệ trước các hình
thức tấn công, ví dụ như hình thức nghe trộm. Dữ liệu được mã hóa bằng các
thuật toán mã hóa dựa trên khóa công khai - bí mật.
• Tính toàn vẹn (Integrity): Dữ liệu người nhận được phải đúng so với dữ liệu từ
người gửi đi.
19