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

MB_R_F - чтение вещественного значения


Назначение.
Функциональный блок MB_R_F применяется для чтения пары последовательных регистров со Slave-устройства. Значение возвращается в формате числа с плавающей точкой. Используется функция Modbus с кодом 3 (Read Holding Registers).
 
Входные параметры:
Параметр
Тип данных
Описание
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 и порядок чтения байтов при 32-разрядном режиме обмена данными задается целым числом. Правила его формирования описаны далее в настояще разделе.
ADR
INTEGER
Modbus-адрес первого регистра из пары на Slave-устройстве. Особенности назначения modbus-адресов описаны в разделе 9.9.2.1 "Блок MB_R - Чтение группы данных".
Правила формирования целочисленного значения на входе SLAVE.
В младшем байте параметра кодируется сетевой адрес (целое число от 1 до 255), а во втором байте - порядок чтения байт в соответствии со значениями параметра ORDER, описанными в разделе 9.9.1.2 "MB_RTU_SLV - конфигурация связи по протоколу Modbus-RTU Slave".
Например, для 32-х разрядного режима работы с заменой байт (1-0-3-2) и адресом устройства 1 входной параметр SLAVE=1, на следующем изображении продемонстрирована его битовая маска.
Блок настроен на обмен данными только в 32-х разрядном режиме, когда на Slave-устройстве осуществляется чтение 2-х последовательных 16-битных регистров, начиная с адреса ADR. Прочитанные значения будут переданы на выход VALUE в виде одного 32-битного вещественного значения.
 
Выходные параметры:
Параметр
Тип данных
Описание
READY
BOOLEAN
Признак завершения операции:
  • READY=FALSE - когда обнаружена ошибка во входных параметрах блока, запрос не направляется;
  • READY=TRUE - выставляется сразу после направления запроса, независимо от его результатов.
FAULT
INTEGER
Код завершения операции, список возможных кодов описан в конце раздела 9.9.1.1 «MB_RTU_MST - конфигурация связи по протоколу Modbus-RTU Master».
VALUE
REAL
Значение пары регистров в формате с плавающей точкой.
 
Пример синтаксиса на языке ST.
//вызов функционального блока
Block.MB_R_F(RUN, ID_DRV, SLAVE, ADR);
//чтение значения двух регистров в формате с плавающей точкой
VALUE := Block.VALUE;
//чтение признака и кода завершения операции
READY := Block.READY;
FAULT := Block.FAULT;