SOE_TO_HDA - привязка каналов модуля к массиву

Назначение.
Функциональный блок SOE_TO_HDA применяется для привязки каналов модуля ввода-вывода с регистрацией событий к архивируемому массиву на мастер-модуле.
Может использоваться для периодического получения группы зарегистрированных значений (событий) с каждого канала ввода-вывода. Например, если на модуле ввода-вывода значения каналов архивируются один раз в 100 мс, а запрос значений и их передача на мастер-модуль осуществляется один раз в 1000 мс, то на мастер-модуль каждый цикл будут передаваться по 10 архивных значений для каждого канала, которые будут накапливаться в буфере архивации принимающего массива.
Состав структурной переменной.
Переменная со структурным типом SOE_TO_HDA будет добавлена в локальный словарь автоматически при добавлении блока в редактор.

Описание алгоритма.
-
До запуска блока необходимо синхронизировать время на мастер-модуле и модуле ввода-вывода. При отсутствии синхронизации, промежуточные значения каналов на модуле архивироваться не будут. Для синхронизации используйте вызов системной функции system(1,0) или функциональный блок TIME_SYNC.
-
На вход ADR передается адрес модуля ввода-вывода с регистрацией событий. Узнать адрес модуля можно в разделе дерева конфигурации "Контроллеры → Модули ввода/вывода → Линия связи (порт ST-BUS)" или на панели "Свойства" после выделения модуля в глобальном словаре.

-
На вход pVAR передается ссылка на массив, в котором будут архивироваться значения каналов ввода-вывода. Количество элементов и тип данных массива должны совпадать с количеством каналов и их типом данных на модуле. Для всех переменных из массива pVAR в словаре должна быть включена архивация, как показано на следующем изображении.

-
После запуска блока (CMD=TRUE), с модуля по адресу ADR будут поступать значения каналов ввода-вывода, в том числе архивные, и сохраняться в буфере архивации для массива pVAR: значения с 1 канала в элементе массива pVAR[0], значение со 2 канала в элементе pVAR[1] и т.д.
Пример синтаксиса на языке ST.
//вызов функционального блока
Block.SOE_TO_HDA(CMD, ADR, pVAR);
//чтение кода завершения операции
Q := Block.Q;
|
Список кодов завершения операции на выходе Q.
|
