You are on page 1of 98

TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.

HỒ CHÍ MINH

KHOA ĐIỆN – ĐIỆN TỬ


BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG

LÊ THÀNH LONG

LUẬN VĂN TỐT NGHIỆP

NGHIÊN CỨU VÀ PHÁT TRIỂN ỨNG DỤNG CHO


HỆ THỐNG QUAN TRẮC SỬ DỤNG RTU3031C
VÀ CÔNG NGHỆ OPC UA

KỸ SƯ NGÀNH KỸ THUẬT ĐIỀU KHIỂN & TỰ ĐỘNG HÓA

TP. HỒ CHÍ MINH, 2022


TRƯỜNG ĐẠI HỌC BÁCH KHOA TP. HỒ CHÍ MINH

KHOA ĐIỆN – ĐIỆN TỬ


BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG

Lê Thành Long-1811047

LUẬN VĂN TỐT NGHIỆP

NGHIÊN CỨU VÀ PHÁT TRIỂN ỨNG DỤNG CHO HỆ THỐNG QUAN


TRẮC SỬ DỤNG RTU3031C VÀ CÔNG NGHỆ OPC UA

RESEARCH AND DEVELOPMENT OF APPLICATION FOR


TELEMETRY SYSTEM USING RTU3031C AND OPC UA.

KỸ SƯ NGÀNH KỸ THUẬT ĐIỀU KHIỂN & TỰ ĐỘNG HÓA

GIẢNG VIÊN HƯỚNG DẪN

TS. TRƯƠNG ĐÌNH CHÂU

TP. HỒ CHÍ MINH, 2022


TRƯỜ NG ĐẠ I HỌ C BÁ CH KHOA TP. HỒ CHÍ MINH CỘ NG HÒ A XÃ HỘ I CHỦ NGHĨA VIỆ T NAM
KHOA ĐIỆN – ĐIỆN TỬ Độ c lậ p - Tự do - Hạ nh phú c
BỘ MÔN: ĐIỀU KHIỂN TỰ ĐỘNG
TP. HCM, ngày….tháng…..năm……..

NHẬN XÉT LUẬN VĂN TỐT NGHIỆP


CỦA CÁN BỘ HƯỚNG DẪN

Tên luận văn:


Nghiên cứu và phát triển ứng dụng cho hệ thống quan trắc sử dụng RTU3031C và
công nghệ OPC UA
Research and development of application for telemetry system using RTU3031C and
OPC UA.
Nhóm Sinh viên thực hiện: Cán bộ hướng dẫn:
Lê Thà nh Long 1811047 TS. Trương Đình Châ u

Đánh giá Luận văn


1. Về cuố n bá o cá o:
Số trang ____________ Số chương
Số bả ng số liệu ____________ Số hình vẽ
Số tà i liệu tham khả o ____________ Sả n phẩ m
Mộ t số nhậ n xét về hình thứ c cuố n bá o cá o:

2. Về nộ i dung luậ n vă n:
3. Về tính ứ ng dụ ng:

4. Về thá i độ là m việc củ a sinh viên:

Đánh giá chung: Luậ n văn đạ t/khô ng đạ t yêu cầ u củ a mộ t luậ n văn tố t nghiệp kỹ sư, xếp
loạ i Giỏ i/ Khá / Trung bình
Điểm từng sinh viên:
Lê Thà nh Long: ....../10

Cán bộ hướng dẫn

(Ký tên và ghi rõ họ tên)


TRƯỜ NG ĐẠ I HỌ C BÁ CH KHOA TP. HỒ CHÍ MINH CỘ NG HÒ A XÃ HỘ I CHỦ NGHĨA VIỆ T NAM
KHOA ĐIỆN – ĐIỆN TỬ Độ c lậ p - Tự do - Hạ nh phú c
BỘ MÔN: ĐIỀU KHIỂN TỰ ĐỘNG
TP. HCM, ngày….tháng…..năm……..

NHẬN XÉT LUẬN VĂN TỐT NGHIỆP


CỦA CÁN BỘ PHẢN BIỆN

Tên luận văn:


Nghiên cứu và phát triển ứng dụng cho hệ thống quan trắc sử dụng RTU3031C
và công nghệ OPC UA.
Research and development of application for telemetry system using RTU3031C
and OPC UA.
Nhóm Sinh viên thực hiện: Cán bộ phản biện:
Lê Thà nh Long 1811047

Đánh giá Luận văn


5. Về cuố n bá o cá o:
Số trang ____________ Số chương
Số bả ng số liệu ____________ Số hình vẽ
Số tà i liệu tham khả o ____________ Sả n phẩ m
Mộ t số nhậ n xét về hình thứ c cuố n bá o cá o:
6. Về nộ i dung luậ n vă n:

7. Về tính ứ ng dụ ng:

8. Về thá i độ là m việc củ a sinh viên:

Đánh giá chung: Luậ n văn đạ t/khô ng đạ t yêu cầ u củ a mộ t luậ n văn tố t nghiệp kỹ sư, xếp
loạ i Giỏ i/ Khá / Trung bình
Điểm từng sinh viên:
Lê Thà nh Long: ……/10

Người nhận xét

(Ký tên và ghi rõ họ tên)


TRƯỜ NG ĐẠ I HỌ C BÁ CH KHOA TP. HỒ CHÍ MINH CỘ NG HÒ A XÃ HỘ I CHỦ NGHĨA VIỆ T NAM
KHOA ĐIỆN – ĐIỆN TỬ Độ c lậ p - Tự do - Hạ nh phú c
BỘ MÔN: ĐIỀU KHIỂN TỰ ĐỘNG
TP. HCM, ngày….tháng…..năm……..

ĐỀ CƯƠNG CHI TIẾT

TÊN LUẬN VĂN:

Nghiên cứ u và phá t triển ứ ng dụ ng cho hệ thố ng quan trắ c sử dụ ng RTU3031C và


cô ng nghệ OPC UA

Cán bộ hướng dẫn: TS.Trương Đình Châu

Thời gian thực hiện: Từ ngà y 14/01/2022 đến ngà y 20/5/2022

Sinh viên thực hiện:

Lê Thành Long – 1811047

Nội dung đề tài:

Mục tiêu: Xây dựng hệ thống giám sát bằng thiết bị SIMATIC RTU3031C và cảm biến,
phát triển các ứng dụng OPC UA Client kết nối hệ thống.

Đối tượng: SIMATIC RTU3031C, Web Client, App Client, Cloud VPS, Tele Control Server
Basic.

Phương pháp thực hiện:

 Thực hiện cấu hình thiết bị SIMATIC RTU3031C và kết nối thiết bị với các cảm
biến.
 Xây dựng công cụ OPC UA Client thông qua web và app để kết nối và giám sát
dữ liệu từ xa.
 Tích hợp điện toán đám mây cho hệ thống, đưa dữ liệu lên TeleControl Server
Basic (phần mềm được cài đặt trên VPS) và kết nối toàn hệ thống

Kết quả mong đợi: Cấu hình thành công thiết bị SIMATIC RTU3031C, các ứng dụng
app và web kết nối và giám sát dữ liệu ổn định.

Kế hoạch thực hiện:

 Nghiên cứu tìm hiểu mô hình, cách thức kết nối của chuẩn giao thức OPC UA
 Tìm hiểu cách cấu hình và vận hành thiết bị SIMATIC RTU3031C, sau đó kết nối
với TeleControl Server Basic trên điện toán đám mây.
 Tìm hiểu về cảm biến áp suất thủy tĩnh dạng chìm đo mức LH300.
 Xây dựng ứng dụng chạy trên web và app(android) để kết nối và giám sát dữ
liệu.
 Chạy thực nghiệm kiểm tra kết nối và trao đổi dữ liệu.
 Nghiệm thu kết quả và viết báo cáo.

Xác nhận của Cán bộ hướng dẫn TP. HCM, ngà y….thá ng …..nă m…..

(Ký tên và ghi rõ họ tên) Sinh viên

(Ký tên và ghi rõ họ tên)


DANH SÁCH HỘI ĐỒNG BẢO VỆ LUẬN VĂN

Hộ i đồ ng chấ m luậ n vă n tố t nghiệp, thà nh lậ p theo Quyết định số ……………………


ngà y ………………….. củ a Hiệu trưở ng Trườ ng Đạ i họ c Bá ch khoa TP.HCM.

1. …………………………………………. – Chủ tịch.


2. …………………………………………. – Thư ký.
3. …………………………………………. – Ủ y viên.
4. …………………………………………. – Ủ y viên.
5. …………………………………………. – Ủ y viên.
MỤC LỤC
TÓM TẮT LUẬN VĂN.......................................................................................................1

MỞ ĐẦU...............................................................................................................................2

Chương 1: TỔNG QUAN ĐỀ TÀI............................................................................................3

1.1. Tính cấ p thiết.....................................................................................................................3

1.2. Mụ c tiêu thự c hiện...........................................................................................................3

1.3. Đố i tượ ng nghiên cứ u....................................................................................................3

1.4. Nhiệm vụ ............................................................................................................................. 4

Chương 2: CƠ SỞ LÝ THUYẾT...............................................................................................5

2.1. Giớ i thiệu chuẩ n giao thứ c OPC UA..........................................................................5

2.1.1. Giao thứ c OPC............................................................................................................5

2.1.2. OPC UA.......................................................................................................................... 5

2.1.3. Cấ u trú c chuẩ n OPC UA..........................................................................................6

2.1.4. Vai trò củ a OPC UA Server và OPC UA Client.................................................8

2.2. Tìm hiểu thiết bị SIMATIC RTU3031C......................................................................9

2.3. Giớ i thiệu cả m biến á p suấ t thủ y tĩnh dạ ng chìm đo mứ c.............................10

Chương 3: MÔ HÌNH OPC UA SERVER............................................................................12

3.1. Tìm hiểu về khô ng gian địa chỉ củ a OPC UA Server..........................................12

3.1.1. Giớ i thiệu về Node.................................................................................................12

3.1.2. Namespaces, NodeID và Node Attributes....................................................13

3.2. Giao diện để kết nố i tớ i OPC UA Server Address Space..................................14

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

Chương 4: XÂY DỰNG HỆ THỐNG GIÁM SÁT VỚI THIẾT BỊ SIMATIC


RTU3031C VÀ CÁC CẢM BIẾN.............................................................................................22
4.1. Cấ u trú c hệ thố ng củ a luậ n văn.................................................................................22

4.2. Cấ u hình thiết bị SIMATIC RTU3031C...................................................................23

4.2.1. Thiết lậ p phầ n cứ ng..............................................................................................23

4.2.2. Cấ u hình.....................................................................................................................25

4.2.2.1. Cấ u hình chung...............................................................................................25

4.2.2.2. Cấ u hình gử i/nhậ n SMS/email................................................................28

4.2.2.3. Cấ u hình chế độ vậ n hà nh..........................................................................30

4.2.2.4. Cấ u hình chứ c nă ng GPS cho RTU3031C.............................................31

4.2.2.5. Cấ u hình tạ o cá c tags cho chương trình trên RTU3031C..............33

4.2.2.6. Cấ u hình cho văn bả n SMS/email...........................................................36

4.2.2.7. Viết chương trình cho thiết bị RTU3031C...........................................38

4.2.2.8. Cấ u hình kết nố i đến TeleControl Server.............................................48

Chương 5: THIẾT KẾ CÁC ỨNG DỤNG OPC UA CLIENT.........................................49

5.1. Tổ ng quan OPC UA Client............................................................................................49

5.1.1 Giớ i thiệu OPC UA Client......................................................................................49

5.1.2. Tính bả o mậ t............................................................................................................49

5.1.3. Cá ch thứ c truyền dữ liệu và chứ c nă ng cơ bả n củ a Client....................50

5.2. Giớ i thiệu bộ thư viện OPCUA.NET Standard.....................................................50

5.3. Web OPC UA Client........................................................................................................51

5.3.1. Giớ i thiệu...................................................................................................................51

5.3.1.1. Html, Css, Javascript.....................................................................................51

5.3.1.2. Asp.Net Web Forms......................................................................................53

5.3.1.3. Lưu trữ dữ liệu SQL Database..................................................................54

5.3.2. Thiết kế Web OPC UA Client..............................................................................54


5.3.2.1. Cá c chứ c nă ng chính.....................................................................................54

5.3.2.2. Chứ c nă ng Connect.......................................................................................55

5.3.2.3. Chứ c nă ng Browse........................................................................................57

5.3.2.4. Chứ c nă ng Subscribe....................................................................................57

5.4. App OPC UA Client.........................................................................................................60

5.4.1. Giớ i thiệu về Xamarin..........................................................................................60

5.4.2. Cấ u hình và cá c ứ ng dụ ng nền tả ng trên Xamarin....................................60

5.4.3. Thà nh phầ n chính củ a App OPC UA Client..................................................62

Chương 6: TÍCH HỢP ĐIỀU KHIỂN HỆ THỐNG ĐÁM MÂY...................................67

6.1. Mụ c tiêu..............................................................................................................................67

6.2. Định nghĩa......................................................................................................................... 67

6.3. Ứ ng dụ ng........................................................................................................................... 68

Chương 7: KẾT QUẢ THỬ NGHIỆM VÀ ĐÁNH GIÁ..................................................69

7.1. Kết quả thử nghiệm.......................................................................................................69

7.1.1. Gử i SMS/email từ thiết bị SIMATIC RTU3031C........................................69

7.1.2. Ứ ng dụ ng OPC UA Client.....................................................................................70

7.1.2.1. Web OPC UA Client.......................................................................................70

7.1.2.2. App OPC UA Client........................................................................................75

7.2. Đá nh giá ............................................................................................................................. 79

7.2.1. Kết quả đạ t đượ c....................................................................................................79

7.2.2. Nhữ ng thiếu só t củ a luậ n văn...........................................................................79

7.3. Hướ ng phá t triển củ a luậ n vă n.................................................................................79

TÀI LIỆU THAM KHẢO............................................................................................................80


DANH MỤC HÌNH VẼ
Hình 2. 1: Mô hình tổ ng quan cấ u trú c OPC UA..................................................................7
Hình 2. 2. Thiết bị SIMATIC RTU3031C..............................................................................10
Hình 2. 3: Cả m biến á p suấ t thủ y tĩnh dạ ng chìm đo mứ c LH300...........................11
Hình 3. 1: Mô hình cá c Node đượ c tham chiếu phâ n cấ p............................................12
Hình 3. 2: Cấ u trú c củ a mộ t NodeID.....................................................................................14
Hình 3. 3: Cá c đố i tượ ng đượ c tạ o ra khi trao đổ i dữ liệu...........................................15
Hình 3. 4: Giao thứ c đồ ng bộ và khô ng đồ ng bộ giao tiếp bằ ng OPC UA...............18
Hình 3. 5: Giao thứ c đồ ng bộ và khô ng đồ ng bộ giao tiếp bằ ng OPC DA...............19
Hình 3. 6: Lớ p bả o mậ t..............................................................................................................19
Hình 3. 7: Trao đổ i chứ ng chỉ giữ a client và server.......................................................21
Hình 4. 1: Cấ u trú c hệ thố ng củ a luậ n vă n.........................................................................22
Hình 4. 2: Sơ đồ kết nố i cả m biến LH300 và nguồ n điện vớ i thiết bị RTU3031C
............................................................................................................................................................. 24
Hình 4. 3: Hình ả nh thự c tế hệ thố ng giá m sá t................................................................24
Hình 4. 4: Nhậ p địa chỉ má y chủ web RTU3031C...........................................................25
Hình 4. 5: Đă ng nhậ p..................................................................................................................25
Hình 4. 6: Thay đổ i mậ t khẩ u..................................................................................................26
Hình 4. 7: Cà i đặ t vị trí cho thiết bị.......................................................................................26
Hình 4. 8: Cà i đặ t thờ i gian......................................................................................................27
Hình 4. 9: Kích hoạ t chế độ di độ ng cho thiết bị..............................................................28
Hình 4. 10: Cấ u hình chứ c nă ng gử i, nhậ n SMS/email.................................................28
Hình 4. 11: Thêm thô ng tin cá nhâ n nhậ n SMS/email..................................................29
Hình 4. 12: Cho phép gử i tin nhắ n........................................................................................29
Hình 4. 13: Nhậ p mail RTU3031C dù ng để gử i email...................................................30
Hình 4. 14: Cấ u hình chế độ vậ n hà nh.................................................................................31
Hình 4. 15: Bậ t chế độ GPS cho thiết bị...............................................................................32
Hình 4. 16: Tạ o tag Latitude....................................................................................................32
Hình 4. 17: Cá c tag đã tạ o cho GPS.......................................................................................33
Hình 4. 18: Tạ o DI........................................................................................................................33
Hình 4. 19: Tạ o DO...................................................................................................................... 34
Hình 4. 20: Tạ o DM.....................................................................................................................34
Hình 4. 21: Tạ o AI........................................................................................................................35
Hình 4. 22: Tạ o AM......................................................................................................................36
Hình 4. 23: Tạ o văn bả n để gử i SMS/email.......................................................................37
Hình 4. 24: Tạ o tiêu đề cho vă n bả n.....................................................................................38
Hình 4. 25: Thư mụ c Program................................................................................................39
Hình 4. 26: Viết chương trình cho Program.....................................................................39
Hình 4. 27: Viết chương trình cho Program.....................................................................40
Hình 4. 28: Viết chương trình cho Program.....................................................................41
Hình 4. 29: Limit Value Switch...............................................................................................41
Hình 4. 30: Viết chương trình cho Program.....................................................................42
Hình 4. 31: Viết chương trình cho Program.....................................................................42
Hình 4. 32: Viết chương trình cho Program.....................................................................43
Hình 4. 33: Viết chương trình cho Program.....................................................................44
Hình 4. 34: Viết chương trình cho Program.....................................................................44
Hình 4. 35: Viết chương trình cho Program.....................................................................45
Hình 4. 36: Viết chương trình cho Program.....................................................................45
Hình 4. 37: Viết chương trình cho Program.....................................................................46
Hình 4. 38: Viết chương trình cho Program.....................................................................46
Hình 4. 39: Viết chương trình cho Program.....................................................................47
Hình 4. 40: Cấ u hình kết nố i đến TeleControl Server Basic.......................................48
Hình 5. 1: Sơ đồ kết nố i giữ a OPC UA Server và Client.................................................49
Hình 5. 2: Chứ c nă ng củ a JavaScript, CSS, HTML............................................................51
Hình 5. 3: Biểu đồ tuầ n tự Connect......................................................................................56
Hình 5. 4: Biểu đồ tuầ n tự Subscribe...................................................................................59
Hình 5. 5: Cá ch tiếp cậ n trên Xamarin.................................................................................60
Hình 5. 6: Thư viện OPCUA C#...............................................................................................61
Hình 5. 7: Thư viện OPC UA Nuget.......................................................................................61
Hình 5. 8: Giả i thuậ t App OPC UA Client.............................................................................62
Hình 7. 1: Email từ thiết bị SIMATIC RTU3031C khi có cả nh bá o............................69
Hình 7. 2: SMS từ thiết bị SIMATIC RTU3031C khi có cả nh bá o...............................70
Hình 7. 3: Giao diện Connect...................................................................................................71
Hình 7. 4: Giao diện Connect thà nh cô ng...........................................................................71
Hình 7. 5: Giao diện giá m sá t hệ thố ng...............................................................................72
Hình 7. 6: Giao diện giá m sá t cá c tín hiệu củ a hệ thố ng theo dạ ng bả ng..............72
Hình 7. 7: Giao diện đồ thị lưu lượ ng..................................................................................73
Hình 7. 8: Giao diện đồ thị nhiệt độ ......................................................................................73
Hình 7. 9: Giao diện bả n đồ giá m sá t hệ thố ng................................................................74
Hình 7. 10: Giao diện trang About........................................................................................74
Hình 7. 11: Giao diện khở i độ ng app...................................................................................75
Hình 7. 12: Giao diện trang Connect....................................................................................75
Hình 7. 13: Giao diện trang tạ o List endpoints................................................................76
Hình 7. 14: Giao diện trang giá m sá t....................................................................................76
Hình 7. 15: Giao diện trang vẽ đồ thị...................................................................................77
Hình 7. 16: Giao diện trang bả n đồ .......................................................................................77
Hình 7. 17: Giao diện giá m sá t hệ thố ng trên bả n đồ ....................................................78
Hình 7. 18: Giao diện trang cả nh bá o..................................................................................78
DANH MỤC BẢNG
Bả ng 3. 1: Bả ng liệt kê cá c kiểu Node cơ bả n...................................................................13
Bả ng 3. 2: Mô tả cấ u trú c củ a mộ t NodeID........................................................................14
Bả ng 3. 3: Cá c đố i tượ ng có thể tạ o ra khi trao đổ i dữ liệu........................................15
Bả ng 3. 4: Cá c phương phá p tuầ n tự tạ o và đó ng kết nố i giữ a client và server.16
Bả ng 3. 5: Cá c phương phá p cho thể thô ng qua Session để giao tiếp....................17
Bả ng 3. 6: Cá c phương phá p quan trọ ng nhấ t củ a giao diện OPC UA liên quan
đến đă ng ký.................................................................................................................................... 18
Bả ng 3. 7: Mô tả cá c lớ p bả o mậ t...........................................................................................20
Bả ng 3. 8: Nhữ ng cơ chế bả o mậ t..........................................................................................20
Bả ng 3. 9: Mô tả quá trình trao đổ i chứ ng chỉ giữ a client và server.......................21
Bả ng 5. 1: Cá c thư viện đượ c sử dụ ng trong luậ n vă n..................................................51
Bả ng 5. 2: Mô tả cá c bướ c Connect.......................................................................................56
Bả ng 5. 3: Mô tả cá c bướ c đă ng kí cho 1 Node.................................................................59
DANH MỤC TỪ VIẾT TẮT
OPC – OLE for Process Control

OLE – Object Linking and Embedding

OPC UA – Open Platform Communication Unified Architeture

URL – Uniform Resource Locator

DA – Data Access

HDA – History Data Access

VPS – Virtual Private Server

RTU – Remote Terminal Unit

TCSB – TeleControl Server Basic

DI – Digital Inputs

DO – Digital Outputs

AI – Analog Inputs

DM – Digital Memory Bits

AM – Analog Memory Bits

GPS – Global Positioning System

SMS – Short Message Service

PLC – Programable Logic Controller

SD – Standard Definition

PCL – Portable Class Libraries

API – Application Programming Interface


TÓM TẮT LUẬN VĂN
Hiện nay việc sử dụ ng chuẩ n giao thứ c OPC UA trong cá c hệ thố ng cô ng nghiệp
để kết nố i giữ a server và client ngà y cà ng đượ c sử dụ ng rộ ng rã i và phổ biến.

Trong luậ n vă n, em tậ p trung và o việc ứ ng dụ ng nhữ ng kiến thứ c đã họ c và sử


dụ ng chuẩ n giao thứ c OPC UA để xâ y dự ng hệ thố ng giá m sá t và cá c ứ ng dụ ng
app, web để có thể tích hợ p và o hệ thố ng cô ng nghiệp.

Cá c thà nh phầ n cơ bả n củ a luậ n văn:

 Nghiên cứ u về giao thứ c OPC UA và mô hình OPC UA Server, Client


 Xâ y dự ng hệ thố ng giá m sá t bằ ng thiết bị SIMATIC RTU3031C và cả m
biến
 Tích hợ p điện toá n đá m mâ y cho hệ thố ng, đưa dữ liệu đọ c đượ c từ cả m
biến và việc cấ u hình thiết bị SIMATIC RTU3031C lên TeleControl Server
Basic (phầ n mềm đượ c cà i đặ t trên VPS).
 Thiết kế cá c phầ n mềm giá m sá t từ xa dù ng Xamarin Form và ASP.NET
Web Forms.
Sau quá trình nghiên cứ u và hoà n thà nh luậ n văn, em đã hoà n chỉnh đượ c mô
hình và cá c ứ ng dụ ng client. Mô hình hoạ t độ ng đú ng vớ i cá c yêu cầ u đặ t ra ban
đầ u, và có tính khả thi khi đặ t và o cá c hệ thố ng cô ng nghiệp vớ i quy mô dữ liệu
lớ n hơn.

1
MỞ ĐẦU
Trong suố t quã ng thờ i gian là sinh viên tạ i trườ ng Đạ i họ c Bá ch khoa Thà nh
phố Hồ Chí Minh, em đã có nhữ ng cơ hộ i giao lưu, họ c hỏ i, sáng tạ o và tiếp thu
nhữ ng kiến thứ c mớ i mẻ, bổ ích để chuẩ n bị mộ t hà nh trang hướ ng đến tương
lai. Đó sẽ là khoả ng thờ i gian tươi đẹp nhấ t mà em sẽ luô n khắ c cố t ghi tâ m.

Lờ i đầ u tiên, em xin châ n thà nh cả m ơn nhà trườ ng đã tạ o điều kiện để sinh


viên chú ng em có mộ t mô i trườ ng họ c tậ p thoả i má i về cơ sở hạ tầ ng cũ ng như
cơ sở vậ t chấ t. Em xin gử i lờ i cả m ơn đến quý thầ y cô khoa Điện-điện tử và cá c
thầ y cô trong trườ ng đã dìu dắ t em nhữ ng ngà y đầ u chậ p chữ ng mớ i bướ c và o
trườ ng, cả m ơn quý thầ y cô bộ mô n Điều khiển và Tự độ ng đã giả ng dạ y và
giú p đỡ em có nhữ ng kiến thứ c chuyên ngà nh quan trọ ng, là tiền đề cho tương
lai sau nà y củ a em. Em xin châ n thà nh cả m ơn thầ y Dr. Trương Đình Châ u, là
giá o viên hướ ng dẫ n giú p đỡ em trong suố t quá trình thự c hiện luậ n vă n. Thầ y
là ngọ n hả i đă ng trên biển soi sá ng cho nhữ ng con thuyền là chú ng em có thể
tìm đượ c đườ ng và o bờ . Thầ y đã tậ n tình hướ ng dẫ n, khắ c phụ c, sử a lỗ i để em
có thể hoà n thà nh luậ n vă n củ a mình mộ t cá ch tố t nhấ t.

Bên cạ nh đó , xin đượ c gử i lờ i cả m ơn đến cá c bạ n cù ng khó a đã cù ng nhau tạ o


nên mộ t thờ i sinh viên đá ng nhớ ở ngô i trườ ng này. Chú ng ta đã giú p đỡ lẫ n
nhau cũ ng như đồ ng hà nh trong suố t quã ng thờ i gian họ c tậ p tạ i trườ ng; đượ c
gặ p gỡ , giao lưu, chia sẻ vớ i cá c bạ n là điều vinh dự vớ i mình.

Cuố i cù ng, em xin đượ c châ n thà nh cả m ơn gia đình, anh chị em đã tạ o điều
kiện, giú p đỡ , quan tâ m, độ ng viên em trong suố t thờ i gian họ c tậ p và hoà n
thà nh luậ n vă n tố t nghiệp.
Sau cù ng, em xin kính chú c thầ y cô thậ t dồ i dà o sứ c khỏ e, luô n giữ u lử a nhiệt
huyết để tiếp tụ c truyền đạ t kiến thứ c cho cá c thế hệ sinh viên mai sau.

2
Chương 1: TỔNG QUAN ĐỀ TÀI

1.1. Tính cấp thiết

o Sử dụ ng chuẩ n giao thứ c OPC UA để kết nố i server và client ngà y cà ng


đượ c phổ biến. Đâ y là phương phá p an toà n để kiểm tra đườ ng truyền
kết nố i, bả o mậ t dữ liệu trướ c khi đưa và o vậ n hà nh và giá m sá t hệ
thố ng. Truyền thô ng là mộ t thà nh phầ n khô ng thể thiếu trong hệ thố ng,
giú p cá c thiết bị trao đổ i dữ liệu vớ i nhau từ đó việc giá m sá t sẽ chính
xá c, khô ng xả y ra rủ i ro nà o trong việc truyền dữ liệu.
o Ngoà i ra, thiết lậ p cá c mô hình giao thứ c nà y sẽ dễ kiểm soá t thô ng số ,
dữ liệu, để phá t hiện cá c lỗ i, rủ i ro khô ng đá ng có . Từ đó tìm cá ch khắ c
phụ c, chỉnh sử a để chương trình hoạ t độ ng tố t nhấ t.
o Bên cạ nh đó , khi cô ng nghiệp hoá và hiện đạ i hó a ngà y cà ng phá t triển,
việc xuấ t hiện cá c nhà má y lọ c dầ u, nhà má y xử lý nướ c, hay cá c trạ m hú t
dầ u ngoà i khơi ngà y cà ng nhiều. Việc sử dụ ng thiết bị SIMATIC
RTU3031C và cá c cả m biến để xâ y dự ng hệ thố ng giá m sá t cũ ng đượ c
ứ ng dụ ng rộ ng rã i hơn vì thiết bị nà y dễ dù ng, dễ cấ u hình và dễ vậ n
hà nh.
1.2. Mục tiêu thực hiện

o Xâ y dự ng hệ thố ng giá m sá t bằ ng thiết bị SIMATIC RTU3031C và cá c cả m


biến cầ n thiết để hệ thố ng hoạ t độ ng gầ n đú ng so vớ i thự c tế nhấ t.
o Thự c hiện kết nố i thiết bị SIMATIC RTU3031C và TeleControl Server
Basic, liên kết dữ liệu vớ i VPS.
o Xâ y dự ng cá c ứ ng dụ ng web, app điện thoạ i sử dụ ng ngô n ngữ C#,
Javascript, Html, Css kết hợ p giao thứ c OPC UA Client để thiết lậ p kết nố i
vớ i OPC UA Server nhằ m trao đổ i dữ liệu và giá m sá t hệ thố ng.
1.3. Đối tượng nghiên cứu

3
Về cá c ứ ng dụ ng client như app, web, đố i tượ ng nghiên cứ u là cá ch thứ c kết nố i
vớ i server, truy cậ p dữ liệu, hiển thị dữ liệu.

Đố i vớ i VPS (cloud), ta cầ n tìm hiểu cá ch cà i đặ t, cấ u hình VPS, mở port trên


VPS

Đố i vớ i thiết bị SIMATIC RTU3031C, đố i tượ ng nghiên cứ u là cá ch cấ u hình


thiết bị, cá ch nố i cá c cả m biến và o thiết bị. Ngoà i ra, ta cầ n tìm hiểu cá ch ứ ng
dụ ng hệ thố ng giá m sá t bằ ng thiết bị RTU3031C và cá c cả m biến và o thự c tế
như giá m sá t cá c trạ m hú t dầ u ngoà i khơi, tà u biển chở dầ u, xe bồ n, cá c bồ n
chứ a trong cá c nhà má y lọ c dầ u hay nhà má y xử lý nướ c.

1.4. Nhiệm vụ

Dự a và o nhữ ng mụ c tiêu, yêu cầ u đượ c nêu ra, đề tà i gồ m có cá c nhiệm vụ


chính:

o Nghiên cứ u mô hình, cá ch thứ c kết nố i chuẩ n giao thứ c OPC UA


o Tìm hiểu cá ch cấ u hình và vậ n hà nh thiết bị SIMATIC RTU3031C.
o Tìm hiểu về cả m biến á p suấ t thủ y tĩnh dạ ng chìm đo mứ c LH300.
o Tích hợ p điện toá n đá m mâ y cho hệ thố ng, liên kết dữ liệu vớ i VPS.
o Lậ p trình ứ ng dụ ng chạ y trên web, app điện thoạ i (android) đó ng vai trò
là OPC UA Client để kết nố i và giá m sá t hệ thố ng.
o Thự c hiện chạ y thự c nghiệm hệ thố ng, đưa ra kết quả và đá nh giá .
o Nghiệm thu kết quả và viết bá o cá o.

4
Chương 2: CƠ SỞ LÝ THUYẾT

2.1. Giới thiệu chuẩn giao thức OPC UA

2.1.1. Giao thức OPC

OPC đượ c viết tắ t từ OLE for Process Control, OLE là Object Linking and
Embedding là cô ng nghệ mộ t thờ i nổ i đình đá m củ a Microsoft- Cô ng nghệ
COM/DCOM (Component Object Model, D- Distributed). Như vậ y OPC chính là
COM/DCOM for Process Control, đượ c hiểu là kiến trú c liên kết cá c đố i tượ ng
phâ n tá n (phầ n mềm) trong tự độ ng hó a cô ng nghiệp.

Cá c thô ng số kỹ thuậ t OPC đượ c sử dụ ng trong hệ thố ng cô ng nghiệp:

o OPC-DA (Truy cậ p dữ liệu): cung cấ p quyền truy cậ p dữ liệu thờ i gian


thự c.
o OPC-HDA (Truy cậ p dữ liệu lịch sử ): đượ c sử dụ ng để truy xuấ t dữ liệu
quá trình lịch sử để phâ n tích. Dữ liệu này thương đượ c lưu trữ trong cá c
tệp; cơ sở dữ liệu hoặ c hệ thố ng từ xa.
o OPC-A&E (Bá o độ ng & Sự kiện): má y chủ OPC A&E đượ c sử dụ ng để
chấ p nhậ n và trao đổ i cá c bá o độ ng và sự kiện.
o OPC-XML (Truy cậ p dữ liệu XML): xá c định cá c định dạ ng biểu đồ dữ liệu
và biểu đồ dự a trên tiêu chuẩ n XML. Điều nà y cho phép chia sẻ, thao tá c
dữ liệu điều khiển quá trình trên tấ t cả cá c hệ điều hà nh- Windows,
Linux, UNIX.
2.1.2. OPC UA

OPC UA (Open Platform Communication Unified Architecture) là thế hệ tiếp


theo củ a OPC, đượ c hiểu là mộ t chuẩ n truyền thô ng bậ c cao độ c lậ p, đượ c phá t
triển bở i hiệp hộ i OPC Foundation. OPC UA khắ c phụ c tấ t cả cá c điểm hạ n chế
củ a cá c thế hệ trướ c củ a OPC.

o OPC UA là chuẩ n quố c tế IEC 62541.

5
o Bao gồ m tấ t cả cá c tính nă ng trướ c đó như là DA và A&E.
o Server và Client sử dụ ng OPC UA có thể lậ p trình và chạ y trên nhiều hệ
điều hà nh khá c nhau.
o Cá c cơ chế kiểm soá t truy cậ p và bả o mậ t tích hợ p trên giao thứ c đượ c
nâng cao; sử dụ ng nhiều lớ p bả o mậ t.
o Có thể mở rộ ng cho cá đố i tượ ng và kiểu dữ liệu phứ c tạ p.
o Hỗ trợ kỹ thuậ t Heartbeat 2 chiều giữ a Server và Client để kiểm tra tình
trạ ng hoạ t độ ng vớ i nhau.
o Hỗ trợ lưu đồ trạ ng thá i (State-machine).
o Có thể chạ y trên cá c thiết bị trườ ng như cả m biến hay thiết bị chấ p hà nh.
Từ đó có thể đưa dữ liệu lên thẳ ng lên Cloud.
o Dữ liệu trao đổ i giữ a Server và Client khá đa dạ ng: biến cơ bả n
(Elementary variable); hà m (Method); sự kiện (Event); Mả ng (Array) và
đố i tượ ng (Object).
o Hỗ trợ chứ c năng automatic backfilling dữ liệu. Khi kết nố i giữ a Client và
Server bị giá n đoạ n thì dữ liệu trong thờ i gian nà y đượ c buffer trên
Server. Ngay sau khi kết nố i đượ c khô i phụ c thì dữ liệu buffer nà y đượ c
gử i ngay cho Client.
2.1.3. Cấu trúc chuẩn OPC UA

Cá c thô ng số kỹ thuậ t củ a OPC UA đượ c chia thà nh cá c phầ n khá c nhau theo
tiêu chuẩ n quố c tế IEC 62541. Cấ u trú c tổ ng quan củ a OPC UA bao gồ m cá c
phầ n dướ i đâ y:

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

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

1. Concepts

2. Security Model

3. Address Space Model

4. Services

5. Information Model

6. Service Mappings

7. Profiles

8. Data Access

7
9. Alarm & Conditions

10. Programs

11. Historical Access

12. Discovery

13. Aggregates

14. PubSub

Mộ t số đặ c tả quan trọ ng đượ c sử dụ ng trong phạ m vi luậ n vă n:

1. Data Access

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

2. Address Space Model

Xá c định cá c quy tắ c và thà nh phầ n cơ bả n để tạ o nên mô hình khô ng


gian địa chỉ củ a OPC UA

3. Information Model

Dự a và o cơ sở Address Space Model để xá c định cá c điểm truy cậ p trong


khô ng gian địa chỉ và cá c kiểu dữ liệu cơ bả n như data type, object type, …

4. Security

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

2.1.4. Vai trò của OPC UA Server và OPC UA Client

OPC UA Server đó ng vai trò là nơi kết nố i cá c thiết bị client khá c nhau, có
nhiệm vụ :

 Tạ o cá c mứ c độ bả o mậ t tương ứ ng.
 Quả n lý khô ng gian biến, dữ liệu, cấ p quyền truy cậ p dữ liệu.
 Quả n lý danh sá ch cá c client kết nố i đến.

8
 Quả n lý danh sá ch cá c biến đượ c client đă ng ký.
 Trả lờ i yêu cầ u cá c client gử i lên.
 Lưu trữ lịch sử thay đổ i dữ liệu.
 Quả n lý cá c chứ ng nhậ n định danh thiết bị.
OPC UA Client đó ng vai trò kết nố i, lấ y dữ liệu từ server và thự c hiện cá c thao
tá c vớ i dữ liệu, có nhiệm vụ :

 Tạ o cá c sự kiện, thô ng bá o lên server.


 Đọ c và ghi cá c biến Node củ a server.
 Truy cậ p và o khô ng gian cá c biến, dữ liệu củ a server.
 Tạ o định danh kết nố i để server nhậ n biết.
 Đă ng ký danh sá ch biến cho server để thự c hiện mô phỏ ng.
2.2. Tìm hiểu thiết bị SIMATIC RTU3031C

Ngà y 5 thá ng 7 nă m 2018, Siemens đã giớ i thiệu thiết bị SIMATIC RTU3031C


(thiết bị đầ u cuố i từ xa/RTU) có tích hợ p chứ c nă ng GPS. Thiết bị SIMATIC
RTU3031C đượ c thiết kế để có thể vậ n hà nh trong mô i trườ ng khô ng có hệ
thố ng cung cấ p điện bằ ng cá ch sử dụ ng cá c mô đun pin hoặ c pin sạ c năng
lượ ng mặ t trờ i. Bên cạ nh đó thiết bị này có thể đượ c sử dụ ng trong cá c điều
kiện mô i trườ ng khắ c nghiệt như nhiệt độ từ -40°C đến +70°C hoặ c trong lũ lụ t
(vớ i vỏ bả o vệ IP68 bên ngoà i).

Thiết bị SIMATIC RTU3031C bao gồ m 8DI, 8DQ, 4AI. Thiết bị nà y hỗ trợ kết nố i
vớ i trung tâ m điều khiển vớ i cá c giao thứ c telecontrol (IEC60870, DNP3, Sinaut
ST7, Tele Control Server Basic) để là m bộ ghi dữ liệu. Ngoà i ra, tấ t cả cá c giá trị
quy tình đo đượ c có thể lưu trữ trong bộ nhớ trong hoặ c trên thẻ SD.
RTU3031C cò n có thể gử i email và tin nhắ n khi có cả nh bá o về lưu lượ ng, á p
suấ t, nhiệt độ hay vị trí hiện tạ i củ a thiết bị.

Chính vì vậ y thiết bị nà y phù hợ p cho cá c ứ ng dụ ng tĩnh như giá m sá t cá c điểm


đo phâ n phố i trong ngà nh cô ng nghiệp nướ c (nhà má y lọ c dầ u, nhà má y xử lý

9
nướ c, nhà má y hó a chấ t hoặ c cá c trạ m hú t dầ u ngoà i khơi…) hoặ c theo dõ i cá c
xe chở bồ n, tà u biển chở dầ u…

Hình 2. 2. Thiết bị SIMATIC STU3031C


2.3. Giới thiệu cảm biến áp suất thủy tĩnh dạng chìm đo mức

Cả m biến đo lườ ng mự c nướ c dạ ng á p suấ t thủ y tĩnh là mộ t loạ i thiết bị cả m


biến có khả năng đo lườ ng dung mô i chấ t lỏ ng nó i chung, là mộ t loạ i cả m biến
có khả nă ng đo lườ ng mự c chấ t lỏ ng mộ t cá ch liên tụ c, tứ c là đo lườ ng từ 0-
100% giá trị mự c chấ t lỏ ng có trong thù ng chứ a. Cả m biến dạ ng nà y là dò ng đo
liên tụ c nên sẽ có cá c cổ ng kết nố i ngõ ra cho phép chú ng ta kết nố i vớ i cá c thiết
bị hỗ trợ như mà n hình hiển thị, PLC, hay bộ chuyển đổ i tín hiệu, …

Nguyên lý hoạ t độ ng: Cả m biến á p suấ t thủ y tĩnh sử dụ ng mứ c á p suấ t thủ y


tĩnh củ a cộ t nướ c để so sá nh giá trị mự c nướ c và mứ c á p suấ t tương ứ ng để đo
lườ ng. Cụ thể thì khi cứ xuố ng sâ u 10m nướ c thì á p suấ t sẽ tă ng lên 1 bar. Và đó
cũ ng là cá ch mà cả m biến vậ n hà nh, cà ng xuố ng sâ u (mự c nướ c cà ng dâ ng cao)
thì á p suấ t cà ng tă ng từ đó chú ng ta có giá trị mự c nướ c tương ứ ng.

Cả m biến á p suấ t thủ y tĩnh dạ ng chìm đo mứ c LH300

10
Hình 2. 3: Cả m biến á p suấ t thủ y tĩnh dạ ng chìm đo mứ c LH300
Ưu điểm:

o Cả m biến chìm để đo mứ c thủ y tĩnh vớ i nắ p bả o vệ là m bằ ng PPE, thép


khô ng gỉ.
o Nhiều loạ i chiều dà i khá c nhau phù hợ p cho mọ i hình thứ c bể chứ a hay
sử dụ ng
o Dễ dà ng lắ p đặ t và sử dụ ng
o Có độ chính xá c 0.15%
o Chuyển đổ i á p suấ t thủ y tĩnh thà nh tín hiệu dò ng điện 4-20mA đượ c tiêu
chuẩ n hó a.

11
Chương 3: MÔ HÌNH OPC UA SERVER

3.1. Tìm hiểu về không gian địa chỉ của OPC UA Server

3.1.1. Giới thiệu về Node

Hình 3. 1: Mô hình cá c Node đượ c tham chiếu phâ n cấ p


o Node là đơn vị dữ liệu cơ bả n trong giao thứ c OPC UA.
o Mộ t Node trong vù ng khô ng gian địa chỉ thuộ c mộ t loạ i nhấ t định, chẳ ng
hạ n như đố i tượ ng, thẻ, kiểu dữ liệu hay phương thứ c và đượ c mô tả bở i
mộ t danh sá ch cá c thuộ c tính củ a Node.
o Tấ t cả cá c Node đều có nhữ ng thuộ c tính chung đượ c mô tả như tên
Node, giá trị củ a Node, kiểu dữ liệu, lớ p Node.
o Tính chấ t củ a danh sá ch thuộ c tính củ a Node: là mộ t kiểu biến đặ c biệt,
khô ng thể mở rộ ng, thô ng tin bên ngoà i có thể xem là thà nh phầ n củ a
Node.
o Cá c Node đượ c liên kết vớ i cá c nguồ n tham chiếu. Cá c nguồ n tham chiếu
đã đượ c phâ n loạ i. Chẳ ng hạ n ở đâ y có hai nhó m chính: Tham chiếu phâ n
cấ p (ví dụ như Node đó là thà nh phầ n củ a mộ t Node khá c) và tham chiếu

12
khô ng phâ n cấ p (ví dụ Node đó đượ c định danh là loạ i gì so vớ i mộ t đố i
tượ ng nà o đó ).
Cá c loạ i Node đượ c liệt kê tạ i bả ng 3.1 sau:

Kiểu Node Mô tả chi tiết

Object Là mộ t kiểu Node định dạ ng mộ t vù ng chứ a cá c biến,


phương thứ c và sự kiện.

Variable Là mộ t kiểu Node thể hiện dữ liệu, cá c thuộ c tính và thà nh


phầ n củ a Node.

Method Là mộ t kiểu Node thể hiện thà nh phầ n củ a mộ t Object và


nó có cá c đầ u và o và đầ u ra.

View Kiểu Node thể hiện cho mộ t phầ n củ a khô ng gian địa chỉ.
Thể hiện cho điểm truy cậ p.

Object Type Kiểu Node cung cấ p thô ng tin về cấ u trú c hay thà nh phầ n
củ a mộ t Object.

Variable Type Mô tả thuộ c tính củ a biến hoặ c kiểu dữ liệu đượ c tìm thấ y
trong cá c Node kiểu Variable

Reference Kiểu Node nà y có thể xá c định cá c quan hệ tham chiếu


Type giữ a cá c Node

DataType Kiểu này mô tả cá c thà nh phầ n củ a giá trị trong mộ t biến

Bả ng 3. 1: Bả ng liệt kê cá c kiểu Node cơ bả n

3.1.2. Namespaces, NodeID và Node Attributes

Namespaces và NodeID

Mỗ i Node trong OPC UA Address Space đều đượ c định danh bở i NodeID;
NodeID đượ c tạ o thà nh tự mộ t NameSpace để phâ n biệt NodeID vớ i cá c hệ
thố ng khá c nhau. NodeID có thể là mộ t số , chuỗ i tên.

13
Hình bên dướ i giả i thích cấ u trú c củ a mộ t NodeID:

Hình 3. 2: Cấ u trú c củ a mộ t NodeID


STT. Mô tả

1. Namespace index

2. Kiểu củ a Node ID (s= string, i=numeric, g= GUID)

3. ID

Bả ng 3. 2: Mô tả cấ u trú c củ a mộ t NodeID
Node Attributes là mộ t danh sá ch cá c thuộ c tính củ a mộ t Node. Từ đó có thể
biết đượ c cụ thể cá c thà nh phầ n tạ o ra Node đó .

o NodeID: địa chỉ củ a Node.


o Display Name: Tên Node hiển thị trên Address Space.
o Browse Name: Tên Node hiển thị qua code, chứ a Namspace.
o Description: Mô tả thô ng tin củ a Node.
o Value: Giá trị củ a Node.
o Datatype: Kiểu dữ liệu củ a Node.
o Value Rank: Cho biết gá i trị củ a Node có thể mở rộ ng hay khô ng.
o Access Level: Mứ c độ truy cậ p củ a Node.
3.2. Giao diện để kết nối tới OPC UA Server Address Space

Kênh giao tiếp và đối tượng ứng dụng

Hình 3.3 cho thấ y cá c đố i tượ ng khá c nhau có thể đượ c tạ o ra trong quá
trình trao đổ i dữ liệu giữ a má y khá ch và má y chủ OPC. Cá c đố i tượ ng đượ c mô
tả ở bả ng 3.3

14
Hình 3. 3: Cá c đố i tượ ng đượ c tạ o ra khi trao đổ i dữ liệu
Đố i tượ ng Mô tả

Secure Kênh giao tiếp an toà n đượ c thự c hiện trong ngă n xếp
Channel OPC UA. Cá c đố i tượ ng ở cấ p độ ứ ng dụ ng có thể tồ n tạ i
độ c lậ p. Tuy nhiên, chú ng có thể đượ c tạ o, sử dụ ng hoặ c
thay đổ i trong ngữ cả nh củ a mộ t kênh an toà n. Nếu kênh
an toà n mớ i đượ c thiết lậ p sau khi kết nố i bị giá n đoạ n
nó phả i đượ c chỉ định cho phiên ở câ p độ ứ ng dụ ng.

Session Session trong má y chủ là kết nố i logic giữ a má y khá ch và


má y chủ OPC UA. Nó chứ a thô ng tin ngườ i dù ng và cà i
đặ t ngô n ngữ cho kết nố i. Session bị xó a khỏ i má y chủ
nếu khô ng nhậ n đượ c cuộ c gọ i nà o trong thờ i gian chờ .
Thờ i gian chờ đượ c chỉ định bở i khá ch hàng. Session
đượ c liên kết vớ i mộ t kênh an toà n nhưng có thể đượ c
chỉ định mộ t kênh bả o mậ t mớ i nếu giao tiếp bị giá n
đoạ n.

Subscription Đượ c tạ o ra bở i Client ở nhó m Monitored Items.


Monitored Items nhằ mmụ c đích giá m sá t việc thay đổ i
giá trị và cá c sự kiện đượ c nhậ n và o Items đó .

Bả ng 3. 3: Cá c đố i tượ ng có thể tạ o ra khi trao đổ i dữ liệu

15
Để thà nh lậ p kết nố i giữ a Client và Server, OPC UA sử dụ ng cá c phương thứ c
sau:

Phương thứ c Mô tả

OpenSecureChanne Mở mộ t kênh giao tiếp an toà n giữ a Client và Server.


l Cá c yếu tố cầ n thiết để mở bao gồ m: Server URL,
certificate và security setting.

CreateSession Tạ o mộ t Session nằ m trong kênh an toà n.

ActivateSession Kích hoạ t bằ ng cá ch gử i user authentication và


language setting.

CloseSession Đó ng sessiontrong kênh an toà n đó , đượ c thự c hiện


khi có lệnh hoặ c hết thờ i gian kết nố i.

Bả ng 3. 4: Cá c phương phá p tuầ n tự tạ o và đó ng kết nố i giữ a client và server


Cá c phương thứ c củ a Session đượ c phép sử dụ ng đượ c mô tả ở bả ng 3.5.

Phương thứ c Mô tả

Browse Cung cấ p danh sá ch cá c nú t có thể đượ c lấ y từ nú t


bắ t đầ u thô ng qua tham chiếu. Số lượ ng cá c nú t có
thể bị hạ n chế bở i cá c bộ lọ c. Danh sá ch Node đượ c
thể hiện dướ i dạ ng câ y.

Read Cho phép đọ c toà n bộ thuộ c tính củ a cá c Node.


Chú ng ta có thể biết đượ c Datatype và Value củ a
Node thô ng qua phương thứ c này.

Write Cho phép ghi mộ t số thuộ c tính củ a Node. Việc này


chú ng ta có thể thay đổ i thuộ c tính củ a Node thô ng
qua phương thứ c này. Vớ i mộ t số thuộ c tính bị hạ n
chế, nếu server cho phép, chú ng ta cũ ng có thể dù ng

16
phương thứ c này để ghi.

CreateSubscriptio Đă ng ký nhậ n mộ t haowjc nhiều sự thay đổ i dữ liệu


n hay sự kiện củ a Node. Việc đă ng ký đượ c sử dụ ng
chủ yếu để phâ n nhó m cá c thô ng tin cầ n theo dõ i. Tấ t
cả dữ liệu đều đượ c chuyển đi dướ i dạ ng gó i tin
trong mộ t chu kỳ nhấ t định.

DeleteSubscription Xó a đă ng ký nhậ n mộ t haowjc nhiều sự thay đổ i dữ


liệu hay sự kiện củ a Node.

Bả ng 3. 5: Cá c phương phá p cho thể thô ng qua Session để giao tiếp


Cá c phương phá p củ a đố i tượ ng đă ng ký:

Phương thứ c Mô tả

ModifySubscription Thay đổ i cà i đặ t củ a đă ng ký, chẳ ng hạ n như ví


dụ : khoả ng thờ i gian xuấ t bả n trong đó dữ liệu
mớ i cho khá ch hà ng đượ c thu thậ p và cù ng gử i.

CreateMonitoredItems Tạ o mộ t danh sá ch cá c mụ c đượ c theo dõ i trong


mộ t thuê bao. Mộ t mụ c đượ c giá m sá t đượ c sử
dụ ng để theo dõ i giá trị củ a mộ t biến hoặ c để
theo dõ i cá c thô ng điệp sự kiện. Cả hai loạ i mụ c
đượ c giá m sá t có thể đượ c kết hợ p vớ i phương
thứ c nà y trong mộ t cuộ c gọ i. Trong ứ ng dụ ng
nà y, chỉ cá c thay đổ i dữ liệu đượ c theo dõ i.

ModifyMonitoredItems Thay đổ i cà i đặ t củ a mộ t danh sá ch cá c đượ c


theo dõ i, chẳ ng hạ n như ví dụ : Khoả ng thờ i gian
lấ y mẫ u để theo dõ i thay đổ i giá trị.

DeleteMonitoredItems Xó a mộ t danh sá ch cá c mụ c đượ c theo dõ i trong


mộ t đă ng ký

17
Publish Phương thứ c chuyển cá c gó i dữ liệu cho đă ng ký
vớ i cá c thay đổ i giá trị và thô ng bá o sự kiện
trong khoả ng xuấ t bả n. Phương phá p nà y khô ng
thể nhìn thấ y trong Client API. Chứ c nă ng ở đó
đượ c thự c hiện là gọ i lạ i cho ứ ng dụ ng má y
khá ch.

Bả ng 3. 6: Cá c phương phá p quan trọ ng nhấ t củ a giao diện OPC UA liên quan
đến đă ng ký
3.3. Giao thức và phương thức bảo mật

Synchronous Calls và Asynchronous Calls

Trong OPC UA, tấ t cả yêu cầ u gử i tớ i Server đều ở dạ ng Asynchronous Calls.


Khô ng có quá nhiều sự khá c biệt giữ a hai giao thứ c. Khi tin nhắ n đượ c gử i và o
mạ ng internet, sẽ có nhữ ng phả n hồ i khô ng đồ ng bộ sẽ đượ c gử i về cá c Client.
Mỗ i lầ n yêu cầ u đượ c gử i tớ i, nó sẽ gử i và o trong Stack để chờ cuộ c gọ i phả n
hồ i hoặ c hủ y khi hết thờ i gian. Có mộ t ưu điểm khi sử dụ ng OPC UA đó là thờ i
gian chờ có thể điều chỉnh đượ c, đó là sự khá c biệt so vớ i cá c thế hệ OPC trướ c
đó .

Hình 3. 4: Giao thứ c đồ ng bộ và khô ng đồ ng bộ giao tiếp bằ ng OPC UA

18
Hình 3. 5: Giao thứ c đồ ng bộ và khô ng đồ ng bộ giao tiếp bằ ng OPC DA
Lớp bảo mật

Hình 3. 6: Lớ p bả o mậ t
Lớ p Mô tả

Socket Ở cấ p độ Socket, bả o mậ t định hướ ng kết nố i củ a kết nố i


ổ cắ m thô ng qua Secure Socket Layer (SSL) hoặ c thô ng
qua Virtual Private Network (VPN) có thể đượ c sử dụ ng
bổ sung hoặ c thay thế cho kênh bả o mậ t.

SecureChanne Ở cấ p độ SecureChannel, xá c thự c lẫ n nhau củ a cá c ứ ng


l dụ ng và bả o mậ t dự a trên thô ng bá o củ a giao tiếp đượ c
thự c hiện. Mỗ i tin nhắ n đượ c ký và mã hó a để đả m bả o
tính toà n vẹn và bí mậ t củ a cá c tin nhắ n. Cơ sở củ a cá c cơ
chế nà y là cá c chứ ng chỉ xá c định duy nhấ t cá c ứ ng dụ ng
dự a trên hệ thố ng cơ sở hạ tầ ng khó a cô ng khai (PKI).
Trao đổ i cá c chứ ng chỉ này như mộ t bướ c quan trọ ng
trong cấ u hình bả o mậ t đượ c mô tả trong phầ n tiếp theo.

19
Session Trên cấ p độ Session, xá c thự c ngườ i dù ng đượ c thự c
hiện.

Bả ng 3. 7: Mô tả cá c lớ p bả o mậ t
Cơ chế bảo mật và trao đổi chứng chỉ

Tù y và o như cầ u bả o mậ t củ a ngườ i dung, OPC UA có nhữ ng cơ chế bả o mậ t


đượ c thể hiện như sau:

Security Desscription
Options

None- Khô ng sử dụ ng kênh bả o mậ t

Security Policy Basic128Rsa15- Đặ t cá c thuậ t toá n bả o mậ t

Basic256- Đặ t cá c thuậ t toá n bả o mậ t vớ i độ dà i khó a


nhiều hơn

Message None- Tin nhắn khô ng bả o mậ t


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

User Anonymous- Xá c thự c ngườ i dung khô ng cầ n thiết


Authentication User Password- Tá c thự c ngườ i dung bằ ng tên đă ng nhậ p

và mậ t khẩ u

Certificate- Xá c thự c ngườ i dung bằ ng chứ ng chỉ

Bả ng 3. 8: Nhữ ng cơ chế bả o mậ t

20
Trao đổi chứng chỉ giữa server và client

Hình 3. 7: Trao đổ i chứ ng chỉ giữ a client và server


STT. Mô tả

1. Khi thiết lậ p kết nố i vớ i má y chủ (session.create), má y khá ch nhậ n


đượ c chứ ng chỉ má y chủ thô ng qua điểm cuố i má y chủ .

2. Chương trình khá ch hàng sau đó có thể quyết định cá ch xử lý chứ ng


chỉ: từ chố i hoặ c chấ p nhậ n.

3. Trong cù ng mộ t quy trình, má y khá ch gử i chứ ng chỉ củ a nó đến má y


chủ . Má y chủ từ chố i chứ ng chỉ lú c đầ u và sau đó lưu trữ nó trong
thư mụ c từ chố i.

4. Do đó , chứ ng chỉ má y khá ch phả i đượ c quả n trị viên chấ p nhậ n thủ
cô ng trên má y chủ . Trong hầ u hết cá c trườ ng hợ p, điều nà y đượ c
thự c hiện bở i mộ t quả n trị viên sao chép chứ ng chỉ má y khá ch từ
thư mụ c từ chố i và o mộ t thư mụ c đá ng tin cậ y.

Bả ng 3. 9: Mô tả quá trình trao đổ i chứ ng chỉ giữ a client và server

21
Chương 4: XÂY DỰNG HỆ THỐNG GIÁM SÁT VỚI THIẾT BỊ SIMATIC
RTU3031C VÀ CÁC CẢM BIẾN

4.1. Cấu trúc hệ thống của luận văn

Hình 4. 1: Cấ u trú c hệ thố ng củ a luậ n vă n

22
Hệ thố ng củ a luậ n văn chủ yếu gồ m 3 phầ n: OPC UA Server (Cloud), OPC UA
Client (App, Web), thiết bị RTU3031C SIMATIC.

OPC UA Server đó ng vai trò phá t cá c địa chỉ, là nơi trung gian để cá c client khá c
giao tiếp vớ i nhau cũ ng như việc cung cấ p dịch vụ truy cậ p, trao đổ i dữ liệu và o
server cho cá c client.

Thiết bị RTU3031C SIMATIC đó ng vai trò quan trọ ng trong việc xâ y dự ng hệ


thố ng giá m sá t và kết nố i vớ i TeleControl Server Basic thô ng qua mạ ng WAN.

OPC UA Client (App, Web) đó ng vai trò là client để kết nố i lên server và có chứ c
năng giá m sá t dữ liệu hệ thố ng và giao tiếp vớ i cá c thiết bị client khá c.

Chuẩ n OPC UA đó ng vai trò là chuẩ n giao tiếp cho tấ t cả cá c thiết bị nó i trên,
vừ a có vai trò gử i dữ liệu lên server, vừ a gử i thô ng tin xuố ng cho client.

4.2. Cấu hình thiết bị SIMATIC RTU3031C

4.2.1. Thiết lập phần cứng

- Chèn thẻ SIM và o thiết bị RTU3031C

- Kết nố i cả m biến á p suấ t thủ y tĩnh dạ ng chìm LH300 và o X40 và X41 (như
hình)

- Kết nố i cá c an-ten và o RTU3031C

- Cung cấ p nguồ n điện: sử dụ ng 2 mô đun pin hoặ c cấ p nguồ n từ 12-24V

23
Hình 4. 2: Sơ đồ kết nố i cả m biến LH300 và nguồ n điện vớ i thiết bị RTU3031C

Hình 4. 3: Hình ả nh thự c tế hệ thố ng giá m sá t

24
4.2.2. Cấu hình

4.2.2.1. Cấu hình chung

1. Kết nố i RTU3031C vớ i má y tính thô ng qua cá p mạ ng

2. Đổ i địa chỉ IP trên má y tính để cù ng lớ p mạ ng vớ i RTU3031C

3. Khở i độ ng RTU3031C bằ ng cá ch nhấ n nú t WKUP/RESET trên thiết bị.

4. Trên trình duyệt, mở má y chủ web củ a RTU3031C tạ i địa chỉ “192.168.0.3”

Hình 4. 4: Nhậ p địa chỉ má y chủ web RTU3031C

Hình 4. 5: Đă ng nhậ p
5. Đă ng nhậ p bằ ng username “admin” và password “admin”

6. Sau đó đổ i password mớ i.

25
Hình 4. 6: Thay đổ i mậ t khẩ u
7. Và o mụ c “System” để cà i đặ t vị trí hiện tạ i cho thiết bị RTU3031C

o Latitude là vĩ độ
o Longitude là kinh độ

Hình 4. 7: Cà i đặ t vị trí cho thiết bị


8. Mở mụ c “System time” để cà i đặ t thờ i gian cho thiết bị

26
Hình 4. 8: Cà i đặ t thờ i gian
9. Chuyển đến thư mụ c “WAN” và mở cử a sổ “Mobile wireless setting” để kích
hoạ t chứ c năng di độ ng, nhậ p châ n thẻ SIM, kích hoạ t dịch vụ dữ liệu di độ ng,

27
Hình 4. 9: Kích hoạ t chế độ di độ ng cho thiết bị
4.2.2.2. Cấu hình gửi/nhận SMS/email

1. Mở mụ c “Users/groups”, thêm cá c thô ng tin như tên, số điện thoạ i, địa chỉ.

Hình 4. 10: Cấ u hình chứ c nă ng gử i, nhậ n SMS/email

28
2. Chuyển sang cử a sổ “Recipient groups”, thêm mộ t nhó m mớ i và cá c thô ng tin
cầ n thiết.

Hình 4. 11: Thêm thô ng tin cá nhâ n nhậ n SMS/email


3. Mở mụ c “WAN” sau đó chọ n cử a sổ “SMS”, xá c nhậ n cho phép gử i tin nhắ n.

Hình 4. 12: Cho phép gử i tin nhắ n


4. Mở mụ c “Service”, chọ n “Active”, sau đó nhậ p cá i thô ng tin về email mà
RTU3031C dù ng để gử i mail, ở đâ y ta phả i sử dụ ng email đã đượ c kích hoạ t
STMP server.

29
Hình 4. 13: Nhậ p mail RTU3031C dù ng để gử i email
4.2.2.3. Cấu hình chế độ vận hành

1. Mở mụ c “Operating Mode”, ta nhậ p chu kỳ chế độ cậ p nhậ t, đặ t chế độ giao


tiếp thà nh “Always connected”. Trong luậ n vă n nà y, chế độ sleep mode đã bị tắ t
và chứ c năng đá nh thứ c thiết bị RTU3031C bằ ng SMS đã bị vô hiệu hó a.

30
Hình 4. 14: Cấ u hình chế độ vậ n hà nh
4.2.2.4. Cấu hình chức năng GPS cho RTU3031C

1. Mở mụ c “GPS”, chọ n cử a sổ “General”, ta chọ n “Active” và “GPS always


active” và chon thờ i gian cậ p nhậ t vị trí. Sau đó ta nhấ n “Apply”

31
Hình 4. 15: Bậ t chế độ GPS cho thiết bị
2. Để có thể gử i vị trí hiện tạ i củ a thiết bị RTU3031C lên TeleControl Server
Basic, ta và o mụ c “Tags” để tạ o ra cá c tag cho GPS như Latitude, Longitude,
Time of last position.

Ta chọ n “Active”, sau đó ta chọ n “Latitude” tag, đặ t tên cho tag, và nhấ n “Apply”

Hình 4. 16: Tạ o tag Latitude

32
Là m tương tự cho cá c tag Longitude, Time of the last position, visible Satellites

Hình 4. 17: Cá c tag đã tạ o cho GPS


4.2.2.5. Cấu hình tạo các tags cho chương trình trên RTU3031C

Trướ c khi viết chương trình cho RTU3031C, ta sẽ tạ o ra cá c input, output, và


memory bits.

1. Mở mụ c “Tag”, sau đó mở cử a sổ “Digital Inputs”, đầ u tiên ta chọ n input 0,


sau đó chọ n “Active”, nhậ p tên, chọ n “type”, chọ n chu kì cậ p nhậ t lú c RTU3031C
trong chế độ ngủ (nếu cầ n). Trong luậ n vă n nà y ta tạ o mộ t DI có tên là
“Enable_Read”.

Hình 4. 18: Tạ o DI

33
2. Ta chuyển sang cử a sổ “Digital Outputs”, ta tạ o 2 DO có tên “Level_Light” và
“GPS_Light”. 2DO là 2 ngõ ra điều khiển đền cả nh bá o cho lưu lượ ng và vị trí.

Ở đâ y, ta chỉ cầ n nhậ p tên cho DO sau đó nhấ n “Apply”

Hình 4. 19: Tạ o DO
3. Tiếp theo ta chuyển sang cử a sổ “Digital memory bits”, ở đâ y ta tạ o 2 DM

o “Enable_Read_M”: giả lậ p tín hiệu cả m biến để cho phép RTU đọ c tín hiệu
analog từ châ n AI0.
o “Level_90”: tín hiệu kích khi mự c nướ c ra ngoà i vù ng an toà n.

Hình 4. 20: Tạ o DM

34
4. Ta chuyển sang cử a sổ “Analog inputs”, ta tạ o 1 AI có tên là “Level”: thô ng số
đượ c trả về từ cả m biến LH300.

Chọ n tầ m đo cho cả m biến, ở đâ y ta sử dụ ng cả m biến LH300 nên ta chọ n


“Current (2 wire-connector)” và tín hiệu ngõ ra là dò ng điện (4-20mA)

Ta chọ n thờ i gian cậ p nhậ t củ a cả m biến, lưu ý rằ ng (Setting time + Integration


time) * Smoothing khô ng đượ c dà i hơn thờ i gian cậ p nhậ t củ a thiết bị
RTU3031C (vớ i luậ n vă n này ta đang chọ n 1s).

Tiếp theo ta nhậ p tầ m đo cụ thể củ a cả m biến LH300:

o Sensor value (interpolation point 1): 4.00 mA


o Process value (interpolation point 1): 0 m
o Sensor value (interpolation point 2): 20mA
o Process value (interpolation point 2): 5m
Ở mụ c “Program-controlled reading”, ta chọ n tín hiệu cho phép là
“Enable_Read_M” (DM0). Khi có tín hiệu nà y ta có thể đọ c đượ c giá trị củ a lưu
lượ ng, việc sử dụ ng tín hiệu nà y giú p ta có thể tiết kiệm pin cho thiết pin
RTU3031C.

Hình 4. 21: Tạ o AI

35
5. Chuyển sang cử a sổ “Analog memory bits”, ta tạ o 4 AM có tên là “Level_Max”,
“Level_Percent”, “Distance”, “Temperature”.

Ta chọ n và o ô “Active”, nhậ p tên cho tag chọ n type, sau đó nhấ n “Apply”.

o Ở đâ y, ta nhậ p Level_Max giá trị khở i tạ o là 0.3 (m): lưu lượ ng tố i đacủ a
bồ n chứ a
o “Distance”: khoả ng cá ch từ vị trí hiện tạ i củ a thiết bị vớ i điểm đặ t ban
đầ u.
o “Level_Percent”: tỉ lệ củ a lưu lượ ng khi chia thô ng số trả về từ LH300
cho “Level_Max”.
o “Temperature”: tín hiệu giả lậ p nhiệt độ .

Hình 4. 22: Tạ o AM
4.2.2.6. Cấu hình cho văn bản SMS/email

1. Trong thư mụ c “Tags”, ta mở cử a sổ “Texts”

2. Thêm mộ t vă n bả n để gử i SMS/email khi lưu lượ ng nướ c xuố ng thấ p ngưỡ ng


cho phép.

o Tên: Level_Text

36
o Nộ i dung:
o Ngà y: gắ n tag [DATE]
o Thờ i gian: gắ n tag [TIME]"

Hình 4. 23: Tạ o vă n bả n để gử i SMS/email


3. Ta tạ o thêm 1 vă n bả n khá c đượ c xem như tiêu đề củ a email gử i tớ i khi lưu
lượ ng xuố ng dướ i ngưỡ ng cho phép.

37
Hình 4. 24: Tạ o tiêu đề cho vă n bả n
4. Thêm mộ t vă n bả n để gử i SMS/email khi thiết bị ra khỏ i vị trí cho phép.

o Tên: Level_Text
o Nộ i dung:
o Ngà y: gắ n tag [DATE]
o Thờ i gian: gắ n tag [TIME]
5. Tương như trên, ta cũ ng tạ o mộ t tiêu đề cho cả nh bá o này.

4.2.2.7. Viết chương trình cho thiết bị SIMATIC RTU3031C

Chương trình so sá nh lưu lượ ng hiện tạ i và giá trị cho phép

1. Chuyển sang thư mụ c Program

38
Hình 4. 25: Thư mụ c Program
2. Đặ t tên “Level” cho network nà y

3. Thêm mộ t function block mớ i (FB1)

Hình 4. 26: Viết chương trình cho Program


4. Chọ n chứ c nă ng “Division”, trong đó cá c tham số đượ c chọ n như sau:

o Dividend: Level (AI0)


o Divisor: Level_Max (AM0).

39
o Quotient: Level_Percent (AM1)
Khi ta có giá trị củ a Level, ta đem chia cho Level_Max, ta sẽ có đầ u ra là giá trị
Level_Percent

Hình 4. 27: Viết chương trình cho Program


5. Thêm mộ t FB2 mớ i ở dướ i FB1, chọ n chứ c nă ng “Limit value switch”

Trong đó cá c tham số đượ c chọ n như sau:

o Input: Level_Percent (AM1)


o Output: Level_90_Trigger (DM1)
o Limit Value 1: 0.75
o Limit Value 2: 0.8
Ta so sánh giá trị củ a Level_Percent để cho ra tín hiệu Level_90_Trigger là 0 hay
1

40
Hình 4. 28: Viết chương trình cho Program
* Limit Value Switch

Limit value 1 “< Input Signal<” Limit value 2

Mộ t dã y tín hiệu analog đượ c giớ i hạ n từ “Limit Value 1” đến “Limit Value 2” sẽ
đượ c giá m sá t

o Output =1 nếu tín hiệu đầ u và o nằ m trong dã y đượ c giớ i hạ n

Hình 4. 29: Limit Value Switch


o Output = 0 nếu tín hiệu đầ u và o nằ m ngoà i dã y đượ c giớ i hạ n
6. Thêm mộ t function block mớ i (FB3), chọ n chứ c nă ng “Logical AND”

o Input1: Level_90_Trigger (DM1)

41
o Output: Level_Light (DQ0)

Hình 4. 30: Viết chương trình cho Program


Nếu Level_90_Trigger thay đổ i từ 1 về 0 thì đèn Level_Light sẽ sá ng.

Chương trình gử i email

1. Thêm 1 network mớ i, đặ t tên cho network này là “Send E-mail”

Hình 4. 31: Viết chương trình cho Program

42
2. Thêm mộ t function block mớ i (FB1), chọ n chứ c nă ng nă ng “Send e-mail”,
phầ n “Comment” như mộ t lờ i giả i thích cho function block (thêm và o nếu cầ n)

o Trigger: Level_90_Percent (DM1)


o Send immediately: True
o Recipient: Administrator Email
o Text: Level_Text (đượ c tạ o ra trong cử a sổ Texts)
o Subject: Sub_Level_Text
Nếu tín hiệu Level_90_Percent thay đổ i từ 1 về 0 thì email sẽ đượ c gử i về.

Hình 4. 32: Viết chương trình cho Program


Chương trình gử i tin nhắ n SMS

1. Thêm 1 network mớ i, đặ t tên cho network này là “Send SMS”

43
Hình 4. 33: Viết chương trình cho Program
2. Thêm mộ t function block mớ i (FB1), chọ n chứ c nă ng nă ng “Send SMS”,

o Trigger: Level_90_Percent (DM1)


o Send immediately: True
o Recipient: Administrator SMS
o Text: Level_Text (đượ c tạ o ra trong cử a sổ Texts)
Nếu tín hiệu Level_90_Percent thay đổ i từ 1 về 0 thì SMS sẽ đượ c gử i về.

Hình 4. 34: Viết chương trình cho Program

44
Hình 4. 35: Viết chương trình cho Program
Chương trình GPS

1. Thêm 1 network mớ i và đặ t tên là “GPS Position”

Hình 4. 36: Viết chương trình cho Program


2. Thêm mộ t function block mớ i (FB1), chọ n chứ c nă ng nă ng “System location”,

o Output: GPS_Trigger (DM2)


o Distance: Distance (AM2)

45
o Radius (m): 1000

Hình 4. 37: Viết chương trình cho Program


3. Thêm 1 function block mớ i (FB2), chọ n chứ c nă ng “Send SMS” cho FB2

o Trigger: GPS_Trigger (DM2)


o Recipient: Administrator SMS
o Text: GPS_Text
o Send immediately: True

Hình 4. 38: Viết chương trình cho Program

46
4. Thêm 1 function block mớ i (FB3), chọ n chứ c nă ng “Send email” cho FB3

o Trigger: GPS_Trigger (DM2)


o Recipient: Administrator Email
o Text: GPS_Text
o Send immediately: True
o Subject: Sub_GPS_Text

Hình 4. 39: Viết chương trình cho Program

47
4.2.2.8. Cấu hình kết nối đến TeleControl Server

1. Mở mụ c “TeleControl”, di chuyển đến cử a sổ “TeleControl Basic”

Ta tích chọ n “Active”, nhậ p địa chỉ IP tĩnh củ a Telecontrol Server, chọ n
interface là WAN

Hình 4. 40: Cấ u hình kết nố i đến TeleControl Server Basic


2. Sau đó , ta cầ n nhậ p “Project number”, “Station number” và “Telecontrol
password”.

48
Chương 5: THIẾT KẾ CÁC ỨNG DỤNG OPC UA CLIENT

5.1. Tổng quan OPC UA Client

5.1.1 Giới thiệu OPC UA Client

OPC UA Client là mộ t đố i tượ ng logic kết nố i đến OPC UA Server. OPC UA Server
có thể kết nố i tớ i OPC UA Client và đọ c dữ liệu cung cấ p từ Server. Khi OPC UA
Server kết nố i vớ i giao thứ c theo chuẩ n OPC, mỗ i client có thể truy cậ p đến OPC
UA Server và trao đổ i dữ liệu vớ i server cũ ng mộ t đườ ng truyền.

5.1.2. Tính bảo mật

OPC UA có tính bả o mậ t cao đượ c mã hó a dự a và o cấ p quyền và chứ ng thự c, mã


hó a dữ liệu và đố i chiếu chữ kí.

Hình 5. 1: Sơ đồ kết nố i giữ a OPC UA Server và Client


Cấ p quyền và xá c thự c (Authentication and authorization): Khi Client muố n kết
nố i đến Server thì Session đượ c khở i tạ o thô ng qua cá ch thứ c cấ p quyền như
sau:

o Anonymous (non-username; non-password): client sẽ đượ c phép truy


cậ p và o server mà khô ng cầ n cấ p quyền từ phía Server.

49
o User name/password: Client đượ c Server cấ p user name và password
tương ứ ng để truy cậ p đượ c và o Server.
o Certifications: có nhiều kiểu certification, đố i vớ i OPC UA sử dụ ng kiểu
X50. Như vậ y Client muố n truy cậ p và o Server thì Server sẽ cung cấ p 1
file Certificate (.der) và file nà y phả i nằ m trong folder Trusted củ a Client
và về phía Server cũ ng cầ n đưa Certificate củ a Client và o folder Trusted.
Khi dữ liệu đượ c truyền đi từ Server về Client hay chiều ngượ c lạ i, dữ liệu đượ c
mã hó a theo mộ t số phương thứ c sau:

o None- Lowest security, khô ng mã hó a


o Basic128Rsa15- Medium security (128bits)
o Basic256- Medium to high security needs (256 bits).
5.1.3. Cách thức truyền dữ liệu và chức năng cơ bản của Client

Có bố n phương phá p trao đổ i dữ liệu giữ a client và server:

o Đọ c/ghi đồ ng bộ (Synchronous Read/Write)


o Đọ c/ghi bấ t đồ ng bộ (Asynchronous Read/Write)
o Đọ c/ghi dữ liệu đă ng ký trướ c (Registered Read/Write)
o Đă ng ký (Subscription)
Chứ c năng cơ bả n củ a Client

o Browse
o Read/Write
o Methods
o Registered Read/Write
o Subscribe
5.2. Giới thiệu bộ thư viện OPCUA.NET Standard

Nă m 2018, tổ chứ c OPC Foundation đã phá t triển và phá t hà nh bộ thư viện OPC
UA.NET Standard. Bộ thư viện này sử dụ ng ngô n ngữ C# và nền tả ng .NET để

50
lậ p trình. Bộ thư viện nà y vẫ n đượ c tiếp tụ c phá t triển cho đến ngà y nay vớ i
liên tụ c nhiều cậ p nhậ t, thay đổ i trong giao thứ c. Bộ thư viện nà y cho phép
ngườ i dù ng lậ p trình tạ o OPC UA Client chạ y trên nhiều ứ ng dụ ng khá c nhau.

Cá c thư viện đượ c sử dụ ng để lậ p trình trong luậ n vă n:

Thư viện dạ ng dll Mô tả chi tiết

Opc.Ua.Core.dll Thư viện cố t lõ i, chứ a nhữ ng chương trình giao


thứ c cơ bả n củ a chuẩ n OPC UA

Opc.Ua.Client.dll Thư viện để thiết lậ p client, thự c hiện cá c chứ c


nă ng cơ bả n củ a client

Opc.Ua.Configuration.dll Thư viện cấ u hình củ a OPC UA Client. Dù ng cá c


lệnh để cấ u hình client sao cho phù hợ p

Bả ng 5. 1: Cá c thư viện đượ c sử dụ ng trong luậ n văn


5.3. Web OPC UA Client

5.3.1. Giới thiệu

5.3.1.1. Html, Css, Javascript

Hình 5. 2: Chứ c năng củ a JavaScript, CSS, HTML


HTML

HTML là viết tắ t củ a cụ m từ Hypertext Markup Language (tạ m dịch là Ngô n


ngữ đá nh dấ u siêu văn bả n). HTML đượ c sử dụ ng để tạ o và cấ u trú c cá c thà nh

51
phầ n trong web hoặ c ứ ng dụ ng, phâ n chia cá c đoạ n vă n, heading, titles,
blockquotes… và HTML khô ng phả i là ngô n ngữ lậ p trình.

HTML bao gồ m mộ t loạ t cá c mã ngắ n đượ c quả n trị viên trang web nhậ p và o
mộ t tệp vă n bả n, gọ i là cá c tag. Mộ t HTML document khi hoà n thiện sẽ đượ c
lưu dướ i dạ ng đuô i .html hay .htm. Cá c files nà y sau đó sẽ đượ c cá c trình duyệt
web như Google Chrome, Microsoft Edge đọ c hiểu nộ i dung và chuyển chú ng
sang dạ ng văn bả n hiển thị để ngườ i dung có thể xem đượ c nó .

Cá c ưu điểm củ a HTML:

o Cá ch sử dụ ng dễ dà ng.
o Dễ dà ng tích hợ p vớ i nhiều loạ i ngô n ngữ như PHP, Nodejs, …
o Mã nguồ n mở , miễn phí.
o Cá c markup trong HTML ngắ n gọ n, tính đồ ng nhấ t cao.
o Hoạ t độ ng mượ t mà trên phầ n lớ n cá c trình duyệt phổ biến hiện nay.
CSS

CSS là chữ viết tắ t củ a Cascading Style Sheets, nó là mộ t ngô n ngữ đượ c sử


dụ ng để tìm và định dạ ng lạ i cá c phầ n tử đượ c tạ o ra bở i cá c ngô n ngữ đá nh
dấ u (HTML). Nó i ngắ n gọ n hơn là ngô n ngữ tạ o phong cá ch cho trang web. Nếu
HTML đó ng vai trò định dạ ng cá c phầ n tử trên website như việc tạ o ra cá c đoạ n
văn bả n, cá c tiêu đề, bả ng, … thì CSS sẽ giú p chú ng ta có thể them style và o cá c
phầ n tử HTML đó như đổ i bố cụ c, mà u sắ c trang, đổ i mà u chữ , font chữ , ...

Phương thứ c hoạ t độ ng củ a CSS là nó sẽ tìm dự a và o cá c vù ng chọ n, vù ng chọ n


có thể là tên mộ t thẻ HTML, tên mộ t ID, class hay nhiều kiểu khá c. Sau đó là nó
sẽ á p dụ ng cá c thuộ c tính cầ n thay đổ i lên vù ng chọ n đó . Mố i tương quan giữ a
HTML và CSS rấ t mậ t thiết. HTML là ngô n ngữ markup (nền tả ng củ a site) và
CSS định hình phong cá ch (tấ t cả nhữ ng gì tạ o nên giao diện website), chú ng
khô ng thể tá ch rờ i.

Javascript

52
Javascript là mộ t ngô n ngữ lậ p trình kịch bả n dự a và o đố i tượ ng phá t triển có
sẵ n hoặ c tự định nghĩa. Nhiệm vụ củ a Javascript là xử lý nhữ ng đố i tượ ng
HTML trên trình duyệt. Nó có thể can thiệp vớ i cá c hà nh độ ng như thêm, xó a,
sử a cá c thuộ c tính CSS và cá c thẻ HTML mộ t cá ch dễ dà ng. Hay nó i cá ch khá c,
Javascript là mộ t ngô n ngữ lậ p trình nên trình duyệt ở phía client. Nếu việc xâ y
dự ng mộ t trang web giố ng như thiết kế mộ t robot, thì HTML chính là khung
sườ n củ a robot, CSS là trang trí hình dạ ng củ a robot và Javascript giú p tạ o nên
cá c chuyển độ ng, cá c hiệu ứ ng cho robot. Hiện nay, Javascript đang ngà y cà ng
trở nên phổ biến trong thế giớ i lậ p trình.

5.3.1.2. Asp.Net Web Forms

ASP.NET Web Forms là mộ t phầ n trong ứ ng dụ ng web ASP.NET, đượ c bao gồ m


trong Visual Studio. Cá c biểu mẫ u web đượ c tạ o thà nh từ hai thà nh phầ n: phầ n
trự c quan (tệp ASPX) và mã phía sau biểu mẫ u, nằ m trong mộ t tệp lớ p riêng
biệt. Web Forms đượ c viết bằ ng cá ch sử dụ ng mộ t sự kết hợ p củ a HTML,
Server Control và Server code.

Ưu điểm củ a ASP.NET Web Forms:

o Hỗ trợ mộ t mô hình sự kiện bả o tồ n trạ ng thá i trên HTTP, có lợ i cho việc


phá t triển ứ ng dụ ng web củ a doanh nghiệp kinh doanh.
o Dễ dà ng kéo và thả Server Controls để tạ o ra giao diện trang, sau đó có
thể thiết lậ p thuộ c tính (Properties), phương thứ c (methods) và cá c sự
kiện (event) cho cá c điều khiển (Control).
o Quả n lý thô ng tin trạ ng thá i dễ dà ng.
o Ít phứ c tạ p để phá t triển ứ ng dụ ng, vì cá c thà nh phầ n củ a ASP.NET Web
Forms (lớ p trang, điều khiển) đượ c tích hợ p chặ t chẽ và thương ít yêu
cầ u về mã hơn mô hình MVC.
o Hỗ trợ cho sử dụ ng Ajax, sự kiện nếu khô ng biết về Javascript.
o Tá ch biệt HTML và mã giao diện ngườ i dù ng đến ứ ng dụ ng logic.

53
o Mộ t bộ phong phú Server Control cho common tasks (chứ c nă ng phổ
biến, nhiệm vụ ) bao gồ m cả truy cậ p dữ liệu (data access).
5.3.1.3. Lưu trữ dữ liệu SQL Database

SQL Server hay cò n gọ i là Microsoft SQL Server, viết tắ t là MS SQL. Đâ y là mộ t


phầ n mềm đượ c phá t triển bở i Microsoft dung để lưu trữ dữ liệu dự a trên
chuẩ n RDBMS, và nó cũ ng là mộ t hệ quả n trị cơ sở dữ liệu quan hệ tương đố i
(ORDBMS). SQL Server cung cấ p đầ y đủ cô ng cụ để quả n lý, từ giao diện GUI
cho đến việc sử dụ ng ngô n ngữ truy vấn SQL. Ngoà i ra điểm mạ nh củ a nó là
Micosoft có nhiều nền tả ng kết hợ p hoà n hả o vớ i SQL Server như ASP.NET,
Winform.

Trong luậ n vă n nà y, SQL Server đượ c tạ o trự c tiếp trên Visual Studio vớ i mụ c
đích:

o Lưu trữ cơ sở dữ liệu


o Cậ p nhậ t cơ sở dữ liệu
o Duy trì cơ sở dữ liệu
o Truy, xuấ t cơ sở dữ liệu
o Dù ng cơ sở dữ liệu để vẽ biểu đồ
5.3.2. Thiết kế Web OPC UA Client

5.3.2.1. Các chức năng chính

Trong luậ n vă n nà y, ta đang xâ y dự ng client vớ i mụ c đích giá m sá t nên chứ c


năng chính củ a web bao gồ m:

o Kết nố i vớ i cá c server vớ i cá c loạ i mã hó a, bả o mậ t khá c nhau.


o Đọ c cá c thuộ c tính cơ bả n cầ n thiết củ a cá c Node từ server (Browse).
o Theo dõ i và quả n lý đượ c cá c giá trị Node theo sự thay đổ i củ a server
theo thờ i gian (Subscribe).

54
o Giá m sá t hệ thố ng đượ c xâ y dự ng bằ ng thiết bị SIMATIC RTU3031C và
cá c cả m biến.
o Vẽ biểu đồ lưu lượ ng và nhiệt độ .
o Theo dõ i vị trí hiệu tạ i củ a thiết bị thô ng qua bả n đồ .
5.3.2.2. Chức năng Connect

Để kết nố i đến đượ c vớ i Server, đầ u tiên chú ng ta cầ n nhậ p địa chỉ Url củ a
server OPC UA, sau đó ta nhấn nú t “Connect”. Nếu server có user/password thì
ta phả i nhậ p đầ y đủ và o. Sau khi nhấ n nú t “Connect”, client sẽ tạ o mộ t
certificate gử i lên server để server xá c thự c, nếu server chấ p nhậ n, client sẽ tạ o
mộ t session để giữ đườ ng truyền kết nố i đến server cho việc trao đổ i dữ liệu.

Code
protected void Connect_Click(object sender, EventArgs e)
{
// Hook up to the KeepAlive event
myClientHelperAPI.KeepAliveNotification += new
KeepAliveEventHandler(Notification_KeepAlive);
string endpointUrl = discoveryTextBox.Text;
// Connect to the server
try
{
ClientScript.RegisterStartupScript(this.GetType(), "Success",
"messtimer('success','Connect Successful')", true);
// Connect with URL from Server URL text box
myClientHelperAPI.Connect(endpointUrl, SecurityPolicies.None,
MessageSecurityMode.None, false, "", "").Wait();
toggleButtons(true);
mySession= myClientHelperAPI.Session;
}
catch (Exception ex)
{
//ném lỗ i
ClientScript.RegisterStartupScript(this.GetType(), "Alert", "mess('error','Oops...'," +
ex.ToString() + ")", true);
return;
}
}

Khi kết nố i thà nh cô ng, cá c thô ng tin kết nố i đến server như thờ i gian, Url, … sẽ
đượ c hiểu thị ở bả ng Status.

55
Hình 5. 3: Biểu đồ tuầ n tự Connect
STT Mô tả

1. Connect_Click khi đượ c gọ i trên Webform thì sẽ thà nh lậ p kết nố i đến


server. Vì để đơn giả n nên việc tạ o certificate đượ c tự độ ng. Ở bướ c
nà y Connect sẽ đượ c gọ i để đả m bả o rằng sự kết nố i đến server đã
đượ c tạ o vớ i url cung cấp và giữ kết nố i

2. Thô ng qua việc gọ i Disconnect_Click trên webform, nếu đang tồ n tạ i


kết nố i, hà m nà y sẽ gọ i hà m Disconnect trong thư viện OPCUA. Việc
nà y sẽ chấ m dứ t việc kết nố i đến server

Bả ng 5. 2: Mô tả cá c bướ c Connect

56
5.3.2.3. Chức năng Browse

Khi ta và o trang Browse, hà m Browse sẽ dự a và o cá c node gố c, thô ng tin mô tả


củ a node đó để tiếp tụ c browse cho node tiếp theo kèm theo thô ng tin củ a node
đó . Việc browse node đượ c thự c hiện theo vò ng lặ p.

Code

public ReferenceDescriptionCollection BrowseRoot()


{
//Create a collection for the browse results
ReferenceDescriptionCollection referenceDescriptionCollection;
//Create a continuationPoint
byte[] continuationPoint;
try
{
//Browse the RootFolder for variables, objects and methods
mSession.Browse(null, null, ObjectIds.RootFolder, 0u, BrowseDirection.Forward,
ReferenceTypeIds.HierarchicalReferences, true, (uint)NodeClass.Variable |
(uint)NodeClass.Object | (uint)NodeClass.Method, out continuationPoint, out
referenceDescriptionCollection);
return referenceDescriptionCollection;
}
catch (Exception e)
{
//handle Exception here
throw e;
}
}

5.3.2.4. Chức năng Subscribe

Chứ c năng nà y giú p client có thể giá m sá t sự thay đổ i giá trị củ a Node theo thờ i
gian thự c. Khi ta cung cấ p cho client tên NodeID, hà m Monitor dù ng để tạ o mộ t
session theo dõ i Node dự a và o chu kỳ lấ y mẫ u, chu kỳ là m mớ i.

57
Code

public MonitoredItem AddMonitoredItem(Subscription subscription, string nodeIdString,


string itemName, int samplingInterval)
{
//Tạ o đố i tượ ng giá m sá t
MonitoredItem monitoredItem = new MonitoredItem();
monitoredItem.DisplayName = itemName;
monitoredItem.StartNodeId = nodeIdString;
monitoredItem.AttributeId = Attributes.Value;
monitoredItem.MonitoringMode = MonitoringMode.Reporting;
monitoredItem.SamplingInterval = samplingInterval;
monitoredItem.QueueSize = 1;
monitoredItem.DiscardOldest = true;
//Tạ o sự kiện theo dõ i thay đổ i
monitoredItem.Notification += new
MonitoredItemNotificationEventHandler(Notification_MonitoredItem);
try
{
subscription.AddItem(monitoredItem);
//Chấ p nhậ n giá m sá t.
subscription.ApplyChanges();
return monitoredItem;
}
catch (Exception e)
{
//ném lỗ i nếu có
throw e;
}
}

Đoạ n code dướ i đâ y cho client biết khi có sự thay đổ i giá trị mớ i từ server, hà m
thô ng bá o sẽ thu nhậ p giá trị mớ i củ a Node trong biến notification. Sau khi có
đượ c giá trị mớ i, giá trị nà y sẽ đượ c cậ p nhậ t và o database SQL Server củ a
ASP.NET để có thể truy xuấ t ra cá c định dạ ng khá c nhau nhưng bả ng dữ liệu,
biểu đồ .

Code

private void Notification_MonitoredEventItem(Session session, NotificationEventArgs e)


{
NotificationMessage message = e.NotificationMessage;
if (message.NotificationData.Count == 0)
{
return;
}
ItemEventNotification(session, e);
}

58
Hình 5. 4: Biểu đồ tuầ n tự Subscribe
ST Mô tả
T

1. Khi nhấ n và o Subscribe_Click, thư viện OPC UA Client sẽ gọ i chứ c


nă ng Subscribe()

2. Trong quá trình xử lý, đố i tượ ng subscription đượ c tạ o ra, sau đó


hà m Create sẽ đượ c tạ o trên đố i tượ ng subscription

3. Ở bướ c tiếp theo, AddMonitoredItem sẽ đượ c gọ i. Kể từ lú c nà y, khi


giá trị thay đổ i và đượ c nhậ n bở i server sẽ đượ c cậ p nhậ t liên tụ c.

4. Khi nhấ n Unsubscribe_Click(), chứ c nă ng RemoveSubscription() sẽ


đượ c gọ i ra và xó a đi Node vừ a đă ng kí

Bả ng 5. 3: Mô tả cá c bướ c đă ng kí cho 1 Node

59
5.4. App OPC UA Client

5.4.1. Giới thiệu về Xamarin

Xamarin đượ c xâ y dự ng và o thá ng 5 nă m 2011 bở i cá c kỹ sư đã tạ o ra Mono,


Mono cho Android và MonoTouch, mụ c đích để triển khai nhiều nền tả ng củ a
Common Language Infrastructure (CLI) và Common Language Specifications
(thườ ng đượ c gọ i là Microsoft.NET). Vớ i cơ sở mã nguồ n mở cử a C#, cá c nhà
phá t triển có thể sử dụ ng cá c cô ng cụ Xamarin để viết cá c ứ ng dụ ng Android,
iOS và Windows vớ i giao diện ngườ i dù ng và chia sẻ code trên nhiều nền tả ng,
bao gồ m Windows và macOS.

Xamarin có 2 cá ch tiếp cậ n, chú ng ta có thể tạ o ra project cho riêng Android,


iOS, Windows (cá ch truyền thố ng). Nhưng khi dù ng Xamarin Forms, ta có thể
tạ o 1 project bao gồ m cả Android, iOS, Windows.

Hình 5. 5: Cá ch tiếp cậ n trên Xamarin


5.4.2. Cấu hình và các ứng dụng nền tảng trên Xamarin

Trướ c hết ta cầ n tạ o mộ t project Xamarin bao gồ m 2 nền tả ng là Android, iOS.


Tuy có thể chạ y đượ c trên nhiều nền tả ng nhưng hạ n chế lớ n nhấ t củ a Xamarin

60
là ngườ i dù ng khô ng có đầ y đủ quyền điều khiển trên code sẽ chạ y trên thiết bị,
code phả i phù hợ p trên mọ i nền tả ng.

Trong đó có 2 cá ch viết Xamarin là .NET Standard và Shared Project

o .NET Standard: là mộ t đặ c tả bao gồ m nhữ ng API bạ n có thể sử dụ ng và


đượ c hiện thự c trên tấ t cả mô i trườ ng runtime. Nó cũ ng chứ a nhữ ng API
chung từ .NET runtime như PCL nhưng nhữ ng API này đượ c Microsoft
chắ t lọ c lạ i, có thể chạ y trên tấ t cả mô i trườ ng runtime hiện thự c .NET
Standard. PCL chỉ có chạ y giớ i hạ n vớ i nhữ ng nền tả ng nó đượ c chọ n lú c
tạ o PCL mà thô i. Mụ c đích hướ ng đến củ a .NET Standard là cho phép
code chạ y trong nhiều mô i trườ ng runtime khá c nhau trong hệ sinh
thá i .NET
o Shared Project: Cho phép bạ n viết code dù ng chung để tham chiếu từ cá c
ứ ng dụ ng khá c nhau. Code có thể đượ c biên dịch như mộ t phầ n củ a
project tham chiếu đến và có thể bao gồ m cá c tình biên dịch theo nền
tả ng để giú p kết hợ p cá c chứ c nă ng theo nền tả ng cụ thể và o code dù ng
chung.
Để bắ t đầ u vớ i vai trò củ a mộ t OPC UA Client ta cầ n thêm và o 3 thư viện chính
là Opc.Ua.Client, Opc.Ua.Core, Opc.Ua.Configuration hoặ c thêm Nuget package
OPC UA Foundation

Hình 5. 6: Thư viện OPCUA C#

61
Hình 5. 7: Thư viện OPC UA Nuget

5.4.3. Thành phần chính của App OPC UA Client

Trong luậ n vă n nà y, ta đang xâ y dự ng client vớ i mụ c đích giá m sá t nên chứ c


năng chính củ a app bao gồ m:

o Kết nố i vớ i cá c server vớ i cá c loạ i mã hó a, bả o mậ t khá c nhau.


o Giá m sá t hệ thố ng đượ c xâ y dự ng bằ ng thiết bị RTU3031C và cá c cả m
biến.
o Vẽ biểu đồ lưu lượ ng và nhiệt độ .
o Theo dõ i vị trí hiệu tạ i củ a thiết bị thô ng qua bả n đồ .
Giả i thuậ t thà nh phầ n chính củ a hệ thố ng

62
Hình 5. 8: Giả i thuậ t App OPC UA Client

Hà m tạ o chứ ng chỉ xá c thự c và kết nố i vớ i OPC UA Server

63
Code

public async void CreateCertificate()


{
application = new ApplicationInstance
{
ApplicationType = ApplicationType.Client,
ConfigSectionName = "Opc.Ua.Client"
};
if (Device.RuntimePlatform == "Android")
{

string currentFolder =
DependencyService.Get<IPathService>().PublicExternalFolder.ToString();

string filename = application.ConfigSectionName + ".Config.xml";

string content = DependencyService.Get<IAssetService>().LoadFile(filename);

File.WriteAllText(currentFolder + filename, content);


// load the application configuration.

config = await application.LoadApplicationConfiguration(currentFolder + filename,


false);
}
else
{
// load the application configuration.
config = await application.LoadApplicationConfiguration(false);

}
// check the application certificate.
haveAppCertificate = await application.CheckApplicationInstanceCertificate(false, 0);
config.ApplicationName = "OPC UA Sample Client";

if (haveAppCertificate)
{

config.ApplicationUri =
Utils.GetApplicationUriFromCertificate(config.SecurityConfiguration.ApplicationCertificate.Cert
ificate);

config.CertificateValidator.CertificateValidation += new
CertificateValidationEventHandler(CertificateValidator_CertificateValidation);

Hà m tạ o List endpoints sau khi client gử i url lên server và đượ c chấ p nhậ n.

64
Code

public ListEndpoint DiscoveryEndpoints (String endpointURL)


{
ListEndpoint list = new ListEndpoint ();
var endpointConfiguration = EndpointConfiguration.Create(config);
try
{
Uri uri = new Uri(endpointURL);

DiscoveryClient discoveryC = DiscoveryClient.Create(uri, endpointConfiguration);

endpoints = discoveryC.GetEndpoints(null);

for (int i = 0; i < endpoints.Count; i++)


{
list.endpointList.Add(
new EndpointView(endpoints[i]. EndpointUrl,
endpoints[i].SecurityMode.ToString(), endpoints[i].TransportProfileUri, i,
endpoints[i].SecurityPolicyUri.Split('#')[1]));
}
return list;
}
catch (System.UriFormatException)
{
return list = null;
}
catch (ServiceResultException p)
{
throw new BadConnectException ("Impossible to connect to server!", p);
}
}

Hà m giữ kết nố i vớ i Server sau khi đã kết nố i đượ c

65
Code

public async Task<SessionView> CreateSessionChannelAsync(int indexEndpoint, string


username, string password)
{
SessionView sessionView;
UserIdentity userI = new UserIdentity(username, password);
var endpoint = new ConfiguredEndpoint(null, endpoints[indexEndpoint]);
try
{
session =await Task.Run(() =>
{
return Session.Create(config, endpoint, false, "OPC Client", 60000, userI, null);
});
if (session == null)
{
sessionView = null;
}
else
{
session.KeepAlive += OnKeepAliveHandler;
EndpointView endpointView =
new EndpointView(session.Endpoint.EndpointUrl,
session.Endpoint.SecurityMode.ToString(), session.Endpoint.TransportProfileUri, 0,
session.Endpoint.SecurityPolicyUri.Split('#')[1]);
sessionView =
new SessionView(session.SessionId.Identifier.ToString(),
session.SessionId.NamespaceIndex.ToString(), session.SessionName, endpointView);
}
return sessionView;
}
catch (ServiceResultException p)
{
throw new BadUserException(p.Message, p);
}
}
private void OnKeepAliveHandler(object sender, EventArgs e)
{
if (session.KeepAliveStopped)

{
session = null;
Console.WriteLine("SESSION CLOSED SEND!");
MessagingCenter.Send<ClientOPC>(this, "SessionClose");
}
}

Hà m giá m sá t Node khi có NodeID.

66
Code

public MonitoredItem AddMonitoredItem(Subscription subscription, string nodeIdString,


string itemName, int samplingInterval)
{ MonitoredItemNotificationEventHandler ItemChangedNotification = null;
public

private void Notification_MonitoredItem(MonitoredItem


MonitoredItem monitoredItem = new MonitoredItem();monitoredItem,
MonitoredItemNotificationEventArgs e)
monitoredItem.DisplayName = itemName;
{ monitoredItem.StartNodeId = nodeIdString;
ItemChangedNotification(monitoredItem,
monitoredItem.AttributeId e);
= Attributes.Value;
} monitoredItem.MonitoringMode = MonitoringMode.Reporting;
monitoredItem.SamplingInterval = samplingInterval;
monitoredItem.QueueSize = 1;
monitoredItem.DiscardOldest = true;
monitoredItem.Notification += new
MonitoredItemNotificationEventHandler(Notification_MonitoredItem);
try
{
subscription.AddItem(monitoredItem);
subscription.ApplyChanges();
return monitoredItem;
}
catch (Exception e)
{
//ném lỗ i
throw e;
}
}

Code

Chương 6: TÍCH HỢP ĐIỀU KHIỂN HỆ THỐNG ĐÁM MÂY

6.1. Mục tiêu

Luậ n vă n nhằ m nghiên cứ u cá c ứ ng dụ ng đơn giả n, vừ a hiệu quả cho việc kết
hợ p phầ n cứ ng, phầ n mềm và chạ y trên nền Cloud (Má y tính ả o-VPS) cho phép
ngườ i dù ng có thể:

67
- Truy cậ p bằ ng bấ t kì thiết bị nà o.

- Thu thậ p dữ liệu, giá m sá t hệ thố ng từ xa

- Thu thậ p dữ liệu. giá m sá t hệ thố ng từ u xa thô ng qua server OPC UA

6.2. Định nghĩa

Cloud VPS (Cloud Virtual Private Server) hay cò n gọ i là má y chủ riêng ả o trên
nền điện toá n đá m mâ y. Theo cá ch hiểu thô ng thườ ng nó là mộ t dạ ng server ả o
đượ c xâ y dự ng trên nền tả ng điện toá n má y tính, đượ c cấ p riêng cho từ ng
ngườ i dù ng. Điều này cho phép bạ n có thể truy cậ p nhanh chó ng trên cá c má y
chủ mà khô ng cầ n mấ t nhiều thao tá c. Mỗ i Cloud VPS là mộ t hệ thố ng biệt lậ p,
ngườ i dù ng có thể restart lạ i bấ t cứ lú c nà o.

Có thể nó i rằ ng Cloud VPS chính là mộ t giả i phá p hữ u hiệu, giú p bạ n thự c hiện
cô ng việc nhanh, dễ dà ng hơn mà qua đó lạ i tiết kiệm chi phí hơn so vớ i VPS
thô ng thườ ng. Có thể nó i rằ ng, đâ y là mộ t trong nhữ ng bướ c tiến quan trọ ng
trong quá trình phá t triển củ a khoa họ c cô ng nghệ ngà y nay, Cloud VPS đã khắ c
phụ c đượ c nhữ ng hạ n chế mà cá c loạ i má y chủ trướ c kia khô ng là m đượ c qua
đó giú p bạ n có thể thự c hiện cá c thao tá c nhanh hơn.

Ưu điểm củ a Cloud VPS

o Thuậ n tiện trong việc quả n lý


o Tiết kiệm chi phí
o Tính an toà n và bả o mậ t cao

6.3. Ứng dụng TeleControl Server Basic

Ở luậ n văn nà y, việc ứ ng dụ ng hệ thố ng đá m mâ y sẽ đượ c thự c hiện như sau: ta


cà i đặ t phầ n mềm TeleControl Server Basic trên VPS, sau đó kết nố i thiết bị
RTU3031C vớ i TCSB, từ đó liên kết dữ liệu vớ i VPS. Mụ c đích nà y giú p cho cá c

68
client có thể truy cậ p để sử dụ ng cá c NodeID và cá c thô ng tin đượ c cung cấ p từ
server.

Chương 7: KẾT QUẢ THỬ NGHIỆM VÀ ĐÁNH GIÁ

7.1. Kết quả thử nghiệm

7.1.1. Gửi SMS/email từ thiết bị SIMATIC RTU3031C

69
Qua việc cấ u hình thiết bị SIMATIC RTU3031C để xây dự ng hệ thố ng giá m sá t,
ta thấ y hệ thố ng hoạ t độ ng ổ n định, sá t vớ i thự c tế. Bên cạ nh đó , khi có nhữ ng
cả nh bá o về vị trí hay lưu lượ ng, ngườ i quả n lý sẽ nhậ n đượ c SMS/email.

Hình 7. 1: Email từ thiết bị SIMATIC RTU3031C khi có cả nh bá o

70
Hình 7. 2: SMS từ thiết bị SIMATIC RTU3031C khi có cả nh bá o
7.1.2. Ứng dụng OPC UA Client

Xâ y dự ng thà nh cô ng cá c ứ ng dụ ng client chạ y trên nhiều nền tả ng như web,


app (android), cá c ứ ng dụ ng đã đá p ứ ng đượ c chứ c năng cơ bả n, kết nố i vớ i
server thô ng qua chuẩ n giao thứ c OPC UA, giá m sá t sự thay đổ i củ a cá c tín hiệu
trong hệ thố ng.

7.1.2.1. Web OPC UA Client

71
Hình 7. 3: Giao diện Connect

Hình 7. 4: Giao diện Connect thà nh cô ng

72
Hình 7. 5: Giao diện giá m sá t hệ thố ng

Hình 7. 6: Giao diện giá m sá t cá c tín hiệu củ a hệ thố ng theo dạ ng bả ng

73
Hình 7. 7: Giao diện đồ thị lưu lượ ng

Hình 7. 8: Giao diện đồ thị nhiệt độ

74
Hình 7. 9: Giao diện bả n đồ giá m sá t hệ thố ng

Hình 7. 10: Giao diện trang About

75
7.1.2.2. App OPC UA Client

Hình 7. 11: Giao diện khở i độ ng app

Hình 7. 12: Giao diện trang Connect

76
Hình 7. 13: Giao diện trang tạ o List endpoints

Hình 7. 14: Giao diện trang giá m sá t

77
Hình 7. 15: Giao diện trang vẽ đồ thị

Hình 7. 16: Giao diện trang bả n đồ

78
Hình 7. 17: Giao diện giá m sá t hệ thố ng trên bả n đồ

Hình 7. 18: Giao diện trang cả nh bá o

79
7.2. Đánh giá

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

o Xâ y dự ng đượ c hệ thố ng giá m sá t bằ ng thiết bị SIMATIC RTU3031C và


cả m biến.
o Hiểu đượ c mô hình OPC UA Server, và cá ch kết nố i giữ a server và client
theo chuẩ n giao thứ c OPC UA.
o Kết nố i thiết bị SIMATIC RTU3031C vớ i TeleControl Server Basic, liên
kết dữ liệu vớ i VPS
o Hệ thố ng giá m sá t trên cá c ứ ng dụ ng web và app hoạ t độ ng ổ n định, giao
diện dễ sử dụ ng, có cá c chứ c năng phù hợ p vớ i mộ t hệ thố ng quả n lý từ
xa.
7.2.2. Những thiếu sót của luận văn

o Hệ thố ng giá m sá t triển khai vớ i mô hình dữ liệu cò n khá sơ sà i, ít tín


hiệu giá m sá t.
o Ứ ng dụ ng client chưa chạ y đượ c trên nền tả ng iOS.
o Chưa khai thá c hết cá c chứ c nă ng củ a thiết bị SIMATIC RTU3031C.
o Tố c độ cậ p nhậ t dữ liệu cò n có mộ t độ trễ khá lớ n.
7.3. Hướng phát triển của luận văn

o Triển khai hệ thố ng thự c tế có mô hình dữ liệu phứ c tạ p hơn.


o Tìm hiểu hết tấ t cả cá c chứ c nă ng củ a thiết bị SIMATIC RTU3031C.
o Tố i ưu cá c ứ ng dụ ng client: cậ p nhậ t cá c nền tả ng mớ i nhấ t, thêm nhiều
tính nă ng, cả i thiện code, bổ sung chứ c nă ng cho bả n đồ .
o Á p dụ ng hệ thố ng và o thự c tế.

80
TÀI LIỆU THAM KHẢO
[1] Trương Đình Châ u, “OPC UA- Giao thứ c nền tả ng cho Industrial 4.0”, TP. Hồ
Chí Minh, 2020.

[2] OPCFoundation, OPC UA Part 3: Address Space Model, release 1.04, 2017.

[3] OPCFoundation, OPC UA Part 1: Overview and Concepts, release 1.04, 2017.

[4] OPCFoundation, “Build OPC UA.NET applications using .NET


StandardLibrary”, https://opcfoundation.github.io/UA-.NETStandard/.

[5] Official OPC UA.NET Standard Stack from the OPC Foundation,
https://opcfoundation.github.io/UA-.NETStandard/.

[6] Siemens, “Monitoring of Remote Measurement Points using an RTU3041C”,


2021.

[7] Mapbox, https://www.mapbox.com/.

[8] Siemens, SITRANS LH300 Transmitter for hydrostatic level, 9/2016.

[9] Google Cloud Platform, https://console.cloud.google.com/google/maps-


apis/.

[10] Xamarin.Forms, https//docs.microsoft.com/en-us/xamarin/xamarin-


forms/.

[11] ASP.NET, https://dotnet.microsoft.com/apps/aspnet/.

[12] ASP.NET Web Forms, https://docs.microsoft.com/en-us/aspnet/web-


forms/.

81

You might also like