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.9 GPL2 prot_SelfSystem.so en,uk,ru,de x86,x86_64,ARM Протокол Роман Савоченко Надає власний протокол 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: "{Помилкова послідовність}"
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 — примусово оновити аутентифікацію;
rqSeq — послідовність запиту;
conTm — примусовий таймаут підключення.

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