Trình Phân tích Giao thức Modbus
Phân tích, chuyển đổi và gỡ lỗi truyền thông Modbus RTU/ASCII/TCP
Vui lòng nhập dữ liệu
Tham khảo Giao thức Modbus
Modbus là giao thức truyền thông công nghiệp được sử dụng rộng rãi nhất, được phát triển bởi Modicon vào năm 1979. Nó cho phép giao tiếp giữa các thiết bị điện tử qua đường nối tiếp (RTU) hoặc Ethernet (TCP/IP). Công cụ này giúp kỹ sư gỡ lỗi và phân tích truyền thông Modbus mà không cần phần cứng hoặc phần mềm chuyên dụng.
Cấu trúc Khung Modbus RTU
Modbus RTU (Remote Terminal Unit) truyền dữ liệu ở định dạng nhị phân qua các kết nối nối tiếp như RS-232 hoặc RS-485. Mỗi khung bao gồm địa chỉ slave, mã chức năng, dữ liệu và checksum CRC 16-bit để phát hiện lỗi. Định dạng nhị phân nhỏ gọn làm cho RTU hiệu quả trong môi trường có băng thông hạn chế.
1 byte
1 byte
N bytes
2 bytes
Modbus RTU Frame Structure
Cấu trúc Khung Modbus TCP
Modbus TCP đóng gói các khung RTU trong các gói TCP/IP, sử dụng header MBAP (Modbus Application Protocol) 7 byte. Header này chứa ID giao dịch để khớp yêu cầu-phản hồi, định danh giao thức (luôn là 0 cho Modbus), độ dài tin nhắn và ID đơn vị. Giao tiếp TCP sử dụng cổng 502 theo mặc định.
2 bytes
2 bytes
2 bytes
1 byte
1 byte
N bytes
Modbus TCP Frame Structure (MBAP Header + PDU)
Các Mã Chức năng Phổ biến
Mã chức năng định nghĩa loại thao tác trong yêu cầu Modbus. Các thao tác đọc (01-04) lấy trạng thái cuộn dây hoặc giá trị thanh ghi, trong khi các thao tác ghi (05, 06, 0F, 10) sửa đổi dữ liệu thiết bị. Mỗi mã chức năng có yêu cầu định dạng dữ liệu cụ thể.
| Mã | Chức năng | Loại |
|---|---|---|
| 0x01 | Đọc Coils | Đọc |
| 0x02 | Đọc đầu vào rời rạc | Đọc |
| 0x03 | Đọc thanh ghi lưu giữ | Đọc |
| 0x04 | Đọc thanh ghi đầu vào | Đọc |
| 0x05 | Ghi một Coil | Ghi |
| 0x06 | Ghi một thanh ghi | Ghi |
| 0x0F | Ghi nhiều Coils | Ghi |
| 0x10 | Ghi nhiều thanh ghi | Ghi |
Thứ tự Byte trong Modbus
Các nhà sản xuất PLC khác nhau sử dụng các thứ tự byte khác nhau cho các giá trị 32-bit và 64-bit. Bốn cách sắp xếp phổ biến là: Big Endian (ABCD) - thứ tự mạng tiêu chuẩn; Little Endian (DCBA); Mid-Big Endian (BADC); và Mid-Little Endian (CDAB). Khi đọc được giá trị sai, hãy thử các thứ tự byte khác nhau để tìm cách giải thích đúng.
Thuật toán CRC-16/Modbus
Modbus RTU sử dụng CRC-16 với đa thức 0x8005 và giá trị khởi tạo 0xFFFF để phát hiện lỗi. CRC được tính trên địa chỉ slave, mã chức năng và các byte dữ liệu, sau đó được thêm vào với byte thấp đầu tiên. Khung có CRC sai phải bị loại bỏ bởi bên nhận.
Ứng dụng Thực tế
- Khắc phục lỗi giao tiếp giữa PLC và hệ thống SCADA bằng cách phân tích dữ liệu gói tin thô
- Xác minh giá trị thanh ghi trong quá trình vận hành bằng cách chuyển đổi dữ liệu hex sang đơn vị kỹ thuật
- Tạo lệnh thử nghiệm để xác thực thiết bị mà không cần phần mềm Modbus master chuyên dụng
- Gỡ lỗi vấn đề thứ tự byte khi tích hợp thiết bị từ các nhà sản xuất khác nhau
Công Cụ Liên Quan
Máy Tính CRC
Tính checksum CRC-8, CRC-16, CRC-32, CRC-64 với hỗ trợ Modbus, CCITT và các tiêu chuẩn giao thức khác
Trình Gỡ Lỗi Cổng Nối Tiếp Trực Tuyến
Công cụ gỡ lỗi nối tiếp dựa trên trình duyệt - không cần tải xuống, giám sát thời gian thực qua Web Serial API
Chuyển Đổi Cơ Số
Chuyển đổi giữa hệ nhị phân, bát phân, thập phân và thập lục phân với hỗ trợ cơ số tùy chỉnh (2-36)
Chuyển Đổi Mã Hóa Văn Bản
Chuyển đổi văn bản giữa Hex, Binary, Unicode, ASCII, Base64 và nhiều định dạng mã hóa khác