OpenSCADAWiki: Doc/VCA/part6/part3 ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 

6.3 Сеансы исполнения проектов

Целями данного этапа является:


На данном этапе был добавлен механизм исполнения проекта в сеансах модели данных модуля VCAEngine, а также визуализация сеанса проекта, режим "Исполнение", в модуле визуализации на библиотеке Qt Vision с элементами обновления данных и интерактивного взаимодействия с пользователем.

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

В соответствии с рис.4.11.1 и разделом 4.5 объекты сеанса проекта наследуются от абстрактного объекта Widget и используют соответствующие объекты проекта. Так, сеанс Session использует проект Project и формирует развёрнутое дерево на основе него. Страница проекта Page прямо используется страницей сеанса SessPage. Остальные объекты SessWdg разворачиваются в соответствии с иерархией элементов страницы (раздел 4.5).


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


Такая политика позволяет обходить страницы в соответствии с иерархией, а событиям в виджетах всплывать наверх за одну итерацию.


В сеансе реализована поддержка специальных свойств страниц:

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

На основе этих свойств реализованы следующие типы страниц:

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

Формирование кадров значений для процедур обсчёта виджетов конечной визуализации.

В разделе выше мы уже отмечали, что виджет сеанса содержит кадр значений процедуры обсчёта. Этот кадр инициируется и используется в случае наличия процедуры обсчёта. В момент инициализации создаётся перечень параметров процедуры и выполняется компиляция процедуры с этими параметрами в модуле, реализующем выбранный язык программирования, и закодированным полным именем виджета. Скомпилированная функция подключается к кадру значений процедуры обсчёта. Далее выполняется вычисление с периодичностью сеанса.


Вычисление и обработка виджета в целом выполняется в следующей последовательности:

Обработка ссылок на параметры источников данных OpenSCADA.

При исполнении виджета сеанса необходимо выполнение обработки ссылок. На данный момент подключение по ссылкам выполняется в момент вычисления, что является небыстрой операцией. Реализация обработки ссылок будет пересмотрена и оптимизирована в дальнейшем.


Заложена поддержка следующих типов ссылок:

Формирование окна исполнения проекта (Исполнение).

На стороне визуализации (модуль Vision) для визуализации процесса исполнения проекта реализован объект VisRun. При запуске он шлёт запрос на создание и инициализацию сессии. Далее выполняется запрос на перечень открытых страниц. Исходя из информации об открытых страницах VisRun и их связности, формируется результирующий интерфейс. На рис. 6.3 приведён пример классического SCADA интерфейса с объектами сигнализации, где главное окно содержит страницу внутри, которая замещается по нажатию на кнопки объектов сигнализации и листания.


Окно визуализации исполнения проекта. Режим “Run Time” (69 Кб)
Рис.6.3 Окно визуализации исполнения проекта. Режим "RunTime".

Визуализация кадров проекта в режиме "Исполнение" с периодическим обновлением содержимого.

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


По закрытию окна "Исполнения" производится закрытие сеанса проекта в модели данных. В дальнейшем будет реализована возможность подключения к ранее открытому сеансу и отключение от сеанса, без его закрытия.


Механизм запроса только изменённых данных основан на абсолютном счётчике исполнения сеанса. При внесении реальных изменений в атрибуты виджетов выполняется запоминание значения этого счётчика, что и позволяет идентифицировать изменённые атрибуты. Такой подход позволяет повысить производительность и уменьшить нагрузку на трафик в случае доступа к модели через сеть.

Реализация передачи и обработки событий.

Визуализатор сеанса ("RunTime"), в виду своего непосредственного контакта с пользователем, собирает различные события. Часть событий обрабатывается образами базовых виджетов (Text, Box, Document и т.д.), в результате чего могут формироваться другие события. Другая часть прямо передаётся в модель данных, где они и обрабатываются.


В модель данных события передаются сразу после получения, где они собираются в атрибуте виджета "event" до момента следующей итерации исполнения сеанса. Далее, в процессе обсчёта сеанса, события извлекаются из атрибута "event" и обрабатываются в процедуре виджета или в соответствии со сценарием в атрибуте "evProc". Необработанные событие поднимаются к вышестоящему виджету модели.

Реализация механизма переключения/открытия/замещения/навигации по страницам проекта с учётом сценариев обработки.

Переключение, открытие, замещение и навигация по страницам реализовано на основе обработки событий по сценарию, в атрибуте активного виджета "evProc". Сценарий этого атрибута записывается в виде списка команд с синтаксисом: {event}:{srcWdg}:{com}:{prm}, детали в разделе 4.7 и разделе 4.4.


 
There is one file on this page.[Display files/form]
There is no comment on this page. [Display comments/form]