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

Назначение.
Функциональный блок MB_DIAG применяется совместно с блоком MB_RTU_MST для проверки связи со Slave-устройством. Используется функция Modbus с кодом 8 (Loopback Test). Возможные значения диагностического кода определяются документацией на конкретное устройство. В общем случае, при нулевом значении диагностического кода подчиненное устройство возвращает значение IVAL, отправленное через вход OVAL.
Входные параметры:
|
Параметр
|
Тип данных
|
Описание
|
|
RUN
|
BOOLEAN
|
|
|
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;
|
