Modbus — промышленный протокол обмена данными¶
Modbus — промышленный протокол обмена данными между устройствами автоматизации, разработанный в 1979 году компанией Modicon (ныне Schneider Electric) для связи программируемых логических контроллеров (ПЛК) с компьютерами и промышленными приборами. Протокол стал одним из наиболее распространённых в мире стандартов промышленной автоматизации и остаётся открытым: его спецификация опубликована без лицензионных ограничений, что обеспечило широкое поддержку со стороны производителей оборудования.
¶История
Протокол Modbus был разработан в 1979 году инженерами Modicon — компанией, основанной в 1968 году и ставшей одним из пионеров производства ПЛК. Первоначально протокол использовался для связи ПЛК серии Modicon 984 с промышленными панелями операторов и компьютерами.
В 2004 году компания Modicon, к тому времени вошедшая в состав Schneider Electric, передала права на протокол организации Modbus Organization. С тех пор спецификация Modbus публикуется открыто и доступна для внедрения без выплаты роялти. Это решение закрепило статус протокола как де-факто отраслевого стандарта: на рынке присутствуют тысячи сертифицированных устройств от сотен производителей.
¶Принцип работы
Modbus использует модель «мастер — подчинённый» (в современной терминологии — «клиент — сервер»). Мастер инициирует обмен, отправляя запрос, а подчинённое устройство (slave) отвечает на него. В сети может работать один мастер и до 247 подчинённых устройств, адресация которых задаётся в диапазоне 1–247.
Протокол не определяет физический уровень связи, поэтому может работать поверх различных транспортов:
| Транспорт | Описание |
|---|---|
| RS-232 | Последовательная связь на короткие расстояния (до 15 м), точка — точка |
| RS-485 | Последовательная связь на расстояния до 1200 м, до 32 устройств на шину, дуплекс |
| Ethernet (Modbus TCP/IP) | Сетевой обмен по TCP-порту 502, высокая скорость и масштабируемость |
| Modbus RTU over TCP | Кадры RTU, инкапсулированные в TCP-пакеты |
¶Форматы протокола
Существует три основных варианта протокола:
- Modbus RTU (Remote Terminal Unit) — бинарный формат передачи данных по последовательной линии. Каждый кадр содержит адрес устройства, код функции, данные и контрольную сумму CRC-16. Наиболее распространённый вариант в промышленных сетях на базе RS-485.
- Modbus ASCII — текстовый формат, в котором данные кодируются в виде ASCII-символов. Более простой для отладки, но менее эффективный по скорости передачи. Встречается реже, чем RTU.
- Modbus TCP/IP — вариант для Ethernet-сетей. Кадры Modbus инкапсулируются в TCP-пакеты, адресация расширяется за счёт IP-адресов. Порт по умолчанию — 502.
¶Модель данных
Протокол оперирует четырьмя типами данных:
| Тип | Описание | Размер |
|---|---|---|
| Discrete Inputs | Дискретные входы (только чтение) | 1 бит |
| Coils | Катушки (чтение/запись) | 1 бит |
| Input Registers | Входные регистры (только чтение) | 16 бит |
| Holding Registers | Регистры хранения (чтение/запись) | 16 бит |
Адресация начинается с 0 или 1 в зависимости от реализации, что исторически является источником путаницы при интеграции устройств разных производителей.
¶Функции протокола
Базовый набор функций включает:
- 01 — чтение дискретных выходов (Coils);
- 02 — чтение дискретных входов;
- 03 — чтение регистров хранения;
- 04 — чтение входных регистров;
- 05 — запись одного дискретного выхода;
- 06 — запись одного регистра хранения;
- 15 (0x0F) — запись нескольких дискретных выходов;
- 16 (0x10) — запись нескольких регистров хранения.
Дополнительно определены функции диагностики, счётчика событий и записи журналов. Всего в спецификации описано более 40 функций.
¶Применение
Modbus применяется в системах промышленной автоматизации: диспетчеризация и SCADA-системы, сбор данных с датчиков и исполнительных устройств, управление частотными преобразователями, интеграция счётчиков энергоресурсов, системы вентиляции и кондиционирования, умные здания. Протокол поддерживается большинством производителей ПЛК, включая Siemens, Allen-Bradley, ABB, ОВЕН, Три Контур, Модульные Системы Управления.
¶Ограничения
Протокол не имеет встроенных механизмов аутентификации и шифрования, что делает его уязвимым в сетях с открытым доступом. В промышленных системах защита обеспечивается на уровне сетевой инфраструктуры — сегментацией, файрволами, VPN. Стандарт Modbus TCP/TLS и спецификация Modbus Security (2024) направлены на решение этой проблемы.
¶Интересные факты
- Modbus стал одним из немногих промышленных протоколов, переживших смену нескольких поколений оборудования — от релейных систем 1970-х до современных IoT-устройств.
- В 2023 году Modbus отмечал 44-летие, оставаясь одним из самых массово внедряемых протоколов в мире: по оценкам отраслевых аналитиков, в мире работает свыше 10 миллионов устройств с поддержкой Modbus.
Источники:
- Спецификация Modbus Application Protocol V1.1b3, Modbus Organization
- Schneider Electric. История протокола Modbus
- «Промышленные сети и протоколы», учебные материалы по промышленной автоматизации
