Что такое Modbus: протокол простыми словами — АСУ ТП: сообщество инженеров

Что такое Modbus: протокол простыми словами

Коротко о статье

Статья объясняет, что такое 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 — открытый коммуникационный протокол обмена данными между устройствами автоматизации, построенный по архитектуре «ведущий-ведомый». Ведущее устройство (ПЛК, 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 — это сетевой протокол?

Да, это коммуникационный протокол обмена данными. Он работает как поверх последовательных линий 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].

Остались вопросы?Спросите ИИ-помощника сайта — он ответит по нашим статьям, видеоурокам и книгам.

Оставьте комментарий

Войти

Зарегистрироваться

Сбросить пароль

Пожалуйста, введите ваше имя пользователя или эл. адрес, вы получите письмо со ссылкой для сброса пароля.

Прокрутить вверх