From OpenSCADAWiki
Jump to: navigation, search

Проект

Непосредственная конфигурация, и свойства конечного интерфейса визуализации, содержатся в проекте интерфейса визуализации СВУ, которых может быть создано множество.

Каждый проект включает страницы из библиотек кадров-виджетов. В ряде режимов, сама страница может включать в себя вложенные страницы как независимые от родительской, так и с использованием родительского в роли шаблона. Шаблонные страницы-виджеты позволяют предельно упростить процесс создания однотипных кадров простого мониторинга, инженером АСУ ТП или пользователем OpenSCADA. Примером таких однотипных кадров могут быть: группы контуров, группы графиков, протоколы и различные сводные таблицы. Мнемосхемы технологических процессов редко подпадают под такую схему и формируются в отдельной странице-виджете.

Страница, как и виджет на котором она основана, предоставляет возможность привязки динамики к описанным в ней свойствам — связи, которые могут быть установлены динамикой или константами. Кроме того, связывание непосредственно на уровне страницы проекта является предпочтительным, чем осуществление этого на уровне виджетов библиотек.

Пример иерархического представления компонентов проекта классического интерфейса ВУ технологического процесса, с описанием выражений стандартных вызовов, приведен на рисунке.

VCA prog tree ru.png

Предусмотрены следующие специальные свойства страниц:

  • Контейнер — страница является контейнером вложенных страниц.
  • Шаблон — страница является шаблоном вложенных страниц.
  • Пусто — пустая и неактивная страница. Это свойство используется совместно со свойством Контейнер, для организации логических контейнеров страниц.
  • Связь — связь на другую страницу ка контейнер под-страниц, которые будут использоваться на стороне исполнения проектов (сеансов) без их отдельного создания.

На комбинациях вышеуказанных специальных свойств страниц реализованы следующие их типы:

  • Стандарт — стандартная страница (не установлено ни одно из свойств), является полноценной конечной страницей.
  • Контейнер — полноценная страница со свойством контейнера (Контейнер).
  • Логический контейнер — логический контейнер, фактически сам не являющийся страницей (Контейнер|Пусто), выполняет роль промежуточного и группирующего элемента в дереве страниц.
  • Шаблон — страница-шаблон (Шаблон). Чистая шаблонная страница, используется для описания общих свойств и доопределения их во вложенных страницах, в частном порядке.
  • Контейнер и шаблон — страница шаблон и контейнер (Шаблон|Контейнер), совмещает функции шаблона и контейнера.
  • Связь — связь на другую страницу. Связи могут быть использованы на полностью динамических и высоко тиражируемых страницах, для оптимизации использования памяти. Для разделения открытия связанных страниц Вы должны использовать атрибут "path". Функция uiCmd() пользовательского API должна использоваться для управления страницами этого типа вместо прямой записи в атрибуты страниц "pgOpen" и "pgOpenSrc".

На стороне визуализации (RunTime) построена логика, регулирующая каким образом открывать страницы, на основе следующих атрибутов базового элемента "Box":

  • pgOpen — признак "Страница открыта";
  • pgNoOpenProc — признак "Исполнять страницу даже если она не открыта";
  • pgOpenSrc — содержит адрес виджета, или страницы, открывшей текущую страницу; в случае вложенного контейнерного виджета здесь содержится адрес включаемой страницы; для открытия страницы из скрипта достаточно здесь указать адрес виджета-источника открытия, но для страниц типа "Связь" Вы должны отдавать предпочтение использованию функции uiCmd() пользовательского API, для управления страницами;
  • pgGrp — группа страниц, используется для связки контейнеров страниц со страницами, согласно общей группы. ПУСТАЯ и "main" группа предусматривает использование этой страницы как Корневую-основную страницу, т.е. такая будет заменять другие Корневые-главные страницы; группа "fl" предназначена для использования во внешних окнах, которые предусмотрены для многоразового одновременного открытия и которые не должны отслеживаться на дубликаты; остальные предусмотрено для включения в контейнеры-боксы или одноразового одновременного открытия, т.е. они принудительно проверяются на дубликаты, когда последнее открывается, а предыдущие закрываются.

Логика определения способа открытия страниц работает следующим образом:

  • если страница имеет группу "main" или совпадает с группой страницы в главном окне или нет страницы на главном окне, то открывать страницу в главном окне;
  • если страница имеет группу, которая совпадает с группой одного из контейнеров текущей страницы, то открыть в этом контейнере;
  • если источник открытия страницы совпадает с текущей страницей, то открыть в виде дополнительного окна над текущей страницей;
  • передать вызов на запрос открытия дополнительным окнам, с обработкой у каждого по первым трем пунктам;
  • если никто из родственных окон не открыл новую страницу то открыть её как родственное окно главного окна.