Протокол Modbus появился в конке 70-х годов и до сих пор не теряет актуальность в области машинного взаимодействия (Machine-to-Machine, M2M). Это сетевой протокол, который широко используется в промышленности для мониторинга и интеграции различного оборудования. По сути, Modbus — стандарт де-факто и поддерживается почти всеми производителями промышленных устройств и приборов. С помощью протокола Modbus можно снимать показания с датчиков и управлять контроллерами. Изначально, Modbus использовал в своей реализации интерфейс RS-232 и RS-485. Позже повилась разновидность протокола Modbus TCP, использующая для взаимодействия между участниками обмена сеть Ethernet. По умолчанию этот протокол использует порт TCP 502.
Устройства Modbus взаимодействуют между собой по принципу master-slave. Устанавливает соединение и выполняет запросы master-устройство, slave же может только отвечать на них. Недавно разработчик Modbus переименовал терминологию master-slave в более привычную Client-Server. Клиентское устройство или ПО (master) отправляет запросы опрашиваемому устройству-серверу (slave) и получает ответы на них.
Каждое устройство Modbus идентифицируется уникальным адресом (Slave ID), который может назначаться из диапазона 1-247. Адрес 0 используется для широковещательных запросов от клиента всем серверам, а адреса 248–255 считаются зарезервированными. В Modbus TCP в качестве идентификатора выступает обычный IP-адрес устройства. Однако, и стандартный адрес может потребоваться для соединения, если оно устанавливается с сетью RS485 через специальный шлюз.
Запрос Modbus состоит из кода функции и данных, которые нужно запросить или записать в устройство. Каждая функция может оперировать только с конкретным типом данных. Есть функции только для чтения и только для записи.
Функции для чтения регистров Modbus TCP
Код функции |
Что делает функция |
Тип значения |
Тип доступа |
---|---|---|---|
01 (0x01) |
Read Coil Status |
Дискретное |
Чтение |
02 (0x02) |
Read Input Status |
Дискретное |
Чтение |
03 (0x03) |
Read Holding Registers |
16 битное |
Чтение |
04 (0x04) |
Read Input Registers |
16 битное |
Чтение |
Доступ к регистрам выполняется с помощью 16-битного адреса. Первому элементу в каждой группе регистров соответствует адрес 0. То есть адрес (индекс) любого регистра может принимать значения из диапазона 0-65535. В регистрах хранятся значения внутренних переменных, счётчиков, показания различных датчиков и флагов. Адреса (индексы) нужных регистров можно узнать в документации к конкретному устройству. Обычно они указываются в разделе «Modbus Mapping Table».
Для чтения и мониторинга параметров Modbus-устройств можно использовать специальные программы, которые поддерживают этот протокол. Программа «Мониторинг Сети Pro» позволяет подключаться к устройствам по Modbus TCP и считывать из них необходимые параметры. Для чтения регистра нужно всего лишь задать несколько параметров:
- IP-адрес устройства
- Порт (502 по умолчанию)
- Slave ID
- Индекс регистра
- Код функции
Программа может выполнять подключение по Modbus TCP к устройству, находясь на сервере в другой сети (связанной с первой). Для этого используются возможности удалённого агента, который можно установить в одной сети с опрашиваемым устройством. При такой схеме, программа будет отправлять запрос агенту по указанному в IP-адресу, а тот, в свою очередь, переадресует его Modbus-устройству.
При выходе значения параметра за заданные пределы программа оперативно оповещает об этом несколькими способами. Порог срабатывания сигнализации задаётся в параметрах проверки.
Полученные значения можно отображать на графических индикаторах или схеме сети в SCADA-стиле.
Недостатки протокола Modbus
Протокол был разработан более 40 лет назад, когда ещё не были так актуальны вопросы защиты данных. Он имеет ряд недостатков, связанных не только с безопасностью:
- Отсутствие аутентификации и шифрования передаваемых данных. Для их защиты необходимо использовать VPN-тоннели.
- Инициировать передачу данных может только master-устройство. Оно должно постоянно опрашивать slave-устройство, генерируя лишний трафик.
- Slave-устройство не может отследить разрыв соединения с master.
Modbus, несмотря на свой возраст и недостатки, всё же прост в использовании. Именно это обеспечивает ему высокую скорость промышленного внедрения. Отсутствие ненужного функционала и есть его основное преимущество. Modbus активно развивается и поддерживается множествами промышленных устройств разных производителей. А также применяется провайдерами при создании облачных IoT-платформ.
Внимание! Эта проверка доступна только в версии Pro.
Смотрите также:
Скачайте бесплатную 30-дневную версию программы мониторинга сети прямо сейчас и попробуйте!