Модуль: | SelfSystem |
Имя: | Собстенный протокол системы OpenSCADA |
Тип: | Протокол |
Источник: | prot_SelfSystem.so |
Версия: | 0.9.3 |
Автор: | Роман Савоченко |
Описание: | Собственый протокол системы 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.