Ví dụ 3: Hướng Dẫn Giám Sát Hàng Ngàn Thanh Ghi (2400 Thanh Ghi) Với iNut RS485
1. Giới Thiệu
Tài liệu này hướng dẫn bạn cách giám sát một lượng lớn thanh ghi Modbus RTU (cụ thể là 2400 thanh ghi) bằng thiết bị iNut RS485 và gửi dữ liệu lên MQTT. Đây là cấu hình mẫu dành cho các cảm biến, thiết bị hỗ trợ Modbus RTU, cần giám sát dải thanh ghi 4x (Function Code 3).
Giao thức: Modbus RTU
Function code:
3
(đọc Holding Register)Địa chỉ bắt đầu:
40001
(tứcaddress 0
)Slave ID:
1
Prefix MQTT: Rỗng (mặc định không có tiền tố)
2. Cấu Trúc Topic MQTT
Mỗi lần thiết bị gửi dữ liệu Modbus, nó sẽ tạo một topic như sau:
/slave_id/<slave_id>/req_id/<req_id>
Ví dụ:
/slave_id/1/req_id/0
Phản hồi trạng thái đi kèm sẽ được gửi về:
/slave_id/1/req_id/0/message
Payload:
{
"status": "OK",
"time": 1752656804,
"date": "16:06:44 16/07/25"
}
3. Thiết Lập Đọc 2400 Thanh Ghi
Do giới hạn của Modbus RTU, mỗi lần chỉ đọc tối đa 120 thanh ghi. Vì vậy, ta chia 2400 thanh ghi thành 20 nhóm, mỗi nhóm 120 thanh ghi, bắt đầu từ address 0
đến 2280
.
Cấu hình trong app đã tạo sẵn các dải như sau:
address 0
(40001) đến119
(40120)address 120
(40121) đến239
...
address 2280
(42281) đến2399
(42400)
Mỗi block có thể bật/tắt hiển thị trong Dashboard tuỳ ý. Tốc độ quét mặc định: mỗi 10 giây (10000 ms).

Lưu ý:
Chỉ nên bật hiển thị những block quan trọng, để tránh tải quá lớn trên thiết bị hoặc server MQTT.
Các dải đang tắt hiển thị vẫn được thiết bị gửi MQTT nếu bạn bật lại chúng.


4. Code Cấu Hình Mẫu (Import vào App)
Bạn có thể import đoạn cấu hình sau vào app iNut để thử nghiệm:
{"input_components":[],"output_components":[{"label":"Dashboard","unit":null,"type":"modbusdashboard","local_id":0,"config":{"modbus":{"modbus_elements":[{"id":0,"source":{"slave_id":"1","function_code":"3","address":"0","pre_processing":""},"display":{"label":"40001","icon":"power","unit":"","color":"#000000","ui_by_range":[]}},{"id":27,"source":{"slave_id":"1","function_code":"3","address":"1","pre_processing":""},"display":{"label":"40002","icon":"power","unit":"","color":"#000000","ui_by_range":[]}},{"id":2,"source":{"slave_id":"1","function_code":"3","address":"2","pre_processing":""},"display":{"disabled":false,"label":"40003","icon":"power","ui_by_range":[]}},{"id":3,"source":{"slave_id":"1","function_code":"3","address":"3","pre_processing":""},"display":{"disabled":false,"label":"40004","icon":"power","ui_by_range":[]}},{"id":4,"source":{"slave_id":"1","function_code":"3","address":"0","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":5,"source":{"slave_id":"1","function_code":"3","address":"120","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":6,"source":{"slave_id":"1","function_code":"3","address":"240","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":7,"source":{"slave_id":"1","function_code":"3","address":"360","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":8,"source":{"slave_id":"1","function_code":"3","address":"480","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":9,"source":{"slave_id":"1","function_code":"3","address":"600","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":10,"source":{"slave_id":"1","function_code":"3","address":"720","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":11,"source":{"slave_id":"1","function_code":"3","address":"840","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":12,"source":{"slave_id":"1","function_code":"3","address":"960","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":13,"source":{"slave_id":"1","function_code":"3","address":"1080","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":14,"source":{"slave_id":"1","function_code":"3","address":"1200","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":15,"source":{"slave_id":"1","function_code":"3","address":"1320","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":16,"source":{"slave_id":"1","function_code":"3","address":"1440","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":17,"source":{"slave_id":"1","function_code":"3","address":"1560","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":18,"source":{"slave_id":"1","function_code":"3","address":"1680","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":19,"source":{"slave_id":"1","function_code":"3","address":"1800","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":20,"source":{"slave_id":"1","function_code":"3","address":"1920","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":21,"source":{"slave_id":"1","function_code":"3","address":"2040","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":22,"source":{"slave_id":"1","function_code":"3","address":"2160","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":23,"source":{"slave_id":"1","function_code":"3","address":"2280","quantity":120,"pre_processing":""},"display":{"disabled":true,"label":"Dải dữ liệu mới","ui_by_range":[]}},{"id":24,"source":{"slave_id":"1","function_code":"4","address":"0","pre_processing":"","quantity":120},"display":{"disabled":true,"label":"Device_Range_1_4_0_120","icon":"power","ui_by_range":[]}}],"slave_interval":{"1":10000},"object_config":{"0":{"object_id":"0","slave_id":"1","req_id":0,"req_index":0,"bitmask":65535,"division":1},"2":{"object_id":"2","slave_id":"1","req_id":0,"req_index":2,"bitmask":65535,"division":1},"3":{"object_id":"3","slave_id":"1","req_id":0,"req_index":3,"bitmask":65535,"division":1},"27":{"object_id":"27","slave_id":"1","req_id":0,"req_index":1,"bitmask":65535,"division":1}},"next_element_id":28}}}]}
Đã rút gọn để dễ đọc, phần JSON chi tiết bạn đã có sẵn.
5. Gợi Ý Kiểm Tra và Debug
Dùng MQTT Explorer để theo dõi dữ liệu gửi lên.
Kiểm tra xem các topic có đầy đủ từ
address 0
đến2399
(qua 20 request).Xem phần
message
để xác nhận status của từng request.
6. Kết Luận
Việc giám sát hàng ngàn thanh ghi Modbus RTU bằng iNut RS485 rất khả thi nếu chia nhỏ dữ liệu theo từng block hợp lý. iNut sẽ giúp bạn gửi toàn bộ dữ liệu lên MQTT để tích hợp vào hệ thống SCADA, cloud hoặc dashboard một cách linh hoạt.
Mọi thắc mắc kỹ thuật, vui lòng liên hệ đội hỗ trợ iNut.
Last updated