Драйвер Modbus Slave
Обзор
Драйвер реализует популярный протокол обмена данными Modbus и работает в качестве ведомого. При использовании драйвера Коммуникатор ожидает входящих запросов и команд от стороннего устройства или приложения, которое является ведущим (мастером). Поддерживаются каналы связи: последовательный порт, TCP-сервер и UDP. Драйвер может работать как в режиме Modbus RTU, так и в режиме Modbus TCP. Скачать драйвер можно по ссылке.
Функции драйвера Modbus Slave:
- Приём данных от ведущего устройства с помощью команд записи.
- Предоставление данных ведущему устройству в ответ на команды чтения.
- Работа в качестве шлюза, то есть трансляция значений каналов, полученных от других устройств.
Установка
Драйвер Modbus Slave устанавливается в соответствии с общей последовательностью установки драйверов.
Конфигурирование
Создайте новую линию связи с помощью мастера, который вызывается кнопкой . Выберите подходящий тип канала связи и настройте его свойства. На следующем рисунке показан пример свойств канала связи TCP-сервер.

В разделе пользовательских параметров линии связи необходимо добавить параметр TransMode, который отвечает за режим передачи данных. Он может принимать значения RTU и TCP.

С помощью мастера, вызываемого кнопкой , добавьте на линию связи одно или несколько устройств типа Modbus Slave. Числовой адрес устройства важен - он является идентификатором ведомого устройства согласно спецификации протокола Modbus. В качестве примера были добавлены три устройства, работающие в разных режимах, которые рассмотрены далее. Следующий рисунок показывает узел линии связи в проводнике проекта.

Режим Независимое устройство позволяет Коммуникатору принимать данные от контроллера, который является ведущим (мастером). Чтобы передать информацию Коммуникатору, контроллер должен записать данные, используя Modbus-функции 0x05
и 0x06
. Кроме того, контроллер может считать ранее записанные теги устройства из Коммуникатора. Чтение осуществляется с использованием Modbus-функций 0x01
, 0x02
, 0x03
и 0x04
. Тег устройства может быть записан как ведущим контроллером, так и с помощью команды управления, отправленной оператором.

Параметр Неопределённое значение задаёт значение, которое возвращается мастеру, если данные запрошенного регистра не определены. Он действует для числовых регистров и не действует для флагов. Если установлен Период действительности данных, значения тегов будут сбрасываться на неопределённые, если новые данные не поступают от контроллера в течение заданного периода времени.
Шаблон устройства определяет структуру и адреса регистров Modbus. Формат шаблона драйвера Modbus Slave (DrvModbusSlave) идентичен формату шаблона устройства, который используется драйвером Modbus Master (DrvModbus).

Если выбран режим независимого устройства, после завершения настройки свойств устройства создайте каналы в базе конфигурации с помощью мастера, вызываемого кнопкой . Если выбран другой режим устройства, создание каналов не требуется.
Режим Шлюз устройства используется для того, чтобы предоставить текущие данные каналов выбранного устройства сторонней системе.

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

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

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