Предоставляет собственный протокол основанный на XML и интерфейсе управления OpenSCADA.
Лицензия:
GPL
Введение
Модуль транспортного протокола SelfSystem предназначен для отражения интерфейса управления системы OpenSCADA в сеть с целью предоставления возможности внешним системам взаимодействовать с системой OpenSCADA, а также для взаимодействия станций, построенных на основе OpenSCADA, между собой.
Первым опытом использования функций данного модуля стала поддержка возможности удалённого конфигурирования одной OpenSCADA станции из другой через сеть посредством модуля конфигурирования QTCfg.
1. Синтаксис протокола
Протокол построен по механизму запрос-ответ. Запросы и их структура сведены в таблице 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).
Рис.1. Форма конфигурации параметров модуля.
На данной форме можно:
Изучить активные сеансы аутентификации.
Указать время жизни сессии в минутах.
Указать предел подключений одного пользователя от одного хоста.
Указать уровень компрессии протокола в диапазоне от 0 до 9 (0-отключение компрессии, -1-оптимальный по производительности и качеству уровень компрессии).
Указать нижнюю границу компрессии — порог использования компрессии. Выключает компрессию мелких запросов.
2. Внутренняя структура исходящего протокола
Внутренняя структура формируется деревом XML запросов языка интерфейса управления OpenSCADA с резервированием дополнительных служебных атрибутов протокола в корневом теге: