Статья объясняет, что такое Modbus: открытый протокол обмена данными между устройствами автоматизации по архитектуре «ведущий-ведомый». Из неё можно узнать о разновидностях RTU, ASCII и TCP, типовых ошибках и способах применения.
- Modbus — открытый коммуникационный протокол, работающий по архитектуре «ведущий-ведомый» поверх RS-232, RS-485 или Ethernet.
- Протокол занимает уровень приложения в модели OSI и не зависит от физического интерфейса передачи.
- В сети только одно ведущее устройство инициирует обмен, ведомые отвечают на запросы.
- Данные хранятся в таблицах дискретных входов/выходов и регистров ввода/хранения, доступ к ним осуществляется кодами функций.
- Основные разновидности — Modbus RTU, Modbus ASCII и Modbus TCP, различающиеся кодированием кадра и средой передачи.
- Типичные ошибки: несовпадение параметров линии, путаница в адресации регистров, отсутствие согласующего резистора, два ведущих, неверный код функции.
- Modbus
- RS-232
- RS-485
- Modbus RTU
- Modbus ASCII
- Modbus TCP
- MBAP
- SCADA
Кому полезно: Инженерам АСУ ТП, настраивающим связь устройств автоматизации.
- Обучение Драйвер Modbus ASCII для SCADA без программирования
- Обучение ПОДКЛЮЧЕНИЕ ПЛК MITSUBISHI FX2N ПО RS-232 К SCADA TRACE MODE 7
- Обучение Подключение ПЛК Delta DVP к SCADA TRACE MODE (RS-232)
Выжимка составлена редакцией сайта с помощью ИИ по тексту статьи.
Modbus — открытый коммуникационный протокол обмена данными между устройствами автоматизации, построенный по архитектуре «ведущий-ведомый». Ведущее устройство (ПЛК, SCADA, панель) отправляет запросы, ведомые (датчики, модули ввода-вывода, преобразователи частоты) отвечают. Работает поверх RS-232, RS-485 (Modbus RTU/ASCII) или Ethernet (Modbus TCP) [1][5].
Modbus — это прикладной протокол, описывающий формат запросов и ответов, а не физический уровень передачи. В модели OSI он занимает уровень приложения, поэтому может работать поверх разных физических интерфейсов: последовательных линий RS-232/RS-485 и сетей Ethernet [1][2]. Именно эта независимость от «физики» и открытость спецификации сделали его одним из самых распространённых протоколов в промышленной автоматизации и SCADA-системах [1][2].
Архитектура строго ведущий-ведомый. В сети только одно ведущее устройство инициирует обмен; ведомые молчат, пока к ним не обратятся. Ведущий посылает запрос с адресом ведомого, кодом функции и данными, ведомый отвечает. Данные хранятся в виде таблиц: дискретные входы и выходы (биты) и регистры ввода/хранения (16-битные слова). Ведущий читает или записывает эти регистры кодами функций [1][5].
Основные разновидности — Modbus RTU, Modbus ASCII и Modbus TCP. RTU и ASCII работают по последовательным линиям, различаясь кодированием кадра: RTU передаёт данные в бинарном виде, ASCII — в текстовом. Modbus TCP работает в сетях Ethernet и добавляет к кадру заголовок TCP-соединения (MBAP), но функционал кодов функций остаётся тем же [5]. Поэтому преобразование RTU↔TCP — типовая задача, решаемая шлюзами [5][7].
На практике Modbus применяют для связи SCADA с ПЛК, опроса датчиков и счётчиков, управления преобразователями частоты, связи панелей оператора с контроллерами. Например, терминал может работать как Modbus-TCP сервер и одновременно как шлюз Modbus-TCP — Modbus RTU, транслируя запросы SCADA к устройствам на RS-485 [7]. В SCADA-системах (WinCC OA, TRACE MODE и других) драйвер Modbus настраивается указанием IP-адреса или COM-порта, скорости, чётности и карты регистров [4][8].
Типичные ошибки: несовпадение параметров последовательной линии (скорость, чётность, стоп-биты) у ведущего и ведомого; путаница в адресации регистров — смещение на единицу между «адресом» и «номером» регистра; отсутствие согласующего резистора на конце линии RS-485; попытка назначить двух ведущих в одной сети; неверный выбор кода функции (чтение вместо записи). Также часто забывают про таймауты ответа и повторы при потере пакетов.
Материалы сайта по теме
- Что такое Modbus? Протокол ModBus RTU и Modbus TCP
- Что такое Modbus? Протокол ModBus RTU и Modbus TCP
- ModBus Slave RTU/ASCII без смс и регистрации
- Подключение по MODBUS TCP за 3 минуты
- Преобразование протоколов Modbus
- Протоколы связи в АСУ ТП
Частые вопросы
Modbus — это сетевой протокол?
Да, это коммуникационный протокол обмена данными. Он работает как поверх последовательных линий RS-232/RS-485, так и поверх Ethernet в варианте Modbus TCP [5].
Чем Modbus RTU отличается от Modbus TCP?
RTU передаёт данные по последовательным линиям в бинарном виде, TCP — по Ethernet с дополнительным заголовком TCP-соединения. Набор кодов функций у них одинаков [5].
Сколько ведущих устройств может быть в сети Modbus?
Одно. Архитектура ведущий-ведомый допускает только одного мастера, который инициирует все запросы; остальные устройства — ведомые [5].
Можно ли соединить устройства Modbus RTU и Modbus TCP в одной системе?
Да, через шлюз-преобразователь. Например, терминал может работать как Modbus-TCP сервер и как шлюз к устройствам на RS-485 [7].
Где хранятся данные в Modbus?
В таблицах дискретных входов/выходов и регистров ввода/хранения. Ведущий читает или записывает их, указывая код функции и адрес [1].