Modbus RTU и TCP: регистры, функции и частые ошибки

Modbus — самый распространённый промышленный протокол. Модель данных, функции, RTU и TCP и ошибки, которые чаще всего отнимают часы.
Modbus RTU и TCP: регистры, функции и частые ошибки

Иллюстрация создана ИИ — пример обстановки.

Что такое Modbus

Modbus — простой протокол «запрос–ответ», созданный в 1979 году для программируемых контроллеров. Сегодня его поддерживают счётчики электроэнергии, частотные преобразователи, ПЛК, солнечные инверторы и датчики. Простота — причина его распространённости.

Модель

Одна сторона — клиент (прежнее название master), другая — сервер (slave). Клиент спрашивает, сервер отвечает. Сервер никогда не начинает разговор сам.

Данные

ТипРазмерДоступ
Coils1 битчтение и запись
Discrete Inputs1 биттолько чтение
Input Registers16 биттолько чтение
Holding Registers16 битчтение и запись

Основные функции

  • 01 / 02 — чтение coils / discrete inputs
  • 03 / 04 — чтение holding / input registers
  • 05 / 06 — запись одного coil / регистра
  • 15 / 16 — запись нескольких coils / регистров

Варианты

  • Modbus RTU — двоичный, по последовательной линии, чаще всего RS-485. Адреса 1–247, контрольная сумма CRC-16. Кадры разделяются паузой не менее 3,5 символов.
  • Modbus ASCII — текстовый, используется редко.
  • Modbus TCP — по Ethernet, порт 502, без CRC (его обеспечивает TCP), с дополнительным заголовком MBAP.

Типичные ошибки

  • Смещение адреса — в документации 40001, а протоколу нужен 0. Разные инструменты считают с 0 или с 1.
  • Порядок байтов — 32-битное число или float занимает два регистра, а их порядок (big/little endian, переставленные слова) зависит от производителя.
  • Разные параметры линии — скорость, чётность и стоп-биты должны совпадать у всех устройств.
  • Два устройства с одним адресом — отвечают одновременно, и кадры портятся.
  • Слишком частый опрос — устройствам нужно время на ответ. Тайм-аут не должен быть короче его.

Ограничения

В Modbus нет встроенной защиты, описания устройств и событий — всё считывается периодическим опросом. В сетях с доступом снаружи добавляют отдельную защиту транспорта.