MB_R_F16 - чтение 16 вещественных значений

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