Modbus CRC / LRC & adresses de registres
Calcule le CRC-16 RTU et le LRC ASCII, construit les requêtes et convertit 40001 en adresse PDU base 0.
Les valeurs d’exemple sont modifiables. Tout est calculé localement, sans envoi de données.
Questions fréquentes
CRC-16/MODBUS : poly réfléchi 0x8005, init 0xFFFF, check 0x4B37. ARC (init 0x0000) ne convient pas au RTU.
Le RTU ajoute la CRC en little-endian : mot 0xCDC5, sur le bus C5 CD. L’outil affiche les deux.
40001 est une référence base 1, l’adresse bus est 0x0000 ; 40010 → 0x0009. Décalage source d’erreurs fréquentes.
Mode d’emploi
Le corps de l’article ci-dessous n’est actuellement complet qu’en chinois ; l’interface, les titres, descriptions et FAQ suivent la langue choisie.
- 输入 RTU 报文 hex(不含 CRC),得到 CRC 低/高字节、RTU 完整帧、LRC 与 ASCII 帧。
- 在地址换算区选择寄存器类型并输入人机地址,得到 PDU 地址、读取功能码与带 CRC 的读请求。
本工具用 LRC 计算 ASCII 帧、用 CRC-16/MODBUS 计算 RTU 帧,两者不能混用。读请求的数量按规范限制 0x01/0x02 最多 2000 个位、0x03/0x04 最多 125 个寄存器。
地址与功能码
| 类型 | 起始人机地址 | 报文起始地址 | 读功能码 |
|---|---|---|---|
| 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 校验。