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

Luận văn thạc sĩ Khoa học máy tính: Phân tích và đánh giá các giao thức E2E trong công nghiệp 4.0

100 0 0
Tài liệu đã được kiểm tra trùng lặp

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phân tích và đánh giá các giao thức E2E trong công nghiệp 4.0
Tác giả Lê Phương Nam
Người hướng dẫn Phó Giáo sư Tiến sĩ Phạm Quốc Cường
Trường học Đại học Quốc gia TP. HCM Trường Đại học Bách Khoa
Chuyên ngành Khoa học máy tính
Thể loại Luận văn thạc sĩ
Năm xuất bản 2024
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 100
Dung lượng 3,06 MB

Nội dung

Chương 1: Tổng quan1Công nghiệp 4.0 và Smart Factory Sự phát triển mạnh mẽ của khoa học công nghệ ở những năm đầu thế kỉ 21 đẫ đưa nhânloại bước vào cách mạng công nghiệp 4.0, khi mà hàn

Trang 1

-

LÊ PHƯƠNG NAM

PHÂN TÍCH VÀ ĐÁNH GIÁ CÁC GIAO THỨC E2E

TRONG CÔNG NGHIỆP 4.0

Chuyên ngành: Khoa Học Máy Tính Mã số: 8480101

LUẬN VĂN THẠC SĨ

TP HỒ CHÍ MINH, tháng 06 năm 2024

Trang 2

Cán bộ chấm nhận xét 1: Tiến sĩ Phạm Trung Kiên

Cán bộ chấm nhận xét 2: Tiến sĩ Lê Trọng Nhân

Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 18 tháng 06 năm 2024 Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: 1 Phó Giáo sư Tiến sĩ Trần Văn Hoài

2 Phó Giáo sư Tiến sĩ Trần Ngọc Thịnh

3 Tiến sĩ Phạm Trung Kiên

4 Tiến sĩ Lê Trọng Nhân

5 Phó Giáo sư Tiến sĩ Trần Mạnh Hà

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)

KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH

Trang 3

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên : Lê Phương Nam MSHV : 2170545 Ngày, tháng, năm sinh : 09/07/1997 Nơi sinh : Bình Dương Chuyên ngành : Khoa Học Máy Tính Mã số : 8480101 I TÊN ĐỀ TÀI : Phân tích và đánh giá các giao thức E2E trong công nghiệp 4.0 Tên đề tài tiếng Anh: Analysis and evaluation of E2E protocols in Industry 4.0 II NHIỆM VỤ VÀ NỘI DUNG :

- Nghiên cứu, phân tích các tiêu chuẩn giao tiếp trong các ứng dụng công nghiệp dựa trên nền tảng công nghệ 4.0

- So sánh các giao thức thông qua những tiêu chí phổ biến như: độ trễ, hiệu năng, năng lượng tiêu thụ và mức độ bảo mật của các giao thức

- Hiện thực các thí nghiệm để tiến hành so sánh và đánh giá các giao thức đề xuất trong luận văn

- Đánh giá, đưa ra nhận định và kết luận về các giao thức III NGÀY GIAO NHIỆM VỤ : 04/09/2023

IV NGÀY HOÀN THÀNH NHIỆM VỤ : 10/06/2024 V CÁN BỘ HƯỚNG DẪN : Phó Giáo sư Tiến sĩ Phạm Quốc Cường

Tp HCM, ngày … tháng … năm 2024

CÁN BỘ HƯỚNG DẪN (Họ tên và chữ ký) HỘI ĐỒNG NGÀNH (Họ tên và chữ ký)

TRƯỞNG KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH

(Họ tên và chữ ký)

Trang 4

LỜI CẢM ƠNĐể hoàn thành tài liệu này, em xin tỏ lòng biết ơn sâu sắc đến thầy Phạm QuốcCường, đã tận tình hướng dẫn trong suốt quá trình thực hiện đề tài.

Em chân thành cảm ơn quý thầy cô trong khoa Khoa học và kỹ thuật máy tínhtrường Đại học Bách Khoa TP.HCM đã tận tình truyền đạt kiến thức trong những nămchúng em học tập Với vốn kiến thức được tiếp thu trong quá trình học không chỉ là nềntảng cho quá trình thực hiện đề tài mà còn là hành trang quý báu để chúng em bướcvào đời một cách vững chắc và tự tin

Cuối cùng, em xin chúc quý thầy cô dồi dào sức khỏe và thành công trong sự nghiệpcao quý

Trang 5

TÓM TẮT LUẬN VĂNTrong luận văn này, ta sẽ tập trung vào việc phân tích và đánh giá các giao thứcđang được sử trong công nghiệp 4.0 hiện nay Công nghiệp 4.0 là sự kết hợp giữa nêncông nghiệp truyền thống và các ứng dụng IoT (Internet kết nối vạn vật), kết nối thôngqua mạng Internet Có rất nhiều phương thức phục vụ cho IoT của công nghiệp 4.0,tuy nhiên ta chỉ tập trung vào các phương thức: MODBUS RS-485, MQTT, OPC-UA.Ta sẽ tiến hành so sánh, đánh giá dựa trên những cơ sở lý thyết của các giao thức.Ngoài ra, ta cũng sẽ tiến hành thêm một số thí nghiệm thông qua việc hiện thực các ứngdụng dựa trên các giao thức mà chúng ta đang phân tích Từ đó, ta đưa ra các đánhgiá, xem xét về khả năng, mức độ ứng dụng của từng giao thức cho từng mô hình nhàmáy công nghiệp khác nhau.

THESIS SUMARYIn this thesis, we will focus on analyzing and evaluating protocols being used inindustry 4.0 today Industry 4.0 is a combination of traditional industry and IoT(Internet of Things) applications, connected through the Internet There are manymethods serving industrial IoT 4.0 but we only focus on the following methods:MODBUS RS-485, MQTT, OPC-UA

We will compare and evaluate based on the theoretical foundation of the protocols.In addition, we will also conduct some additional testing by deploying applications basedon the protocols we are analyzing From there, we make assessments and considerationsabout the capabilities and level of application of each process for each different industrialplant model

Trang 6

LỜI CAM ĐOANTôi xin cam đoan đây là công trình nghiên cứu của riêng tôi và được sự hướng dẫnkhoa học của PGS TS Phạm Quốc Cường Các nội dung nghiên cứu, kết quả trong đềtài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây Những sốliệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tácgiả nghiên cứu, phân tích một cách trung thực, phù hợp với thực tiễn.

Ngoài ra, trong luận văn còn sử dụng một số phân tích, nhận xét, đánh giá, cũngnhư số liệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn, chú thích nguồngốc và ghi rõ trong phần tài liệu tham khảo

Học viên

LÊ PHƯƠNG NAM

Trang 7

Mục lục

1.1 Smart Factory là một hệ thống chủ động (Proactive) 1

1.2 Smart Factory linh hoạt và nhanh nhẹn (Agile) 2

1.3 Smart Factory là hệ thống máy móc được kết nối (Connected) 2

1.4 Smart Factory thu thập dữ liệu minh bạch (Transparent) 2

1.5 Smart Factory là khả năng tối ưu hóa (Optimized) 2

2 Giao thức truyền thống 43 Giao thức cho Smart Factory 43.1 MQTT – Message Queuing Telemetry Transport 5

3.2 OPC UA – Open Platform Communications Unified Architecture 5

4 Kiến trúc cho ứng dụng công nghiệp 4.0 55 Hiện thực thử nghiệm 66 Các vấn đề đặt ra trong nghiên cứu 76.1 Vấn đề sẽ nghiên cứu 7

6.2 Lý do các giao thức này phù hợp trong công nghiệp 4.0 7

6.3 Lý do chọn vấn đề 7

6.4 Giới hạn trong nghiên cứu 8

7 Mục tiêu nghiên cứu 8Chương 2: Giao thức RS485 và MODBUS 91 Cấu tạo 92 Cơ chế hoạt động 113 Đánh giá 134 Hiện thực Modbus485 154.1 Mở cổng COM 15

4.2 Gửi dữ liệu qua Modbus 485 17

4.3 Nhận dữ liệu qua Modbus 485 19

Trang 8

2.2 Gửi và Nhận Tin nhắn (Publish/Subscribe) 26

2.3 Chất lượng dịch vụ (QoS) 26

2.4 Ngắt Kết nối (Disconnect) 26

2.5 Các chức năng bổ sung khác 26

3 Đánh giá 274 Hiện thực MQTT 284.1 Kết nối với server 28

4.2 Khai báo và đăng kí các sự kiện 29

4.3 Gửi dữ liệu lên server 29

5 Ưu điểm và hạn chế 30Chương 4: Tổng quan về giao thức OPC-UA 311 Cấu trúc giao thức 311.1 Mô Hình Máy Khách - Máy Chủ (Client-Server Model) 31

1.2 Mô Hình Đăng Ký - Phát Hành (Publish-Subscribe Model) 31

1.3 Mô Hình Thông Tin (Information Model) 32

1.4 Mô Hình Dữ Liệu (Data Model) 32

1.5 Các Dịch Vụ (Services) 33

1.6 Bảo Mật (Security) 33

2 Nguyên lý hoạt động của OPC-UA 342.1 Model 34

2.2 Luồng dữ liệu và kết nối 34

2.3 Kiến trúc hướng dịch vụ (Service-oriented architecture) - SOA 35

2.4 Node 36

Trang 9

4 Hiện thực OPC-UA 38

4.1 Tạo 1 server OPC-UA 38

4.2 Tạo 1 client OPC-UA 39

5 Ưu điểm và hạn chế 40Chương 5: Tích hợp ứng dụng 421 Điều khiển cánh tay máy 431.1 Giới thiệu ứng dụng 43

1.2 Thiết kế hệ thống 44

1.3 Hiện thực hệ thống 45

1.3.1 Module Control 45

1.3.2 Module DataCenter 50

1.3.3 Ứng dụng giám sát thực tế ảo (VR application) 52

1.4 Đánh giá hiệu năng 55

1.4.1 Đánh giá Module Control 56

1.4.2 Đánh giá Module Datacenter 56

1.4.3 Đánh giá ứng dụng VR 58

1.4.4 Đánh giá thời gian trễ trọn vòng (RTT) 60

2 Nông nghiệp với thực tế ảo 622.1 Giới thiệu ứng dụng 62

2.2 Thiết kế hệ thống 62

2.3 Kiến trúc các trạm thu thập dữ liệu 64

2.3.1 Trạm thu thập dữ liệu thông số không khí và đất trồng 64

2.3.2 Trạm thu thập thông số nước 65

2.3.3 Trạm camera giám sát khu vườn 66

2.4 IoT Server 67

2.5 Thiết kế định dạng của dữ liệu 68

2.6 Thiết kế bố cục giao diện cho ứng dụng VR 70

2.6.1 Kết nối các trạm với IoTs Server 70

Trang 10

Danh mục các công trình khoa học 83

Trang 11

Danh sách hình vẽ

1.1 Các cuộc cách mạng khoa học công nghệ của nhân loại [3] 1

1.2 Kiến trúc chung cho các ứng dụng thời đại 4.0 [9] 3

1.3 Kiến trúc cho ứng dụng công nghiệp 4.0 6

2.1 Hệ thống bán song công [14] 10

2.2 Hệ thống song công toàn phần [15] 10

2.3 Phương thức truyền tín hiệu của MOD-BUS 485 [16] 11

2.4 Cấu tạo của một frame dữ liệu của Modbus 485 [17] 12

2.5 Cách thức hoạt động của Modbus 485 [16] 13

2.6 Mạch chuyển đổi USB sang RS485 [18] 15

2.7 Kiểm tra cổng kết nối trên hệ điều hành Windows 16

2.8 Kiểm tra cổng kết nối trên hệ điều hành Linux 16

2.9 Công cụ tính toán CRC online 18

2.10 Kết quả tính toán CRC 18

3.1 Các thành phần cơ bản trong MQTT 22

3.2 Mô hình Bridge trong MQTT [19] 25

3.3 Cơ chế hoạt động trong MQTT [20] 25

4.1 Năm level trong tổ chức công nghiệp [21] 35

5.4 Sơ khối của Server 47

5.5 Cấu trúc thư mục của Server OPC 48

5.6 Sơ đồ khối của Jetmax Control 49

5.7 Sơ đồ use case của Datacenter 51

5.8 Sơ đồ khối của Datacenter 52

5.9 Sơ đồ use case của VR app 53

5.10 Sơ đồ khối của VR app 54

5.11 Chú thích chức năng điều khiển sử dụng tay cầm Oculus Quest 2 [23] 55

5.12 Biểu đồ mức sử dụng CPU của OPC UA trên module control 56

5.13 Biểu đồ mức sử dụng CPU của module Datacenter 57

5.14 Biểu đồ mức sử dụng CPU, GPU và fps trung bình 59

5.15 Biểu đồ Box-plot RTT trong thí nghiệm đã lược bỏ một số outliner 60

5.16 Kiến trúc cho ứng dụng nông nghiệp với thực tế ảo 63

5.17 Các thành phần trong trạm thu thập dữ liệu thông số về không khí và đất 645.18 Các thành phần trong trạm thu thập thông số nước 65

5.19 Trạm Camera 66

5.20 Trạm Camera - nhìn từ phía trước 66

5.21 Kết hợp công nghệ thực tế ảo với hệ thống kết nối vạn vật [24] 67

Trang 12

5.22 Thiết kế bố cục cho giao diện VR 70

5.23 Hình ảnh thực tế của các trạm nông nghiệp 71

5.24 Sơ đồ hoạt động của trạm nông nghiệp với IoT Server bằng MQTT 71

5.25 Mô hình tích hợp MQTT vào trong ứng dụng VR 72

5.26 Hiển thị dữ liệu thu thập được lên ứng dụng VR 74

5.27 Thiết lập stream hình ảnh từ camera HIK Vision 75

5.28 Tích hợp stream video vào ứng dụng 75

5.29 Ứng dụng khi triển khai trên kính Oculus Quest 2 76

Trang 13

Danh sách bảng

2.1 Thông lượng trung bình của RS-485 14

3.1 Thông lượng trung bình của MQTT 27

5.1 Kết quả đo RTT trong thí nghiệm 60

6.1 So sánh tổng hợp các giao thức 81

Trang 14

Chương 1: Tổng quan

1Công nghiệp 4.0 và Smart Factory

Sự phát triển mạnh mẽ của khoa học công nghệ ở những năm đầu thế kỉ 21 đẫ đưa nhânloại bước vào cách mạng công nghiệp 4.0, khi mà hàng tỉ thiết bị có thể giao tiếp và chiasẻ dữ liệu với nhau thông qua mạng kết nối vạn vật (Internet of Things) [1] Với khốidữ liệu được số hóa và lưu trữ trên điện toán đám mây (cloud server), kết hợp với cáccông nghệ về trí tuệ nhân tạo (AI - Artificial Intelligence) và đặc biệt là học sâu (deeplearning) [2], các thiết bị công nghiệp đã chuyển từ hình thức tự động (automatic) sangtự hành (autonomous) nhờ khả năng tích lũy kinh nghiệm qua dữ liệu được thu thậpđịnh kì ngay trong quá trình vận hành của nó

Hình 1.1: Các cuộc cách mạng khoa học công nghệ của nhân loại [3]Thuật ngữ Smart Factory được nhắc đến nhiều trong công cuộc cách mạng côngnghiệp 4.0 hiện nay khi so sánh với các hệ thống công nghiệp tự động thời 3.0 SmartFactory là bước tiến mới vượt bậc cho ngành công nghiệp sản xuất Thực chất, đó chínhlà sự chuyển đổi từ các hệ thống sản xuất tự động truyền thống sang một hình thứcmới, có khả năng kết nối và xử lý dữ liệu liên tục một cách linh hoạt hơn Smart factoryđược coi là bước tiến vượt bậc và là điểm khác biệt của công cuộc cách mạng 4.0 so với3 cuộc cách mạng trước đây Smart Factory là một hệ thống máy móc, thiết bị đượckết nối Internet với phần mềm ứng dụng để con người kiểm soát, số hóa mọi hoạt động,xử lý dữ liệu liên tục từ hoạt động sản xuất và kinh doanh để có thể tự học và thíchnghi theo nhu cầu mới của thị trường [4] Với Smart Factory, con người không cần phảican thiệp quá nhiều vào hệ thống sản xuất nhưng vẫn đảm bảo hiệu quả vận hành cao(tăng sản lượng, chất lượng và giảm được chi phí) Các đặc điểm chính giúp cho SmartFactory trở nên khác biệt và mang lại lợi ích thiết thực trong thời đại Công nghiệp 4.0được liệt kê ra như sau

1.1 Smart Factory là một hệ thống chủ động (Proactive)

Smart Factory là hệ thống chủ động với khả năng đáp ứng và thích nghi các yêu cầukhắt khe của thị trường [5] Nhờ có Smart Factory, con người có thể kiểm soát máy móc,thiết bị sản xuất, theo dõi và số hóa các hoạt động để tạo thành một hệ thống hiệu

Trang 15

quả, giảm thời gian chết của máy móc và nâng cao khả năng dự báo, tự hiệu chỉnh Conngười có thể dựa trên các phân tích, dự báo của hệ thống để có phương án chuyển đổi,phản ứng khi phát sinh vấn đề và thách thức, đảm bảo an toàn cho hoạt động sản xuất.

1.2 Smart Factory linh hoạt và nhanh nhẹn (Agile)

Hệ thống Smart Factory sở hữu khả năng thích ứng, tiến hóa và phát triển nhanh trongsuốt tiến trình sử dụng Doanh nghiệp ứng dụng hệ thống sản xuất thông minh có thểchủ động phát triển hệ thống sản xuất của mình theo nhu cầu của thị trường, mở rộngsang thị trường mới linh hoạt [6] Như đã nói ở trên, Smart Factory còn có khả năng dựbáo giúp doanh nghiệp thay đổi công nghệ, quy trình mới kịp thời và phù hợp

1.3 Smart Factory là hệ thống máy móc được kết nối (Connected)

Một điểm quan trọng không thể thiếu tạo nên sự tối ưu của nhà máy thông minh SmartFactory chính là khả năng kết nối toàn bộ các máy móc, tài sản một cách thông minh.Nhờ vậy, hệ thống có thể truy xuất và cập nhật liên tục các dữ liệu phản ảnh tình trạngsản xuất, các điều kiện hiện tại, tạo ra cái nhìn toàn diện hơn và đích đến cuối cùng làgiúp doanh nghiệp tạo ra mạng lưới cung ứng hiệu quả hơn

1.4 Smart Factory thu thập dữ liệu minh bạch (Transparent)

Một mạng lưới thu thập dữ liệu thông minh tạo ra khả năng hiển thị lớn hơn trên toànbộ cơ sở dữ liệu với nhiều công cụ tối ưu để đảm bảo rằng doanh nghiệp đưa ra cácquyết định chính xác hơn [7] Từ các dữ liệu trực quan, minh bạch thu thập được trongquá trình sản xuất, con người có thể chuyển đổi thành các thông tin chi tiết để phục vụcho quá trình phát triển sản xuất và đưa ra các quyết định cụ thể

1.5 Smart Factory là khả năng tối ưu hóa (Optimized)

Một mô hình nhà máy thông minh có thể mang đến cho nhà sản xuất nhiều tính năngưu việt, đồng bộ và đáng tin cậy Nhờ vậy mà con người không cần can thiệp quá nhiềuvào hệ thống sản xuất nhưng vẫn đảm bảo hiệu quả vận hành cao (tăng sản lượng, chấtlượng, uptime, giảm chi phí ) Có thể khẳng định rằng, những lợi ích từ Smart Factorymang đến không chỉ nằm trong quy trình sản xuất mà còn trợ giúp đắc lực cho doanhnghiệp ở những điểm sau [8]:

• Nâng cao năng suất và hiệu quả hoạt động tài sản.• Tăng tính linh hoạt và hoạt động tối ưu

• Tự động hóa nhiều hoạt động giúp con người làm việc an toàn.• Nâng cao chất lượng và phòng ngừa rủi ro nhanh chóng.• Tiết kiệm và tối ưu chi phí

Trang 16

Theo diễn giả nối tiếng Timothy Chou, các ứng dụng thời đại cách mạng công nghệ4.0 nối chung và sản xuất thông minh trong công nghiệp nói riêng, sẽ có 5 lớp chính,được tóm lượt như sau:

• Things: Lớp cơ bản cho mọi ứng dụng, còn được gọi là lớp thiết bị hay lớp vật lýcủa hệ thống

• Connect: Nơi kết nối các thiết bị vật lý với nhau, và là mấu chốt tạo nên việc chiasẽ dữ liệu của thế giới kết nối vạn vật IoT

• Collect: Các điện toán đám mây, nơi tập trung và xử lý một lượng khổng lồ cácdữ liệu đã được số hóa

• Learn: Dựa vào các dữ liệu thu thập được, các hệ thống học sâu sẽ được triển khaiđể rút trích đặc trưng và huấn luyện các mô hình trí tuệ nhân tạo

• Do: Cuối cùng, các thiết bị có thể tự quyết định hành vi của nó để hệ thống vậnhành ngày càng tối ưu hơn Đây là lớp cuối cùng để hoàn thiện các ứng dụng tựhành phổ biến ngày nay

Hình 1.2: Kiến trúc chung cho các ứng dụng thời đại 4.0 [9]Trong phạm vi của đề tài này, nội dung nghiên cứu sẽ tập trung vào lớp kết nối (lớpConnect), lớp tạo nên kết nối vạn vật giữa các thiết bị Kiến trúc của một ứng dụngtrong công nghiệp thông minh sẽ được phân tích và đề xuất các kết nối phù hợp, nhằmtạo ra hiệu quả cao nhất về sự chính xác, trao đổi dữ liệu và đồng bộ nhanh Bên cạnhcác giao thức truyền thống, các giao thức đặc trưng trong thời đại 4.0 sẽ được nghiêncứu và hiện thực trong đề tài này Nội dung nghiên cứu tổng quan có 4 vấn đề chính:

• Các giao thức truyền thống trong công nghiệp.• Các giao thức chuyên dụng cho Smart Factory

Trang 17

• Xây dựng kiến trúc giao tiếp trong công nghiệp.• Hiện thực thử nghiệm hệ thống trên các thiết bị cho dây chuyền công nghiệp.Phần tiếp theo trong báo cáo sẽ trình bày chi tiết phạm vi nghiên cứu của từng mụctiêu trình bày ở trên.

2Giao thức truyền thống

Thực ra, các hệ thống công nghiệp hiện đại đã xuất hiện từ cuộc cách mạng lần thứ 3.Giữa các thiết bị đã có thể kết nối và điều khiển rất chính xác Mặc dù hiện tại, khiđã bước qua cuộc cách mạng lần thứ 4, các giao thức này vẫn được duy trì bởi các ưuđiểm của nó, như khả năng kết nối xa, gửi dữ liệu ổn định cũng như khả năng khángnhiễu tốt trong môi trường công nghiệp

Trong đề tài này, giao thức kết nối MODBUS 485 sẽ được nghiên cứu cho phầngiao thức truyền thống [10] Đây là giao thức giao tiếp theo mô hình mạng và gửinhận dữ liệu định thông qua địa chỉ của thiết bị Do đó, mặc dù được Modicon (hiệnnay thuộc Schneider Electric) phát triển năm 1979, nó vẫn thịnh hành cho đến ngày nay.MODBUS 485 là một giao thức truyền thông với nhiều thiết bị thông qua mộtcặp dây xoắn đơn, nên có khả năng kháng nhiễu rất tốt Ban đầu, nó hoạt động trênRS232, nhưng sau đó nó sử dụng cho cả RS485 để đạt tốc độ cao hơn, khoảng cách dàihơn, và mạng đa điểm (multi-drop) MODBUS đã nhanh chóng trở thành tiêu chuẩnthông dụng trong ngành tự động hóa, và Modicon đã cho ra mắt công chúng như mộtprotocol miễn phí

MODBUS là một hệ thống "master - slave", master được kết nối với một hay nhiềuslalve Thiết bị master thường là một PLC, PC, DCS, hay RTU Trong khi đó, clienttrong MODBUS RTU thường là các thiết bị hiện trường, tất cả được kết nối với mạngtrong cấu hình multi-drop Khi một master muốn có thông tin từ thiết bị, nó sẽ gửimột thông điệp về dữ liệu cần, tóm tắt dò lỗi tới địa chỉ thiết bị Mọi thiết bị khác trênmạng sẽ nhận thông điệp này nhưng chỉ có thiết bị nào được chỉ định mới có phản ứng.Nhờ vào khả năng kết nối nhiều thiết bị thông qua một kênh truyền duy nhất,MODBUS 485 vẫn rất phù hợp với kiến trúc của ứng dụng thời đại 4.0 Trong rất nhiềuthiết bị vật lý hiện tại, chẳng hạn như các cảm biến hoặc các thiết bị vận hành, đềuđược hỗ trợ giao thức MODBUS 485

3Giao thức cho Smart Factory

Mặc dù giao thức truyền thống MODBUS 485 vẫn phù hợp cho đến thời điểm hiện tại,nó vẫn có khuyết điểm riêng Điều hạn chế lớn nhất là tốc độ dữ liệu của nó khá chậm

Trang 18

(trung bình là khoảng 115200 bits/s) và không phù hợp với thời đại 4.0, khi nhu cầucần sự trao đổi dữ liệu nhiều và đồng bộ dữ liệu cao Trong nội dung nghiên cứu này,hai giao thức MQTT và OPCUA sẽ được phân tích để phân biệt rõ ưu điểm và nhượcđiểm của nó Từ đó, các giao thức sẽ được áp dụng phù hợp vào một ứng dụng SmartFactory.

MQTT là một giao thức mạng kích thước nhỏ (lightweight), hoạt động theo cơ chếpublish – subscribe theo tiêu chuẩn ISO (ISO/IEC 20922) và OASIS mở để truyền tinnhắn giữa các thiết bị MQTT được thiết kế ban đầu cho các mạng SCADA, các kịchbản sản xuất và băng thông thấp, MQTT đã trở nên phổ biến gần đây do sự phát triểncủa Internet-of-Things (IoT) [11]

Giao thức này hoạt động trên nền tảng TCP/IP MQTT được thiết kế cho các kếtnối cho việc truyền tải dữ liệu cho các thiết bị ở xa, các thiết bị hay vi điều khiển nhỏcó tài nguyên hạn chế hoặc trong các ứng dụng có băng thông mạng bị hạn chế MQTTlà giao thức sử dụng trong Facebook Messager và Amazon IoT

OPC-UA là một giao thức truyền thông đa nền tảng cho tự động hóa công nghiệp.OPC-UA giúp cho rô bốt công nghiệp, máy công cụ và bộ điều khiển logic lập trìnhcông nghiệp giao tiếp với nhau [12]

Giao thức được phát triển và duy trì bởi OPC Foundation Nó là một định dạngtrao đổi dữ liệu độc lập với bất kỳ thương hiệu nào và bất kỳ hệ điều hành nào Ngoàiviệc tiêu chuẩn hóa giao tiếp giữa máy móc và hệ thống thông tin, giao thức OPC-UAlần đầu tiên được phát triển để đảm bảo các luồng dữ liệu trong quá trình trao đổi nộibộ hoặc giữa các thiết bị trong tự động hóa công nghiệp [13]

OPC-UA trước đó là OPC Classic, chỉ dựa trên các công nghệ do Microsoft pháttriển Mặc dù hữu ích và hiệu quả, nhưng sự phụ thuộc vào Windows của hệ thống đãngăn cản sự phát triển của nó trong nhà máy hiện đại Được phát hành từ năm 2015,OPC UA giữ lại tất cả các chức năng của OPC Classic, ngoại trừ việc nó độc lập 100%với nền tảng được sử dụng, giúp đơn giản hóa việc triển khai và bảo trì hệ thống thôngtin Không giống như phiên bản tiền nhiệm của nó, OPC UA có thể được sử dụng trênLinux, Mac OS, Microsoft Windows, iOS hoặc Android

4Kiến trúc cho ứng dụng công nghiệp 4.0

Trong thực tế, thường sẽ có sự kết hợp giữa các giao thức giao tiếp với nhau, vừa códây, vừa không dây, vừa truyền thống, vừa hiện đại Tuỳ theo các yêu cầu giữa các lớp

Trang 19

với nhau mà cần có sự tích hợp các giao thức khác nhau Hình 1.3 thế hiện sự kết hợpcủa nhiều giao thức khác nhau trong một ứng dụng.

Hình 1.3: Kiến trúc cho ứng dụng công nghiệp 4.0

• Giữa lớp thiết bị phần cứng và lớp xử lý, do các thiết bị phần cứng không hỗ trợnhiều các giao thức cao cấp và hiệu năng xử lý của các thiết bị không cao, nên việcsử dụng giao thức Modbus 485 sẽ dễ dàng và ổn định hơn trong việc giao tiếp.• Giữa lớp xử lý và lớp cloud, do các bộ phận xử lý đủ mạnh và có nhiều tài nguyên

hơn hỗ trợ cho việc kết nổi mạng Internet, nhưng đồng thời cần phải đáp ứng vềtốc độ truyền và kiểm soát được dữ liệu, nên giữa hai lớp này sẽ phù hợp hơn khisử dụng giao thức OPC UA

• Giữa lớp cloud với các lớp ứng dụng, đặc biệt là các ứng dụng đòi hỏi thời gian tốiưu, MQTT sẽ phù hợp hơn Tuy nhiên, tuỳ thuộc và đặc trưng của các úng dụng,mà giao tiếp của hai lớp này còn có thể thay đổi bằng các giao thức khác

Trang 20

• Ứng dụng trên thiết bị cầm tay: Dùng cho việc điều khiển và đưa ra các yêu cầu(nhận gói hàng - trả gói hàng) trong hệ thống.

Bằng việc kết hợp các giao thức trong công nghiệp, ta sẽ tiến hành thực nghiệm gửi dữliệu để điều khiển các thiết bị thông qua các giao thức truyền thống (Modbus 485 hoặcCAN)

Đối với màn hình điều hành, để khả năng trao đổi dữ liệu nhanh và đồng bộ thôngtin giữa nhiều thiết bị, các giao thức mới như MQTT và OPCUA sẽ được hiện thực Đốivới các thiết bị cầm tay, tùy theo nhu cầu sử dụng mà MQTT hoặc OPCUA sẽ đượcchọn lựa Phần hiện thực thử nghiệm sẽ được thực hiện trong giai đoạn luận văn Việcđo đạc các chỉ tiêu của hệ thống như độ trễ của dữ liệu, đụng độ dữ liệu và xác suất xảyra lỗi cũng sẽ được thực hiện ở giai đoạn này

6Các vấn đề đặt ra trong nghiên cứu

6.2 Lý do các giao thức này phù hợp trong công nghiệp 4.0

Trong thế giới công nghệ hiện đại, có rất nhiều giao thức đã và đang được phát minhra nhằm cải thiện khả năng truyền tải dữ liệu, tạo nên một kết nối mở cho tất cả mọingười Tuy nhiên, trong công nghiệp sẽ đòi hỏi khắt khe hơn với một số tiêu chí như:tốc độ, toàn vẹn dữ liệu, bảo mật Do đó chỉ một số giao thức mới có thể phù hợp đượcvới những yêu cầu khắt khe đó như: MQTT, OPC–UA

6.3 Lý do chọn vấn đề

Trong thời buổi bùng nổ về công nghệ 4.0 như hiện nay, sự tăng trưởng về Internet, vềthiết bị thông minh, thì yêu cầu về sự chuyển đổi, số hoá cũng tăng cao Ta thườngnghe về "chuyển đổi số" ở rất nhiều nơi, rất nhiều lĩnh vực như: chuyển đổi số tronggiáo dục, chuyển đổi số trong nông nghiệp, chuyển đổi số trong quản lý giấy tờ Thìcông nghiệp cũng là lĩnh vực cũng hay được nhắc đến khi nói về chuyển đổi số Ở một

Trang 21

khía cạnh khác, sau đại dịch COVID-19 diễn ra, ta cũng thấy được sự quan trọng củaInternet trong việc duy trì những hoạt động trong cuộc sống như làm việc từ xa, họctập online, mua sắm trực tuyến ngày càng phổ biến và quan trọng hơn.

Trong công nghiệp, khi một chủ doanh nghiệp hoặc một quản lý muốn theo dõi,quan sát, kiểm tra xem các thiết bị máy móc được vận hành như thế nào, tình trạngcủa chúng ra sao một cách thường trực và thuận tiện nhất Thông qua Internet, ta hoàntoàn có thể làm được những điều đó Quan trọng hơn, nhờ sự phát triển của công nghệ,các thiết bị có thể tự động vận hành, giao tiếp với nhau, tự động xử lý các tình huốngcó thể xảy ra, và chúng có thể kết hợp lại để tạo ra một chuỗi sản xuất thông minh Từđó, sự ra đời và phát triển của một nền công nghiệp 4.0 chính thức bắt đầu Tuy nhiên,để biết được rằng những giao thức nào sẽ phù hợp cho từng lớp mức độ, ứng dụng nàothì thông qua đề tài này, ta sẽ biết được câu trả lời Đó chính là lý do đề tài này đượcchọn để tiến hành nghiên cứu trong luận văn này

6.4 Giới hạn trong nghiên cứu

Như đã nói ở trên, đề tài này chỉ tập trung vào việc nghiên cứu các ưu nhược điểm củacác giao thức đang được ứng dụng trong nền công nghiệp hiện nay Nên giới hạn củanghiên cứu này chỉ tập trung ở lớp thứ hai, tức là lớp giao thức trong mô hình năm lớpđã được nói đến ở hình 1.2

7Mục tiêu nghiên cứu

Mục tiêu của nghiên cứu:• Phân tích các ưu khuyết điểm của từng giao thức (các quy định của giao thức).• Áp dụng phù hợp các giao thức vào trong công nghiệp Smart Factory, bằng cách

xây dựng một mô hình demo với các thiết bị như: cánh tay robot, băng chuyền.• Các tiêu chí để so sánh 2 giao thức: độ lớn của nhà máy, khoảng cách giao tiếp,

giao tiếp có dây hay không dây, tốn nhiều hay tốn ít năng lượng, độ trễ dữ liệu,bảo mật dữ liệu, kích thước dữ liệu

• Đưa ra cách đánh giá, hướng dẫn rằng những trường hợp nhà máy, ứng dụng nhưthế nào sẽ cần ứng dụng giao thức nào sẽ phù hợp hơn

Trang 22

Chương 2: Giao thức RS485 và MODBUS

RS485 hay giao thức RS485 là phương thức giao tiếp tín hiệu giữa các thiết bị trongcông nghiệp, chẳng hạn như các cảm biến hay các thiết bị điều khiển khi nó kết nối vớibộ xử lý trung tâm Chuẩn giao tiếp RS485 có khả năng kết nối tối đa lên đến 32 thiếtbị trên một cặp dây đơn và có thể mở rộng lên đến 128 thiết bị nếu sử dụng thêm bộlặp (repeater) và một hệ thống dây nối đất với khoảng cách lên đến 1200m Do đó, giaothức RS485 là sự lựa chọn kinh điển cho các ứng dụng công nghiệp

Dựa trên nền tảng bên dưới là RS485, một giao thức được phát triển trên nó, gọi làModbus Modbus là một giao thức được phát triển bởi Modicon (hiện nay là SchneiderElectric) vào năm 1979 Mặc dù đã ra đời từ rất lâu, tuy nhiên Modbus vẫn được sửdụng rộng rãi cho đến hiện tại vì một số ưu điểm có thể kể đến như đơn giản, độ tincậy cao Có nhiều phiên bản khác nhau của giao thức Modbus, tuy nhiên tuỳ thuộc vàonhu cầu cụ thể mà ta có thể sử dụng những giao thức khác nhau:

• MODBUS 485• MODBUS TCP• MODBUS RTU (Remote Terminal Unit)• MODBUS ASCII (American Standard Code for Information Interchange)RS-485 thường sẽ sẽ được dùng kết hợp với MODBUS, vì đây là hai thành phầnquan trọng, bổ sung cho nhau trong các hệ thống truyền thông, công nghiệp RS-485 làmột chuẩn truyền thông bằng vật lý được sử dụng để kết nối hai thiết bị với mục đíchcung cấp một cơ sở hạ tầng cho việc truyền dữ liệu

Nói cách khác, RS-485 là một tiêu chuẩn truyền thông vật lý, quy định các tín hiệuđiện được truyền tải, còn MODBUS là một giao thức truyền thông, quy định cách traođổi dữ liệu giữa các thiết bị.Do RS-485 là một tiêu chuẩn truyền thông vật lý, nên nó cóthể phục vụ cho các giao thức của MODBUS là RTU và ASCII

1Cấu tạo

Cấu tạo của sợ cáp RS-485 thường bao gồm hai sợi dây truyền (TX) và nhận (RX)được xoắn với nhau, mục đích của việc xoắn dây là chống nhiễu trong khi truyền tínhiệu, và thường được gọi là cáp xoắn đôi Nhờ cấu trúc xoắn đôi của dây, nên tín hiệuluôn được ổn định trong khi truyền ở khoảng cách xa do điện áp giữa 2 dây sẽ được cânbằng khi có nhiễu

Nguyên lý chống nhiễu của dây cáp RS-485 có thể được hiểu như sau: khi môitrường có nhiễu của từ trường gây ra, sự nhiễu đó sẽ ảnh hường đồng thời lên cảhai dây dẫn, khiến cho điện áp của cả hai dây cùng tăng hoặc cùng giảm tại vị trí

Trang 23

nhiễu, nên sự chênh lệch điện áp giữa hai dây đều không đổi Mặt khác, RS-485 sửdụng sự chênh lệch điện áp để phân biệt tín hiệu truyền là 0 hoặc 1 Do đó, với cấutạo xoắn đó sẽ giúp cho RS-485 giảm sự nhiễu trong khi truyền tín hiệu ở khoảng cách xa.Trong hệ thống truyền thông, công nghiệp hiện nay, cáp RS-485 thường được đấunối theo 2 cách phổ biến sau:

• Hệ thống bán song công (Half Duplex): sử dụng hai dây• Hệ thống song công toàn phần (Full Duplex): sử dụng bốn dâyHình 2.1 là một sơ đồ đấu dây theo kiểu bán song công, bằng cách sử dụng 2 dây đểtruyền (TX) và nhận (RX) tín hiệu Với kiểu đấu dây này, dữ liệu chỉ có thể được truyềntheo một chiều tại một thời điểm, tức là chỉ có thể truyền hoặc chỉ có thể nhận tại mộtthời điểm nhất định TVới cách đấu dây kiểu bán song công sẽ giúp tiết kiệm đượcnhiều chi phí hơn trong việc lắp đặt Tuy nhiên sẽ có một số giới hạn về độ trễ quay vòng

Hình 2.1: Hệ thống bán song công [14]Đối với việc đấu dây theo kiểu song công toàn phần, tức sử dụng bốn dây để truyềntải dữ liệu, hai dây truyền (TX) và hai dây cho nhận (RX) dữ liệu Tuy nhiên, ưu điểmhơn so với kiểu bán song công là dữ liệu có thể truyền được hai chiều tại một thời điểm.Hình 2.2 là một sơ đồ đấu dây theo kiểu bán song công toàn phần, với kiểu đấu dâynày, hệ thống kết nối các thiết bị sẽ phải được phân chia dựa trên mô hình chính và phụ(Master - Slave) Do đó, đây cũng chính là giới hạn, tức là các slave chỉ có giao tiếp vớimaster và giữa các slave thì không thể giao tiếp được với nhau

Hình 2.2: Hệ thống song công toàn phần [15]Với giao thức Modbus sẽ cho phép liên lạc giữa nhiều thiết bị được kết nối với cùngmột mạng, ví dụ như một hệ thống cảm biến đo nhiệt độ, cảm biến đo độ ẩm, cảm biến

Trang 24

mực nước và sau đó sẽ truyền tín hiệu kết quả đến máy tính Modbus thường được sửdụng để kết nối một máy tính giám sát với một thiết bị đầu cuối từ xa (RTU) trong cáchệ thống điều khiển giám sát và thu thập dữ liệu (SCADA).

2Cơ chế hoạt động

Cách thức hoạt động được mô tả trong Hình 2.3 là so sánh chênh áp giữa A và B theologic 0 và 1 và không hề so sánh với đất Việc này rất thích hợp cho các ứng dụng cầntruyền tín hiệu đi xa vì giá trị của chúng chỉ là 0 với 1

Hình 2.3: Phương thức truyền tín hiệu của MOD-BUS 485 [16]Giả sử khi giá trị của A và B lần lượt là A = 1, B = 0 thì dữ liệu nhận biết data= 1 Ngược lại nếu A = 0 và B = 1 thì data = 0 Chính vì hoạt động theo cách trênmà khi truyền đi xa dù có sụt áp thì cũng không ảnh hưởng đến quá trình truyền dữ liệu

Chênh áp giữa A và B trong khoảng -6 ÷ 1,6V thì dữ liệu nhận giá trị là 1.Chênh áp giữa A và B trong khoảng +1,5 ÷ +6V thì dữ liệu nhận giá trị là 0

Ưu điểm của Modbus 485:• Modbus 485 truyền theo phương thức đa điểm, tức là có thể truyền nhiều tín hiệu

khác nhau trong cùng một mạng (max 32 thiết bị)

Trang 25

• Tốc độ truyền của Modbus 485 là 10Mbit/s có thể truyền đi xa (max 1200m)nhưng với tốc độ chậm.

Cấu tạo của một frame dữ liệu của Modbus 485:Thông thường thì một frame truyền Modbus RTU bao gồm: 1 byte địa chỉ – 1 bytemã hàm – n byte dữ liệu – 2 byte CRC được mô tả ở Hình 2.4:

Hình 2.4: Cấu tạo của một frame dữ liệu của Modbus 485 [17]

• Byte địa chỉ: dùng để xác định thiết bị mạng địa chỉ được nhận dữ liệu (đối vớiSlave) hoặc dữ liệu nhận được từ địa chỉ nào (đối với Master) Địa chỉ này đượcquy định từ 0 – 254

• Byte mã hàm: được quy định từ Master, xác định yêu cầu dữ liệu từ thiết bị Slave.Ví dụ mã 01: đọc dữ liệu lưu trữ dạng Bit, 03: đọc dữ liệu tức thời dạng Byte, 05:ghi dữ liệu 1 bit vào Slave, 15: ghi dữ liệu nhiều bit vào Slave

• Byte dữ liệu: xác định dữ liệu trao đổi giữa Master và Slave

Đọc dữ liệu:• Master: 2 byte địa chỉ dữ liệu – 2 byte độ dài dữ liệu.• Slave: 2 byte địa chỉ dữ liệu – 2 byte độ dài dữ liệu – n byte dữ liệu đọc được

Ghi dữ liệu:• Master: 2 byte địa chỉ dữ liệu – 2 byte độ dài dữ liệu – n byte dữ liệu cần ghi.• Slave: 2 byte địa chỉ dữ liệu – 2 byte độ dài dữ liệu

• Byte CRC: 2 byte kiểm tra lỗi của hàm truyền và cách tính giá trị của Byte CRC16 Bit

Cách thức hoạt động của Modbus 485 được minh hoạ trong Hình 2.5Modbus RTU sẽ hoạt động dựa trên nguyên tắc truyền tín hiệu thông qua Master(bên nhận) và Slave (bên truyền tín hiệu) thông qua địa chỉ thanh ghi Các phươngthức truyền tín hiệu của modbus có các dạng như RS-232, RS-485, Modbus TCP/IPsẽ truyền thông qua internet Dùng đường truyền vật lí RS485 nên để giao tiếp

Trang 26

Hình 2.5: Cách thức hoạt động của Modbus 485 [16]được giữa master và slave ta phải cài đặt các thông số về tốc độ truyền baudrate(4800.9600.115200 ), số data bit (7-8), bit stop (0-1-2) , Flag Parity kiểm tra chẵn lẻ(None, Event, Odd) Ngoài các thông số trên phản giống nhau giữa master và slave, thìbên master phải biết được ID của slave cần giao tiếp.

Mỗi thiết bị trong mạng modbus sẽ được cung cấp một địa chỉ duy nhất Trongmạng modbus chỉ có 1 node được gán là Master (ta gọi là Master, các node còn lại gọilà Node) mới có thể khởi tạo lệnh Trong frame truyền có chứa địa chỉ của thiết bị slave(1 đến 247), chỉ thiết bị có ID tương ứng mới đáp ứng, mặc dù các thiết bị khác có thểnhận được nó (một ngoại lệ là các lệnh có thể phát được cụ thể được gửi đến nút 0,được thực hiện nhưng không được xác nhận) Tất cả các lệnh Modbus chứa thông tintổng kiểm tra (check sum CRC) để cho phép người nhận phát hiện lỗi truyền Mastersẽ đọc và ghi các dữ liệu vào thanh ghi của thiết bị slave

Tuy nhiên, đối với MODBUS ASCII, đây là một giao thức có cơ chế hoạt động tươngtự như MODBUS RTU Nhưng dữ liệu truyền nhận sẽ là các ký tự ASCII, thay vì ký tựnhị phân như MODBUS RTU Mặc dù giao thức này sẽ giúp người dùng dễ dàng đọcdữ liệu hơn (vì đã được truyền dưới dạng ký tự văn bản ASCII), nhưng do dữ liệu dàihơn nên giao thức này kém hiệu quả hơn Do đó vẫn có rất ít người sử dụng giao thứcMODBUS ASCII trong công nghiệp

3Đánh giá

Dựa trên một sô nghiên cứu và thử nghiệm thực tế, ta có một số đánh giá về giao thứcMODBUS RS-485 như sau:

Trang 27

Độ trễ (Latency):• Độ trễ trung bình: Xét trong mạng lưới RS-485, độ trễ trung bình là khoảng 10

ms cho đến 100 ms tuỳ thuộc vào tốc độ truyền thông (baud rate) và khoảng cáchcủa các thiết bị Tốc độ truyền thông phổ biến được sử dụng hiện nay là 9600 bps,19200 bps, 38400 bps, và 115200 bps Baud rate càng cao thì độ trễ càng giảm.• Độ trễ tối đa: Với tốc độ 9600 bps, độ trễ có thể lên đến vài trăm mili giây (ms)

khi truyền các gói tin có kích thước dữ liệu lớn Còn với tốc độ 115200 bps, thì độtrễ thường khá nhỏ, khoảng dưới 50 ms với các gói dữ liệu có kích thước nhỏ.Thông lượng (Throughput):

• Thông lượng trung bình: được thể hiện trong bảng sau

Bảng 2.1: Thông lượng trung bình của RS-485Tốc độ (Baud rate) Thông lượng (Throughput)

• Số lượng kết nối: Trên một đường truyền, có thể có tối đa lên tới 32 thiết bị, vàcó thể mở rộng thành 128 thiết bị nếu sử dụng thêm bộ lặp (repeater)

Bảo mật và độ tin cậy:• Bảo mật: Modbus RTU không có các tính năng bảo mật nâng cao, do đó sẽ dễ bị

tấn công về vật lý nếu không có các biện pháp bảo vệ.• Độ tin cậy: Vì sự chống nhiễu tốt, dữ liệu được bảo toàn trong quá trình truyền

tải, vậy nên giao thức này được đánh cao về độ tin cậy

Trang 28

4Hiện thực Modbus485

Hiện thực giao thức Modbus485 trên nền tảng vi xử lý (chẳng hạn như Raspberry PIhoặc các máy tính công nghiệp) được hiện thực khá đơn giản với một cổng giao tiếpUART Một mạch chuyển đổi từ UART sang RS485 sẽ được kết nối với hệ thống vi xử lýthông qua kết nối USB để thực hiện các tiêu chuẩn giao tiếp dựa trên RS485 Hình 2.6là một thiết bị có tên là USB TO 485

Hình 2.6: Mạch chuyển đổi USB sang RS485 [18]Với mạch chuyển đổi này, nó sẽ được driver trên hệ điều hành nhận là một thiết bịgiao tiếp nối tiếp UART Quy trình để có thể gửi và nhận thông tin qua các thiết bị 485khi kết nối với mạch chuyển đổi này, được trình bày chi tiết như bên dưới

Tùy vào hệ điều hành mà chúng ta sử dụng, việc định danh cổng kết nối với thiết bị USB485 có thể khác nhau Đối với hệ thống máy tính dựa trên hệ điều hành Windows, nó cóthể là một cổng COM Tuy nhiên, trên hệ điều hành dựa trên nhân Linux, thiết bị nàythường được nhận diện là /dev/ttyUSB0 Chúng ta có thể kiểm tra điều này bằng cáccông cụ có sẵn Với Windows, thông tin thiết bị sẽ được tìm thấy trong cửa sổ DeviceManager Hình 2.7 thể hiện nội dung thông tin thiết bị đang được kết nới với hệ điềuhành Windows

Trang 29

Hình 2.7: Kiểm tra cổng kết nối trên hệ điều hành WindowsĐối với hệ thống Linux, chúng ta sẽ thực thi câu lệnh ls /dev/tty*, Hình 2.8 thểhiện thông tin của các thiết bị trên hệ thống Linux được liệt kê ra:

Hình 2.8: Kiểm tra cổng kết nối trên hệ điều hành LinuxSau khi đã có thông tin về cổng COM, việc mở cổng kết nối có thể được thực hiệnnhờ đoạn mã nguồn sau đây

Trang 30

5foriinrange(, N):

6port=ports[i]

7strPort=str(port)

8if"USB Serial Device"instrPort:

9splitPort=strPort.split(" ")

10commPort=(splitPort[0])

11returncommPort

Ý tưởng chính trong đoạn chương trình trên là liệt kê tất cả các cổng COM khả dĩcó trong hệ thống, sau đó kiểm tra tên của cổng COM, dựa vào 1 chuỗi kí tự đặc biệt,thường đi kèm với nhà sản xuất của thiết bị Việc tìm tự động này sẽ hỗ trợ rất tốttrên hệ điều hành Windows, khi mà cổng COM của một thiết bị về nguyên tắc là có thểthay đổi Tuy nhiên điều này lại không xảy ra trên hệ điều hành Linux Tên của thiếtbị thường là cố định trên hệ điều hành này

Để đảm bảo việc gửi dữ liệu là chính xác, chúng ta cần xóa toàn bộ dữ liệu trong bộnhớ tạm của cổng UART (đang kết nối với USB485) Điều này sẽ rất cần thiết, vì ngaysau quá trình gửi, dữ liệu trả về từ một thiết bị sẽ được lưu trong bộ nhớ tạm này Mộtđoạn chương trình ngắn minh họa cho việc gửi dữ liệu sẽ như sau:

1defmodbus485_clear_buffer(port485):

2port485.inWaiting()

34defmodbus485_send(port485, data):

5modbus485_clear_buffer()

6try:

7ser.write(serial.to_bytes(data))

8except:

9print("Modbus485**","Failed to write data")

Dữ liệu gửi đi cần tuân theo định dạng của Modbus485 Giả sử như một cảm biếncó địa chỉ là 0x01, mã lệnh để đọc giá trị là 0x03 Thông tin của cảm biến nhiệt độđược lưu ở địa chỉ 0x06 và có kính thước là 0x01 word, chuỗi data để giao tiếp với nólà [0x01, 0x03, 0x00, 0x06, 0x00, 0x01, 0x64, 0x0B] Trong đó 2 byte cuối cùng(0x64 và 0x0B) là giá trị CRC của chuỗi dữ liệu

Hiện tại, có rất nhiều công cụ hỗ trợ cho việc tính CRC thủ công Các công cụ trựctuyến cũng khá phổ biến, chẳng hạn như trang tính https://crccalc.com/, với giaodiện hỗ trợ như Hình 2.9:

Dữ liệu đầu vào và kết quả CRC nên chuyển toàn bộ sang chế độ số HEX Công thứcCRC cho các thiết bị sẽ thường là CRC-16 Khi chọn vào chức năng này, một loạt cáccông thức tính CRC sẽ được liệt kê ra, như sau:

Hình 2.10 cho ta thấy kết quả CRC cho Modbus485 có thể được tìm thấy ở dòng

Trang 31

Hình 2.9: Công cụ tính toán CRC online

Hình 2.10: Kết quả tính toán CRCCRC-16/MODBUS, chính là 0x0B64 Giá trị này khi tách ra thành 2 byte, với bytetrọng số thấp đứng trước trong khối dữ liệu gửi đi, chúng ta sẽ có kết quả cho 2 byteCRC lần lượt là 0x64 và 0x0B

Trong trường hợp chúng ta muốn tính toán CRC một cách tự động bằng việc lậptrình, một đoạn code mẫu cho việc này có thể được hiện thực như sau:

14crc=modbusCrc(msg)

15print("0x%04X"(crc))

16ba=crc.to_bytes(2, byteorder='little')

17print(%02X %02X"(ba[0], ba[1]))

18

Lưu ý rằng, sau khi tính toán được giá trị CRC, nó cần được chuyển thành chuỗibyte, với byte có trọng số thấp đứng trước (little indent)

Trang 32

4.3 Nhận dữ liệu qua Modbus 485

Việc nhận dữ liệu từ kết nối 485 được chia thành 2 bước Trong bước đầu tiên, chúng tacần kiểm tra xem có dữ liệu trong bộ đệm của cổng 485 hay không Tiếp theo đó, khi dữliệu được ra và lưu vào một biến tạm, chúng ta cần xử lý thêm trên dữ liệu thô, để cóđược thông tin có ý nghĩa Chương trình gợi ý cho 2 bước này được minh họa như sau:

1defmodbus485_read(port485):

2bytesToRead=port485.inWaiting()

3ifbytesToRead> 0:

4out=port485.read(bytesToRead)

5data_array=[bforbinout]

7if len(data_array)>= 7:

8array_size=len(data_array)

9value=data_array[array_size- 4]* 256 +

data_array[array_size- 3],→

6out=ser.read(bytesToRead)

7data_array=[bforbinout]

8#process the received bytes

14print("Modbus485**","Raw Data: ",return_array)

15[value]=struct.unpack('>f',bytearray(return_array))

16returnvalue

17else:

18return400

19return404

Trang 33

Nhờ hàm tích hợp sẵn struct.unpack trên python, việc chuyển đổi được thực hiệnbởi một câu lệnh duy nhất Trong các trường hợp khác, chúng ta cần kiểm tra kĩ cấutrúc của thông tin được lưu trong chuỗi byte của gói dữ liệu 485, để lựa chọn quy trìnhgiải mã dữ liệu cho phù hợp.

Trong ví dụ ở trên, chúng tôi chưa kiểm tra tính hợp lệ của dữ liệu (bằng cách kiểmtra giá trị CRC) Trong các ứng dụng nâng cao, trước khi trả về giá trị, chuỗi byte datasẽ được tách làm 2: chuỗi thông tin và chuỗi CRC Sau đó, chương trình sẽ tính toánlại chuỗi CRC cho thông tin Khi kết quả này là trùng khớp với chuỗi CRC nhận được,thông tin sẽ được xác nhận là hợp lệ cho các xử lý tiếp theo Ngược lại, thông tin nàyxem như bị lỗi và sẽ bỏ qua và không xử lý

với tối đa 32 thiết bị trên một bus mà không cần bộ mở rộng (repeater).• Đơn giản, dễ triển khai, chi phí thấp

• Khả năng tương thích ngược, MODBUS RS-485 có khả năng tương thích với cácthiết bị cũ, tận dụng được các hệ thống hiện có

Những hạn chế của MODBUS RS-485:• Tốc độ truyền dữ liệu thấp, thông thường tốc độ của MODBUS RS-485 bị giới

hạn ở mức 115200 bps, vậy nên không phù hợp cho các ứng dụng yêu cầu tốc độtruyền dữ liệu cao

• Số lượng thiết bị kết nối bị hạn chế, mặc dù có thể kết nối lên tới 32 thiết bịtrên cùng một bus, nhưng để kết nối nhiều hơn thì phải sử dụng đến bộ mở rộng(repeater)

• Khả năng xử lý địa chỉ bị hạn chế, do MODBUS RS-485 sử dụng địa chỉ 8-bit nênchỉ có thể quản lý tối đâ 247 thiết bị Tuy nhiên, trên thực tế thường thì số lượngkhông đạt đến mức 247 thiết bị do giới hạn của bus

• Bảo mật thấp vì do đơn giản, dễ dùng, dễ lắp đặt nên giao thức này cũng dễ bịtấn công nếu không có sự bảo vệ về mặt vật lý

Trang 34

• Giao tiếp một chiều, MODBUS RS-485 sử dụng mô hình Master-Slave nên chỉ cómột thiết bị đóng vai trò là master để điều khiển toàn bộ các slave còn lại Vậynên chỉ có thể có một chiều điều khiển, điều này làm giảm sự linh hoạt và hiệusuất của toàn hệ thống.

• Không hỗ trợ cơ chế tự động thêm thiết bị mới, vậy nên ta phải thực hiện việcthêm thiết bị bằng cách thủ công

Trang 35

Chương 3: Tổng quan về giao thức MQTT

Một số giao thức truyền thông được sử dụng rộng rãi cho phép các thiết bịIoT kết nối với Internet, trong đó giao thức phổ biến nhất theo mô hình xuấtbản/đăng ký (publish/subscribe) thông qua một máy chủ trung gian được gọi làbroker, cho phép các thiết bị IoT xuất bản (publish) dữ liệu và nhận lệnh trong khi cácdịch vụ đám mây đăng ký (subscribe) nhận dữ liệu và gửi lệnh điều khiển tới các thiết bị.MQTT (Message Queuing Telemetry Transport), là một giao thức truyền dữ liệutiêu chuẩn tạo điều kiện cho việc truyền tin nhắn nhẹ nhàng và hiệu quả giữa các thiếtbị, khiến việc truyền nhận dữ liệu trở nên lý tưởng cho các hệ thống IoT nhờ mức sửdụng băng thông thấp, độ tin cậy cao và khả năng hoạt động trong các điều kiện truyềntải đầy thách thức Giao thức này ban đầu được phát triển vào năm 1999 để giám sátđường ống dẫn dầu và sau đó được IBM phát hành dưới dạng tiêu chuẩn mở sau 15 năm

1Cấu trúc thành phần

Hình 3.1: Các thành phần cơ bản trong MQTTNhững thành phần cơ bản nhất trong mô hình kết nối của MQTT đang được minhhoạ trong Hình 3.1 Trong mô hình này sẽ có một thành phần chính là broker và cácthành phần nhỏ là client có những vai trò như publisher, subscriber

Broker được coi là điểm giao tiếp của mọi kết nối từ client Nhiệm vụ chính của brokerlà nhận tin nhắn từ client, sắp xếp các tin nhắn theo hàng dự kiến rồi gửi đến một chủđề (topic) cụ thể Nhiệm vụ của broker là có thể đảm bảo nhận được một số tính năngbổ sung liên quan đến quá trình liên lạc như: tin nhắn bảo mật, tin nhắn lưu trữ, nhậtký

Trang 36

1.2 Client

Client được coi là một thiết bị, hoặc một dịch vụ muốn thực việc gửi tin nhắn cho mộtthiết bị hoặc một dịch vụ khác thông qua broker Tuỳ thuộc vào từng trường hợp, ngữcảnh khác nhau mà client có các vai trò như: Publisher, Subscriber, hoặc cả hai (vừa làPublisher, vừa là Subscriber)

Publisher có chức năng gửi (publish) tin nhắn tới một hoặc nhiều chủ đề (topic).Các publisher không cần biết ai sẽ nhận tin nhắn, publisher chỉ cần gửi tin nhắn lênmột chủ đề cụ thể

Subscriber có chức năng đăng ký (subscribe) để nhận tin nhắn từ một hoặc nhiềuchủ đề Khi một tin nhắn được gửi đến một chủ đề mà subscriber đã đăng ký, broker sẽchuyển tiếp tin nhắn đó tới subscriber

1.3 Publish/Subscribe

Khi giao thức MQTT hoạt động, các MQTT Client (còn được gọi là trạm nút) kết nốivới một Broker (máy chủ MQTT) Các nút trạm sẽ đăng ký một số Topic (Chủ đề) Vídụ: “/client1/channel1”, “/client2/channel2” Hoạt động này được gọi là Subscribe Tacó thể hình dung quá trình này tương tự như khi đăng ký một kênh trên Youtube

Sau đó, dữ liệu mà kênh đã đăng ký sẽ được gửi đến từng khách hàng Quá trìnhclient gửi dữ liệu đến một kênh được gọi là Publish

Tin nhắn trong giao thức MQTT được định dạng ở dạng văn bản thuần túy Tuy nhiên,người dùng có thể tùy chỉnh tin nhắn thành các định dạng khác Tin nhắn là thông tinđược trao đổi giữa các thiết bị của bạn Chúng có thể là lệnh hoặc dữ liệu Tuỳ thuộcvào lệnh hoặc dữ liệu trong tin nhắn mà ở phía bên nhận sẽ có những hành động, xử lýcụ thể

Topic là một trong những khái niệm quan trọng trong giao thức MQTT Chào hàngđược coi là “sợi dây liên kết” giữa Publish và Subscribe Nếu một tin nhắn được gửitrong một kênh, những người đăng ký kênh đó sẽ nhận được tin nhắn

Các kênh này được trình bày dưới dạng chuỗi và được phân tách bằng dấu gạchchéo (/) Trong đó mỗi dấu gạch chéo đại diện cho một cấp độ của kênh Ví dụ: tạomột kênh cho TV trong văn phòng tại nhà của mình: home/office/tv

Cần lưu ý rằng, các kênh này có sự phân biệt chữ hoa và chữ thường Ví dụ:home/office/tv sẽ khác với home/office/TV Bên cạnh đó, thông qua giao thức MQTT,

Trang 37

bạn có thể khai báo các kênh một cách cực kỳ nhanh mà không cần phải tạo trước.Ví dụ: ta sử dụng hệ thống cảm biến để đo thông tin môi trường trong nhà Tùythuộc vào số lượng phòng trong ngôi nhà mà sẽ có cảm biến môi trường riêng Vì vậy,kênh truyền thông tin môi trường trong nhà của bạn sẽ được khai báo như sau:

• home/bedroom/temperature: kênh thông tin về nhiệt độ trong phòng ngủ.• home/living-room/humidity: kênh thông tin về độ ẩm trong phòng khách

• QoS 1: Đảm bảo rằng một tin nhắn được gửi ít nhất một lần cho người nhận.Người gửi lưu trữ tin nhắn và có thể gửi nhiều lần cho đến khi nó nhận được phảnhồi từ người nhận xác nhận rằng đã nhận được tin nhắn

• QoS 2: Điều này hoạt động thông qua một cái bắt tay 4 bước Đây là mức dịch vụcao nhất trong MQTT Mức này đảm bảo rằng mỗi tin nhắn chỉ được nhận đúngmột lần bởi người nhận QoS 2 là mức dịch vụ an toàn và chậm nhất, quá trìnhnày phải trải qua 4 bước bắt tay

Trong giao thức MQTT, Retain hoạt động như một lá cờ được gắn vào tin nhắn Bêncạnh đó, nó chỉ nhận giá trị 0 hoặc 1 (tương tự với giá trị false hoặc true) Trong đó,nếu được gán bằng 1, broker sẽ giữ lại bản tin cuối cùng của kênh có QoS tương ứng.Client sẽ nhận được tin nhắn đó khi đăng ký kênh chứa tin nhắn đã lưu

Đây là một tính năng quan trọng của MQTT Broker Hình 3.2 thể hiện vai trò của tínhnăng này, giúp các MQTT Broker kết nối và trao đổi dữ liệu với nhau Tính năng nàychỉ được thực hiện khi có ít nhất 2 broker Trong đó, có một broker sẽ chuyển thànhbridge với các thông số sau:

• Địa chỉ: Tên địa chỉ mà broker cần kết nối• Bridge_protocol_version: Phiên bản MQTT mới dùng cho 2 broker• Topic: Bao gồm: tên topic trao đổi giữa 2 broker, hướng trao đổi và sơ đồ topic

giữa 2 broker

Trang 38

Hình 3.2: Mô hình Bridge trong MQTT [19]

2Cơ chế hoạt động

MQTT hoạt động dựa trên mô hình pub/sub, trong đó broker làm trung gian, các clientkết nối tới broker, giao tiếp với nhau bằng việc gửi và nhận tin nhắn qua các chủ đề Cơchế hoạt động đó đang được minh hoạ ở Hình 3.3

Hình 3.3: Cơ chế hoạt động trong MQTT [20]MQTT có một số bước thực hiện cơ bản trong cơ chế hoạt động:

2.1 Kết nối (Connect)

• Thiết lập kết nối: Khi client khởi tạo một kết nối đến broker thông qua TCP/IP,client sẽ gửi một gói tin CONNECT đến broker để yêu cầu tạo kết nối Trong góitin CONNECT có chứa một số thông tin như ID của client, tên đăng nhập - mậtkhẩu, hoặc một số thông tin để xác thực và các thông số khác

• Xác nhận kết nối: Khi broker nhận gói tin CONNECT từ client, broker sẽ đi xácthực client (nếu có) và tiến hành tạo kết nối bằng cách gửi lại gói tin CONNACKcho client Sau khi kết nối thành công, client có thể bất đầu việc gửi nhận tin nhắn

Trang 39

2.2 Gửi và Nhận Tin nhắn (Publish/Subscribe)

• Đăng ký chủ đề (Subscribe Topic): Client đóng vai trò là subscriber sẽ gửi gói tinSUBSCRIBE đến broker để yêu cầu nhận những tin nhắn từ chủ đề nhất định.Sau đó broker sẽ trả vể gói tin SUBACK cho client để xác nhận việc đăng ký củaclient đã thành công

• Gửi tin nhắn (Publish Message): Client có vai trò là publisher sẽ gửi gói tin LISH có chứa nội dung tin nhắn cần gửi cho broker, và kèm theo là chủ đề mà tinnhắn cần được gửi đến Khi broker đã nhận được tin nhắn, broker sẽ đi kiểm tracác subscriber đã đăng ký với chủ đề đó

PUB-• Phân phối tin nhắn (Deliver Message): Sau khi nhận được tin nhắn và kiểm tracác subscriber đã đăng ký theo chủ đề đó, broker sẽ gửi tin nhắn đã nhận đượcđến tất cả các subscriber mà đã đăng ký với chủ đề tương ứng Subscriber sau khinhận được tin nhắn từ broker, subscriber sẽ gửi lại cho broker gói tin PUBACKđể xác nhận việc gửi tin nhắn Tuy nhiên cơ chế xác nhận này tuỳ thuộc vào loạiChất lượng dịch vụ (QoS) mà sẽ được thực hiện khác nhau

2.3 Chất lượng dịch vụ (QoS)

MQTT hỗ trợ 3 mức chất lượng dịch vụ (QoS):• QoS 0 (At most once): Tin nhắn được gửi đi một lần duy nhất cho subscriber và

không cần sự xác nhận từ subscriber Điều này không đảm bảo được tin nhắn cóđược gửi thành công hay không

• QoS 1 (At least once): Tin nhắn được gửi ít nhất một lần, đảm bảo việc subscriberphải được nhận tin nhắn ít nhất một lần Tuy nhiên cũng có sự rủi ro là subscribercó thẻ nhận lặp lại nhiều lần

• QoS 2 (Exactly once): Tin nhắn được gửi đúng một lần nhờ vào việc sử dụng haibước xác nhận giữa broker và subscriber

2.4 Ngắt Kết nối (Disconnect)

• Ngắt kết nối: Khi client muốn ngắt kết nối với broker, client sẽ gửi một gói tinDISCONNECT cho broker và tiến hành ngưng kết nối Broker sau khi nhận đượcgói tin cũng tiến hành kết thúc phiên làm việc với client

Trang 40

tin nhắn nào khác Broker sẽ tự động phản hồi cho client bằng gói tin PINGRESPđể xác nhận rằng client vẫn còn giữ kết nối với broker.

• Auto Reconnect: Nhờ chức năng Keep Alive, client sẽ biết được bản thân có bị mấtkết nối với broker hay không Nếu sau khi gửi gói PINGREQ được gửi đi nhưngvẫn không nhận được gói tin PINGRESP từ broker sau khoảng một thời gian chờ,client sẽ tự ngắt kết nối và thực hiện việc kết nối lại với broker

• Will Message: tính năng này đảm bảo rằng các client có thể tự xử lý được sự cốbị ngắt kết nốt đột ngột Tin nhắn này đã được cấu hình từ lúc thiết lập kết nối,broker sẽ tự động gửi tin nhắn này

• Retained Messages: Các tin nhắn được publish có thể kèm theo đánh dấu lưu trữ(retained), để cho broker tiến hành lưu trữ tin nhắn này Mục đích là gửi cho tấtcả các subscriber sau này sẽ được nhận tin nhắn đó ngay sau khi tiến hành đăngký vào chủ đề đó

3Đánh giá

Dựa trên một sô nghiên cứu và thử nghiệm thực tế, ta có một số đánh giá về giao thứcMQTT như sau:

Độ trễ (Latency):• Độ trễ trung bình: Xét trong cùng một mạng cục bộ (LAN), độ trễ trung bình

sẽ nằm ở khoảng từ 5 ms đến 10 ms Tuy nhiên, nếu xét trong một môi trườngInternet, độ trễ sẽ bị ảnh tuỳ thuộc vào khoảng cách, vị trí, chất lượng mạng dođó, độ trễ trung bình sẽ tăng lên khoảng từ 50 ms tới 200 ms

• Độ trễ tối đa: Trong các ứng dụng IoT thời gian thực, độ trễ tối đa thường đượcchấp nhận ở khoảng dưới 1 giây với QoS 0 Còn đối với QoS 1 và QoS 2 thì độ trễsẽ cao hơn khá nhiều

Thông lượng (Throughput):• Thông lượng trung bình: được thể hiện trong bảng sau

Bảng 3.1: Thông lượng trung bình của MQTTQoS Thông lượng (Throughput)

Ngày đăng: 25/09/2024, 14:33

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN