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

MB_DIAG - диагностика связи


Назначение.
Функциональный блок MB_DIAG применяется совместно с блоком MB_RTU_MST для проверки связи со Slave-устройством. Используется функция Modbus с кодом 8 (Loopback Test). Возможные значения диагностического кода определяются документацией на конкретное устройство. В общем случае, при нулевом значении диагностического кода подчиненное устройство возвращает значение IVAL, отправленное через вход OVAL.
Входные параметры:
Параметр
Тип данных
Описание
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
CODE
INTEGER
Диагностический код
OVAL
INTEGER
Отправляемые данные
Выходные параметры:
Параметр
Тип данных
Описание
IVAL
INTEGER
Принятые данные
OK
BOOLEAN
Признак завершения операции.
При обнаружении ошибки во входных параметрах блока, запрос не направляется, код ошибки выводится на выход FAULT, а выход OK=FALSE.
Если ошибки в параметрах отсутствуют, функциональный блок направляет запрос и выставляет выход OK=TRUE, независимо от результата запроса.
FAULT
INTEGER
Код завершения операции. Список возможных кодов содержится в конце раздела 9.9.1.1 «MB_RTU_MST - конфигурация связи по протоколу Modbus-RTU Master».
 
Пример синтаксиса на языке ST.
//вызов функционального блока
Block.MB_DIAG(RUN, ID_DRV, SLAVE, CODE, OVAL);
//чтение принятых данных
IVAL := Block.IVAL;
//OK=false при ошибке в параметрах блока,
//OK=true сразу после отправки запроса.
OK := Block.OK;      
//чтение кода завершения операции
FAULT := Block.FAULT;