Модуль: | SelfSystem |
Ім'я: | Власний протокол системи OpenSCADA |
Тип: | Протокол |
Джерело: | prot_SelfSystem.so |
Версія: | 1.2 |
Автор: | Роман Савоченко |
Опис: | Надає власний протокол заснований на XML та інтерфейсі керування 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? EN RU з резервуванням додаткових службових атрибутів протоколу у кореневому тегу:
Результатом запиту також є дерево XML мови інтерфейсу управління OpenSCADA.