Для предоставления актуальных данных интерфейсом визуализации должны использоваться данные подсистемы "Сбор данных (DAQ)". Природа этих данных следующая:
Учитывая первый пункт нужно обеспечить возможность группового назначения ссылки. Для этого используем концепцию логического уровня.
В соответствии с пунктом 2, связи обеспечивают прозрачное преобразование типов и не требуют специальной конфигурации.
Для удовлетворения возможности доступа к архивам, в соответствии с пунктом 3, связи выполняют проверку типа атрибута и, в случае подключения к "Адресу", в значение помещается адрес связи.
В терминах СВУ, динамические связи и конфигурация динамики являются синонимами, для описания конфигурации которых предусматривается вкладка "Обработка" виджетов (рис.4.9.a). Вкладка содержит таблицу конфигурации свойств атрибутов виджета и текст процедуры вычисления виджета.
Кроме полей конфигурации атрибутов в таблице предусматривается колонка "Обработка" (для избирательного использования атрибутов виджетов в вычислительной процедуре виджета) и колонки "Конфигурация" и "Конфигурационный шаблон" для описания конфигурации связей.
Колонка "Конфигурация" позволяет указать тип связи для атрибута виджета:
Колонка "Конфигурационный шаблон" позволяет описать группы динамических атрибутов. Например это могут быть разные типы параметров подсистемы "DAQ". Кроме того, при корректном формировании этого поля, работает механизм автоматического назначения атрибутов при указании только параметра подсистемы "DAQ", что упрощает процесс конфигурации. Значение этой колонки имеет следующий формат: <Параметр>|<Идентификатор>, где:
Установка связей может быть нескольких типов, который определяется префиксом:
Обработка связей происходит с периодичностью вычисления виджета в порядке:
На рис. 4.9.b представлена вкладка связей с групповым назначением атрибутов путём указания только параметра, а на рис. 4.9.с с индивидуальным назначением атрибутов.
При размещении виджета, содержащего конфигурацию связей, в контейнер виджетов все связи исходного виджета добавляются в список результирующих связей контейнера виджетов (рис. 4.9.d)
Из вышесказанного видно, что связи устанавливаются пользователем в процессе конфигурации интерфейса. Однако для предоставления возможности создания кадров общего назначения, с функцией предоставления данных разных источников одного типа, необходим механизм динамической установки связей. Такой механизм предусматривается посредством зарезервированного ключевого идентификатора '<page>' группы атрибутов связей у кадров общего назначения и динамическое назначение связей с идентификатором '<page>' в процессе открытия кадра общего назначения сигналом от другого виджета.
Рассмотрим пример когда имется кадр общего назначения "Панель контроля графиком" и "Графики" на разных кадрах. "Панель контроля графиком" имеет связи с шаблонами:
При этом каждый виджет "График" имеет атрибуты tSek, tSize, trcPer и valArch. В случае вызова сигнала открытия "Панели контроля графиком" из любого виджета "График" происходит связывания атрибутов "Панели контроля графиком" в соответствии атрибуту указанного в шаблоне с атрибутом виджета "График". Как результат, все изменения на "Панели контроля графиком" будут отражаться на графике посредством связи.
В случае наличия у виджета "График" внешних связей на параметры подсистемы "Сбор данных" то связи "Панели контроля графиком" будут устанавливаться на внешний источник. Кроме этого, если у "Панели контроля графиком" будут заявлены связи на отсутствующие непосредственно у виджета "График" атрибуты, то будет производится поиск на наличие таких атрибутов у внешнего источника, выполняя, тем самым, дополнение недостающих связей.
Для наглядного изображения этого механизма приведена таблица 4.9.
Таблица 4.9. Механизм динамической линковки.
Атрибуты "Панели контроля графиком" с шаблоном динамической связи | Атрибуты "Графика" | Атрибуты внешнего "Параметра" | Результирующая связь или значение связующегося атрибута |
tSek -> <page>|tSek | tSek | - | "График".tSek |
tSize -> <page>|tSize | tSize | - | "График".tSize |
trcPer -> <page>|trcPer | trcPer | - | "График".trcPer |
valArch -> <page>|valArch | valArch | - | "График".valArch |
var -> <page>|var | var | var | "Параметр".var |
ed -> <page>|ed | - | ed | "Параметр".ed |
max -> <page>|max | - | - | EVAL |
min -> <page>|min | - | - | EVAL |