Modbus RTU GVHD Trần Thúy Hà HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG BÁO CÁO BÀI TẬP LỚN Thiết kế ngoại vi và kỹ thuật ghép nối Giao thức Modbus RTU Giảng viên hướng dẫn Trần Thúy Hà Nhóm môn học 02 Nhóm bài tập 14 Sinh viên thực hiện Trịnh Văn Kiên B18DCDT105 Nguyễn Đức Tuấn Anh B18DCDT006 Nguyễn Thanh Qúy B18DCDT198 Phạm Việt Anh B18DCDT013 Đỗ Quang Minh B18DCDT 150 Học kỳ I năm học 2021 2022 MỞ ĐẦU Trong nền công nghiệp hiện nay, việc ứng dụng mạng công nghiệp để điều khiển giám sát các t.
Trang 1BÁO CÁO BÀI TẬP LỚN
Thiết kế ngoại vi và kỹ thuật ghép nối
Giao thức Modbus RTU
Giảng viên hướng dẫn : Trần Thúy Hà
Sinh viên thực hiện : Trịnh Văn Kiên B18DCDT105
Nguyễn Đức Tuấn Anh B18DCDT006 Nguyễn Thanh Qúy B18DCDT198
Đỗ Quang Minh B18DCDT150
Học kỳ I năm học 2021 - 2022
Trang 2MỞ ĐẦU
Trong nền công nghiệp hiện nay, việc ứng dụng mạng công nghiệp để điều khiển giám sát các thiết bị, các cơ cấp chấp hành ngày càng được sử dụng nhiều trong các nhà máy, xí nghiệp, và các dây chuyền sản xuất Việc điều khiển một hệ thống bởi một máy tính giúp việc lưu trữ các giá trị hiện tại được thuận tiện hơn…
Một điều thuận lợi là càng ngày càng có nhiều thiết bị chấp hành, hoặc thiết
bị điều khiển được tích hợp các giao thức mạng: Pdofibus, Can, Modbus, Từ những giao thức mạng tích hợp có sẵn trên các thiết bị trên, nhóm đã thực hiện việc tìm hiểu về các giao thức mạng theo giao thức Modbus, từ đó mang lại một cái nhìn trực quan về một hệ thống mạng và các giao thức kết nối.
Hà Nội, ngày 22 tháng 2 năm 2022
GIỚI HẠN ĐỀ TÀI:
Giao thức Modbus RTU
Trang 3MỤC LỤC
I, GIỚI THIỆU VỀ MODBUS RTU 4
II, TÀI NGUYÊN MODBUS RTU 4
1, Lịch sử Modbus RTU 4
2, Tại sao Modbus lại phổ biến như vậy? 5
III, Giao tiếp Modbus RTU 5
1, Giao thức Modbus 5
2, Modbus RTU 6
Cách Modbus RTU thực hiện truyền thông 7
Hình 3: Truyền thông Master – Slave 7
Cấu trúc bản tin Modbus RTU 7
Đọc dữ liệu: 8
Ghi dữ liệu: 8
Địa chỉ Modbus RTU 8
Modbus master address (S7-200) 8
Địa chỉ modbus slave 8
Việc sử dụng cấu trúc modbus master 9
Sử dụng MODBUS slave instruction 9
3, Nguyên tắc hoạt động của MODBUS RTU 10
Đọc và viết dữ liệu 11
4, Biểu diễn dữ liệu Modbus RTU 12
IV So sánh các loại ModBus 13
V Ưu và nhược điểm 13
Ưu điểm của Modbus RTU 13
Nhược điểm của Modbus RTU 14
VI, Ứng dụng của Modbus RTU 14
1, Ứng dụng Modbus RTU trong công nghiệp 14
2, Cách kết nối Master – Slave Modbus RTU 15
Trang 4I, GIỚI THIỆU VỀ MODBUS RTU
Modbus RTU là một giao thức nối tiếp mở có nguồn gốc từ kiến trúc Master / Slave ban đầu được phát triển bởi Modicon (nay là Schneider Electric) Nó là một giao thức mức nối tiếp được chấp nhận rộng rãi do dễ sử dụng và đáng tin cậy Modbus RTU được sử dụng rộng rãi trong Hệ thống Quản lý Tòa nhà (BMS) và Hệ thống Tự động hóa Công nghiệp (IAS)
Các bản tin Modbus RTU là một cấu trúc 16-bit đơn giản với CRC (Cyclic Redundant Checksum) Sự đơn giản của những thông điệp này là đảm bảo độ tin cậy Do tính đơn giản này, cấu trúc thanh ghi Modbus RTU 16 bit cơ bản có thể được sử dụng để đóng gói dưới dạng dấu phẩy động, bảng, văn bản ASCII, hàng đợi và các dữ liệu không liên quan khác
Giao thức này chủ yếu sử dụng giao diện nối tiếp RS-232 hoặc RS-485 để truyền thông và được hỗ trợ cho mọi chương trình phần mềm thu thập dữ liệu SCADA, HMI, OPC Server và chương trình thu thập dữ liệu thương mại trên thị trường Điều này giúp bạn rất dễ dàng tích hợp thiết bị tương thích Modbus vào các ứng dụng điều khiển và giám sát mới hoặc hiện có
II, TÀI NGUYÊN MODBUS RTU
1, Lịch sử Modbus RTU
Modbus bắt nguồn trong cuối những năm 70 thế kỷ trước Năm 1979 khi nhà sản xuất PLC Modicon giờ là tập đoàn Schneider Electric's Telemecanique phát hành giao diện truyền thông Modbus cho mạng multidrop dựa trên kiến trúc master/client Truyền thông giữa các Modbus node có được bằng các thông điệp Nó là một chuẩn mở mà được
mô tả bằng cấu trúc thông điệp Modbus interface ban đầu chạy trên RS-232, nhưng các thực hiện Modbus sau nhất dùng RS-485 vì nó cho phép khoảng cách lớn, tốc độ cao và khả năng của một mạng multi-drop thực sự Trong thời gian ngắn hàng trăm nhà sản xuất thực hiện hệ thống thông điệp
Modbus RTU là một tiêu chuẩn mở, có nghĩa là các nhà sản xuất có thể xây dựng
nó vào thiết bị của họ mà không phải trả tiền bản quyền Đây là giao thức truyền thông phổ biến nhất trong tự động hóa công nghiệp và hiện là phương tiện phổ biến nhất hiện
có để kết nối các thiết bị điện tử công nghiệp
Modbus được sử dụng rộng rãi bởi nhiều nhà sản xuất trong nhiều ngành công nghiệp Modbus thường được sử dụng để truyền dữ liệu từ thiết bị điều khiển đến bộ điều
Trang 5khiển logic hoặc hệ thống lưu trữ dữ liệu Ví dụ, trong tự động hóa tòa nhà, nhiệt độ và
độ ẩm thường được giao tiếp với máy tính để lưu trữ lâu dài Modbus thường được sử dụng để kết nối máy tính giám sát với thiết bị đầu cuối từ xa (RTU) trong hệ thống điều khiển giám sát và thu thập dữ liệu (SCADA)
2, Tại sao Modbus lại phổ biến như vậy?
Modbus được tạo ra bởi một trong những nhà sản xuất PLC lớn nhất tại thời điểm
đó và làm cho nó mở và phổ biến rộng rãi Modbus cũng yêu cầu rất ít về không gian mã
bộ xử lý hoặc RAM Mặc dù ngày nay điều này không còn quan trọng với các bộ vi xử lý
và công nghệ mạnh mẽ có sẵn cho chúng ta, nhưng nó rất quan trọng trong những năm đầu của quá trình tự động hóa công nghiệp khi các bộ xử lý sử dụng công nghệ 8-bit và các tài nguyên như RAM và ROM cực kỳ đắt đỏ và khan hiếm
Kiểm tra tin nhắn là một lý do tại sao Modbus đã trở nên phổ biến Kiểm tra CRC
và LRC có nghĩa là lỗi đường truyền được kiểm tra chính xác đến 99%
III, Giao tiếp Modbus RTU
1, Giao thức Modbus
Modbus hay MODBUS là một giao thức truyền thông ở tầng Application theo mô hình OSI, hỗ trợ giao tiếp theo mô hình client/server giữa các thiết bị kết nối trong nhiều loại bus hoặc mạng khác nhau Modbus được Modicon (nay là Schneider Electric) xuất bản vào năm 1979 để sử dụng với các bộ PLC của chính hãng này.Modbus sau đó đã trở thành một giao thức truyền thông tiêu chuẩn de facto và là một phương tiện phổ biến để kết nối các thiết bị điện tử công nghiệp
Cấu trúc thông điệp của Modbus
Hình 1: Cấu trúc nối mạng Modbus
Trên RS232 gởi các thông điệp tương tự như được dùng trên Modbus/TCP qua ethernet Gọi là Modbus interface Protocol có thể dùng không quan tâm kiểu kết nối Vì điều này, Modbus cho khả năng dễ dàng nâng cấp cấu trúc phần cứng của mạng công
Trang 6nghiệp, không cần thay đổi lớn trong phần mềm Một thiết bị cũng có thể truyền thông với vài Modbus node một lúc, dù chúng được nối với các kiểu giao diện khác nhau, không cần dùng protocol khác cho mỗi kết nối
Trên các giao diện đơn giảng giống RS485 hay RS232, các thông điệp Modbus được gửi theo dạng đơn giản trên mạng Các hệ thống mạng linh hoạt hơn như TCP/IP qua ethernet, các thông điệp Modbus như nhúngtrong các gói với định dạng cần thiết cho giao diện vật lý Trong trường hợp đó Modbus và các kiểu kết nối khác có thể cùng tồn tại ở cùng giao diện vật lý ở cùng lúc Mặc dù cấu trúc thông điệp Modbus chính là peer-to-peer (ngang hàng), Modbus có thể kết nối thành cả mạng point-to-point và multidrop Gởi đi bằng các thông điệp
Bốn thành phần cơ bản có mặt trong mỗi thông điệp Cuối các thành phần này là giống nhau cho tất cả thông điệp, để dễ dàng xác định nội dung của Modbus message Một hộp thoại luôn được bắt đầu bởi một master trong mạng Modbus Modbus master gửi một message phụ thuộc vào nội dung của message—slave tác động và đáp ứng với
nó Có thể có nhiều master trong một Modbus network Địa chỉ trong message header được dùng để định nghĩa device mà sẽ đáp ứng với message Tất cả các node trong Modbus network bỏ qua message nếu address field không thỏa mẵn address riêng của chúng
Các dạng modbus phổ biến nhất được dử dụng ngày nay là:
- Modbus/ASCII
- Modbus/RTU
- Modbus/TCP
Hình 2: Một số kết nối khác
2, Modbus RTU
Giao thức Modbus RTU là một giao thức mở Sử dụng đường truyền vật lý
RS-232 hoặc RS485 tốc độ từ 1200 đến 115000 baud Giao thức Modbus RTU sử dụng kỹ thuật Master / Slave để giao tiếp giữa các thiết bị Có nghĩa là, bất kỳ ứng dụng nào sử
Trang 7dụng giao thức Modbus RTU sẽ có một Modbus Master và ít nhất một Modbus Slave Modbus Master thường là một máy tính giám sát máy chủ chạy phần mềm sẽ giao tiếp với một hoặc nhiều thiết bị Modbus Slave
Cách Modbus RTU thực hiện truyền thông
Như đã nói ở trên, Modbus có mô hình dạng Master – Slave Mỗi thiết bị trong mạng modbus được cung cấp một địa chỉ duy nhất Như các thiết bị đo, cảm biến: Cảm biến Pt100, Cảm biến áp suất, cảm biến báo mức sử dụng sóng Radar Trong frame truyền từ Master đến các Slave có chứa ID định danh của thiết bị slave (1 đến 247) Tất
cả các Slave đều nhận, nhưng chỉ có thiết bị nào có cùng ID trong frame truyền mới phản hồi về Master
Hình 3: Truyền thông Master – Slave
Cấu trúc bản tin Modbus RTU
Một bản tin Modbus RTU bao gồm: 1 byte địa chỉ - 1 byte mã hàm - n byte dữ liệu - 2 byte CRC như hình ở dưới:
Hình 4: Bản tin Modbus
Chức năng và vai trò cụ thể như sau:
Trang 8Byte địa chỉ: xác định thiết bị mang địa chỉ được nhận dữ liệu (đối với Slave)
hoặc dữ liệu nhận được từ địa chỉ nào (đối với Master) Địa chỉ này được quy đị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 cách tính giá trị của Byte CRC 16 Bit
Địa chỉ Modbus RTU
Hình 5: Chế độ truyền RTU
Thông tin đầu tiên trong mỗi Modbus message là địa chỉ của receiver Thông số này chứa một byte thông tin Trong Modbus/RTU một byte được dùng Các địa chỉ hợp
lệ trong dải 0 247 Các giá trị 1.247 được gán cho các thiết bị Modbus slave cụ thể và 0 được dùng như địa chỉ broadcast Các Message được gửi sau sẽ được nhận bởi tất cả slave Một slave luôn đáp ứng với một Modbus message Khi đáp ứng nó dùng cùng địa chỉ như master trong request đó Theo cách này master có thể thấy device thực sự đáp ứng với yêu cầu
Modbus master address (S7-200 )
- 00001-09999 là các ngõ ra riêng biệt
- 10001-19999 là các ngõ vào riệng biệt
- 30001-39999 là các thanh ghi ngõ vào
- 40001-49999 là các thanh ghi holding
Trang 9Địa chỉ modbus slave
- 00001-00128 ngõ ra riêng biệt tương ứng từ Q0.0-Q15.7
- 10001-10128 ngõ ra riêng biệt tương ứng từ I0.0-I15.7
- 30001-30032 thanh ghi ngõ vào tương tự tương ứng từ AIW0-AIW62
- 40001-04XXXX thanh ghi holding tương ứng vùng nhớ V
Hình 6: Địa chỉ Việc sử dụng cấu trúc modbus master
MBUS_CTRL thực hiện sau mỗi vòng quét, sử dụng MBUS_CTRL để bắt đầu hay thay đỗi thông số truyền nhận Modbus master intruction chỉ những dòng để đọc hay viết vào địa chỉ đặt biệt của modbus.Modbus slave cần được hỗ trợ yêu cầu chức năng để đọc hay viết địa chỉ đặc trưng modbus
Hình 7: Địa chỉ
Trang 10Sử dụng MODBUS slave instruction
Chọn khối MBUS-INIT thực hiện sau mỗi vòng quét, sử dụng MBUS_INIT để bắt đầu hay thay đỗi thông số truyền nhận Cấu trúc MODBUS SLAVE hỗ trợ giao thức modbus RTU
Hình 8: Cấu trúc MODBUS SLAVE hỗ trợ giao thức modbus RTU
- Mode = 1 đăng kí port 0 để giao thức modbus và giao thức cho phép,
- Mode = 0 đăng kí port 0 với PPI và giao thức modbus không sẵn sàng
- Delay điều kiện kết thúc message
Thông số bound đưa lên 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
Để xây dựng đơn vị dữ liệu ứng dụng Modbus, khách hàng phải bắt đầu một giao dịch Modbus Đây là chức năng thông báo cho máy chủ biết loại hành động nào cần thực hiện Định dạng của một yêu cầu do Master khởi tạo được thiết lập bởi giao thức ứng dụng Modbus Trường mã chức năng sau đó được mã hóa thành một byte Chỉ các mã trong phạm vi từ 1 đến 255 được coi là hợp lệ, 128-255 được dành riêng cho các phản hồi ngoại lệ Khi Master gửi một thông báo đến Slave, nó là trường mã chức năng thông báo cho máy chủ về loại hành động cần thực hiện
Để xác định nhiều hành động, một số chức năng sẽ có mã chức năng phụ được thêm vào chúng Ví dụ, Master có thể đọc các trạng thái ON / OFF của một nhóm đầu ra hoặc đầu vào kín đáo Nó cũng có thể đọc / ghi nội dung dữ liệu của một nhóm thanh ghi MODBUS Khi Master nhận được phản hồi của Slave, trường mã chức năng được Slave
sử dụng để chỉ ra phản hồi không có lỗi hoặc phản hồi ngoại lệ Slave phản hồi lại yêu cầu của mã chức năng ban đầu trong trường hợp phản hồi bình thường
3, Nguyên tắc hoạt động của MODBUS RTU
Để kết nối với thiết bị tớ, chủ sẽ gửi một thông điệp có:
Trang 11- Địa chỉ thiết bị
- Mã chức năng
- Dữ liệu
- Kiểm tra lỗi
Địa chỉ thiết bị là một con số từ 0 đến 247 Thông điệp được gửi tới địa chỉ 0 (truyền thông điệp) có thể dược tất cả các tớ chấp nhận, nhưng các con số từ 1-247 là các địa chỉ của các thiết bị cụ thể Với ngoại lệ của việc truyền thông điệp, một thiết bị tớ luôn phản ứng với một thông điệp MODBUS do đó chủ sẽ biết rằng thông điệp đã được nhận
Yêu cầu
Mã chức năng
01 Đọc cuộn cảm
02 Đọc đầu ra rời rạc
03 Đọc bộ ghi phần
04 Đọc bô ghi đầu vào
05 Viết cuộn cảm đơn
06 Viết bộ ghi đơn
07 Đọc trạng thái ngoại lệ
08 Chẩn đoán
x x
255 Mã chức năng, phụ thuộc vào thiết bị
Dữ liệu xác định địa chỉ trong bộ nhớ thiết bị hay chứa các giá trị dữ liệu được viết trong bộ nhớ thiết bị, hay chứa các thông tin cần thiết khác mang chức năng như yêu cầu
Kiểm tra lỗi là một giá trị bằng số 16 bit biểu diễn kiểm tra dự phòng tuần hoàn (CRC) CRC được thiết bị chủ tạo ra và thiết bị tiếp nhận kiểm tra Nếu giá trị CRC không thỏa mãn, thiết bị đòi hỏi truyền lại thông điệp này
Khi thiết bị tớ thực hiện các chức năng theo yêu cầu, nó sẽ gửi thông điệp cho chủ Thông điệp chứa địa chỉ của tớ và mã chức năng, dữ liệu theo yêu cầu, và một giá trị kiểm tra lỗi
Đọc và viết dữ liệu
MODBUS có tới 255 mã chức năng, nhưng 1 (cuộn cảm đọc), 2 (đầu vào rời rạc đọc), 3 (bộ ghi Holding đọc), và 4 (bộ ghi đầu vào đọc) là các chức năng đọc được sử dụng phổ biến nhất để thu thập dữ liệu từ các thiết bị tớ Thí dụ, để đọc 3 từ 16 bit dữ liệu analog từ bản đồ bộ nhớ của thiết bị 5, chủ sẽ gửi một yêu cầu như sau:
5 04 2 3 CRC
Trang 12Trong đó, 5 là địa chỉ thiết bị, 4 đọc bộ ghi đầu vào, 2 là địa chỉ khởi đầu (địa chỉ 30,002) 3 có nghĩa là để đọc 3 giá trị dữ liệu kề nhau xuất phát từ đại chỉ 30,002, và CRC là giá trị kiểm tra lỗi thông điệp này Thiết bị tớ, ngoài việc nhận dữ liệu này, sẽ gửi lại một trả lời như sau:
5 04 aa bb cc CRC
Hình 9: Kết nối dây home run so với MODBUS
Trong hầu hết các nhà máy, các thiết bị đo hiện trường kết nối với hệ thống điều khiển với từng cặp dây xoắn home run (dưới) Khi các công cụ đo được kết nối dây với
hệ thống I/O phân tán như NCS của Moore Industries (giữa), có nhiều thiết bị sẽ được bổ sung, nhưng chỉ có một cặp dây xoắn đơn cần để truyền tất cả dữ l
4, Biểu diễn dữ liệu Modbus RTU
Giống như mọi thứ khác về Modbus, việc biểu diễn dữ liệu rất đơn giản Trên thực
tế, dữ liệu được biểu diễn trong Modbus đơn giản hơn bất kỳ giao thức công nghiệp nào khác mà bạn từng tìm thấy Bit ít quan trọng nhất được gửi và nhận trước Tất cả các thiết
bị trong mạng phải diễn giải từng byte được truyền một cách tương tự theo cách này