Modbus: это открытый протокол обмена данными между промышленными устройствами, который определяет, как одно устройство запрашивает данные у другого и в каком виде получает ответ. Протокол появился в конце 1970-х годов для связи контроллеров, его спецификация открыта и не требует лицензии, поэтому Modbus поддерживают счётчики, вычислители, контроллеры, частотные преобразователи и модули ввода-вывода самых разных производителей. В системах учёта и диспетчеризации Modbus используют, чтобы считывать показания и параметры приборов и передавать их на верхний уровень.
Как устроен обмен по Modbus
Обмен строится по принципу «запрос и ответ». Одно устройство задаёт вопросы, остальные только отвечают.
- Ведущее устройство (в новой терминологии клиент) отправляет запрос: какому устройству, какую операцию выполнить, с какими данными. Обычно это УСПД, контроллер или сервер сбора данных.
- Ведомое устройство (сервер) получает запрос, выполняет его и отправляет ответ. Это счётчик, вычислитель, датчик или модуль. Само по себе ведомое устройство ничего не передаёт, пока его не спросят.
В линии с последовательным интерфейсом у каждого ведомого устройства свой адрес, как правило от 1 до 247. Ведущее опрашивает приборы по очереди, поэтому время полного цикла опроса растёт с числом устройств и объёмом читаемых данных.
Регистры и коды функций
Данные в Modbus-устройстве представлены как набор пронумерованных ячеек. Их четыре типа.
| Тип | Размер | Доступ | Что обычно хранят |
|---|---|---|---|
| Дискретные выходы (coils) | 1 бит | Чтение и запись | Команды включения и отключения |
| Дискретные входы | 1 бит | Только чтение | Состояния: авария, дверь открыта, насос работает |
| Входные регистры | 16 бит | Только чтение | Измеренные значения |
| Регистры хранения | 16 бит | Чтение и запись | Измерения, накопленные значения, настройки |
Операция задаётся кодом функции, например «прочитать регистры хранения» или «записать один регистр». Важно, что протокол не определяет смысл регистров. Какой регистр содержит накопленную энергию, а какой температуру подачи, решает производитель прибора и описывает в карте регистров. Без этой карты устройство с поддержкой Modbus подключить нельзя.
Значения больше 16 бит, например накопленные показания или числа с плавающей точкой, занимают два или четыре регистра подряд. Порядок слов в таких значениях у производителей разный, и неверный порядок даёт явно ошибочные числа. Это одна из самых частых проблем при наладке.
Modbus RTU и Modbus TCP
Протокол существует в нескольких вариантах. На практике встречаются два.
| Параметр | Modbus RTU | Modbus TCP |
|---|---|---|
| Среда передачи | Последовательная линия, чаще всего RS-485 | Сеть Ethernet |
| Формат кадра | Двоичный, с адресом устройства и контрольной суммой | Двоичный, с заголовком, контроль целостности обеспечивает сеть |
| Адресация | Адрес устройства в линии | IP-адрес, порт по умолчанию 502 и номер устройства |
| Обмен | Один запрос в линии в каждый момент времени | Несколько соединений одновременно |
| Где встречается | Счётчики, вычислители, датчики, модули ввода | Контроллеры, шлюзы, панели оператора |
Варианты легко сочетаются: шлюз принимает запросы Modbus TCP из сети и передаёт их в линию RS-485 в формате RTU. Так приборы с последовательным интерфейсом подключают к серверу через локальную сеть предприятия.
Где Modbus используется в учёте
- Счётчики электроэнергии. На российском рынке счётчики чаще работают по собственным протоколам производителей или по протоколу СПОДЭС, Modbus есть лишь у части моделей. Такие счётчики подключают через УСПД или преобразователь протокола, который понимает их протокол. Поддерживаемый протокол каждой модели проверяют до проекта.
- Теплосчётчики и вычислители. Тепловычислители и вычислители расхода с интерфейсом RS-485 часто отдают по Modbus текущие параметры и архивы.
- Контроллеры автоматики. ПЛК котлов, насосных станций и вентиляции передают по Modbus состояния, параметры и аварийные сигналы.
- Модули ввода-вывода. Для оборудования без цифрового интерфейса ставят модуль ввода, который преобразует импульсные, аналоговые и дискретные сигналы в регистры Modbus.
- УСПД и шлюзы. Собирают данные с линии и передают их на верхний уровень.
Платформа МБорд обменивается данными по Modbus RTU и TCP. Подключение приборов разных производителей, сверку карт регистров и настройку опроса мы выполняем в рамках интеграции с оборудованием. Как дальше обрабатываются считанные значения, подробно описано в статье о пути показания от счётчика до отчёта.
Чем Modbus отличается от M-Bus
Названия похожи, но это разные технологии. M-Bus создавалась специально для опроса счётчиков тепла, воды и газа. Она объединяет в себе физическую линию и протокол, может питать интерфейс прибора от самой шины (сам прибор при этом часто работает от батареи), а данные передаёт в стандартизованном виде с указанием единиц измерения. Modbus универсален: это только протокол, физическую линию для него задают отдельно (RS-485 или Ethernet), а смысл данных описывает производитель. Для подключения M-Bus приборов к системе на Modbus используют преобразователи.
Вопросы и ответы
Modbus и RS-485: это одно и то же?
Нет. RS-485 описывает электрическую линию, по которой идут сигналы, а Modbus определяет содержание сообщений. По линии RS-485 могут работать и другие протоколы, а Modbus может работать по Ethernet.
Если у прибора есть Modbus, его точно можно подключить?
Как правило, да, но нужна карта регистров от производителя и проверка настроек: адреса, скорости, формата данных. Совместимость каждой модели проверяют на обследовании.
Можно ли по Modbus управлять оборудованием?
Технически да, через запись регистров и дискретных выходов. Будет ли система управлять оборудованием, определяет проект и права доступа.
Что выбрать: RTU или TCP?
Выбор определяется приборами. Счётчики и датчики чаще поддерживают RTU по RS-485, контроллеры и шлюзы работают по TCP. В одной системе обычно используются оба варианта.
Обновлено 7 октября 2026
