Среда разработки Unimod PRO 2 (версия 2.3.40)
 Руководство по программированию
×

MB_STATE - получение ID подчиненного устройства


Назначение.
Функциональный блок MB_STATE применяется совместно с блоком MB_RTU_MST для чтения идентификатора ID и рабочего состояния Slave-устройства. Используется функция Modbus с кодом 17 (Report Slave ID). Возможные значения ID и рабочего состояния определяются документацией на конкретное устройство.
 
Входные параметры:
Параметр
Тип данных
Описание
RUN
BOOLEAN
  • RUN=TRUE - запуск блока и передача в задачу связи MB_RTU_MST/MB_TCP_MST команды на запрос сведений сотSlave-устройства;
  • RUN=FALSE - остановка блока и задачи связи.
ID_DRV
INTEGER
Идентификатор задачи связи Modbus-RTU MST или Modbus-TCP MST, которая будет выполнять запрос.
SLAVE
INTEGER
Сетевой адрес Slave-устройства по протоколу Modbus  задается целым числом от 1 до 255.
ID_SIZE
INTEGER
Размер ID подчиненного Slave-устройства в байтах, описан в документации на конкретное устройство.
 
Выходные параметры:
Параметр
Тип данных
Описание
ID
INTEGER
ID подчиненного Slave-устройства
STATE
INTEGER
Состояние Slave-устройства
OK
BOOLEAN
Признак завершения операции:
  • OK=FALSE - когда обнаружена ошибка во входных параметрах блока, запрос не направляется;
  • OK=TRUE - выставляется сразу после направления запроса, независимо от его результатов.
FAULT
INTEGER
Код завершения операции, список возможных кодов описан в конце раздела 9.9.1.1 «MB_RTU_MST - конфигурация связи по протоколу Modbus-RTU Master».
 
Пример синтаксиса на языке ST.
//вызов функционального блока
Block.MB_STATE(RUN, ID_DRV, SLAVE, ID_SIZE);
//чтение ID Slave-устройства
ID := Block.ID;
//чтение состояния Slave-устройства
STATE := Block.STATE;
//чтение признака и кода завершения операции
OK := Block.OK;
FAULT := Block.FAULT;