TOOL / IIOT / MODBUS-CHECKSUM
Modbus CRC / LRC 与寄存器地址换算
计算 Modbus RTU CRC-16 与 ASCII LRC,生成完整请求帧,并把 40001/30001 等 1-based 地址换算为 PDU 0-based 地址。
LIVE WORKBENCH / modbus-checksum
CRC-16 / ModbusC5 D6
WORD / BIG-ENDIAN0xD6C5 / D6 C5
RTU 帧(附加 CRC)01 03 00 00 00 0A C5 D6
LRC(ASCII 模式)0xF2
ASCII 帧:01030000000AF2␍␊
寄存器地址换算
PDU 地址(0-based)9 (0x0009)
读取功能码0x03
读请求(含 CRC)01 03 00 09 00 02 14 12
FAQ
常见问题
为什么 CRC 要低字节在前?
Modbus RTU 规定 CRC 以小端序附加在报文末尾。本工具同时给出传输顺序(低 高)与 16 位字值,避免把 0x3DBB 写成 0xBB3D。
40001 在报文里是多少?
40001 是 1-based 人机地址,报文中的起始地址是 0x0000;40010 对应 0x0009。这个 off-by-one 是现场调试最常见的错误。
使用说明
- 输入 RTU 报文 hex(不含 CRC),得到 CRC 低/高字节、RTU 完整帧、LRC 与 ASCII 帧。
- 在地址换算区选择寄存器类型并输入人机地址,得到 PDU 地址、读取功能码与带 CRC 的读请求。
地址与功能码
| 类型 | 起始人机地址 | 报文起始地址 | 读功能码 |
|---|---|---|---|
| Coil | 00001 | 0x0000 | 0x01 |
| Discrete Input | 10001 | 0x0000 | 0x02 |
| Holding Register | 40001 | 0x0000 | 0x03 |
| Input Register | 30001 | 0x0000 | 0x04 |
RTU 帧间隔必须大于等于 3.5 个字符时间,ASCII 帧以
:开头、CRLF 结尾并用 LRC 校验。
NEXT / RELATED TOOLS
本领域全部 ↗