<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html class="client-nojs" dir="ltr" lang="en">
<head>
<meta charset="UTF-8" />
<title>Модулі/Власний Системний Протокол - OpenSCADAWiki</title>
<meta content="MediaWiki 1.26.4" name="generator" />
<link href="https://www.gnu.org/copyleft/fdl.html" rel="copyright" />
<link href="../../en/files/doc.css" rel="stylesheet" /></head>
<body><div class="floatright"><a href="../index.html"><img alt="OpenSCADA" src="../../en/files/index.png" /></a></div><div id="mw_header">
			<div class="mw-indicators">
</div>
			<h1 id="firstHeading" lang="uk">Модулі/Власний Системний Протокол</h1>
		</div><div class="mw-content-ltr" dir="ltr" id="mw-content-text" lang="uk"><div class="mw-pt-translate-header noprint" dir="ltr" lang="en">This page is a <span class="plainlinks"><a class="external text" href="http://oscada.org/wiki/index.php?title=Special:Translate&amp;group=page-Modules%2FSelfSystem&amp;action=page&amp;filter=&amp;language=uk" rel="nofollow noreferrer noopener" target="_blank">translated version</a></span> of the page <a class="external" href="http://oscada.org/wiki/Modules/SelfSystem" title="Modules/SelfSystem">Modules/SelfSystem</a> and the translation is 100% complete.</div><hr /><div class="mw-pt-languages" dir="ltr" lang="en"><div class="mw-pt-languages-list autonym"><a class="mw-pt-languages-ui mw-pt-progress mw-pt-progress--complete" href="../../en/Modules/SelfSystem.html" title="Modules/SelfSystem (100% translated)">English</a>&nbsp;• ‎<a class="mw-pt-progress mw-pt-progress--med" href="../../ru/Modules/SelfSystem.html" title="Модули/Собственный Системный Протокол (54% translated)">mRussian</a>&nbsp;• ‎<span class="mw-pt-languages-selected mw-pt-progress mw-pt-progress--complete">Українська</span></div></div>
<table class="wikitable">

<tr>
<th> Модуль </th>
<th> Ім'я </th>
<th> Версія </th>
<th> Ліцензія </th>
<th> Джерело </th>
<th> Мови </th>
<th> Платформи </th>
<th> Тип </th>
<th> Автор </th>
<th> Опис
</th></tr>

<tr>
<td> <a href="../Modules/SelfSystem.html" title="Special:MyLanguage/Modules/SelfSystem">SelfSystem</a> </td>
<td> Власний протокол OpenSCADA
</td>
<td> 2.0 </td>
<td> GPL2 </td>
<td> prot_SelfSystem.so </td>
<td> en,uk,ru,de </td>
<td> x86,x86_64,ARM
</td>
<td> Протокол </td>
<td> Роман Савоченко </td>
<td> Надає власний протокол OpenSCADA заснований на XML та інтерфейсі керування OpenSCADA.
</td></tr></table>
<p>Модуль призначено для віддзеркалення інтерфейсу управління OpenSCADA у мережу, з метою надання можливості зовнішнім системам взаємодіяти із OpenSCADA, а також для взаємодії між собою станцій, побудованих на основі OpenSCADA.
</p><p>Першим досвідом використання функцій цього модуля стала підтримка можливості віддаленої конфігурації однієї OpenSCADA станції з іншою, через мережу та посередництвом модуля конфігурації <a href="../Modules/QTCfg.html" title="Special:MyLanguage/Modules/QTCfg">QTCfg</a>.
</p>
<div class="toc" id="toc"><div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#.D0.A1.D0.B8.D0.BD.D1.82.D0.B0.D0.BA.D1.81.D0.B8.D1.81_.D0.BF.D1.80.D0.BE.D1.82.D0.BE.D0.BA.D0.BE.D0.BB.D1.83"><span class="tocnumber">1</span> <span class="toctext">Синтаксис протоколу</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#.D0.92.D0.BD.D1.83.D1.82.D1.80.D1.96.D1.88.D0.BD.D1.8F_.D1.81.D1.82.D1.80.D1.83.D0.BA.D1.82.D1.83.D1.80.D0.B0_.D0.B2.D0.B8.D1.85.D1.96.D0.B4.D0.BD.D0.BE.D0.B3.D0.BE_.D0.BF.D1.80.D0.BE.D1.82.D0.BE.D0.BA.D0.BE.D0.BB.D1.83"><span class="tocnumber">2</span> <span class="toctext">Внутрішня структура вихідного протоколу</span></a></li>
</ul>
</div>

<h2><span class="mw-headline" id=".D0.A1.D0.B8.D0.BD.D1.82.D0.B0.D0.BA.D1.81.D0.B8.D1.81_.D0.BF.D1.80.D0.BE.D1.82.D0.BE.D0.BA.D0.BE.D0.BB.D1.83"><span class="mw-headline-number">1</span> Синтаксис протоколу</span></h2>
<p>Протокол побудовано за методом "Запит-Відповідь". Запити та їх структура наведені у наступній Таблиці.
</p>
<table class="wikitable">
<caption> Структура запиту.
</caption>
<tr>
<th> Запити
</th></tr>
<tr>
<td>
<p><b>REQ:</b> "SES_OPEN {user} {password}\n"<br />
<b>REZ OK:</b> "REZ 0 {ses_id}\n"<br />
<b>REZ ERR:</b> "REZ 1 Error authentication: wrong user or password.\n"<br />
Запит на відкриття сеансу від ім'я користувача <i>user</i> з паролем <i>password</i>. У випадку успіху буде отримано ідентифікатор сесії, інакше — код та повідомлення про помилку. 
</p>
</td></tr>
<tr>
<td>
<p><b>REQ:</b> "SES_CLOSE {ses_id}\n"<br />
<b>REZ:</b> "REZ 0\n"<br />
Закриття сеансу. Результат завжди вдалий. 
</p>
</td></tr>
<tr>
<td>
<p><b>REQ:</b> "REQ {ses_id} {req_size}\n{command of the control interface}"<br />
<b>REQ:</b> "REQDIR {user} {password} {req_size}\n{command of the control interface}"<br />
<b>REZ OK:</b> "REZ 0 {rez_size}\n{result of the command of the control interface}"<br />
<b>REZ ERR:</b> "REZ 1 Error authentication: session is not valid.\n"<br />
<b>REZ ERR:</b> "REZ 2 {error of the control interface}"<br />
Основні запити — сеансовий та прямий. Реалізуються шляхом відправлення стандартної команди <a href="../API.html#CntrNode" title="Special:MyLanguage/Documents/API">Інтерфейсу Керування OpenSCADA</a> у полі <i>command of the control interface</i>. У результаті буде отримано відповідь Інтерфейсу Управління <i>result of the command of the control interface</i> або одна з помилок.
</p>
</td></tr>
<tr>
<td>
<p><b>REQ:</b> "{Помилкова послідовність}"<br />
<b>REZ ERR:</b> "REZ 3 Error the command format.\n"<br />
Будь який некоректний запит.
</p>
</td></tr></table>
<p>Протоколом підтримується можливість стиснення трафіку. Стискаються лише дані Інтерфейсу Управління <i>command of the control interface</i> та <i>result of the command of the control interface</i>. Факт надходження стиснутого запиту або відповіді визначається негативним значенням розміру запиту <i>req_size</i> або відповіді <i>rez_size</i>. Визначити параметри стиснення можна на сторінці конфігурації модуля (рис.1). Відповідь вхідної частини протоколу примусово стискається із рівнем -1 (тобто оптимально) за стиснутих запитів.
</p><p><a class="image" href="http://oscada.org/wiki/File:At.png"><img alt="At.png" height="22" src="../../en/files/At.png" width="22" /></a> Усі ці параметри може бути налаштовано індивідуально для транспорту, оскільки модуль першим підтримує конфігурацію зовнішніх джерел у додаткових параметрах транспортів.
</p>
<div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:796px;"><a class="image" href="http://oscada.org/wiki/File:SelfSystem_compr_uk.png"><img class="thumbimage" height="491" src="../files/SelfSystem_compr_uk.png" width="794" /></a>  <div class="thumbcaption">Рис.1. Головна вкладка сторінки конфігурації параметрів модуля.</div></div></div></div>
<p>На цій вкладці можна:
</p>
<ul><li> Ознайомитися з активними сеансами аутентифікації.</li>
<li> Вказати час життя сеансу, у хвилинах.</li>
<li> Вказати межу підключень одного користувача від одного хосту.</li>
<li> Вказати рівень і нижню межу стиснення. Де діапазон рівня стиснення від 0 до 9 (0-відімкнення компресії, -1-оптимальний за продуктивністю та якістю рівень компресії) і нижня межа є порогом використання стиснення та її вимкнення за малих запитів.</li></ul>
<h2><span class="mw-headline" id=".D0.92.D0.BD.D1.83.D1.82.D1.80.D1.96.D1.88.D0.BD.D1.8F_.D1.81.D1.82.D1.80.D1.83.D0.BA.D1.82.D1.83.D1.80.D0.B0_.D0.B2.D0.B8.D1.85.D1.96.D0.B4.D0.BD.D0.BE.D0.B3.D0.BE_.D0.BF.D1.80.D0.BE.D1.82.D0.BE.D0.BA.D0.BE.D0.BB.D1.83"><span class="mw-headline-number">2</span> Внутрішня структура вихідного протоколу</span></h2>
<p>Внутрішня структура формується деревом XML запитів мови <a class="external" href="http://oscada.org/wiki/Documents/API#CntrNode" title="Documents/API">інтерфейсу управління OpenSCADA</a> з резервуванням додаткових службових атрибутів протоколу у кореневому тегу:
</p>
<dl><dd><i>rqDir</i> — ознака надсилання повідомлення оминаючи процедуру відкриття сеансу (0-відкривати сеанс, 1-надсилати одразу);</dd>
<dd><i>rqUser</i> — користувач;</dd>
<dd><i>rqPass</i> — пароль;</dd>
<dd><i>rqAuthForce</i> — примусово оновити аутентифікацію;</dd>
<dd><i>conTm</i> — примусовий таймаут підключення, у мілісекундах.</dd></dl>
<p>Результатом запиту також є XML дерево мови інтерфейсу управління OpenSCADA.
</p>





</div><table style="border-top: dotted 2px #999999; margin-top: 20pt; color: gray;" width="100%"><tr><td style="text-align: left;" width="40%"><a href="http://oscada.org/wiki/Modules/SelfSystem/uk">Modules/SelfSystem/uk</a> - <a href="http://oscada.org/en/main/about-the-project/licenses/">GFDL</a></td><td style="text-align: center;">April 2025</td><td style="text-align: right;" width="40%">OpenSCADA 1+r3018</td></tr></table></body>
</html>