TOOL / IIOT / MODBUS-CHECKSUM

Modbus CRC / LRC 与寄存器地址换算

计算 Modbus RTU CRC-16 与 ASCII LRC,生成完整请求帧,并把 40001/30001 等 1-based 地址换算为 PDU 0-based 地址。

本地计算 工业互联 现场总线 #modbus crc 计算#lrc 校验#40001 地址换算
LIVE WORKBENCH / modbus-checksum

已预填示例输入,可直接修改;所有计算仅在当前浏览器内完成,不会上传。

CRC-16/MODBUS(init 0xFFFF)C5 CD
WORD / BIG-ENDIAN0xCDC5 / CD C5
RTU 帧(附加 CRC)01 03 00 00 00 0A C5 CD
LRC(ASCII 模式)0xF2
ASCII 帧:01030000000AF2␍␊
寄存器地址换算
PDU 地址(0-based)9 (0x0009)
读取功能码0x03
读请求(含 CRC)01 03 00 09 00 02 14 09
FAQ

常见问题

Modbus CRC 用的是哪种 CRC-16?

是 CRC-16/MODBUS:多项式 0x8005 反射、初值 0xFFFF,123456789 的校验值 0x4B37。初值 0x0000 的 CRC-16/ARC 不能用于 RTU。

为什么 CRC 要低字节在前?

Modbus RTU 规定 CRC 以小端序附加。01 03 00 00 00 0A 的 CRC 字值 0xCDC5,线上发送 C5 CD;本工具同时给出两种表示。

40001 在报文里是多少?

40001 是 1-based 人机地址,报文起始地址为 0x0000;40010 对应 0x0009。这个 off-by-one 是现场调试最常见错误。

使用说明

以下说明正文目前仅提供中文完整版;界面、标题、描述与常见问题已按当前语言显示。

  1. 输入 RTU 报文 hex(不含 CRC),得到 CRC 低/高字节、RTU 完整帧、LRC 与 ASCII 帧。
  2. 在地址换算区选择寄存器类型并输入人机地址,得到 PDU 地址、读取功能码与带 CRC 的读请求。

本工具用 LRC 计算 ASCII 帧、用 CRC-16/MODBUS 计算 RTU 帧,两者不能混用。读请求的数量按规范限制 0x01/0x02 最多 2000 个位、0x03/0x04 最多 125 个寄存器。

地址与功能码

类型起始人机地址报文起始地址读功能码
Coil000010x00000x01
Discrete Input100010x00000x02
Holding Register400010x00000x03
Input Register300010x00000x04

RTU 帧间隔必须大于等于 3.5 个字符时间,ASCII 帧以 : 开头、CRLF 结尾并用 LRC 校验。

NEXT / RELATED TOOLS

相关工具

本领域全部 ↗