返回串口调试

技术知识库 & 调试文档 65 篇硬核手册

Web Serial Pro Multi-Module Offline Documentation Hub

主题 同步中 本地离线 知识库总览
ID: INDUSTRIAL-01 工业控制与高级协议 (Industrial Control)

Modbus RTU 帧格式详解:十六进制报文拆解与串口调试

#Modbus RTU 帧格式详解#Modbus CRC16 校验计算器#PLC 串口调试步骤

Modbus RTU 是工控、抄表、楼宇自控里最常见的串行主从协议。链路上是 纯 HEX 二进制帧,不是可读文本。用本站调试时务必开 HEX 收发,并认准 CRC 小端序。

经典读保持寄存器(功能码 03) 主站发送示例:01 03 00 00 00 02 C4 0B | 字段 | 例 | 含义 | |---|---|---| | 从站地址 | 01 | 目标设备 ID | | 功能码 | 03 | 读保持寄存器 | | 起始地址 | 00 00 | 寄存器起始 | | 数量 | 00 02 | 读 2 个寄存器 | | CRC16 | C4 0B | 前 6 字节校验,低字节在前 | 从站正常应答示例:01 03 04 00 12 00 34 F3 32 其中 04 为后续数据字节数,00 12 00 34 为寄存器值,F3 32 为应答 CRC。

串口参数与物理层 - 常见 9600/19200/115200,8N1 居多;部分 PLC 默认 7E1,以手册为准。 - 多站总线几乎都是 RS-485 半双工;注意 A/B、终端电阻 120Ω、共地/隔离。 - 帧间隔:RTU 依赖约 3.5 字符时间静默分帧;本站可用自动分帧/超时观察整帧。 - 同一时刻只应一个主站轮询,避免总线冲突。

用本站现场调试步骤 1. 接线与终端电阻确认,主站唯一。 2. 打开本站,HEX 模式,波特率与从站一致。 3. 发送读命令(可先做预设),核对应答地址/功能码是否镜像。 4. CRC 错:重算是否误含空格、冒号或 CRLF(那是 ASCII/文本模式的东西)。 5. 超时无应答:查地址、波特率、485 方向(DE)、供电。 6. 异常功能码(如 83)+ 异常码:从站拒绝,查寄存器映射是否存在。

CRC 注意 Modbus CRC16 对「地址+功能码+数据」计算,结果 低字节先上线。本站发送时按完整十六进制帧填写,不要在 HEX 流里夹杂可见空格字节(除非你的工具明确忽略空白)。算法细节见《Modbus CRC16 校验》文档。

与 Modbus ASCII 的差别 ASCII 用可读十六进制字符 + LRC,帧以 : 起、\r\n 终;RTU 更短更快,工业现场默认 RTU。调试时不要混用两种编码去贴同一段报文。

和乱码排查 若 HEX 下全是无规律噪声:先当电气/波特率问题(回环、共地、485),不要先怀疑功能码表。 若帧结构对但 CRC 错:查字节顺序与是否多算字段。 掌握「HEX 拆帧 + CRC + 485」,即可用本站完成大量仪表/PLC 点检,而不必先上大型组态软件。把成功帧存进预设,产线点检可一键复现。

用在线串口发送你的第一帧 Modbus 目标:主站读从站 1 的保持寄存器。 1. 硬件:USB-485,A/B 无反,两端视情况加 120Ω。 2. 本站 HEX 模式,波特率与从站一致(常见 9600 8N1)。 3. 发送:01 03 00 00 00 02 C4 0B 4. 成功时应答形如:01 03 04 ... CRC 5. 无应答:地址、波特率、A/B、供电、是否多主冲突。 6. 有应答但 CRC 错:是否把空格当数据发出;是否用了 ASCII 模式。 把成功帧保存为「预设指令」,产线点检可一键复测。

功能码速查(调试向) | 码 | 含义 | 调试提示 | |---|---|---| | 01/02 | 读线圈/离散 | 地址映射易错 | | 03/04 | 读保持/输入寄存器 | 最常用 | | 05/06 | 写单线圈/寄存器 | 先读后写 | | 0F/10 | 写多线圈/寄存器 | 注意字节数 | | 8x | 异常应答 | 看异常码 |

常见搜索意图 - Modbus RTU 报文格式 - Modbus 03 功能码示例 - 串口助手发 Modbus - Modbus CRC 低字节在前 本页配合《Modbus CRC16》与《PLC 串口调试》使用。