MB_W - запись группы данных

Назначение.
Функциональный блок MB_W применяется для записи группы данных на Slave-устройство по протоколу Modbus.
Входные параметры:
|
Параметр
|
Тип данных
|
Описание
|
|
RUN
|
BOOLEAN
|
Управление работой блока:
|
|
ID_DRV
|
INTEGER
|
Идентификатор задачи связи Modbus-RTU MST/Modbus-TCP MST, в рамках которой будет выполняться запись данных.
|
|
SLAVE
|
INTEGER
|
Сетевой адрес Slave-устройства по протоколу Modbus задается целым числом от 1 до 255.
|
|
FUNC
|
INTEGER
|
Код используемой modbus-функции:
|
|
DATA_TYPE
|
INTEGER
|
Тип запрашиваемых данных:
|
|
SEQ
|
INTEGER
|
Порядок передачи байтов для числовых значений задается целым числом. Доступные значения описаны далее в настоящем разделе.
|
|
ADDRB
|
INTEGER
|
Передается значение на единицу меньше, чем modbus-адрес первой переменной из группы на Master-устройстве.
|
|
ADDRT
|
INTEGER
|
Идентификатор области памяти на Master-устройстве:
|
|
NUMBER
|
INTEGER
|
Количество переменных, значения которых будут отправлены на Slave-устройство для записи. Отсчет начинается с modbus-адреса ADDRB+1 включительно. Особенности назначения modbus-адресов описаны в разделе 9.9.2.1 "Блок MB_R - Чтение группы данных".
|
|
ADDRD
|
INTEGER
|
Modbus-адрес первой переменной из группы на Slave-устройстве. Полученная от Master-устройства группа данных в количестве NUMBER будет записана в переменные, начиная с адреса ADDRD.
|
Значения параметра SEQ определяются согласно следующей таблицы:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Выходные параметры:
|
Параметр
|
Тип данных
|
Описание
|
|
READY
|
BOOLEAN
|
Признак завершения операции:
|
|
FAULT
|
INTEGER
|
Код завершения операции, список возможных кодов описан в конце раздела 9.9.1.1 «MB_RTU_MST - конфигурация связи по протоколу Modbus-RTU Master».
|
Пример синтаксиса на языке ST.
//вызов функционального блока
Block.MB_W(RUN, ID_DRV, SLAVE, FUNC, DATA_TYPE, SEQ, ADDRD, ADDRT, ADDRB, NUMBER);
//чтение признака и кода завершения операции
READY := Block.READY;
FAULT := Block.FAULT;
|

