Modbus RTU полная строка ответа

  • Михаил
  • 8 мин. на прочтение
  • 42
  • 24 Sep 2025
  • 14 Oct 2025

В протоколе Modbus RTU полная строка ответа на запрос чтения регистров (например, функцией 0x03 — Read Holding Registers) включает в себя не только сами данные, но и служебную информацию.

Структура ответа (для функции 0x03):

ПолеРазмер (байт)Описание
Address1Адрес устройства (slave)
Function Code1Код функции (0x03 для чтения регистров)
Byte Count1Количество байт данных (N × 2, где N — количество регистров)
DataN × 2Значения регистров (каждый регистр — 2 байта)
CRC2Контрольная сумма (CRC-16 для проверки целостности пакета)

Пример для 4 регистров:

  • Запрос: Чтение 4 регистров (например, с адреса 0x0000).
  • Ответ:
    • Address = 1 байт (например, 0x01),
    • Function Code = 1 байт (0x03),
    • Byte Count = 1 байт (0x08, так как 4 регистра × 2 байта = 8 байт),
    • Data = 8 байт (значения 4 регистров),
    • CRC = 2 байта.

Итого: 1 + 1 + 1 + 8 + 2 = 13 байт — полный размер ответа.