< Назад

Протокол Modbus: основы RTU, ASCII и TCP

1. Что такое Modbus и чем он отличается от RS-485?

Modbus — это протокол обмена сообщениями прикладного уровня, предназначенный для передачи данных между контроллерами и устройствами. RS-485 и RS-232 определяют электрические интерфейсы. Modbus RTU и ASCII представляют собой режимы последовательной передачи, а Modbus TCP передаёт сообщения Modbus по TCP/IP. Наличие интерфейса RS-485 само по себе не означает, что устройство поддерживает Modbus.

В жидкостной системе Modbus может использоваться для чтения состояния устройств или передачи параметров управления. Поддержку протокола, доступные функции и назначение регистров следует проверять по руководству по связи для конкретной модели контроллера. Поддерживаемый интерфейс необходимо подтверждать для каждого изделия Foreach и его конфигурации.

2. Чем различаются Modbus RTU, ASCII и TCP?

По одному разъёму определить режим связи нельзя. В последовательной сети на обоих концах должны совпадать режим передачи, скорость в бодах и формат передаваемых символов. Для TCP необходимо проверить сетевое подключение и настройки службы на устройстве.

РежимСтруктура сообщенияЧто проверить
Modbus RTUАдрес устройства + Код функции + Данные + CRCНастройки последовательной связи, адрес устройства и интервал между кадрами
Modbus ASCIIСообщение в кодировке ASCII с LRC и заданными символами начала и концаНастройки последовательной связи, кодировку и LRC
Modbus TCPЗаголовок MBAP + Код функции + Данные; CRC режима RTU не добавляетсяIP-адрес, порт, идентификатор транзакции и идентификатор устройства (Unit Identifier)

3. Как работают адресация и обмен запросами и ответами в последовательной сети?

В последовательной сети Modbus индивидуальные адреса серверов (ведомых устройств) находятся в диапазоне 1–247. Адрес 0 выделен для широковещательных запросов, а адреса 248–255 зарезервированы. Клиент (ведущее устройство) отправляет адресный запрос, после чего указанное устройство возвращает ответ. На широковещательные запросы записи ответа нет. Поэтому 8-битное поле адреса не означает, что все значения от 0 до 255 допустимы как индивидуальные адреса устройств.

Эти правила адресации относятся к последовательной связи. В заголовке MBAP протокола Modbus TCP есть идентификатор устройства (Unit Identifier). При передаче сообщений через шлюз назначение этого поля зависит от реализации устройства. Прежде чем применять правила последовательной адресации к TCP-соединению, проверьте руководство конкретного устройства.

4. Как читать коды функций Modbus вместе с картой регистров?

Код функции определяет категорию данных и операцию чтения или записи. Поле данных содержит соответствующие адреса, количество элементов или значения. Даже если оба устройства поддерживают Modbus, их карты регистров могут различаться.

До наладки проверьте, есть ли смещение между номерами регистров в руководстве и начальными адресами, передаваемыми в сообщениях. Также уточните разрядность данных, знаковое или беззнаковое представление, коэффициенты масштабирования, единицы измерения и порядок слов для значений, занимающих несколько регистров. Скорость, положение и объём жидкости — разные величины; их значения нельзя подменять друг другом.

Схема адресного обмена запросами и ответами Modbus RTU и ASCII, поля сообщений и распространённые шестнадцатеричные коды функций
Обычный адресный обмен в последовательной сети с нормальным ответом и распространённые коды функций Modbus. RTU использует CRC, ASCII — LRC. На широковещательные запросы ответа нет. Формат TCP приведён в таблице выше.
Код функции (hex)Операция
01Чтение дискретных выходов
02Чтение дискретных входов
03Чтение регистров хранения
04Чтение входных регистров
05Запись одного дискретного выхода
06Запись одного регистра
0FЗапись нескольких дискретных выходов
10Запись нескольких регистров
На схеме показан обычный адресный обмен в последовательной сети с нормальным ответом. На широковещательные запросы ответа нет. Ответы об исключениях содержат код функции с признаком исключения и код исключения; на схеме они не показаны. Для TCP используется описанный выше формат с заголовком MBAP. Доступные функции указаны в руководстве по связи устройства.

5. Как наладить устройство управления жидкостной системой по Modbus?

Сначала проверьте подключение и питание, затем настройте параметры связи по руководству устройства. Начните с чтения известного значения состояния. Проверьте адрес устройства, код функции и смысл полученных данных, прежде чем испытывать разрешённую запись параметров и команды движения.

Отдельно проверяйте успешный обмен данными, принятие команды, завершение движения и соответствие фактически поданного объёма заданию. Подтверждение записи не означает, что насос завершил движение. После тайм-аута сначала запросите состояние устройства и лишь затем решайте, нужно ли повторять команду дозирования, чтобы не подать дозу дважды.

Регистрируйте запросы, ответы, коды исключений и условия возникновения тайм-аутов. При поиске неисправности проверяйте концевые сигналы, поиск исходного положения, состояние клапанов и временную последовательность движений. Точные команды, адреса и единицы отсчёта определяются руководством по связи устройства.

Источники

Согласуйте параметры связи и требования к движению

Предоставьте модель контроллера, руководство по связи, карту регистров, схему подключения и требуемую последовательность движений. До интеграции подтвердите поддерживаемый интерфейс и единицы команд.