From OpenSCADAWiki
Jump to: navigation, search
This page is a translated version of the page Modules/SelfSystem and the translation is 100% complete.

Other languages:
English • ‎российский • ‎українська
Модуль Имя Версия Лицензия Источник Языки Платформы Тип Автор Описание
SelfSystem Собственный протокол OpenSCADA 1.4 GPL2 prot_SelfSystem.so en,uk,ru,de x86,x86_64,ARM Протокол Роман Савоченко Предоставляет cобственный протокол OpenSCADA основанный на XML и интерфейсе управления OpenSCADA.

Модуль предназначен для отражения интерфейса управления 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 Error authentication: wrong the user or password.\n"
Запрос на открытие сеанса от имени пользователя user с паролем password. В случае успеха будет получен идентификатор сеанса, иначе — код и сообщение об ошибке.

REQ: "SES_CLOSE {ses_id}\n"
REZ: "REZ 0\n"
Закрытие сеанса. Результат всегда успешен.

REQ 1: "REQ {ses_id} {req_size}\n{command of the control interface}"
REQ 2: "REQDIR {user} {password} {req_size}\n{command of the control interface}"
REZ OK: "REZ 0 {rez_size}\n{result of the command of the control interface}"
REZ ERR: "REZ 1 Error authentication: session not valid.\n"
REZ ERR: "REZ 2 {error of the control interface}"
Основные запросы: сеансовый и прямой. Реализуются путём отправки стандартной команды интерфейса управления OpenSCADA в поле command of the control interface. В результате будет получен ответ интерфейса управления result of the command of the control interface или одна из ошибок.

REQ: "ERR REQUEST"
REZ ERR: "REZ 3 Error the command format.\n"
Любой некорректный запрос.

Протоколом поддерживается возможность упаковки трафика. Пакуются только данные интерфейса управления command of the control interface и result of the command of the control interface. Факт прихода упакованного запроса или ответа определяется отрицательным значением размера запроса req_size или ответа rez_size. Определить параметры упаковки можно на странице конфигурации модуля (рис.1).

Рис.1. Главная вкладка страницы конфигурации параметров модуля.

На этой вкладке можно:

  • Ознакомиться с активными сеансами аутентификации.
  • Указать время жизни сеанса, в минутах.
  • Указать предел подключений одного пользователя от одного хоста.
  • Указать уровень компрессии протокола в диапазоне от 0 до 9 (0-отключение компрессии, -1-оптимальный по производительности и качеству уровень компрессии).
  • Указать нижнюю границу компрессии — порог использования компрессии. Выключает компрессию мелких запросов.

2 Внутренняя структура исходящего протокола

Внутренняя структура формируется деревом XML запросов языка интерфейса управления OpenSCADA с резервированием дополнительных служебных атрибутов протокола в корневом теге:

rqDir — признак отправки сообщения минуя процедуру открытия сеанса (0-открывать сеанс, 1-отсылать сразу);
rqUser — пользователь;
rqPass — пароль;
rqAuthForce — принудительно обновить аутентификацию;
conTm — принудительный таймаут подключения.

Результатом запроса также является XML дерево языка интерфейса управления OpenSCADA.