RUBICON engineering center

Modbus RTU — детали протокола и карта регистров

Синонимы: Modbus RTU карта регистров, Modbus детали, Modbus coils holding registers
Детальное устройство протокола Modbus RTU: кадр сообщения, адресация, карта регистров (coils, discrete inputs, input registers, holding registers), CRC-16, тайминги T1.5/T3.5. Самая массовая промышленная шина для автоматики.

Modbus RTU — последовательный протокол связи «ведущий-ведомый» (master-slave) поверх физического уровня RS-485 (реже RS-232/RS-422). Разработан Modicon в 1979 году, сегодня — де-факто стандарт для связи ПЛК с датчиками, приводами, частотниками, счётчиками.

Структура кадра RTU

Один запрос/ответ — непрерывная последовательность байтов:

| Поле | Длина | Назначение | |---|---|---| | Address | 1 байт | Адрес ведомого (1-247, 0 = broadcast) | | Function | 1 байт | Код функции (01-16, 23, 43) | | Data | 0-252 байта | Параметры запроса или данные ответа | | CRC | 2 байта | Контрольная сумма CRC-16 (младший байт первым) |

Начало и конец кадра определяются паузами на линии: минимум 3,5 символа тишины между кадрами (T3.5), не более 1,5 символа между байтами внутри кадра (T1.5). При 9600 бод T3.5 ≈ 3,6 мс, T1.5 ≈ 1,6 мс.

Карта адресов (4 области памяти)

| Область | Доступ | Тип | Диапазон адресов | Функции | |---|---|---|---|---| | Coils | Чтение/запись | бит | 00001-09999 | 01, 05, 15 | | Discrete Inputs | Только чтение | бит | 10001-19999 | 02 | | Input Registers | Только чтение | 16 бит | 30001-39999 | 04 | | Holding Registers | Чтение/запись | 16 бит | 40001-49999 | 03, 06, 16 |

В реальности в кадре передаётся offset от начала области (0-9998), а префиксная цифра (0/1/3/4) — это абстракция «справочной» нумерации. Например, holding register 40001 — это offset 0 с функцией 03.

CRC-16 (Modbus)

Полином 0xA001 (reverse 0x8005), начальное значение 0xFFFF. Считается по всему кадру кроме самого CRC. При несовпадении — кадр отбрасывается молча (ответа не будет), master определяет это по тайм-ауту.

Исключения (Exception responses)

Если slave получил корректный кадр, но не может выполнить — отвечает с бит 7 = 1 в коде функции и одним байтом кода исключения:

  • 01 — Illegal function (функция не поддерживается)
  • 02 — Illegal data address (регистр не существует)
  • 03 — Illegal data value (значение вне допустимого)
  • 04 — Slave device failure (внутренняя ошибка устройства)
  • 06 — Slave busy (занят, повторить позже)

Типичные значения параметров

  • Скорость: 9600 бод (стандарт), 19200, 38400, 57600, 115200
  • Формат: 8-E-1 (8 бит данных, бит чётности even, 1 стоп-бит) или 8-N-2
  • Макс. длина кадра: 256 байт
  • Макс. число устройств на шине: 32 без репитера, 247 с репитерами
  • Макс. длина линии: 1200 м при 9600 бод, витая пара с терминаторами 120 Ом

Применение в автоматике

  • Опрос датчиков температуры, давления, расхода
  • Управление частотными преобразователями (Danfoss FC, Delta VFD, Weg)
  • Чтение электросчётчиков (Меркурий, Энергомера, ABB)
  • Связь ПЛК-ПЛК на малых расстояниях
  • Шлюз Modbus RTU → Modbus TCP для диспетчеризации

РУБИКОН использует Modbus RTU как основную шину для подключения датчиков и приводов в шкафах автоматики.

Частые вопросы

  • Почему при опросе Modbus некоторые устройства не отвечают?
    Типичные причины: 1) неверный адрес slave (проверить DIP-переключатели), 2) неверная скорость/чётность (должны совпадать у всех на шине), 3) отсутствие терминаторов 120 Ом на концах линии, 4) слишком большой T3.5 из-за медленного драйвера USB-RS485, 5) конфликт адресов. Снифер (например ModScan или Modbus Poll) быстро покажет что не так.
  • В чём разница между Input Register и Holding Register?
    Input Register (3xxxx) — только чтение, обычно измеренные значения с датчика. Holding Register (4xxxx) — чтение и запись, обычно уставки, параметры, команды. На практике многие производители кладут всё в Holding Registers для универсальности. В документации к устройству всегда есть карта регистров — её надо смотреть.

Источники

  1. Modbus Application Protocol Specification V1.1b3 — Modbus Organization
Автор: Sergey
Опубликовано: 28.10.2026
Обновлено: 27.10.2026
Modbus RTU — карта регистров, CRC, тайминги | РУБИКОН