Функция принимает на входы valueX
значения и пока на входе enable
значение True функция начинает прослушивание интерфейса (настройка Интерфейс).
При получении запросов в протоколе ModBus RTU устройство проверяет их на соответствие настройкам Функция, Сетевой номер, Адрес данных.
Если данные в запросе верны, то функция формирует ответ согласно протоклу и с учетом настроек Тип и Порядок байт.
Если принятые данные корректны и адресованы нужному получателю (настройка Сетевой адрес), но остальные параметры некорректны, то устройство сформирует ответ с кодом ошибки согласно протоклу обмена.
При работе функции используются буферы RXD и TXD
Для работы функции, в конфигурации устройства должен быть настроен соответствующий интерфейс:
Конфигурация > RS-232/RS-485 > Устройство X > Сomplex Events (асинхронный режим).
В меню функций | На схеме |
---|---|
![]() |
![]() |
Название | Тип значения | Описание |
---|---|---|
enable |
bool | Если True, то функция готова отвечать на запросы |
value0 |
float, int32, bool | Значение для чтения 0 |
value1 |
float, int32, bool | Значение для чтения 1 |
... | ... | ... |
valueX |
float, int32, bool | Значение для чтения X. Количество входных линий, регулируется настройкой "Количество входов" |
Логика работы функции зависит от типа данных:
Если ко входу
value
подключена переменная с типом Float и настройка Тип = int32/float, то функция записывает данные в буфер по стандарту IEEE754. Такой способ необходимо использовать для значений, которые хранятся в формате Float (например, значение 12.6).Иначе функция записывает данные как Int32.
Конвертация выполняется автоматически при помощи скрытых функций FROM_FLOAT и TO_FLOAT.
Название | Тип значения | Описание |
---|---|---|
state |
int32 | Состояние: 0 – не активен; 1 – ожидание запроса; 2 – чтение запроса; 3 – чтение завершено; 4 – отправка ответа; -1 – интерфейс недоступен (не настроен). |
Название | Описание |
---|---|
Количество входов | Настройка регулирует количество входных линий valueX |
Интерфейс | Цифровой интерфейс, которым управляет функция. Если выбранный интерфейс не настроен, то функция сформирует ошибку state = -1 . |
Функция | Функция ModBus, с помощью которой могут считываться данные: Регистры - работа с функциями 03 ( AO ) и 04 (AI );Дискреты - работа с функциями 01 ( DO ) и 02 (DI ).Более подробно о функциях можно прочитать в стате про ModBus RTU |
Сетевой номер (dec) | Сетевой номер эмулируемого датчика. В десятичном формате. |
Адрес данных | Адрес первого значения valueX |
Тип | Тип и размер значения которое будет взято со входа valueX для ответа:uint8 – однобайтовое число без знака; int8 – однобайтовое число со знаком; uint16 – двухбайтовое без знака; int16 – двухбайтовое со знаком; int32/float – четырехбайтовое со знаком / вещественное. |
Порядок байт | Порядок байт, который будет использован при копировании значений со входов valueX в TXD буфер. Например, value0 = 0x01020304 , Тип = int32/float.Младшим вперед: TXD = Старшим вперед:[04,03,02,01] TXD = Старшим вперед (2 байта):[01,02,03,04] TXD = [02,01,04,03] |