From OpenSCADAWiki
< Modules
Revision as of 17:21, 2 November 2024 by FuzzyBot (Talk | contribs) (Updating to match new version of source page)

Jump to: navigation, search
Other languages:
English • ‎mRussian • ‎Українська
Модуль Ім'я Версія Ліцензія Джерело Мови Платформи Тип Автор Опис
SelfSystem Власний протокол OpenSCADA 2.0 GPL2 prot_SelfSystem.so en,uk,ru,de x86,x86_64,ARM Протокол Роман Савоченко Надає власний протокол OpenSCADA заснований на XML та інтерфейсі керування OpenSCADA.

Модуль призначено для віддзеркалення інтерфейсу управління OpenSCADA у мережу, з метою надання можливості зовнішнім системам взаємодіяти із OpenSCADA, а також для взаємодії між собою станцій, побудованих на основі OpenSCADA.

Першим досвідом використання функцій цього модуля стала підтримка можливості віддаленої конфігурації однієї OpenSCADA станції з іншою, через мережу та посередництвом модуля конфігурації QTCfg.

1 Синтаксис протоколу

Протокол побудовано за методом "Запит-Відповідь". Запити та їх структура наведені у наступній Таблиці.

Структура запиту.
Запити

REQ: "SES_OPEN {user} {password}\n"
REZ OK: "REZ 0 {ses_id}\n"
REZ ERR: "REZ 1 Error authentication: wrong user or password.\n"
Запит на відкриття сеансу від ім'я користувача user з паролем password. У випадку успіху буде отримано ідентифікатор сесії, інакше — код та повідомлення про помилку.

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

REQ: "REQ {ses_id} {req_size}\n{command of the control interface}"
REQ: "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 is 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: "{Помилкова послідовність}"
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 (тобто оптимально) за стиснутих запитів.

At.png Усі ці параметри може бути налаштовано індивідуально для транспорту, оскільки модуль першим підтримує конфігурацію зовнішніх джерел у додаткових параметрах транспортів.

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

На цій вкладці можна:

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

2 Internal structure of the output protocol

The internal structure is formed by the XML tree of the requests of the language OpenSCADA control interface with the reservation of the additional service attributes of the protocol in the root tag:

rqDir — sign of the message sending through passing the procedure of the session opening (0-open session, 1-send immediately);
rqUser — user;
rqPass — password;
rqAuthForce — force authentication update;
conTm — force connection timeout, in milliseconds.

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