Сервисные интерфейсы это интерфейсы доступа к системе OpenSCADA посредством интерфейса управления OpenSCADA из внешних систем. Данный механизм положен в основу всех механизмов обмена внутри OpenSCADA, реализованных посредством слабых связей и стандартного протокола обмена OpenSCADA.
Для доступа к архивным данным системы OpenSCADA из элементов СВУ, например из визуализаторов для построения трендов и других диаграм, необходим гибкий и оптимизированный интерфейс, в виду большого объёма и широты возможных режимов работы подсистемы архивирования значений. В основе интерфейса управления OpenSCADA лежит язык XML, на котором передаются команды и получаются ответы. Локально, работа с XML сводится к работе с деревом объектов (тегов) XML, исключая стадию преобразования в символьный поток и парсинг.
Для запроса данных архива, в подсистеме архивирования, объекта архива значения, и объекте атрибута параметра, подсистемы сбора данных, предусмотрим команды <info path="{a_p_addr}/%2fserv%2fval"/> и <get path="{a_p_addr}/%2fserv%2fval"/> для запроса информации об архиве и значений архива, соответственно. Атрибуты данных команд, предусматривающие различные механизмы запроса, представим в таблице 4.13.1.
Таблица 4.13.1. Атрибуты команд запроса информации об архиве и архивных данных
С целью предоставления унифицированного, группового и сравнительно быстрого доступа к значениям атрибутов визуальных элементов предусмотрена сервисная функция визуального элемента "/serv/attr" и команды получения/установки значений атрибутов: <get path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/> и <set path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/>. Атрибуты данных команд, предусматривающие различные механизмы запроса, представим в таблице 4.13.2.
Таблица 4.13.2. Атрибуты команд получения/установки атрибутов визуальных элементов
Id | Имя | Значение |
Команда запроса визуальных атрибутов виджета: <get path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/> | ||
tm | Время/счётчик изменений | Установка времени/счётчика изменений для запроса только изменившихся атрибутов. |
<el id="{attr}" pos="{a_id}>{val}</el> | Формирование дочерних элементов с результатами атрибутов | В дочернем элементе указываются: строковых идентификатор {attr} атрибута, индекс {a_id} атрибута и его значение {val}. |
Команда установки визуальных атрибутов виджета: <set path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/> | ||
<el id="{attr}">{val}</el> | Установка атрибутов | В дочерних элементах указывается идентификатор атрибута {attr} и его значение {val}. |
С целью унификации и оптимизации доступа к страницам предусмотрена сервисная функция сеанса "/serv/pg" и команды запроса перечня открытых страниц (<openlist path="/UI/VCAEngine/ses_{Session}/%2fserv%2fpg"/>); открытия страницы (<open path="/UI/VCAEngine/ses_{Session}/%2fserv%2fpg"/>); и закрытия страницы <close path="/UI/VCAEngine/ses_{Session}/%2fserv%2fpg"/>).
Результатом запроса перечня открытых страниц являются дочерние элементы <el>{OpPage}</el> содержащие полный путь открытой страницы. Кроме перечня открытых страниц запрос возвращает значение текущего счётчика вычисления сеанса в атрибуте <tm>. Если данный атрибут устанавливается при запросе, то для каждой открытой страницы возвращается список изменённых, с момента указанного значения счётчика, виджетов открытой страницы.
Для предоставления унифицированного механизма манипуляции сеансами, визуализаторам СВУ, в модуле движка СВУ (VCAEngin) предусмотрена сервисная функция "/serv/sess" и команды запроса перечня открытых сеансов, подключения/создания нового сеанса и отключения/удаления сеанса: <list path="/UI/VCAEngine/%2fserv%2fsess"/>, <connect path="/UI/VCAEngine/%2fserv%2fsess"/> и <disconnect path="/UI/VCAEngine/%2fserv%2fsess"/> соответственно. Атрибуты данных команд, предусматривающие различные механизмы запроса, представим в таблице 4.13.4.
Таблица 4.13.4. Атрибуты команд механизма манипуляции сеансами
Id | Имя | Значение |
Команда запроса перечня открытых сеансов для проекта: <list path="/UI/VCAEngine/%2fserv%2fsess"/> | ||
prj | Указание проекта | Указывает проект для которого возвращать перечень открытых сеансов. |
<el>{Session}</el> | Контроль перечня сеансов | В дочерних элементах указываются сеансы, открытые для запрошенного проекта. |
Команда подключения/открытия сеанса: <connect path="/UI/VCAEngine/%2fserv%2fsess"/> | ||
sess | Установка и контроль имени сеанса | Если атрибут определён, то производится подключение к существующему сеансу, иначе создание нового сеанса. В случае открытия нового сеанса в данный атрибут помещается его имя. |
prj | Установка имени проекта | Используется для открытия нового сеанса для указанного проекта и если атрибут {sess} не указан. |
Команда отключения/закрытия сеанса: <disconnect path="/UI/VCAEngine/%2fserv%2fsess"/> | ||
sess | Установка имени сеанса | Указывает имя сеанса от которого выполняется отключение или закрытие. Сеансы, не являющиеся фоновыми и к которым ни один из визуализаторов не подключен автоматически закрываются. |