Modbus CRC/LRC и адреса регистров
Расчёт CRC-16 RTU и LRC ASCII, сборка запросов, перевод 40001 в адрес PDU с нуля.
Пример заполнен и редактируется. Всё считается локально, ничего не загружается.
Частые вопросы
CRC-16/MODBUS: отражённый 0x8005, init 0xFFFF, check 0x4B37. ARC с init 0x0000 для RTU не подходит.
RTU добавляет CRC в little-endian: слово 0xCDC5, на шине C5 CD. Инструмент показывает оба вида.
40001 — адрес с единицы, на шине 0x0000; 40010 → 0x0009. Это смещение — частая ошибка.
Как пользоваться
Основной текст ниже пока полностью доступен только на китайском; интерфейс, заголовки, описания и FAQ отображаются на выбранном языке.
- 输入 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 校验。