Модуль: | SelfSystem |
Имя: | Собственный протокол системы OpenSCADA |
Тип: | Протокол |
Источник: | prot_SelfSystem.so |
Версия: | 1.2 |
Автор: | Роман Савоченко |
Описание: | Предоставляет собственный протокол основанный на XML и интерфейсе управления OpenSCADA. |
Лицензия: | GPL |
Модуль транспортного протокола SelfSystem предназначен для отражения интерфейса управления системы OpenSCADA в сеть с целью предоставления возможности внешним системам взаимодействовать с системой OpenSCADA, а также для взаимодействия станций, построенных на основе OpenSCADA, между собой.
Первым опытом использования функций данного модуля стала поддержка возможности удалённого конфигурирования одной OpenSCADA станции из другой через сеть посредством модуля конфигурирования QTCfg.
Протокол построен по механизму запрос-ответ. Запросы и их структура сведены в таблице 1.
Таблица 1 Структура запроса.
Запросы |
REQ: "SES_OPEN {user} {password}\n" REZ OK: "REZ 0 {ses_id}\n" REZ ERR: "REZ 1 Auth error. User or password error.\n" Запрос на открытие сессии от имени пользователя user с паролем password. В случае удачи будет получен идентификатор сессии, иначе — код и сообщение об ошибке. |
REQ: "SES_CLOSE {ses_id}\n" REZ: "REZ 0\n" Закрытие сессии. Результат всегда удачен. |
REQ 1: "REQ {ses_id} {req_size}\n{control interface command}" REQ 2: "REQDIR {user} {password} {req_size}\n{control interface command}" REZ OK: "REZ 0 {rez_size}\n{control interface command result}" REZ ERR: "REZ 1 Auth error. Session no valid.\n" REZ ERR: "REZ 2 {control interface err}" Основные запросы: сеансовый и прямой. Реализуются путём отправки стандартной команды интерфейса управления OpenSCADA в поле control interface command. В результате будет получен ответ интерфейса управления control interface command result или одна из ошибок. |
REQ: "ERR REQUEST" REZ ERR: "REZ 3 Command format error.\n" Любой некорректный запрос. |
Протоколом поддерживается возможность упаковки трафика. Пакуются только данные интерфейса управления control interface command и control interface command result. Факт прихода упакованного запроса или ответа определяется отрицательным значением размера запроса req_size или ответа rez_size.
Для управления параметрами упаковки модулем предоставляется форма конфигурации (рис.1).
На данной форме можно:
Внутренняя структура формируется деревом XML запросов языка интерфейса управления OpenSCADA с резервированием дополнительных служебных атрибутов протокола в корневом теге:
Результатом запроса также является дерево XML языка интерфейса управления OpenSCADA.