MB_RTU_SLV - конфигурация Modbus-RTU Slave

Назначение.
Функциональный блок MB_RTU_SLV применяется для настройки и запуска задачи связи по протоколу Modbus-RTU в режиме Slave.
Альтернативой использованию блока MB_RTU_SLV является добавление и настройка задачи связи "Modbus-RTU Slave" через дерево конфигурации. Подробнее в разделе "Управление конфигурацией → Внешние коммуникации → Задачи связи Modbus → Настройка Modbus через дерево конфигурации" документа "Unimod PRO 2. Руководство пользователя".
|
Входные параметры:
|
Параметр
|
Тип данных
|
Описание
|
|
RUN
|
BOOLEAN
|
Управление работой блока:
|
|
PORT
|
INTEGER
|
Номер используемого физического COM-порта. Одна задача связи использует один COM-порт, поэтому для двусторонней передачи данных используются минимум два COM-порта: один на вход, другой на выход. Количество доступных соединений по протоколу Modbus-RTU ограничивается количеством COM-портов контроллера.
|
|
RATE
|
INTEGER
|
Поддерживается скорость передачи данных в бит/с: 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600 и 115200. Диапазон поддерживаемых значений зависит от типа мастер-модуля и описан в его руководстве по эксплуатации.
|
|
SLAVE
|
INTEGER
|
Сетевой адрес Slave-устройства по протоколу Modbus задается целым числом от 1 до 255. На Master-устройстве данное значение передается на вход Slave функциональных блоков чтения или записи для указания адресата запроса.
|
|
PARAM
|
INTEGER
|
Режим синхронности выполнения операции, кодировка данных и разрешение обмена с любым из зарезервированных мастер-модулей задается целым числом. Допустимые значения описаны далее в настоящем разделе.
|
|
ORDER
|
INTEGER
|
Порядок байт при передаче числовых значений задается целым числом. Допустимые значения описаны далее в настоящем разделе.
|
|
PARITY
|
INTEGER
|
Количество стоповых битов и режим контроля четности при передаче данных задаются целым числом:
|
|
TPKT
|
INTEGER
|
Время обнаружения обрыва (окончания) пакета - период времени в миллисекундах между поступающими байтами одного запроса. Если в указанный период очередной байт запроса не поступил, диагностируется обрыв запроса. При нулевом периоде диагностика не проводится.
|
|
DELAY
|
INTEGER
|
Задержка перед отправкой ответа - период времени в миллисекундах между моментом поступления запроса и отправкой ответа. При нулевом значении, ответ будет отправлен незамедлительно после его формирования. Используется только на Slave-устройстве.
|
Значение параметра PARAM определяется согласно следующей таблицы.
При выборе значений 16, 17, 24 или 25, когда на запрос разрешается отвечать любому из резервируемых модулей, необходимо физически разграничивать линии связи с основным и резервным мастер-модулем, так как через RS-232/RS422/RS-485 не поддерживается одновременный обмен с несколькими устройствами. Иначе, ответы от основного и резервного мастер-модулей будут накладываться друг на друга, что приведет к ошибкам обмена.
|
Значение параметра ORDER определяется согласно таблицы:
Контроль доступа позволяет проверить наличие на устройстве переменных с запрашиваемыми адресами. Если контроль доступа включен, а запрашиваемые адреса отсутствуют, в ответ на запрос будет возвращена ошибка. При отключенном контроле доступа и отсутствии запрашиваемых адресов, будет возвращен ответ с нулевыми значениями переменных, что может повлиять на корректность работы технологического приложения.
Старшая разрядность позволяет осуществлять обмен данными меньшей разрядности при совпадении порядка байт, параметров замены и контроля доступа. При работе с 8-байтовыми данными доступен обмен 4-х и 2-х байтовыми значениями, а при работе с 4-байтовыми данными доступен обмен 2-х байтовыми. Например, при значении параметра 24 доступен обмен 8-байтовыми данными с порядком "1-0-3-2-5-4-7-6", 4-байтовыми с порядком "1-0-3-2" и 2-байтовыми с порядком "1-0", с заменой байт и включенным контролем доступа.
|
Выходные параметры:
|
Параметр
|
Тип данных
|
Описание
|
|
OK
|
BOOLEAN
|
Признак завершения асинхронной операции:
|
|
FAULT
|
INTEGER
|
Код ошибки по результатам операции, список возможных кодов описан в конце раздела 9.9.1.1 «MB_RTU_MST - конфигурация связи по протоколу Modbus-RTU Master».
|
Описание алгоритма.
Настройки задачи связи передаются в блок через входные параметры, а их изменение постоянно отслеживается блоком. Поэтому, для изменения настроек не требуется перезапускать выполнение блока, достаточно в процессе работы изменить значение входного параметра, и задача связи будет незамедлительно переинициализирована. При этом во взаимосвязанных блоках чтения или записи могут возникнуть ошибки обмена по протоколу Modbus, если в момент изменения настроек были прерваны передача запроса или прием ответа.
Значение параметра Slave используется на Master-устройстве для идентификации адресата при направлении запроса и передается в качестве одноименного входного параметра на блоки чтения или записи.
После запуска приложения контроллер по указанному в параметрах блока COM-порту будет отслеживать поступление от удаленного Master-устройства запросов на чтение или запись данных.
Скорость передачи и кодировка передаваемых данных, количество стоповых битов и режим контроля четности должны совпадать на передающем и принимающем устройствах.
|
Пример синтаксиса на языке ST.
//вызов функционального блока
Block.MB_RTU_SLV(RUN, PORT, RATE, PARITY, SLAVE, ORDER, PARAM, TPKT, DELAY);
//чтение признака завершения операции
OK := Block.OK;
//чтение кода ошибки
FAULT := Block.FAULT;
|
