Tải bản đầy đủ (.pdf) (67 trang)

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)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.9 MB, 67 trang )

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

KHỐ 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 q trình nghiên cứu và
hồ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 hồn thành với nhận thức của chính tác giả, khơng sao chép tồn văn của bất kỳ
cơng trình nào khác.
Trong q 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
1.1

1.2

1.3

13

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

Đặ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

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

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

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

2.2

2.3

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
3.1

45

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

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

3.2

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 q trình kiểm số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
ngồ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 tố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 ngồ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
1.1.1

Tổng quan về OPC UA
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 ngồ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 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
1.2.1

Đặc tả lịch sử và bảo mật trong OPC UA
Đặ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 tồ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 tốn mã hóa dựa trên khóa cơng khai - bí mật.
• Tính tồ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


• Tính kiểm sốt được (Auditability): Dữ liệu nhận phải được sắp xếp theo thứ tự
để hệ thống làm việc theo đúng trình tự hướng tới mục đích của người gửi.
• Tính sẵn sàng (Available): dữ liệu phải ln được sẵn sàng cho các yêu cầu kết
nối, ví dụ như tạo lập thêm một phiên kết nối với Client.
Phần tiếp theo sẽ trình bày kiến trúc bảo mật của OPC UA để hướng đến các mục
tiêu này.
Kiến trúc bảo mật OPC UA
Kiến trúc bảo mật của OPC UA là một giải pháp tổng quát, nó cho phép cài đặt với
các yêu cầu đa dạng của ứng dụng OPC UA. Tùy thuộc vào đặc điểm ứng dụng và nhu
cầu của hệ thống, giải pháp bảo mật được cài đặt ở các mức khác nhau. Kiến trúc bảo
mật của OPC UA được xây dựng ở tầng ứng dụng (Application Layer) và tầng truyền
thơng (Communication Layer), phía trên tầng giao vận (Transport Layer), được mơ tả
trong hình 1.8. Một trong những cơng việc quan trọng của Client và Server là truyền

Hình 1.8: Kiến trúc bảo mật OPC
những thông tin về cài đặt kết nối, các yêu cầu kết nối, tất cả đều được thực hiện trong
mỗi phiên được quản lý bởi tầng ứng dụng. Tầng ứng dụng đồng thời cũng quản lý các
công việc như xác thực người sử dụng và cấp phép cho người sử dụng. Bằng việc gọi
các dịch vụ phiên (Session Services - đặc tả Services), tầng ứng dụng sẽ quản lý việc
20



bảo mật thông qua việc quản lý người sử dụng của mỗi phiên làm việc.
Mỗi phiên làm việc ở tầng ứng dụng giao tiếp thông qua một kênh truyền bảo mật,
được quản lý bởi tầng truyền thông. Thông tin từ tầng ứng dụng sẽ được chuyển cho
tầng truyền thông, tại đây thông tin được xử lý nhằm đảm bảo việc giao tiếp là bảo
mật. Mỗi kênh truyền bảo mật được tạo ra cho mỗi phiên truyền thơng, tuy nhiên
nó được che giấu với người sử dụng, phiên làm việc. Kênh truyền bảo mật đảm bảo
tính bí mật và tính tồn vẹn dữ liệu thơng qua thuật tốn mã hóa, chữ kí tin nhắn
(Message Signature) và chứng thực điện tử (Digital Certificate). Các dịch vụ bảo mật
kênh truyền được cung cấp bởi Secure Channel Services.
Tầng giao vận kiểm soát việc gửi, nhận và truyền dữ liệu nhận được từ tầng truyền
thông. Tầng giao vận giúp thực hiện tính kiểm sốt được của truyền thơng.
Các phương pháp mã hóa, trao đổi khóa, các phương pháp tấn công phổ biến trong hệ
thống OPC UA được trình bày chi tiết trong [2].

1.2.2

Đặc tả lịch sử

Mơ hình cung cấp lịch sử dữ liệu
Đặc tả truy cập lịch sử OPC UA (OPC UA Historical Access) định nghĩa cách cung
cấp chuỗi dữ liệu thời gian và sự kiện lịch sử. Một OPC UA Server hỗ trợ việc truy
cập lịch sử sẽ cung cấp cho nhiều Client truy cập song song vào lịch sử dữ liệu hoặc
lịch sử sự kiện khác nhau. Hình 1.9 mơ tả cấu trúc của một OPC UA Server hỗ trợ
việc truy cập lịch sử. Bản thân một OPC UA Server có thể cung cấp dữ liệu lịch sử
từ chính nó, hoặc lấy dữ liệu lịch sử từ OPC UA Server khác, hoặc từ Server chỉ phụ
trách lưu trữ dữ liệu/lưu trữ sự kiện và điều kiện (OPC Historical Data Access/OPC
A & E Server). Client chỉ cần gửi thông tin về đối tượng cần xem lịch sử, khoảng thời
gian, Server sẽ cung cấp các thơng tin đó lại cho Client.
Các kiểu lịch sử

Lịch sử dữ liệu Các đối tượng lưu trữ giá trị (có thể là kiểu số, kiểu boolean,
kiểu String, ...) đều là các dữ liệu. OPC UA định nghĩa node lịch sử dữ liệu (HDN HistoricalDataNode) luôn luôn là một phần của một node khác trong không gian địa
chỉ. HDN không thể tự định nghĩa chính nó. Các thuộc tính của một HDN gồm:
• Giá trị (Value): giá trị của biến dữ liệu,
• Kiểu dữ liệu (DataType): kiểu dữ liệu của biến,
21


Hình 1.9: Mơ hình UPC UA Server hỗ trợ việc truy cập lịch sử
• Mức truy cập (AccessLevel): các kiểu truy cập đến biến lịch sử này cung cấp bởi
Server,
• Historizing: mỗi biến có lịch sử đều có thuộc tính này.
Mỗi HDN có một tham chiếu đến một HistoricalConfigurationType, bao gồm các thông
số cho việc lưu trữ dữ liệu lịch sử của node đó như: bước thời gian, cách gửi giá trị về
Client, khoảng thời gian nhỏ nhất, lớn nhất giữa hai lần lưu lịch sử,. . . Chi tiết được
nêu trong [3]. Hình 1.10 thể hiện cách tổ chức biến với dữ liệu lịch sử trong không gian
địa chỉ.
Lịch sử sự kiện Khác với lịch sử dữ liệu, lịch sử sự kiện (HEN - HistoricalEventNode)
gắn với một đối tượng hoặc một view. Các khái niệm cơ bản của một sự kiện gồm:
• EventNotifier: thể hiện lịch sử các sự kiện,

22


Hình 1.10: Mơ hình biến với dữ liệu lịch sử trong khơng gian địa chỉ
• SourceNode: đối tượng cung cấp thơng tin cho EventNotifier để quyết định việc
sự kiện có được sinh ra và ghi lại hay khơng,
• TargetNode: Đối tượng gắn với các sự kiện, thường là các AlarmNode.
Trong tài liệu [3] thể hiện sơ đồ mơ hình lịch sử sự kiện trong không gian địa chỉ, và
các giải thích chi tiết các thành phần của mơ hình đó.

Timestamp và HistoryStatusCode
Timestamp Trong OPC UA Historical Access, nhãn thời gian (timestamp) là một
yêu cầu rất tự nhiên để đáp ứng việc tìm kiếm lịch sử trong một khoảng thời gian.
Client gửi các nhãn thời gian và nhận lịch sử dữ liệu/lịch sử sự kiện giữa các nhãn thời
gian đó. Với từng loại lịch sử, OPC UA Server cung cấp các kiểu nhãn thời gian sau:
• HistoricalDataNode:
– Source: trả về SourceTimeStamp, dùng giá trị này để quyết định các dữ liệu
lịch sử nào được xử lý,

23


– Server: trả về ServerTimeStamp, dùng giá trị này để quyết định các dữ liệu
lịch sử nào được xử lý,
– Both: trả về cả SourceTimeStamp và ServerTimeStamp, nhưng dùng SourceTimeStamp để quyết định,
– Neither: không hỗ trợ cho thao tác HistoryRead với HDN.
• HistoricalEventNode:
– Source: trả về SourceTimeStamp, dùng giá trị này để quyết định các dữ liệu
lịch sử nào được xử lý,
– Server: không hỗ trợ HistoryRead với HEN,
– Both: không hỗ trợ HistoryRead với HEN,
– Neither: không hỗ trợ HistoryRead với HEN.
HistoryStatusCode StatusCode được sử dụng để thông báo về trạng thái đáp ứng
của dữ liệu lịch sử tương ứng với yêu cầu từ Client. Có 3 trạng thái cơ bản: Tốt (good),
không chắc chắn (uncertain) và xấu (bad) thể hiện tình trạng thực thi của Server.
Bảng 1.2 ví dụ các trạng thái tốt khi Server thực thi yêu cầu. Các trạng thái xấu và
Id Status Code

Mô tả trạng thái


Good_NoData

Không tồn tại dữ liệu hoặc sự kiện

Good_MoreData

Dữ liệu trả về lớn hơn dung lượng có thể đáp ứng

Good_EntryInserted

Dữ liệu/sự kiện được chèn xong vào lịch sử

Good_EntryReplaced

Dữ liệu/sự kiện được thay thế xong trong lịch sử

Bảng 1.2: Các đoạn mã thể hiện yêu cầu được thực thi tốt
không chắc chắn, tài liệu [3] có dẫn đầy đủ.

1.3
1.3.1

Giao thức BACnet
Kiến trúc của giao thức BACnet

BACnet (Building Automation Control network) là giao thức cho phép tích hợp nhiều
hệ thống tự động vào một ứng dụng điều khiển duy nhất, thuận tiện cho việc điều
khiển. Nó cũng cho phép người sử dụng mở rộng hoặc nâng cấp công nghệ điều khiển
24



×