Modbus协议解析
在线Modbus协议解析工具,支持RTU/ASCII/TCP报文解析、指令构建、寄存器转换与CRC/LRC校验,适用于工业通信联调和故障排查
请输入数据
Modbus协议参考
Modbus 是工业自动化场景最常用的主从通信协议,覆盖串行总线与以太网网络。该工具提供报文解析、寄存器转换、指令构建、CRC/LRC 校验与串口联调能力,帮助工程师快速定位通信问题。
Modbus RTU 帧结构
RTU 通过二进制格式传输数据,帧由从站地址、功能码、数据区与 CRC-16 组成,常用于 RS-485 现场总线。
Slave ID (1B)
Function (1B)
Data (N bytes)
CRC-16 (2B)
Modbus TCP 帧结构
Modbus TCP 在 PDU 前增加 MBAP 头,包含事务标识、协议标识、长度和单元标识,默认端口为 502。
Trans ID
Proto ID
Length
Unit ID
Function
Data
常用功能码
读取类功能码用于采集线圈或寄存器,写入类功能码用于更新设备状态或参数。
| Code | Name |
|---|---|
| 0x01 | 读线圈 (0x01) |
| 0x02 | 读离散输入 (0x02) |
| 0x03 | 读保持寄存器 (0x03) |
| 0x04 | 读输入寄存器 (0x04) |
| 0x05 | 写单个线圈 (0x05) |
| 0x06 | 写单个寄存器 (0x06) |
| 0x07 | 读异常状态 (0x07) |
| 0x08 | 诊断 (0x08) |
| 0x0B | 获取通信事件计数器 (0x0B) |
| 0x0C | 获取通信事件日志 (0x0C) |
| 0x0F | 写多个线圈 (0x0F) |
| 0x10 | 写多个寄存器 (0x10) |
| 0x11 | 报告从站ID (0x11) |
| 0x14 | 读文件记录 (0x14) |
| 0x15 | 写文件记录 (0x15) |
| 0x16 | 屏蔽写寄存器 (0x16) |
| 0x17 | 读写多个寄存器 (0x17) |
| 0x18 | 读FIFO队列 (0x18) |
| 0x2B | 封装接口传输 (0x2B) |
字节序说明
不同 PLC 对 32/64 位数据字节排列不一致,ABCD/DCBA/BADC/CDAB 四种组合经常出现在跨厂商集成中。
CRC-16/Modbus 参数
- 多项式:0x8005(反射实现常写作 0xA001)
- 初始值:0xFFFF
- 输入反转:是
- 输出反转:是
- 结果异或值:0x0000
应用场景
- 排查 PLC 与上位机之间的超时、异常码、CRC 错误等通信问题。
- 将寄存器字节流转换为浮点或整型数值,验证现场数据含义。
- 快速构建读写指令,替代专用主站软件做联调验证。
- 通过串口请求与日志回放,复现设备现场问题并定位根因。