Modbus-ASCII 报文解析器
解析结果
Modbus ASCII报文结构
| 用途 | 帧起始 | 地址 | 功能码 | 数据 | LRC(校验) | 结束符 |
|---|---|---|---|---|---|---|
| 长度 | 1字节 | 2字节 | 2字节 | N字节 | 2字节 | 2字节 |
| 描述 | 消息开始,以:(0x3A)开头 | 节点地址 | 主机要求从机执行的操作类型 | 包含了命令的具体参数,格式和长度却决于功能码 | 纵向冗余检验码 | 保温结束符(CR/LF) |
常用功能码详解
| 功能码 | 名称 | 数据类型 | 作用 |
|---|---|---|---|
| 0x01 | 读线圈寄存器 | 位 | 取得一组逻辑线圈的当前状态(ON/OFF) |
| 0x02 | 读离散输入寄存器 | 位 | 取得一组开关输入的当前状态(ON/OFF) |
| 0x03 | 读保持寄存器 | 整型、浮点型、字符型 | 在一个或多个保持寄存器中取得当前的二进制值 |
| 0x04 | 读输入寄存器 | 整型、浮点型 | 在一个或多个输入寄存器中取得当前的二进制值 |
| 0x05 | 写单个线圈寄存器 | 位 | 强置一个逻辑线圈的通断状态 |
| 0x06 | 写单个保持寄存器 | 整型、浮点型、字符型 | 把具体二进制值装入一个保持寄存器 |
| 0x0F | 写多个线圈寄存器 | 位 | 强置一串连续逻辑线圈的通断 |
| 0x10 | 写多个保持寄存器 | 整型、浮点型、字符型 | 把具体的二进制值装入一串连续的保持寄存器 |
工具介绍
Modbus-ASCII 报文解析工具把以冒号开头、CRLF 结尾的 ASCII 帧还原为字节流,拆分地址、功能码与数据域,并校验 LRC。
使用方法
- 从调试工具、网关或抓包软件复制十六进制报文,去掉无关前缀后粘贴到输入框。
- 确认字节间分隔符与大小写,必要时选择帧类型或波特率等附加参数。
- 点「解析」,在结果区查看地址域、功能码、数据域与校验值的分段表格。
- 对照下方报文结构说明核对每一段含义;校验失败时先检查是否多复制了空格或回车。
计算公式
ASCII 帧:':' + 十六进制 ASCII 字符(每字节 2 字符) + LRC(2 字符) + CRLF LRC = ((所有数据字节之和取反) + 1) & 0xFF,即二进制补码的负数 例如字节 01 03 00 00 00 0A 的 LRC = 0xF2
ASCII 模式的字符间隔允许较长,但帧内不应出现空格或换行(结尾 CRLF 除外)。
常用场景
现场联调
把主站下发的报文粘进来,确认地址、功能码与寄存器范围是否正确。
故障排查
用校验结果判断是报文传输错误还是终端返回了异常响应。
协议学习
对照结构表逐字节理解规约帧格式。
常见问题
LRC 和 CRC 有什么区别?
Modbus-ASCII 用 1 字节 LRC(累加和取补),RTU 用 2 字节 CRC16,两者不能混用。
要不要带冒号和 CRLF?
可以带,工具会自动去掉起始冒号与结尾换行;只填中间的十六进制字符也可以。
以上内容仅用于说明本工具的使用方法与计算口径;财务、税务、贷款等结果均为估算,实际以官方或合同口径为准。
