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

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.
Код ошибки
Краткое описание
0
Ошибок нет
1
Неизвестный модуль
2
Неверный тип или размер массива pVAR
8
Системная ошибка