<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://oscada.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=FuzzyBot</id>
		<title>OpenSCADAWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://oscada.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=FuzzyBot"/>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/Special:Contributions/FuzzyBot"/>
		<updated>2026-06-02T01:56:15Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.4</generator>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Modules/SSL/uk&amp;diff=94095</id>
		<title>Modules/SSL/uk</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Modules/SSL/uk&amp;diff=94095"/>
				<updated>2026-05-25T05:54:48Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Модуль !! Ім'я !! Версія !! Ліцензія !! Джерело !! Мови !! Платформи !! Тип !! Автор&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Modules/SSL|SSL]] || SSL&lt;br /&gt;
| 5.2 || GPL2 || tr_SSL.so || en,uk,ru,de,pt || x86,x86_64,ARM&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| Транспорт || Роман Савоченко&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; | Опис&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | Надає транспорт, заснований на безпечному шарі сокетів. Використано [http://www.openssl.org OpenSSL] та підтримуються SSL-TLS залежно від версії бібліотеки.&lt;br /&gt;
* '''Спонсорування, зовнішнього файлу сертифікатів на 0.3 {{CtxDetails|ЛД|людино-днів, 1ЛД — 10 годин}}:''' Вінницька Птахофабрика&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Модуль надає до програми підтримку транспортів, заснованих на Шарі Безпечних Сокетів (SSL). У основі модуля лежить бібліотека [http://www.openssl.org OpenSSL]. Підтримуються вхідні та вихідні транспортні протоколи SSL-TLS, загальний перелік яких залежить від їх доступності у бібліотеці OpenSSL та обирається найбільш актуальний і безпечний.&lt;br /&gt;
&lt;br /&gt;
Додати нові вхідні та вихідні безпечні сокети можна за посередництвом конфігурації [[Special:MyLanguage/Documents/Program_manual#Transports|транспортної підсистеми]] у будь якому конфігураторі OpenSCADA.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
На нових SSL-версіях вкладка &amp;quot;Транспорти&amp;quot; модуля доповнена інформацією щодо загальних-контекстних шифрів окремо для вхідної-серверної частини і вихідної-клієнтської, дивіться рисунок 1.&lt;br /&gt;
&lt;br /&gt;
[[File:SSL_tr_uk.png|center|frame|Рис.1. Вкладка &amp;quot;Транспорти&amp;quot; із SSL шифрами.]]&lt;br /&gt;
&lt;br /&gt;
== {{Anch|InTr|Вхідні транспорти}} ==&lt;br /&gt;
Сконфігурований та запущений вхідний транспорт відкриває серверний SSL-сокет для очікування підключень клієнтів, крім ініціативного підключення. SSL-сокет є багато-потоковим, тобто при підключенні клієнту створюється клієнтське SSL-з'єднання та новий потік, у якому здійснюється обслуговування клієнту. Серверний SSL-сокет на цей час переходить до очікування запитів від нового клієнту. Таким чином досягається паралельне обслуговування клієнтів.&lt;br /&gt;
&lt;br /&gt;
Кожний вхідний транспорт пов'язується з одним або декількома з доступних транспортних протоколів, якому передаються вхідні повідомлення. Разом з транспортним протоколом підтримується механізм об'єднання шматків розрізнених при передачі запитів.&lt;br /&gt;
&lt;br /&gt;
Прочитати про механізм пасивного збору та ініціативні підключення ви можете у відповідній частині документу &amp;quot;[[Special:MyLanguage/Documents/DAQ#PassiveAndInitiative|Збір даних в OpenSCADA]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:SSL_in_uk.png|center|frame|Рис.2. Загальні діалоги конфігурації вхідного SSL-транспорту.]]&lt;br /&gt;
&lt;br /&gt;
За допомогою основного діалогу можна встановити:&lt;br /&gt;
* Стан транспорту, а саме: статус, &amp;quot;Підключення&amp;quot;, ім'я сховища (яке містить конфігурацію), перелік з інформацією про поточні підключення і підтримувані шифри.&lt;br /&gt;
* Ідентифікатор, ім'я та опис транспорту.&lt;br /&gt;
* Адреса транспорту у форматі &amp;quot;'''{addr}[:{port}[,{port2}[,{portN}]][:{mode}[:{IDmess}]]]'''&amp;quot; де:&lt;br /&gt;
** ''addr'' — адреса для відкриття SSL, має бути однією з адрес хосту. Порожня або &amp;quot;*&amp;quot; адреса відкриває SSL на всіх інтерфейсах. Допускаються як символьне, так й IPv4 &amp;quot;'''127.0.0.1'''&amp;quot; або IPv6 &amp;quot;'''[::1]'''&amp;quot; представлення адреси.&lt;br /&gt;
** ''port'', ''port2'', ''portN'' — мережеві порти на яких послідовно відкривається SSL (при зайнятості перших), можливе вказання символьного ім'я порту відповідно до ''/etc/services''.&lt;br /&gt;
** ''mode'' – режим оперування:&lt;br /&gt;
*** '''0'''(типовий) — звичайне підключення.&lt;br /&gt;
*** '''2''' — ініціативне підключення. Вмикає режим ініціативи підключення цього вхідного транспорту до віддаленого хосту (адреса замість локального) та перехід у режим очікування запитів від цього хосту. Значення &amp;quot;Keep alive час очікування&amp;quot; використовується як таймаут перепідключення даного транспорту за відсутності активності, з метою відновлення можливо втраченого підключення.&lt;br /&gt;
** ''IDmess'' — ідентифікуюче повідомлення ініціативного підключення — режим 2.&lt;br /&gt;
* Обрання транспортних протоколів.&lt;br /&gt;
* Стан &amp;quot;Підключення&amp;quot;, у який переводити транспорт при завантажені.&lt;br /&gt;
&lt;br /&gt;
За допомогою додаткового діалогу можна встановити:&lt;br /&gt;
* Пріоритет задач транспорту.&lt;br /&gt;
* Розмір системного вхідного буферу сокетів в кілобайтах. Встановити в 0 для зняття користувацького розміру. Актуальний розмір можете бачити у статусі.&lt;br /&gt;
* Максимальний розмір сегмента (MSS) в байтах для обмеження розміру пакетів що відсилаються (сегментів TCP) на поганих каналах зв'язку. Встановити в 0 для зняття користувацького обмеження розміру. Актуальний розмір можете бачити у статусі.&lt;br /&gt;
* PEM-файл сертифікатів та приватного ключа; або сертифікати, приватний ключ SSL безпосередньо та пароль приватного ключа SSL.&lt;br /&gt;
:[[File:at.png]] Приховано у підключеному стані.&lt;br /&gt;
:[[File:at.png]] Відстежується у 60 секунд щодо оновлення, відтак перепідключення транспорту для актуалізації.&lt;br /&gt;
* [!INIT] Максимальна кількість клієнтів, Максимальна кількість клієнтів за хостами та Розмір вхідного буферу.&lt;br /&gt;
* [!INIT] Keep alive запитів. Закриття підключення після вказаної кількості запитів. Нульове значення для вимкнення — не закривається ніколи.&lt;br /&gt;
* Keep alive час очікування, секунд. Закриття підключення після відсутності запитів протягом вказаного часу. Нульове значення для вимкнення — не закривається ніколи.&lt;br /&gt;
:[[File:at.png]] Вимикати цю функцію не рекомендується оскільки властивість мережі TCP/IP не гарантує повідомлення серверу про відключення з'єднання, скажемо у випадку пропадання живлення на клієнті. У результаті чого можуть &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;назавжди&amp;lt;/span&amp;gt; залишатися відкриті клієнтські підключення, а за досягненням ліміту сервер припинить приймати нові!&lt;br /&gt;
* [INIT|ASSOC] Таймаути, спроби ініціативного підключення і асоційованих вихідних транспортів, порожнє для типового і поділене '||'. Формат таймаутів і спроб відповідає вихідному транспорту.&lt;br /&gt;
* Специфічні до протоколу користувацькі параметри.&lt;br /&gt;
* Скинути усі додаткові параметри до типових значень та очистити специфічні до протоколу користувацькі параметри.&lt;br /&gt;
&lt;br /&gt;
== Вихідні транспорти ==&lt;br /&gt;
Сконфігурований та запущений вихідний транспорт відкриває з'єднання з вказаним сервером. При розриві з'єднання вихідний транспорт зупиняється. Для відновлення з'єднання транспорт треба знову запустити, що всі протоколи роблять автоматично.&lt;br /&gt;
&lt;br /&gt;
Транспорт підтримує пряме визначення декількох адрес серверу та опрацювання всіх IP-адрес у які резолвиться символьна адреса, що дозволяє будувати [[Special:MyLanguage/Documents/DAQ#Redundancy|вертикальне резервування]] безпосередньо транспортом, який буде автоматично підключатися до першого доступного серверу.&lt;br /&gt;
&lt;br /&gt;
[[file:SSL_out_uk.png|center|frame|Рис.3. Загальні діалоги конфігурації вихідного SSL-транспорту.]]&lt;br /&gt;
&lt;br /&gt;
За допомогою основного діалогу можна встановити:&lt;br /&gt;
* Стан транспорту, а саме: статус, &amp;quot;Підключення&amp;quot; та ім'я сховища, яке містить конфігурацію, і підтримувані шифри.&lt;br /&gt;
* Ідентифікатор, ім'я та опис транспорту.&lt;br /&gt;
* Адреса транспорту у форматі &amp;quot;'''{addr}[,{addrN}]:{port}'''&amp;quot;, де:&lt;br /&gt;
** ''addr'' — адреса до якої здійснюється підключення. Допускається як символьне так й IPv4 &amp;quot;'''127.0.0.1'''&amp;quot; або IPv6 &amp;quot;'''[::1]'''&amp;quot; представлення адреси.&lt;br /&gt;
** ''port'' — мережевий порт до якого здійснюється підключення. Можливе вказання символьного ім'я порту відповідно до ''/etc/services''.&lt;br /&gt;
&lt;br /&gt;
За допомогою додаткового діалогу можна встановити:&lt;br /&gt;
* PEM-файл сертифікатів та приватного ключа; або сертифікати, приватний ключ SSL безпосередньо та пароль приватного ключа SSL.&lt;br /&gt;
:[[File:at.png]] Приховано у підключеному стані.&lt;br /&gt;
* Інтервали часу підключення у форматі &amp;quot;'''{conn}:{next}'''&amp;quot;, де:&lt;br /&gt;
** ''conn'' — максимальний час очікування відповіді з'єднання, у секундах;&lt;br /&gt;
** ''next'' — максимальний час очікування продовження відповіді, у секундах.&lt;br /&gt;
: Може бути пріоритетно визначено другим глобальним аргументом поля адреси, на кшталт &amp;quot;'''localhost:123||5:1'''&amp;quot;.&lt;br /&gt;
* Спроб запиту транспортом та протоколом, для повних запитів.&lt;br /&gt;
: Може бути пріоритетно визначено третім глобальним аргументом поля адреси, на кшталт &amp;quot;'''localhost:123||5:1||3'''&amp;quot;.&lt;br /&gt;
* Максимальний розмір сегмента (MSS) в байтах для обмеження розміру пакетів що відсилаються (сегментів TCP) на поганих каналах зв'язку. Встановити в 0 для зняття користувацького обмеження розміру. Актуальний розмір можете бачити у статусі.&lt;br /&gt;
* Специфічні до протоколу користувацькі параметри.&lt;br /&gt;
* Скинути усі додаткові параметри до типових значень та очистити специфічні до протоколу користувацькі параметри.&lt;br /&gt;
&lt;br /&gt;
== Сертифікати та ключі ==&lt;br /&gt;
Для повноцінного функціювання модуля необхідні сертифікати і приватні ключі. У випадку з вхідним SSL-транспортом (сервером) вони обов'язкові. У випадку з вихідним SSL-транспортом вони можуть і не встановлюватися, хоча їх використання бажане.&lt;br /&gt;
&lt;br /&gt;
Простішою конфігурацією сертифікату є само-підписаний сертифікат та приватний ключ. Нижче описано процедуру їх створення за допомогою утиліти '''openssl''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Генерація секретного ключа&lt;br /&gt;
openssl genrsa -out ./key.pem -des3 -rand /var/log/messages 2048&lt;br /&gt;
# Генерація само-підписаного сертифікату&lt;br /&gt;
openssl req -x509 -new -key ./key.pem -out ./selfcert.pem -days 365&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, the contents of the files &amp;quot;key.pem&amp;quot; and &amp;quot;selfcert.pem&amp;quot; is copied into the text field of the certificate and key. Password of the private key is installed in the appropriate field. Or you can place the private key and the certificate into single PEM-File and specify its in the corresponded configuration field.&lt;br /&gt;
&lt;br /&gt;
== Specific errors of the OpenSSL library ==&lt;br /&gt;
The OpenSSL library is coding errors in own way, which often is not obvious for problems understanding, so there we provide such errors with explanation:&lt;br /&gt;
* &amp;quot;BIO_do_accept: error:10000075:BIO routines:unable to bind socket&amp;quot; — this error from an input transport in case of busy the specified port.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Modules/SSL/ru&amp;diff=94096</id>
		<title>Modules/SSL/ru</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Modules/SSL/ru&amp;diff=94096"/>
				<updated>2026-05-25T05:54:48Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Модуль !! Имя !! Версия !! Лицензия !! Источник !! Языки !! Платформы !! Тип !! Автор&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Modules/SSL|SSL]] || SSL&lt;br /&gt;
| 5.2 || GPL2 || tr_SSL.so || en,uk,ru,de,pt || x86,x86_64,ARM&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| Transport || {{Author|Roman Savochenko|Maxim Lysenko (2009) — this page initial translation}} &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | Provides transport based on the secure sockets' layer. [http://www.openssl.org OpenSSL] is used and supported SSL-TLS depending on the library version.&lt;br /&gt;
* '''Sponsored by, for an external certificates file on 0.3 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' Vinnica Poultry Farm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The module provides to the program support for the Secure Sockets Layer (SSL) based transports. The module is based on the library [http://www.openssl.org OpenSSL]. Input and output SSL-TLS transport protocols are supported, the general list of which is dependent on their availability in the OpenSSL library and the most relevant and safe is selected.&lt;br /&gt;
&lt;br /&gt;
Добавить новые входные и выходные безопасные сокеты можно посредством конфигурации [[Special:MyLanguage/Documents/Program_manual#Transports|транспортной подсистемы]] в любом конфигураторе OpenSCADA.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
On new SSL-versions the &amp;quot;Transports&amp;quot; tab of the module is appended by information of the common-context ciphers for input-server and output-client parts differently, see Figure 1.&lt;br /&gt;
&lt;br /&gt;
[[File:SSL_tr.png|center|frame|Fig.1. The &amp;quot;Transports&amp;quot; tab with SSL ciphers.]]&lt;br /&gt;
&lt;br /&gt;
== {{Anch|InTr|Входные транспорты}} ==&lt;br /&gt;
Сконфигурированный и запущенный входной транспорт открывает серверный SSL-сокет для ожидания подключения клиентов. SSL-сокет являются много-поточными, т.е. при подключении клиента создаётся клиентское SSL-соединение и новый поток в котором производиться обслуживание клиента. Серверный SSL-сокет в этот момент переходит к ожиданию запросов от нового клиента. Таким образом достигается параллельное обслуживание клиентов.&lt;br /&gt;
&lt;br /&gt;
Each input transport is associated with one or several available transport protocols, to which input messages are transmitted. Together with the transport protocols, the mechanism of combining fragmented pieces when sending requests is supported.&lt;br /&gt;
&lt;br /&gt;
Read about the passive acquisition mechanism and initiative connections you can in the corresponding part of the &amp;quot;[[Special:MyLanguage/Documents/DAQ#PassiveAndInitiative|Data acquisition in OpenSCADA]]&amp;quot; document.&lt;br /&gt;
&lt;br /&gt;
[[File:SSL_in.png|center|frame|Fig.2. The generic configuration dialogues of the input SSL-transport.]]&lt;br /&gt;
&lt;br /&gt;
Using the main dialog you can set:&lt;br /&gt;
* State of the transport, that is: status, &amp;quot;Connect&amp;quot;, name of the storage (containing the configuration), a list with information about the active connections and supported ciphers.&lt;br /&gt;
* Identifier, name and description of the transport.&lt;br /&gt;
* Address of the transport in the format &amp;quot;'''{addr}[:{port}[,{port2}[,{portN}]][:{mode}[:{IDmess}]]]'''&amp;quot;, where:&lt;br /&gt;
** ''addr'' — address to open SSL, it must be one of the addresses of the host. Empty or &amp;quot;*&amp;quot; address opens SSL for all interfaces. There may be as the symbolic representation as well as IPv4 &amp;quot;'''127.0.0.1'''&amp;quot; or IPv6 &amp;quot;'''[::1]'''&amp;quot;.&lt;br /&gt;
** ''port'', ''port2'', ''portN'' — network ports on which SSL is sequential opened (at busy the first ones), indication of the character name of the port, according to ''/etc/services'' is available.&lt;br /&gt;
** ''mode'' – mode of operation:&lt;br /&gt;
*** '''0'''(default) — ordinal connection;&lt;br /&gt;
*** '''2''' — initiative connection. Enables the mode of connecting this input transport to remote host (address instead of local) and switching to the listening state of this host. The &amp;quot;Keep alive timeout&amp;quot; value is used as the timeout of the re-connection of this transport in the absence of activity in order to restore the possibly lost connection.&lt;br /&gt;
** ''IDmess'' — identification message of the initiative connection — the mode 2.&lt;br /&gt;
* Selecting of the transport protocols.&lt;br /&gt;
* State &amp;quot;Connect&amp;quot;, in which the transport must be switched at start up.&lt;br /&gt;
&lt;br /&gt;
Using the additional dialog you can set:&lt;br /&gt;
* Priority of the transport tasks.&lt;br /&gt;
* System input buffer size in kilobytes of the socket. Set to 0 for disabling the user size. Actual size you can see in the status.&lt;br /&gt;
* Maximum segment size (MSS) in bytes, for limit the transmitted packages size (segments TCP) on bad link channels. Set to 0 for disabling the user limit for size. Actual size you can see in the status.&lt;br /&gt;
* PEM-file of the certificates and private key; or the certificates, private SSL key directly and password of the private SSL key.&lt;br /&gt;
:[[File:at.png]] Hidden in the connected state.&lt;br /&gt;
:[[File:at.png]] Is traced in 60 seconds for updating, then the transport reconnect for actualisation.&lt;br /&gt;
* [!INIT] Maximum number of clients, Maximum number of clients per host and Size of the input buffer.&lt;br /&gt;
* [!INIT] Keep alive requests. Closing the connection after the specified requests. Zero value to disable - not close ever.&lt;br /&gt;
* Keep alive timeout, seconds. Closing the connection after no requests at the specified timeout. Zero value to disable - not close ever.&lt;br /&gt;
:[[File:at.png]] We do not recommend disable the function by the TCP/IP network's properties does not guarantee notice the server about the connection disable, for example after power supply lost on the client. As result the opened client connections will left &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;forever&amp;lt;/span&amp;gt; and after their number achieve to the limit, server will drop new connections!&lt;br /&gt;
* [INIT|ASSOC] Timeouts, tries of the initiative connection and the associated output transports, empty for default and separated by '||'. Format of the timeouts and tries is corresponded to ones of the output transport.&lt;br /&gt;
* Protocols' specific custom parameters.&lt;br /&gt;
* Reset all the additional parameters to default values and cleanup the protocols' specific custom parameters.&lt;br /&gt;
&lt;br /&gt;
== Выходные транспорты ==&lt;br /&gt;
Сконфигурированный и запущенный выходной транспорт открывает соединение с указанным сервером. При разрыве соединения выходной транспорт останавливается. Для возобновления соединения транспорт нужно снова запустить, что все протоколы делают автоматически.&lt;br /&gt;
&lt;br /&gt;
The transport supports of direct definition of multiple server addresses and processing of all IP addresses in which the symbolic address is resolved, which allows you to build [[Special:MyLanguage/Documents/DAQ#Redundancy|vertical redundancy]] directly by the transport that will be automatically connected to the first available server.&lt;br /&gt;
&lt;br /&gt;
[[file:SSL_out.png|center|frame|Fig.3. The generic configuration dialogues of the output SSL-transport.]]&lt;br /&gt;
&lt;br /&gt;
Using the main dialog you can set:&lt;br /&gt;
* State of the transport, that is: status, &amp;quot;Connect&amp;quot;, name of the storage, containing the configuration, and supported ciphers.&lt;br /&gt;
* Identifier, name and description of the transport.&lt;br /&gt;
* Address of the transport in the format &amp;quot;'''{addr}[,{addrN}]:{port}'''&amp;quot;, where:&lt;br /&gt;
** ''addr'' — address with which the connection is made. There may be as the symbolic representation as well as IPv4 &amp;quot;'''127.0.0.1'''&amp;quot; or IPv6 &amp;quot;'''[::1]'''&amp;quot;.&lt;br /&gt;
** ''port'' — network port with which the connection is made. Indication of the character name of the port according to ''/etc/services'' is available.&lt;br /&gt;
&lt;br /&gt;
Using the additional dialog you can set:&lt;br /&gt;
* PEM-file of the certificates and private key; or the certificates, private SSL key directly and password of the private SSL key.&lt;br /&gt;
:[[File:at.png]] Hidden in the connected state.&lt;br /&gt;
* Connection timings in the format &amp;quot;'''{conn}:{next}'''&amp;quot;, where:&lt;br /&gt;
** ''conn'' — maximum time of waiting the connection, in seconds;&lt;br /&gt;
** ''next'' — maximum time of waiting for continue the response, in seconds.&lt;br /&gt;
: Can be prioritatile specified into the address field as the second global argument, as such &amp;quot;'''localhost:123||5:1'''&amp;quot;.&lt;br /&gt;
* Attempts of the requesting both for this transport and protocol, for full requests.&lt;br /&gt;
: Can be prioritatile specified into the address field as the third global argument, as such &amp;quot;'''localhost:123||5:1||3'''&amp;quot;.&lt;br /&gt;
* Maximum segment size (MSS) in bytes, for limit the transmitted packages size (segments TCP) on bad link channels. Set to 0 for disabling the user limit for size. Actual size you can see in the status.&lt;br /&gt;
* Protocols' specific custom parameters.&lt;br /&gt;
* Reset all the additional parameters to default values and cleanup the protocols' specific custom parameters.&lt;br /&gt;
&lt;br /&gt;
== Certificates and keys ==&lt;br /&gt;
For the full function of the module, you need certificates and private keys. In the case of input SSL-transport (server), they are mandatory. In the case of the output SSL-transport, they may not be installed, although their using is desirable.&lt;br /&gt;
&lt;br /&gt;
The simplest configuration of the certificate is self-subscription certificate and private key. The following describes how to create them using the tool '''openssl''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Generation the secret key&lt;br /&gt;
openssl genrsa -out ./key.pem -des3 -rand /var/log/messages 2048&lt;br /&gt;
# Generation of self-subscription certificate&lt;br /&gt;
openssl req -x509 -new -key ./key.pem -out ./selfcert.pem -days 365&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, the contents of the files &amp;quot;key.pem&amp;quot; and &amp;quot;selfcert.pem&amp;quot; is copied into the text field of the certificate and key. Password of the private key is installed in the appropriate field. Or you can place the private key and the certificate into single PEM-File and specify its in the corresponded configuration field.&lt;br /&gt;
&lt;br /&gt;
== Specific errors of the OpenSSL library ==&lt;br /&gt;
The OpenSSL library is coding errors in own way, which often is not obvious for problems understanding, so there we provide such errors with explanation:&lt;br /&gt;
* &amp;quot;BIO_do_accept: error:10000075:BIO routines:unable to bind socket&amp;quot; — this error from an input transport in case of busy the specified port.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Modules/SSL/en&amp;diff=94094</id>
		<title>Modules/SSL/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Modules/SSL/en&amp;diff=94094"/>
				<updated>2026-05-25T05:54:47Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module !! Name !! Version !! License !! Source !! Languages !! Platforms !! Type !! Author&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Modules/SSL|SSL]] || SSL&lt;br /&gt;
| 5.2 || GPL2 || tr_SSL.so || en,uk,ru,de,pt || x86,x86_64,ARM&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| Transport || {{Author|Roman Savochenko|Maxim Lysenko (2009) — this page initial translation}} &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | Provides transport based on the secure sockets' layer. [http://www.openssl.org OpenSSL] is used and supported SSL-TLS depending on the library version.&lt;br /&gt;
* '''Sponsored by, for an external certificates file on 0.3 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' Vinnica Poultry Farm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The module provides to the program support for the Secure Sockets Layer (SSL) based transports. The module is based on the library [http://www.openssl.org OpenSSL]. Input and output SSL-TLS transport protocols are supported, the general list of which is dependent on their availability in the OpenSSL library and the most relevant and safe is selected.&lt;br /&gt;
&lt;br /&gt;
You can add new input and output safe sockets through the configuration of [[Special:MyLanguage/Documents/Program_manual#Transports|the transport subsystem]] in any OpenSCADA configurator.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
On new SSL-versions the &amp;quot;Transports&amp;quot; tab of the module is appended by information of the common-context ciphers for input-server and output-client parts differently, see Figure 1.&lt;br /&gt;
&lt;br /&gt;
[[File:SSL_tr.png|center|frame|Fig.1. The &amp;quot;Transports&amp;quot; tab with SSL ciphers.]]&lt;br /&gt;
&lt;br /&gt;
== {{Anch|InTr|Input transports}} ==&lt;br /&gt;
Configured and running input transport opens server SSL-socket for the expectation of connection of the clients, besides the initiative connections. SSL-socket is multi-stream, i.e. when the client connects, the client socket and the new thread are created in which the client is served. Server socket in this moment switches to the waiting for the request from the new client. Thus the parallel service of the clients is achieved.&lt;br /&gt;
&lt;br /&gt;
Each input transport is associated with one or several available transport protocols, to which input messages are transmitted. Together with the transport protocols, the mechanism of combining fragmented pieces when sending requests is supported.&lt;br /&gt;
&lt;br /&gt;
Read about the passive acquisition mechanism and initiative connections you can in the corresponding part of the &amp;quot;[[Special:MyLanguage/Documents/DAQ#PassiveAndInitiative|Data acquisition in OpenSCADA]]&amp;quot; document.&lt;br /&gt;
&lt;br /&gt;
[[File:SSL_in.png|center|frame|Fig.2. The generic configuration dialogues of the input SSL-transport.]]&lt;br /&gt;
&lt;br /&gt;
Using the main dialog you can set:&lt;br /&gt;
* State of the transport, that is: status, &amp;quot;Connect&amp;quot;, name of the storage (containing the configuration), a list with information about the active connections and supported ciphers.&lt;br /&gt;
* Identifier, name and description of the transport.&lt;br /&gt;
* Address of the transport in the format &amp;quot;'''{addr}[:{port}[,{port2}[,{portN}]][:{mode}[:{IDmess}]]]'''&amp;quot;, where:&lt;br /&gt;
** ''addr'' — address to open SSL, it must be one of the addresses of the host. Empty or &amp;quot;*&amp;quot; address opens SSL for all interfaces. There may be as the symbolic representation as well as IPv4 &amp;quot;'''127.0.0.1'''&amp;quot; or IPv6 &amp;quot;'''[::1]'''&amp;quot;.&lt;br /&gt;
** ''port'', ''port2'', ''portN'' — network ports on which SSL is sequential opened (at busy the first ones), indication of the character name of the port, according to ''/etc/services'' is available.&lt;br /&gt;
** ''mode'' – mode of operation:&lt;br /&gt;
*** '''0'''(default) — ordinal connection;&lt;br /&gt;
*** '''2''' — initiative connection. Enables the mode of connecting this input transport to remote host (address instead of local) and switching to the listening state of this host. The &amp;quot;Keep alive timeout&amp;quot; value is used as the timeout of the re-connection of this transport in the absence of activity in order to restore the possibly lost connection.&lt;br /&gt;
** ''IDmess'' — identification message of the initiative connection — the mode 2.&lt;br /&gt;
* Selecting of the transport protocols.&lt;br /&gt;
* State &amp;quot;Connect&amp;quot;, in which the transport must be switched at start up.&lt;br /&gt;
&lt;br /&gt;
Using the additional dialog you can set:&lt;br /&gt;
* Priority of the transport tasks.&lt;br /&gt;
* System input buffer size in kilobytes of the socket. Set to 0 for disabling the user size. Actual size you can see in the status.&lt;br /&gt;
* Maximum segment size (MSS) in bytes, for limit the transmitted packages size (segments TCP) on bad link channels. Set to 0 for disabling the user limit for size. Actual size you can see in the status.&lt;br /&gt;
* PEM-file of the certificates and private key; or the certificates, private SSL key directly and password of the private SSL key.&lt;br /&gt;
:[[File:at.png]] Hidden in the connected state.&lt;br /&gt;
:[[File:at.png]] Is traced in 60 seconds for updating, then the transport reconnect for actualisation.&lt;br /&gt;
* [!INIT] Maximum number of clients, Maximum number of clients per host and Size of the input buffer.&lt;br /&gt;
* [!INIT] Keep alive requests. Closing the connection after the specified requests. Zero value to disable - not close ever.&lt;br /&gt;
* Keep alive timeout, seconds. Closing the connection after no requests at the specified timeout. Zero value to disable - not close ever.&lt;br /&gt;
:[[File:at.png]] We do not recommend disable the function by the TCP/IP network's properties does not guarantee notice the server about the connection disable, for example after power supply lost on the client. As result the opened client connections will left &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;forever&amp;lt;/span&amp;gt; and after their number achieve to the limit, server will drop new connections!&lt;br /&gt;
* [INIT|ASSOC] Timeouts, tries of the initiative connection and the associated output transports, empty for default and separated by '||'. Format of the timeouts and tries is corresponded to ones of the output transport.&lt;br /&gt;
* Protocols' specific custom parameters.&lt;br /&gt;
* Reset all the additional parameters to default values and cleanup the protocols' specific custom parameters.&lt;br /&gt;
&lt;br /&gt;
== Output transports ==&lt;br /&gt;
Configured and running output transport opens a connection to the specified server. In the case of destroying the connection, output transport is stopped. In order to resume the connection transport must be re-run, that all protocols do automatically.&lt;br /&gt;
&lt;br /&gt;
The transport supports of direct definition of multiple server addresses and processing of all IP addresses in which the symbolic address is resolved, which allows you to build [[Special:MyLanguage/Documents/DAQ#Redundancy|vertical redundancy]] directly by the transport that will be automatically connected to the first available server.&lt;br /&gt;
&lt;br /&gt;
[[file:SSL_out.png|center|frame|Fig.3. The generic configuration dialogues of the output SSL-transport.]]&lt;br /&gt;
&lt;br /&gt;
Using the main dialog you can set:&lt;br /&gt;
* State of the transport, that is: status, &amp;quot;Connect&amp;quot;, name of the storage, containing the configuration, and supported ciphers.&lt;br /&gt;
* Identifier, name and description of the transport.&lt;br /&gt;
* Address of the transport in the format &amp;quot;'''{addr}[,{addrN}]:{port}'''&amp;quot;, where:&lt;br /&gt;
** ''addr'' — address with which the connection is made. There may be as the symbolic representation as well as IPv4 &amp;quot;'''127.0.0.1'''&amp;quot; or IPv6 &amp;quot;'''[::1]'''&amp;quot;.&lt;br /&gt;
** ''port'' — network port with which the connection is made. Indication of the character name of the port according to ''/etc/services'' is available.&lt;br /&gt;
&lt;br /&gt;
Using the additional dialog you can set:&lt;br /&gt;
* PEM-file of the certificates and private key; or the certificates, private SSL key directly and password of the private SSL key.&lt;br /&gt;
:[[File:at.png]] Hidden in the connected state.&lt;br /&gt;
* Connection timings in the format &amp;quot;'''{conn}:{next}'''&amp;quot;, where:&lt;br /&gt;
** ''conn'' — maximum time of waiting the connection, in seconds;&lt;br /&gt;
** ''next'' — maximum time of waiting for continue the response, in seconds.&lt;br /&gt;
: Can be prioritatile specified into the address field as the second global argument, as such &amp;quot;'''localhost:123||5:1'''&amp;quot;.&lt;br /&gt;
* Attempts of the requesting both for this transport and protocol, for full requests.&lt;br /&gt;
: Can be prioritatile specified into the address field as the third global argument, as such &amp;quot;'''localhost:123||5:1||3'''&amp;quot;.&lt;br /&gt;
* Maximum segment size (MSS) in bytes, for limit the transmitted packages size (segments TCP) on bad link channels. Set to 0 for disabling the user limit for size. Actual size you can see in the status.&lt;br /&gt;
* Protocols' specific custom parameters.&lt;br /&gt;
* Reset all the additional parameters to default values and cleanup the protocols' specific custom parameters.&lt;br /&gt;
&lt;br /&gt;
== Certificates and keys ==&lt;br /&gt;
For the full function of the module, you need certificates and private keys. In the case of input SSL-transport (server), they are mandatory. In the case of the output SSL-transport, they may not be installed, although their using is desirable.&lt;br /&gt;
&lt;br /&gt;
The simplest configuration of the certificate is self-subscription certificate and private key. The following describes how to create them using the tool '''openssl''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Generation the secret key&lt;br /&gt;
openssl genrsa -out ./key.pem -des3 -rand /var/log/messages 2048&lt;br /&gt;
# Generation of self-subscription certificate&lt;br /&gt;
openssl req -x509 -new -key ./key.pem -out ./selfcert.pem -days 365&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, the contents of the files &amp;quot;key.pem&amp;quot; and &amp;quot;selfcert.pem&amp;quot; is copied into the text field of the certificate and key. Password of the private key is installed in the appropriate field. Or you can place the private key and the certificate into single PEM-File and specify its in the corresponded configuration field.&lt;br /&gt;
&lt;br /&gt;
== Specific errors of the OpenSSL library ==&lt;br /&gt;
The OpenSSL library is coding errors in own way, which often is not obvious for problems understanding, so there we provide such errors with explanation:&lt;br /&gt;
* &amp;quot;BIO_do_accept: error:10000075:BIO routines:unable to bind socket&amp;quot; — this error from an input transport in case of busy the specified port.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Modules/SSL/15/en&amp;diff=94092</id>
		<title>Translations:Modules/SSL/15/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Modules/SSL/15/en&amp;diff=94092"/>
				<updated>2026-05-25T05:54:43Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Next, the contents of the files &amp;quot;key.pem&amp;quot; and &amp;quot;selfcert.pem&amp;quot; is copied into the text field of the certificate and key. Password of the private key is installed in the appropriate field. Or you can place the private key and the certificate into single PEM-File and specify its in the corresponded configuration field.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Modules/SSL/23/en&amp;diff=94093</id>
		<title>Translations:Modules/SSL/23/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Modules/SSL/23/en&amp;diff=94093"/>
				<updated>2026-05-25T05:54:43Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Specific errors of the OpenSSL library ==&lt;br /&gt;
The OpenSSL library is coding errors in own way, which often is not obvious for problems understanding, so there we provide such errors with explanation:&lt;br /&gt;
* &amp;quot;BIO_do_accept: error:10000075:BIO routines:unable to bind socket&amp;quot; — this error from an input transport in case of busy the specified port.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Documents/Release_0.9/Update_9/en&amp;diff=94043</id>
		<title>Documents/Release 0.9/Update 9/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Documents/Release_0.9/Update_9/en&amp;diff=94043"/>
				<updated>2026-05-12T16:16:15Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages/&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;div style=&amp;quot;float:right; border:1px solid gray; width:300px; padding:2px; margin-left: 10pt; margin-bottom: 10pt; &amp;quot;&amp;gt;&lt;br /&gt;
* '''State:''' &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;testing and post-building ...&amp;lt;/span&amp;gt;&lt;br /&gt;
{{:Documents/How_to/Release/en}}&lt;br /&gt;
&amp;lt;/div&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This update of the [[Special:MyLanguage/Documents/Release_0.9|0.9 LTS release]] fixes about 70 bugs and appends MANY improvements, which you can read wholly in [http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=3066 the update ChangeLog].&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|[[Special:MyLanguage/Sub-projects/Automation_Linux_distributive|Automation Linux distributive of the project OpenSCADA]]}}&lt;br /&gt;
* adaptation of work the hosting server under constant DDoS in ~3 million unique IPs and with short time under power net by economy the batteries, and under OpenSCADA control;&lt;br /&gt;
* appending Debian 13 as the distributive base;&lt;br /&gt;
* moving back to the OpenSCADA server of building the Debian 9 base;&lt;br /&gt;
* moving of building the Debian 12,11,10 base to the Debian 13 environment with enabling back support SHA-1 here;&lt;br /&gt;
* switching the building conception to use '''sshfs''' in working remotely with the repositories;&lt;br /&gt;
* updating TDE to 14.1.4, 14.1.5 and next to 14.1.6;&lt;br /&gt;
* TDE &amp;gt; krusader-trinity &amp;gt; RAR: Loading the builtin TDEIO RAR library.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; TDEIO &amp;gt; media: Translation the FS options in the &amp;quot;propsdlg&amp;quot; plugin.&lt;br /&gt;
* TDE &amp;gt; tde-i18n-trinity &amp;gt; uk: Adding messages translation in patched packages to the Ukrainian part.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; KControl &amp;gt; Locale: Clearing the language settings to system ones.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity &amp;gt; TDELocale: Adding of obtaining country from environment.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity &amp;gt; TDEIO &amp;gt; SwitchLanguageDialog: Clearing all language setting.&lt;br /&gt;
* TDE &amp;gt; tdeutils-trinity &amp;gt; ARK: Adding &amp;quot;unrar-free&amp;quot; using.&lt;br /&gt;
* TDE &amp;gt; krusader-trinity &amp;gt; RAR: Adding &amp;quot;unrar-free&amp;quot; using.&lt;br /&gt;
* TDE &amp;gt; tdegraphics-trinity &amp;gt; kghostview: Represent PDF on Ghostscript 10.05.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity: KDesktop &amp;gt; Lock: Restoring the locking code to one in version 14.1.4 with extending for the lock dialog itself.&lt;br /&gt;
* TDE &amp;gt; tdepim-trinity &amp;gt; holiday_ua &amp;gt; HoliDays: Replacing by actual Holi Days and Memorial Days of Ukraine.&lt;br /&gt;
* TDE &amp;gt; kaffeine-trinity &amp;gt; xine-part: Adding translation the message &amp;quot;Impossible to obtain image!&amp;quot; to Ukrainian.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity: Preventing-oppressing double icons in the system tray from programs with equal window ID like to '''blueman''' and with an option of disabling that function, with fixing of using ''readBoolEntry()''.&lt;br /&gt;
* TDE &amp;gt; tqt3-trinity &amp;gt; Plugins &amp;gt; XIM: Calls ''XCloseIM()'' to prevent memory leaking.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity &amp;gt; TDEIO &amp;gt; KFileView: Processes file extensions with patterns at saving and doesn't reset the dialog size.&lt;br /&gt;
* TDE &amp;gt; kaffeine-trinity &amp;gt; xine-part: Allows to screenshot in any supported image-file format.&lt;br /&gt;
* TDE &amp;gt; tdesvn-trinity: Fixing of conflicts resolving in KDiff3, preventing of crashes at conflicts resolving, updating parent of changed item with all expandings.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; TDEIO &amp;gt; media: Restoring of using '''fuser'''.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; ksysguard: Removing the processes loading limit in 100%.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity &amp;gt; TDEIO &amp;gt; CopyJob: Don't rename directories and files overwrite for old, lesser and in different size.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; TDEIO &amp;gt; SMB: Prevents double ''result()'' signal generation through errors.&lt;br /&gt;
* TDE &amp;gt; tdepim-trinity &amp;gt; knote: Adding the find only local per selected note.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity: Complete disabling of processing for the unclassified devices due to it is very CPU intensive, especially on slow HW.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Main WWW-resources, documentation of the project and subprojects, and localisation}}&lt;br /&gt;
* appending the [[Special:MyLanguage/Libs/Main_graphical_elements|Main elements library of the user interface]] by description the new element-frame &amp;quot;Dynamic frame&amp;quot;;&lt;br /&gt;
* updating information of the subproject [[Special:MyLanguage/Sub-projects/Automatic_Builder_of_OpenSCADA|Automatic Builder of OpenSCADA]];&lt;br /&gt;
* adding Portuguese translation from Diego Eckhard for parts: SYS, DAQ.ModBus, Transport.{Sockets,SSL,Serial}, UI.{QTStarter,QTCfg,VCAEngine,Vision}.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|New and significantly updated parts}}&lt;br /&gt;
* OpenSCADA Core: 3:15:0 =&amp;gt; '''3:16:0'''&lt;br /&gt;
: ([[#Upd9InitCon|Implementing initiative connections — fixes and expandings of the conceptual changes of the previous updates]], [[#Upd9MessTrFix|Messages Translation — fixes of the conceptual changes of the previous updates]])&lt;br /&gt;
* OpenSCADA &amp;quot;DAQ&amp;quot; subsystem: 15 =&amp;gt; '''16'''&lt;br /&gt;
* OpenSCADA &amp;quot;Archives&amp;quot; subsystem: 14 =&amp;gt; '''15'''&lt;br /&gt;
* DAQ.Siemens: 4.5 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;4.8&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9SimStab|Common stabilization in the ISO_TCP connection]], [[#Upd9DirValAccess|Direct value getting and setting at the source-specific address]], [[#Upd9StoreDynVal|Storing values of the user's dynamic attributes]])&lt;br /&gt;
* DAQ.System: 3.3 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;3.5&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9SystemSMART|Reading the NVMe Log with moving on parsing by RE and reading string fields]])&lt;br /&gt;
* DAQ.LogicLev: 2.9 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.11&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9LogicLevRefl|Improving the parameter reflection mode]], [[#Upd9StoreDynVal|Storing values of the user's dynamic attributes]])&lt;br /&gt;
* DAQ.OPC_UA: 2.8 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.10&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9DirValAccess|Direct value getting and setting at the source-specific address]], [[#Upd9StoreDynVal|Storing values of the user's dynamic attributes]])&lt;br /&gt;
* DAQ.ModBus: 3.9 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;3.11&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9DirValAccess|Direct value getting and setting at the source-specific address]], [[#Upd9StoreDynVal|Storing values of the user's dynamic attributes]])&lt;br /&gt;
* DAQ.DAQGate: 2.14 =&amp;gt; '''2.15'''&lt;br /&gt;
* Protocol.HTTP: 3.9 =&amp;gt; '''3.11'''&lt;br /&gt;
* UI.WebCfgD: 2.8 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;3.0&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9WebCfgD|Syntax highlight in the textareas]])&lt;br /&gt;
* UI.VCAEngine: 7.17 =&amp;gt; '''7.19'''&lt;br /&gt;
* UI.WebVision: 6.13 =&amp;gt; '''6.16'''&lt;br /&gt;
* UI.QTStarter: 6.0 =&amp;gt; '''6.1'''&lt;br /&gt;
* UI.QTCfg: 6.1 =&amp;gt; '''6.2'''&lt;br /&gt;
* UI.WebCfgD: 3.0 =&amp;gt; '''3.1'''&lt;br /&gt;
* LibsDB.OscadaLibs:&lt;br /&gt;
:* JavaLikeCalc.flb_Json: &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;0.3&amp;lt;/b&amp;gt;&lt;br /&gt;
:* base:&lt;br /&gt;
::* UPS: 1.3 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.2&amp;lt;/b&amp;gt;&lt;br /&gt;
::: ([[#Upd9UPSDirDevs|Implementing devices directly, attributes definition in &amp;quot;Elements definition (defs)&amp;quot;]])&lt;br /&gt;
::* DiskSMART: 1.0 =&amp;gt; '''1.1'''&lt;br /&gt;
::: ([[#Upd9DSMARTInProc|Input processing procedure]])&lt;br /&gt;
::* initRemCntr: 1.1 =&amp;gt; '''1.2'''&lt;br /&gt;
:* DevLib.mbBase: 1.3 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;1.6&amp;lt;/b&amp;gt;&lt;br /&gt;
:: ([[#Upd9MbBaseInProcAtrUpd|Input processing procedure, additional types and flexible attributes update]])&lt;br /&gt;
:* LowDevLib:&lt;br /&gt;
::* IEC62056: 1.1 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.0&amp;lt;/b&amp;gt;&lt;br /&gt;
::: ([[#Upd9IEC62056Part21|Support 21 part and many improvements]])&lt;br /&gt;
::* S1BP: 1.0 =&amp;gt; '''1.1'''&lt;br /&gt;
* LibsDB.vcaBase.Main: 2.2 =&amp;gt; '''2.3'''&lt;br /&gt;
:* dynFrame: &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;1.2&amp;lt;/b&amp;gt;&lt;br /&gt;
:* storeHouse: 2.1 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.3&amp;lt;/b&amp;gt;&lt;br /&gt;
:: ([[#Upd9StoreHouseExt|Significant extending and fixing]])&lt;br /&gt;
:* TextLab: 1.2 =&amp;gt; '''1.3'''&lt;br /&gt;
:: ([[#Upd9LabExtSt|States extending]])&lt;br /&gt;
:* ImgLab: 1.2 =&amp;gt; '''1.3'''&lt;br /&gt;
:: ([[#Upd9LabExtSt|States extending]])&lt;br /&gt;
:* cntrPaspExt: 1.2 =&amp;gt; '''1.3'''&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|{{Anch|Upd9InitCon|CONCEPTUAL &amp;gt; [[Special:MyLanguage/Documents/DAQ#PassiveAndInitiative|Concentration the different OpenSCADA-hosts on the common server, both for IoT on OpenSCADA and other]] (fixes of the [[Special:MyLanguage/Documents/Release_0.9#Upd8InitCon|conceptual changes of the previous updates]]) }} }}&lt;br /&gt;
* LibsDB.vcaBase.wlb_Main.dynFrame: Advancing the frame implementation up to the possibility of items real placing, linking, generic control, saving and restoring.&lt;br /&gt;
* LibsDB.OscadaLibs:&lt;br /&gt;
** FIX:tmplib_base.initRemCntr: Fixing of saving the table of the remote OpenSCADA hosts after removing old ones.&lt;br /&gt;
*** Adding of direct freeing data of requests.&lt;br /&gt;
*** The key changed to force two symbols in HEX.&lt;br /&gt;
*** Allowed of updating the remote logical source objects for new sources.&lt;br /&gt;
*** The protection time of the execution increased to 60 seconds.&lt;br /&gt;
*** Checking and removing logical parameters with missing sources.&lt;br /&gt;
*** Setting the field &amp;quot;Allow the automatic removal of parameters and attributes&amp;quot; and &amp;quot;Synchronization time with the remote station, seconds&amp;quot; of the [[Special:MyLanguage/Modules/DAQGate|DAQGate module]].&lt;br /&gt;
** Security_user,Transport_in.{Sockets,SSL}::RemCntr: Appending detailed description of the objects target and using.&lt;br /&gt;
* data/{oscada_plc.xml,oscada_server.xml}: Simplifying the station name for short remote identifiers.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|{{Anch|Upd9MessTrFix|CONCEPTUAL &amp;gt; Messages Translation (fixes of the [[Special:MyLanguage/Documents/Release_0.9#MessTrFix|conceptual changes of the previous updates]]) }} }}&lt;br /&gt;
* LibsDB.vcaBase:&lt;br /&gt;
** FIX:wlb_Main.ElViewGraph: The attribute &amp;quot;Dimension (ed)&amp;quot; set to the type &amp;quot;String (translate)&amp;quot; to restore the transitive translation of the DAQ-Source messages at the links in the DYNAMIC-MULTILANGUAGE mode.&lt;br /&gt;
* FIX:DAQ.TDAQS,Archive.TArchives: Fixing dynamic translation of names of the redundant objects.&lt;br /&gt;
* FIX:SYS,DAQ.{.,JavaLikeCalc}: TFunction::IO: Fixing-finishing of the default value translation in the constructor and for the DAQ-Templates with its implementations.&lt;br /&gt;
* SYS:&lt;br /&gt;
** The Translation Manager is appended by an information into the last line about achieving an limit time.&lt;br /&gt;
** FIX:TMess: Adding of processing prestored I18N messages in the long ''TMess::translGet()'' variant, which is called from ''objFuncCall()'', instead the translation loss here.&lt;br /&gt;
* FIX:DB: Preventing the warnings &amp;quot;Some messages completely cleaned for the base ...&amp;quot; for items with no translation fields.&lt;br /&gt;
* FIX:DAQ: Fixing dynamic translation the select items from the default field in ''addLinksAttrs()''.&lt;br /&gt;
* FIX:UI.VCAEngine: The configuration value fixed in translation on the tab &amp;quot;Links&amp;quot; and processing the field translation for values with the prefix &amp;quot;val:&amp;quot; and switching to its.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|OpenSCADA libraries and projects}}&lt;br /&gt;
* LibsDB.OscadaLibs:&lt;br /&gt;
** Adding the new library &amp;quot;Json&amp;quot; of support JSON from Arkadii Kysil.&lt;br /&gt;
** FIX:{tmplib_base,tmplib_DevLib}.UPS: Fixing of writing to the writable attributes.&lt;br /&gt;
** tmplib_base:&lt;br /&gt;
*** digAlarm,anUnif,anUnifSt,codeState: The input processing procedure added by a parameter &amp;quot;args&amp;quot; as a link to arguments of the main procedure.&lt;br /&gt;
*** {{Anch|Upd9UPSDirDevs|UPS}}: Expanding by implementing devices directly in this template starting from Must EP2X. Appending of attributes transferring in parameters on the template base with their definition in the new attribute &amp;quot;Elements definition (defs)&amp;quot;. Adding the ''alarm()'' function for true control of borders with hysteresis.&lt;br /&gt;
*** FIX:manInUnif: Preventing of setting stored value to PLC at start, so overwriting actual one, also at the signal out the scale.&lt;br /&gt;
*** FIX:{{Anch|Upd9DSMARTInProc|DiskSMART}}: Adding the input processing procedure for processing specific fields and adding new derivative fields. The &amp;quot;Item definitions&amp;quot; field added a default list of specific interpretation the SMART fields. Improving some original messages.&lt;br /&gt;
*** anUnif: The alarm message of signal exceeding hardware border added by this wrong value.&lt;br /&gt;
** tmplib_DevLib:&lt;br /&gt;
*** mbBase,ergomera625: Improving the syntax highlight rules for types like to &amp;quot;u4&amp;quot;.&lt;br /&gt;
*** {{Anch|Upd9IEC62056Part21|IEC62056}}: Expanding by support part 21 (direct local data exchange) and improvements:&lt;br /&gt;
**** adding input procedure for processing read OBISes;&lt;br /&gt;
**** list of OBISes appeded by description and the syntax higflight;&lt;br /&gt;
**** adding an option of control bytes LE order of integers;&lt;br /&gt;
**** ID of the attribute of representing OBIS appended by &amp;quot;ClassId&amp;quot; and &amp;quot;a&amp;quot;;&lt;br /&gt;
**** &amp;quot;ClassId&amp;quot; of OBIS expanded up to two bytes;&lt;br /&gt;
**** trimming the visible strings up to first zero byte;&lt;br /&gt;
**** adding preset devices with known main OBISes;&lt;br /&gt;
**** address field expanded for support single digit like to SN;&lt;br /&gt;
**** the &amp;quot;tr&amp;quot; and &amp;quot;ctx&amp;quot; attributes moved from IO.&lt;br /&gt;
*** {{Anch|Upd9MbBaseInProcAtrUpd|mbBase}}: Expanded by an input procedure for customizing without changing the template. Expanding in support by the types &amp;quot;Int8 (i8)&amp;quot; and &amp;quot;Double (d)&amp;quot;, also as by recreation attributes with changed type and removing attributes are missing in the items list. Allowing to specify address of the register in HEX and OCTAL. Adding by applying entries of the register syntax of the module [[Special:MyLanguage/Modules/ModBus|DAQ.ModBus]].&lt;br /&gt;
* LibsDB.vcaBase:&lt;br /&gt;
** wlb_Main: The library appended by the frame &amp;quot;Dynamic frame (dynFrame)&amp;quot; with documenting.&lt;br /&gt;
*** The library appended by an extra icon 'weath13n' for the widget &amp;quot;Weather (weather)&amp;quot;.&lt;br /&gt;
*** FIX:{{Anch|Upd9LabExtSt|TextLab,ImgLab}}: Expanding for processing conflict states &amp;quot;false &amp;amp;&amp;amp; false&amp;quot; and &amp;quot;true &amp;amp;&amp;amp; true&amp;quot; taking the parameters from item [2] and [3].&lt;br /&gt;
**** Adding alarms generation from the &amp;quot;Error (err)&amp;quot; attribute.&lt;br /&gt;
**** FIX: Renaming the states name &amp;quot;Enable&amp;quot; to &amp;quot;Enabled&amp;quot; and &amp;quot;Disable&amp;quot; to &amp;quot;Disabled&amp;quot;.&lt;br /&gt;
**** FIX: Unifying the alarms blinking with just changing work color to alarm one in the second cycle.&lt;br /&gt;
*** alarmsAct,alarmsSt: Adaptation to human-readable names in messages.&lt;br /&gt;
*** FIX:{{Anch|Upd9StoreHouseExt|storeHouse}}: Moving the Control Panel formation and updating to the table updating code.&lt;br /&gt;
**** FIX: Separating data preparing part from formation the visual data for early preparing the lists and with limiting time of processed items.&lt;br /&gt;
**** Appending to processing the event ws_TableEdit of checking validity row and column.&lt;br /&gt;
**** The retry cycles and updating rewrote for specifying time in &amp;quot;toCalcCycles&amp;quot; in seconds and updating after its elapsing.&lt;br /&gt;
**** FIX: Preventing of show second filter field in the item form after change the user.&lt;br /&gt;
**** FIX: Fixing the images overview at selecting in the file combobox.&lt;br /&gt;
**** Specifying the transaction mode in all ''SQLReq()'' calls.&lt;br /&gt;
**** The control panel appended by the selection fields.&lt;br /&gt;
**** Rewrote in preparing the column list for filters with using redefined names of the standard fields &amp;quot;NAME&amp;quot;, &amp;quot;DSCR&amp;quot;, and with true sorting.&lt;br /&gt;
**** In file sizes used new function ''SYS.cpct2str()''.&lt;br /&gt;
*** FIX:ImgLab: Taking the background color even empty from images list at its presence.&lt;br /&gt;
**** FIX: Setting width of the border to 2 when it is zero at the selection blinking, that is for active elements.&lt;br /&gt;
**** Format of the attribute &amp;quot;Images (imgs)&amp;quot; moved to the help, that is to the second line.&lt;br /&gt;
*** FIX:objProps: Appending of tracing the user changing, appending for support real properties.&lt;br /&gt;
*** ElCadr: Adding the attribute &amp;quot;Parameter: Force disable PID (prmNotPID)&amp;quot; for disabling PID show at presence SP.&lt;br /&gt;
*** cntrPaspExt: Hide attributes in EVAL. Generating for user action messages at changing the editable properties.&lt;br /&gt;
*** TextLab: Adapted to use the default background at its missing in &amp;quot;st_text&amp;quot;.&lt;br /&gt;
** wlb_doc:&lt;br /&gt;
*** FIX:docRepYear: Fixing of processing the last value in year for data from archives.&lt;br /&gt;
*** docUsersSet: Expanding by a possibility to specify-configure of used archivers.&lt;br /&gt;
* Model.AGLKS.Model.DAQ_BlockCalc.gen_cnt: Appending the description by the field &amp;quot;MessName: {Name}&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|API}}&lt;br /&gt;
''!!!!:Changes'':&lt;br /&gt;
* SYS.ResString: ''getVal()'' set to constant.&lt;br /&gt;
* Archives,DAQ.*: Enumeration items of the source modes added by the &amp;quot;SRC_&amp;quot; prefix and &amp;quot;ActiveAttr&amp;quot; renamed to &amp;quot;DAQAttrAct&amp;quot;; items of the combination modes added by the &amp;quot;CMB_&amp;quot; prefix and an item &amp;quot;FromArchiver&amp;quot;; items of the data mode added by the &amp;quot;DM_&amp;quot; prefix instead &amp;quot;DM&amp;quot;.&lt;br /&gt;
* DAQ.TFunction: Switching the method &amp;quot;mStor&amp;quot; to ResString.&lt;br /&gt;
''Appends'':&lt;br /&gt;
* SYS.CntrNode,Protocol.HTTP: Adding the service requests &amp;quot;select:/db/list&amp;quot; by an option &amp;quot;nostor&amp;quot; for the empty item.&lt;br /&gt;
* SYS,UI.VCAEngine: Appending the definition &amp;quot;starts_with&amp;quot; as link to the STL::String function &amp;quot;compare(0,strlen(str),str) == 0&amp;quot; to replace ''compare()'' and ''find()'' in this role.&lt;br /&gt;
* Archives,DAQ.DAQGate: The TMArchivator object appended by a reimplementation TMess::SRec with a container of storing double messages in one second.&lt;br /&gt;
* SYS: The file's User API functions appended by ''fileRotate()'' for files rotation mostly the logging type.&lt;br /&gt;
** TCntrNode: new function ''nodeMessSnthHgl()''.&lt;br /&gt;
** XMLNode: The function ''load()'' appended of parsing pure HTML with an option LD_HTML. The function ''save()'' appended by an option HoldEmptyAttr of holding empty attributes.&lt;br /&gt;
** XMLNodeObj: Added by the User API and API function ''childDel( AutoHD&amp;lt;XMLNodeObj&amp;gt; nd )''. The User API function ''setAttr()'' added by a synonym ''attrSet()''.&lt;br /&gt;
* DAQ:&lt;br /&gt;
** TController,TParamContr: Adding a function ''justCreated()'' of detection the just creation.&lt;br /&gt;
** TParamContr: Added by a virtual function ''loadVal()'' of reloading all or one stored values.&lt;br /&gt;
** TPrmTempl.Impl.''archAttrs()'': Appended by a timestamp argument for using common timestamp in archiving.&lt;br /&gt;
** {{Anch|Upd9DirValAccess|ModBus,OPC_UA,Siemens}}: The Controller Object added by a User API function ''value()'' of direct value getting and setting at the source-specific address and through the address registering for getting-setting in the generic pooling cycle of the source.&lt;br /&gt;
* Archives: The TVArchivator object is added by the functions ''combMode()'' and ''setCombMode()''.&lt;br /&gt;
* JavaLikeCalc: The User API functions to string appended by ''sep2path()''.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|SYS}}&lt;br /&gt;
* Building: &lt;br /&gt;
** configure.ac: Core library version risen to 3:16:0 and the program version risen to 0.9.9. The module version of the subsystem &amp;quot;DAQ&amp;quot; risen to 16 and the subsystem &amp;quot;Archives&amp;quot; risen to 15.&lt;br /&gt;
** Appended for building to Debian 13 and Ubuntu 26.04 LTS.&lt;br /&gt;
** .,DAQ.Siemens: Generic adaptation for building on Debian 13, adaptation for support PCRE2 since missing old PCRE libraries on Debian 13 with moving the variable &amp;quot;vSz&amp;quot; to a definition TRegExp_vSz for old libraries.&lt;br /&gt;
** DB.MySQL: Adaption to build with headers without definition the &amp;quot;my_bool&amp;quot; type on Ubuntu 26.04 LTS.&lt;br /&gt;
* XMLNode: The function ''load()'' appended of parsing pure HTML with: tags without closing, attributes without a value, attribute values without quoting, closing tags switching.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|DAQ}}&lt;br /&gt;
* Templates: Enabling the selectable fields in the &amp;quot;Template configuration&amp;quot; tab for constants.&lt;br /&gt;
* FIX:{ModBus,OPC_UA,Siemens}.LogicLev: Preventing of wrong writing to PLC at RO links, when the value changed in the procedure.&lt;br /&gt;
* LogicLev,ModBus,OPC_UA,Siemens: The User API functions ''attrAdd()'' and ''attrDel()'' of managing user attributes moved from LogicLev, ModBus, OPC_UA, Siemens to the core parameter object and for all dynamic parameters at ''dynElCntr()''. Adding of {{Anch|Upd9StoreDynVal|storing values}} of the user's dynamic attributes.&lt;br /&gt;
* FIX:{{Anch|Upd9SimStab|Siemens}}: Moving the SELF_ISO_TCP mode to the generic ''outAt()'' function. Debugging the connection errors for the modes SELF_ISO_TCP and ISO_TCP on the actual S7-1500 connection.&lt;br /&gt;
* System: Adding the data acquisition of the slow sources per some cycle by the new configuration field &amp;quot;In cycle call for slow sources&amp;quot;.&lt;br /&gt;
** {{Anch|Upd9SystemSMART|DA_SMART}}: Adding for support reading the NVMe Log with moving on parsing by RE and reading string fields, like to temperature.&lt;br /&gt;
** DA_PROC: Appended by obtaining the field &amp;quot;User loading (%)&amp;quot; and &amp;quot;System loading (%)&amp;quot; from the file &amp;quot;/proc/{PID}/stat&amp;quot; also with the value concatenation for group selection.&lt;br /&gt;
* FIX:JavaLikeCalc: Fixing permission to the Function node after moving under ACL.&lt;br /&gt;
* FIX:{{Anch|Upd9LogicLevRefl|LogicLev}}: Improving the parameter reflection mode by a possibility to connect later the missing at the start sources, also as unlinking-unlocking disabled sources.&lt;br /&gt;
* FIX:DAQGate: Fixing ''messSet()'' by taking parameter whole ID from the first line of the argument &amp;quot;prm&amp;quot; and with its normalization by the prefix &amp;quot;prm_&amp;quot; removing. Set for writing to remote stations without checking the value at equality, due to the previous value can be not actual at situative reading.&lt;br /&gt;
* ModBus: Unified in registering values at the ModBus-specific address in other variant of the function ''regVal()''.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Archives-History}}&lt;br /&gt;
* FIX:Value: Prevented of crashing at zero period in ''TVArchEl::getVals()''.&lt;br /&gt;
** Added by a configuration field &amp;quot;Data combining mode (CombMode)&amp;quot;, as in the archive object, for specifying the data combination in the archiver, and the field in archive added by an item &amp;quot;From Archiver&amp;quot; by default.&lt;br /&gt;
** The &amp;quot;Active DAQ Attribute (DEPRECATED)&amp;quot; item of the archive source renamed to &amp;quot;DAQ Attribute actively&amp;quot; and unmarked deprecated due to it is the single way of creation multiple archives to single source.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Transports}}&lt;br /&gt;
* FIX: The generic Control Interface requesting function ''cntrIfCmd()'' is prevented from any local-direct-custom authentication at reforwarding to intermediate OpenSCADA nodes, that is especially actual for remote connections of UI.Vision for different users.&lt;br /&gt;
* The traffic logging in the file appended by rotation the files.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|User Interface}}&lt;br /&gt;
* FIX:Vision,WebVision: Fixing of compensation debries of the real numbers in position and size for true aligning the internal content of widgets with different size, when the scale greater of 1. Preventing of crashing in the ''VCADiagram::TrendObj::loadTrendsData()'' function at zero in &amp;quot;wantPer&amp;quot;.&lt;br /&gt;
* QTCfg,Vision: The tab distance of the TextArea set dynamic and calculated from the font metric for standard eight symbols &amp;quot;00000000&amp;quot;.&lt;br /&gt;
* {{Anch|Upd9WebCfgD|WebCfgD}}: Implemented for syntax highlight in the textareas.&lt;br /&gt;
* FIX:WebVision: Restoring a function of user changing after previous preventing the connection messages flooding with connection to the same session from other host or other agent. Adding the user of last request for preventing from new sessions opening after changing the user from original.&lt;br /&gt;
* FIX:VCAEngine: Moving setting the flag Attr::VizerSpec for attributes with the prefix &amp;quot;vs_&amp;quot; to the attributes inheritance and only for session widgets. Unification the Attribute's self flags by separation to storing and operative ones.&lt;br /&gt;
* FIX:QTStarter.lib_qtgen: The syntax highlight algorithm in ''SnthHgl::rule()'' cleaned from spare containers and unified.&lt;br /&gt;
* FIX:Vision: Preventing of crashing in the ShapeFormEl event handler at not finished initialisation, that is the &amp;quot;addrWdg&amp;quot; variable is missing. Preventing of the user changing for reforwarding connections.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Documents/Release_0.9/Update_9/ru&amp;diff=94042</id>
		<title>Documents/Release 0.9/Update 9/ru</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Documents/Release_0.9/Update_9/ru&amp;diff=94042"/>
				<updated>2026-05-12T16:16:14Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages/&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;div style=&amp;quot;float:right; border:1px solid gray; width:300px; padding:2px; margin-left: 10pt; margin-bottom: 10pt; &amp;quot;&amp;gt;&lt;br /&gt;
* '''Состояние:''' &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;тестирование и после-сборки ...&amp;lt;/span&amp;gt;&lt;br /&gt;
{{:Documents/How_to/Release/ru}}&lt;br /&gt;
&amp;lt;/div&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This update of the [[Special:MyLanguage/Documents/Release_0.9|0.9 LTS release]] fixes about 70 bugs and appends MANY improvements, which you can read wholly in [http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=3066 the update ChangeLog].&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|[[Special:MyLanguage/Sub-projects/Automation_Linux_distributive|Automation Linux distributive of the project OpenSCADA]]}}&lt;br /&gt;
* adaptation of work the hosting server under constant DDoS in ~3 million unique IPs and with short time under power net by economy the batteries, and under OpenSCADA control;&lt;br /&gt;
* appending Debian 13 as the distributive base;&lt;br /&gt;
* moving back to the OpenSCADA server of building the Debian 9 base;&lt;br /&gt;
* moving of building the Debian 12,11,10 base to the Debian 13 environment with enabling back support SHA-1 here;&lt;br /&gt;
* switching the building conception to use '''sshfs''' in working remotely with the repositories;&lt;br /&gt;
* updating TDE to 14.1.4, 14.1.5 and next to 14.1.6;&lt;br /&gt;
* TDE &amp;gt; krusader-trinity &amp;gt; RAR: Loading the builtin TDEIO RAR library.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; TDEIO &amp;gt; media: Translation the FS options in the &amp;quot;propsdlg&amp;quot; plugin.&lt;br /&gt;
* TDE &amp;gt; tde-i18n-trinity &amp;gt; uk: Adding messages translation in patched packages to the Ukrainian part.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; KControl &amp;gt; Locale: Clearing the language settings to system ones.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity &amp;gt; TDELocale: Adding of obtaining country from environment.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity &amp;gt; TDEIO &amp;gt; SwitchLanguageDialog: Clearing all language setting.&lt;br /&gt;
* TDE &amp;gt; tdeutils-trinity &amp;gt; ARK: Adding &amp;quot;unrar-free&amp;quot; using.&lt;br /&gt;
* TDE &amp;gt; krusader-trinity &amp;gt; RAR: Adding &amp;quot;unrar-free&amp;quot; using.&lt;br /&gt;
* TDE &amp;gt; tdegraphics-trinity &amp;gt; kghostview: Represent PDF on Ghostscript 10.05.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity: KDesktop &amp;gt; Lock: Restoring the locking code to one in version 14.1.4 with extending for the lock dialog itself.&lt;br /&gt;
* TDE &amp;gt; tdepim-trinity &amp;gt; holiday_ua &amp;gt; HoliDays: Replacing by actual Holi Days and Memorial Days of Ukraine.&lt;br /&gt;
* TDE &amp;gt; kaffeine-trinity &amp;gt; xine-part: Adding translation the message &amp;quot;Impossible to obtain image!&amp;quot; to Ukrainian.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity: Preventing-oppressing double icons in the system tray from programs with equal window ID like to '''blueman''' and with an option of disabling that function, with fixing of using ''readBoolEntry()''.&lt;br /&gt;
* TDE &amp;gt; tqt3-trinity &amp;gt; Plugins &amp;gt; XIM: Calls ''XCloseIM()'' to prevent memory leaking.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity &amp;gt; TDEIO &amp;gt; KFileView: Processes file extensions with patterns at saving and doesn't reset the dialog size.&lt;br /&gt;
* TDE &amp;gt; kaffeine-trinity &amp;gt; xine-part: Allows to screenshot in any supported image-file format.&lt;br /&gt;
* TDE &amp;gt; tdesvn-trinity: Fixing of conflicts resolving in KDiff3, preventing of crashes at conflicts resolving, updating parent of changed item with all expandings.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; TDEIO &amp;gt; media: Restoring of using '''fuser'''.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; ksysguard: Removing the processes loading limit in 100%.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity &amp;gt; TDEIO &amp;gt; CopyJob: Don't rename directories and files overwrite for old, lesser and in different size.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; TDEIO &amp;gt; SMB: Prevents double ''result()'' signal generation through errors.&lt;br /&gt;
* TDE &amp;gt; tdepim-trinity &amp;gt; knote: Adding the find only local per selected note.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity: Complete disabling of processing for the unclassified devices due to it is very CPU intensive, especially on slow HW.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Main WWW-resources, documentation of the project and subprojects, and localisation}}&lt;br /&gt;
* appending the [[Special:MyLanguage/Libs/Main_graphical_elements|Main elements library of the user interface]] by description the new element-frame &amp;quot;Dynamic frame&amp;quot;;&lt;br /&gt;
* updating information of the subproject [[Special:MyLanguage/Sub-projects/Automatic_Builder_of_OpenSCADA|Automatic Builder of OpenSCADA]];&lt;br /&gt;
* adding Portuguese translation from Diego Eckhard for parts: SYS, DAQ.ModBus, Transport.{Sockets,SSL,Serial}, UI.{QTStarter,QTCfg,VCAEngine,Vision}.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|New and significantly updated parts}}&lt;br /&gt;
* OpenSCADA Core: 3:15:0 =&amp;gt; '''3:16:0'''&lt;br /&gt;
: ([[#Upd9InitCon|Implementing initiative connections — fixes and expandings of the conceptual changes of the previous updates]], [[#Upd9MessTrFix|Messages Translation — fixes of the conceptual changes of the previous updates]])&lt;br /&gt;
* OpenSCADA &amp;quot;DAQ&amp;quot; subsystem: 15 =&amp;gt; '''16'''&lt;br /&gt;
* OpenSCADA &amp;quot;Archives&amp;quot; subsystem: 14 =&amp;gt; '''15'''&lt;br /&gt;
* DAQ.Siemens: 4.5 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;4.8&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9SimStab|Common stabilization in the ISO_TCP connection]], [[#Upd9DirValAccess|Direct value getting and setting at the source-specific address]], [[#Upd9StoreDynVal|Storing values of the user's dynamic attributes]])&lt;br /&gt;
* DAQ.System: 3.3 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;3.5&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9SystemSMART|Reading the NVMe Log with moving on parsing by RE and reading string fields]])&lt;br /&gt;
* DAQ.LogicLev: 2.9 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.11&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9LogicLevRefl|Improving the parameter reflection mode]], [[#Upd9StoreDynVal|Storing values of the user's dynamic attributes]])&lt;br /&gt;
* DAQ.OPC_UA: 2.8 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.10&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9DirValAccess|Direct value getting and setting at the source-specific address]], [[#Upd9StoreDynVal|Storing values of the user's dynamic attributes]])&lt;br /&gt;
* DAQ.ModBus: 3.9 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;3.11&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9DirValAccess|Direct value getting and setting at the source-specific address]], [[#Upd9StoreDynVal|Storing values of the user's dynamic attributes]])&lt;br /&gt;
* DAQ.DAQGate: 2.14 =&amp;gt; '''2.15'''&lt;br /&gt;
* Protocol.HTTP: 3.9 =&amp;gt; '''3.11'''&lt;br /&gt;
* UI.WebCfgD: 2.8 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;3.0&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9WebCfgD|Syntax highlight in the textareas]])&lt;br /&gt;
* UI.VCAEngine: 7.17 =&amp;gt; '''7.19'''&lt;br /&gt;
* UI.WebVision: 6.13 =&amp;gt; '''6.16'''&lt;br /&gt;
* UI.QTStarter: 6.0 =&amp;gt; '''6.1'''&lt;br /&gt;
* UI.QTCfg: 6.1 =&amp;gt; '''6.2'''&lt;br /&gt;
* UI.WebCfgD: 3.0 =&amp;gt; '''3.1'''&lt;br /&gt;
* LibsDB.OscadaLibs:&lt;br /&gt;
:* JavaLikeCalc.flb_Json: &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;0.3&amp;lt;/b&amp;gt;&lt;br /&gt;
:* base:&lt;br /&gt;
::* UPS: 1.3 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.2&amp;lt;/b&amp;gt;&lt;br /&gt;
::: ([[#Upd9UPSDirDevs|Implementing devices directly, attributes definition in &amp;quot;Elements definition (defs)&amp;quot;]])&lt;br /&gt;
::* DiskSMART: 1.0 =&amp;gt; '''1.1'''&lt;br /&gt;
::: ([[#Upd9DSMARTInProc|Input processing procedure]])&lt;br /&gt;
::* initRemCntr: 1.1 =&amp;gt; '''1.2'''&lt;br /&gt;
:* DevLib.mbBase: 1.3 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;1.6&amp;lt;/b&amp;gt;&lt;br /&gt;
:: ([[#Upd9MbBaseInProcAtrUpd|Input processing procedure, additional types and flexible attributes update]])&lt;br /&gt;
:* LowDevLib:&lt;br /&gt;
::* IEC62056: 1.1 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.0&amp;lt;/b&amp;gt;&lt;br /&gt;
::: ([[#Upd9IEC62056Part21|Support 21 part and many improvements]])&lt;br /&gt;
::* S1BP: 1.0 =&amp;gt; '''1.1'''&lt;br /&gt;
* LibsDB.vcaBase.Main: 2.2 =&amp;gt; '''2.3'''&lt;br /&gt;
:* dynFrame: &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;1.2&amp;lt;/b&amp;gt;&lt;br /&gt;
:* storeHouse: 2.1 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.3&amp;lt;/b&amp;gt;&lt;br /&gt;
:: ([[#Upd9StoreHouseExt|Significant extending and fixing]])&lt;br /&gt;
:* TextLab: 1.2 =&amp;gt; '''1.3'''&lt;br /&gt;
:: ([[#Upd9LabExtSt|States extending]])&lt;br /&gt;
:* ImgLab: 1.2 =&amp;gt; '''1.3'''&lt;br /&gt;
:: ([[#Upd9LabExtSt|States extending]])&lt;br /&gt;
:* cntrPaspExt: 1.2 =&amp;gt; '''1.3'''&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|{{Anch|Upd9InitCon|CONCEPTUAL &amp;gt; [[Special:MyLanguage/Documents/DAQ#PassiveAndInitiative|Concentration the different OpenSCADA-hosts on the common server, both for IoT on OpenSCADA and other]] (fixes of the [[Special:MyLanguage/Documents/Release_0.9#Upd8InitCon|conceptual changes of the previous updates]]) }} }}&lt;br /&gt;
* LibsDB.vcaBase.wlb_Main.dynFrame: Advancing the frame implementation up to the possibility of items real placing, linking, generic control, saving and restoring.&lt;br /&gt;
* LibsDB.OscadaLibs:&lt;br /&gt;
** FIX:tmplib_base.initRemCntr: Fixing of saving the table of the remote OpenSCADA hosts after removing old ones.&lt;br /&gt;
*** Adding of direct freeing data of requests.&lt;br /&gt;
*** The key changed to force two symbols in HEX.&lt;br /&gt;
*** Allowed of updating the remote logical source objects for new sources.&lt;br /&gt;
*** The protection time of the execution increased to 60 seconds.&lt;br /&gt;
*** Checking and removing logical parameters with missing sources.&lt;br /&gt;
*** Setting the field &amp;quot;Allow the automatic removal of parameters and attributes&amp;quot; and &amp;quot;Synchronization time with the remote station, seconds&amp;quot; of the [[Special:MyLanguage/Modules/DAQGate|DAQGate module]].&lt;br /&gt;
** Security_user,Transport_in.{Sockets,SSL}::RemCntr: Appending detailed description of the objects target and using.&lt;br /&gt;
* data/{oscada_plc.xml,oscada_server.xml}: Simplifying the station name for short remote identifiers.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|{{Anch|Upd9MessTrFix|CONCEPTUAL &amp;gt; Messages Translation (fixes of the [[Special:MyLanguage/Documents/Release_0.9#MessTrFix|conceptual changes of the previous updates]]) }} }}&lt;br /&gt;
* LibsDB.vcaBase:&lt;br /&gt;
** FIX:wlb_Main.ElViewGraph: The attribute &amp;quot;Dimension (ed)&amp;quot; set to the type &amp;quot;String (translate)&amp;quot; to restore the transitive translation of the DAQ-Source messages at the links in the DYNAMIC-MULTILANGUAGE mode.&lt;br /&gt;
* FIX:DAQ.TDAQS,Archive.TArchives: Fixing dynamic translation of names of the redundant objects.&lt;br /&gt;
* FIX:SYS,DAQ.{.,JavaLikeCalc}: TFunction::IO: Fixing-finishing of the default value translation in the constructor and for the DAQ-Templates with its implementations.&lt;br /&gt;
* SYS:&lt;br /&gt;
** The Translation Manager is appended by an information into the last line about achieving an limit time.&lt;br /&gt;
** FIX:TMess: Adding of processing prestored I18N messages in the long ''TMess::translGet()'' variant, which is called from ''objFuncCall()'', instead the translation loss here.&lt;br /&gt;
* FIX:DB: Preventing the warnings &amp;quot;Some messages completely cleaned for the base ...&amp;quot; for items with no translation fields.&lt;br /&gt;
* FIX:DAQ: Fixing dynamic translation the select items from the default field in ''addLinksAttrs()''.&lt;br /&gt;
* FIX:UI.VCAEngine: The configuration value fixed in translation on the tab &amp;quot;Links&amp;quot; and processing the field translation for values with the prefix &amp;quot;val:&amp;quot; and switching to its.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|OpenSCADA libraries and projects}}&lt;br /&gt;
* LibsDB.OscadaLibs:&lt;br /&gt;
** Adding the new library &amp;quot;Json&amp;quot; of support JSON from Arkadii Kysil.&lt;br /&gt;
** FIX:{tmplib_base,tmplib_DevLib}.UPS: Fixing of writing to the writable attributes.&lt;br /&gt;
** tmplib_base:&lt;br /&gt;
*** digAlarm,anUnif,anUnifSt,codeState: The input processing procedure added by a parameter &amp;quot;args&amp;quot; as a link to arguments of the main procedure.&lt;br /&gt;
*** {{Anch|Upd9UPSDirDevs|UPS}}: Expanding by implementing devices directly in this template starting from Must EP2X. Appending of attributes transferring in parameters on the template base with their definition in the new attribute &amp;quot;Elements definition (defs)&amp;quot;. Adding the ''alarm()'' function for true control of borders with hysteresis.&lt;br /&gt;
*** FIX:manInUnif: Preventing of setting stored value to PLC at start, so overwriting actual one, also at the signal out the scale.&lt;br /&gt;
*** FIX:{{Anch|Upd9DSMARTInProc|DiskSMART}}: Adding the input processing procedure for processing specific fields and adding new derivative fields. The &amp;quot;Item definitions&amp;quot; field added a default list of specific interpretation the SMART fields. Improving some original messages.&lt;br /&gt;
*** anUnif: The alarm message of signal exceeding hardware border added by this wrong value.&lt;br /&gt;
** tmplib_DevLib:&lt;br /&gt;
*** mbBase,ergomera625: Improving the syntax highlight rules for types like to &amp;quot;u4&amp;quot;.&lt;br /&gt;
*** {{Anch|Upd9IEC62056Part21|IEC62056}}: Expanding by support part 21 (direct local data exchange) and improvements:&lt;br /&gt;
**** adding input procedure for processing read OBISes;&lt;br /&gt;
**** list of OBISes appeded by description and the syntax higflight;&lt;br /&gt;
**** adding an option of control bytes LE order of integers;&lt;br /&gt;
**** ID of the attribute of representing OBIS appended by &amp;quot;ClassId&amp;quot; and &amp;quot;a&amp;quot;;&lt;br /&gt;
**** &amp;quot;ClassId&amp;quot; of OBIS expanded up to two bytes;&lt;br /&gt;
**** trimming the visible strings up to first zero byte;&lt;br /&gt;
**** adding preset devices with known main OBISes;&lt;br /&gt;
**** address field expanded for support single digit like to SN;&lt;br /&gt;
**** the &amp;quot;tr&amp;quot; and &amp;quot;ctx&amp;quot; attributes moved from IO.&lt;br /&gt;
*** {{Anch|Upd9MbBaseInProcAtrUpd|mbBase}}: Expanded by an input procedure for customizing without changing the template. Expanding in support by the types &amp;quot;Int8 (i8)&amp;quot; and &amp;quot;Double (d)&amp;quot;, also as by recreation attributes with changed type and removing attributes are missing in the items list. Allowing to specify address of the register in HEX and OCTAL. Adding by applying entries of the register syntax of the module [[Special:MyLanguage/Modules/ModBus|DAQ.ModBus]].&lt;br /&gt;
* LibsDB.vcaBase:&lt;br /&gt;
** wlb_Main: The library appended by the frame &amp;quot;Dynamic frame (dynFrame)&amp;quot; with documenting.&lt;br /&gt;
*** The library appended by an extra icon 'weath13n' for the widget &amp;quot;Weather (weather)&amp;quot;.&lt;br /&gt;
*** FIX:{{Anch|Upd9LabExtSt|TextLab,ImgLab}}: Expanding for processing conflict states &amp;quot;false &amp;amp;&amp;amp; false&amp;quot; and &amp;quot;true &amp;amp;&amp;amp; true&amp;quot; taking the parameters from item [2] and [3].&lt;br /&gt;
**** Adding alarms generation from the &amp;quot;Error (err)&amp;quot; attribute.&lt;br /&gt;
**** FIX: Renaming the states name &amp;quot;Enable&amp;quot; to &amp;quot;Enabled&amp;quot; and &amp;quot;Disable&amp;quot; to &amp;quot;Disabled&amp;quot;.&lt;br /&gt;
**** FIX: Unifying the alarms blinking with just changing work color to alarm one in the second cycle.&lt;br /&gt;
*** alarmsAct,alarmsSt: Adaptation to human-readable names in messages.&lt;br /&gt;
*** FIX:{{Anch|Upd9StoreHouseExt|storeHouse}}: Moving the Control Panel formation and updating to the table updating code.&lt;br /&gt;
**** FIX: Separating data preparing part from formation the visual data for early preparing the lists and with limiting time of processed items.&lt;br /&gt;
**** Appending to processing the event ws_TableEdit of checking validity row and column.&lt;br /&gt;
**** The retry cycles and updating rewrote for specifying time in &amp;quot;toCalcCycles&amp;quot; in seconds and updating after its elapsing.&lt;br /&gt;
**** FIX: Preventing of show second filter field in the item form after change the user.&lt;br /&gt;
**** FIX: Fixing the images overview at selecting in the file combobox.&lt;br /&gt;
**** Specifying the transaction mode in all ''SQLReq()'' calls.&lt;br /&gt;
**** The control panel appended by the selection fields.&lt;br /&gt;
**** Rewrote in preparing the column list for filters with using redefined names of the standard fields &amp;quot;NAME&amp;quot;, &amp;quot;DSCR&amp;quot;, and with true sorting.&lt;br /&gt;
**** In file sizes used new function ''SYS.cpct2str()''.&lt;br /&gt;
*** FIX:ImgLab: Taking the background color even empty from images list at its presence.&lt;br /&gt;
**** FIX: Setting width of the border to 2 when it is zero at the selection blinking, that is for active elements.&lt;br /&gt;
**** Format of the attribute &amp;quot;Images (imgs)&amp;quot; moved to the help, that is to the second line.&lt;br /&gt;
*** FIX:objProps: Appending of tracing the user changing, appending for support real properties.&lt;br /&gt;
*** ElCadr: Adding the attribute &amp;quot;Parameter: Force disable PID (prmNotPID)&amp;quot; for disabling PID show at presence SP.&lt;br /&gt;
*** cntrPaspExt: Hide attributes in EVAL. Generating for user action messages at changing the editable properties.&lt;br /&gt;
*** TextLab: Adapted to use the default background at its missing in &amp;quot;st_text&amp;quot;.&lt;br /&gt;
** wlb_doc:&lt;br /&gt;
*** FIX:docRepYear: Fixing of processing the last value in year for data from archives.&lt;br /&gt;
*** docUsersSet: Expanding by a possibility to specify-configure of used archivers.&lt;br /&gt;
* Model.AGLKS.Model.DAQ_BlockCalc.gen_cnt: Appending the description by the field &amp;quot;MessName: {Name}&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|API}}&lt;br /&gt;
''!!!!:Changes'':&lt;br /&gt;
* SYS.ResString: ''getVal()'' set to constant.&lt;br /&gt;
* Archives,DAQ.*: Enumeration items of the source modes added by the &amp;quot;SRC_&amp;quot; prefix and &amp;quot;ActiveAttr&amp;quot; renamed to &amp;quot;DAQAttrAct&amp;quot;; items of the combination modes added by the &amp;quot;CMB_&amp;quot; prefix and an item &amp;quot;FromArchiver&amp;quot;; items of the data mode added by the &amp;quot;DM_&amp;quot; prefix instead &amp;quot;DM&amp;quot;.&lt;br /&gt;
* DAQ.TFunction: Switching the method &amp;quot;mStor&amp;quot; to ResString.&lt;br /&gt;
''Appends'':&lt;br /&gt;
* SYS.CntrNode,Protocol.HTTP: Adding the service requests &amp;quot;select:/db/list&amp;quot; by an option &amp;quot;nostor&amp;quot; for the empty item.&lt;br /&gt;
* SYS,UI.VCAEngine: Appending the definition &amp;quot;starts_with&amp;quot; as link to the STL::String function &amp;quot;compare(0,strlen(str),str) == 0&amp;quot; to replace ''compare()'' and ''find()'' in this role.&lt;br /&gt;
* Archives,DAQ.DAQGate: The TMArchivator object appended by a reimplementation TMess::SRec with a container of storing double messages in one second.&lt;br /&gt;
* SYS: The file's User API functions appended by ''fileRotate()'' for files rotation mostly the logging type.&lt;br /&gt;
** TCntrNode: new function ''nodeMessSnthHgl()''.&lt;br /&gt;
** XMLNode: The function ''load()'' appended of parsing pure HTML with an option LD_HTML. The function ''save()'' appended by an option HoldEmptyAttr of holding empty attributes.&lt;br /&gt;
** XMLNodeObj: Added by the User API and API function ''childDel( AutoHD&amp;lt;XMLNodeObj&amp;gt; nd )''. The User API function ''setAttr()'' added by a synonym ''attrSet()''.&lt;br /&gt;
* DAQ:&lt;br /&gt;
** TController,TParamContr: Adding a function ''justCreated()'' of detection the just creation.&lt;br /&gt;
** TParamContr: Added by a virtual function ''loadVal()'' of reloading all or one stored values.&lt;br /&gt;
** TPrmTempl.Impl.''archAttrs()'': Appended by a timestamp argument for using common timestamp in archiving.&lt;br /&gt;
** {{Anch|Upd9DirValAccess|ModBus,OPC_UA,Siemens}}: The Controller Object added by a User API function ''value()'' of direct value getting and setting at the source-specific address and through the address registering for getting-setting in the generic pooling cycle of the source.&lt;br /&gt;
* Archives: The TVArchivator object is added by the functions ''combMode()'' and ''setCombMode()''.&lt;br /&gt;
* JavaLikeCalc: The User API functions to string appended by ''sep2path()''.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|SYS}}&lt;br /&gt;
* Building: &lt;br /&gt;
** configure.ac: Core library version risen to 3:16:0 and the program version risen to 0.9.9. The module version of the subsystem &amp;quot;DAQ&amp;quot; risen to 16 and the subsystem &amp;quot;Archives&amp;quot; risen to 15.&lt;br /&gt;
** Appended for building to Debian 13 and Ubuntu 26.04 LTS.&lt;br /&gt;
** .,DAQ.Siemens: Generic adaptation for building on Debian 13, adaptation for support PCRE2 since missing old PCRE libraries on Debian 13 with moving the variable &amp;quot;vSz&amp;quot; to a definition TRegExp_vSz for old libraries.&lt;br /&gt;
** DB.MySQL: Adaption to build with headers without definition the &amp;quot;my_bool&amp;quot; type on Ubuntu 26.04 LTS.&lt;br /&gt;
* XMLNode: The function ''load()'' appended of parsing pure HTML with: tags without closing, attributes without a value, attribute values without quoting, closing tags switching.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|DAQ}}&lt;br /&gt;
* Templates: Enabling the selectable fields in the &amp;quot;Template configuration&amp;quot; tab for constants.&lt;br /&gt;
* FIX:{ModBus,OPC_UA,Siemens}.LogicLev: Preventing of wrong writing to PLC at RO links, when the value changed in the procedure.&lt;br /&gt;
* LogicLev,ModBus,OPC_UA,Siemens: The User API functions ''attrAdd()'' and ''attrDel()'' of managing user attributes moved from LogicLev, ModBus, OPC_UA, Siemens to the core parameter object and for all dynamic parameters at ''dynElCntr()''. Adding of {{Anch|Upd9StoreDynVal|storing values}} of the user's dynamic attributes.&lt;br /&gt;
* FIX:{{Anch|Upd9SimStab|Siemens}}: Moving the SELF_ISO_TCP mode to the generic ''outAt()'' function. Debugging the connection errors for the modes SELF_ISO_TCP and ISO_TCP on the actual S7-1500 connection.&lt;br /&gt;
* System: Adding the data acquisition of the slow sources per some cycle by the new configuration field &amp;quot;In cycle call for slow sources&amp;quot;.&lt;br /&gt;
** {{Anch|Upd9SystemSMART|DA_SMART}}: Adding for support reading the NVMe Log with moving on parsing by RE and reading string fields, like to temperature.&lt;br /&gt;
** DA_PROC: Appended by obtaining the field &amp;quot;User loading (%)&amp;quot; and &amp;quot;System loading (%)&amp;quot; from the file &amp;quot;/proc/{PID}/stat&amp;quot; also with the value concatenation for group selection.&lt;br /&gt;
* FIX:JavaLikeCalc: Fixing permission to the Function node after moving under ACL.&lt;br /&gt;
* FIX:{{Anch|Upd9LogicLevRefl|LogicLev}}: Improving the parameter reflection mode by a possibility to connect later the missing at the start sources, also as unlinking-unlocking disabled sources.&lt;br /&gt;
* FIX:DAQGate: Fixing ''messSet()'' by taking parameter whole ID from the first line of the argument &amp;quot;prm&amp;quot; and with its normalization by the prefix &amp;quot;prm_&amp;quot; removing. Set for writing to remote stations without checking the value at equality, due to the previous value can be not actual at situative reading.&lt;br /&gt;
* ModBus: Unified in registering values at the ModBus-specific address in other variant of the function ''regVal()''.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Archives-History}}&lt;br /&gt;
* FIX:Value: Prevented of crashing at zero period in ''TVArchEl::getVals()''.&lt;br /&gt;
** Added by a configuration field &amp;quot;Data combining mode (CombMode)&amp;quot;, as in the archive object, for specifying the data combination in the archiver, and the field in archive added by an item &amp;quot;From Archiver&amp;quot; by default.&lt;br /&gt;
** The &amp;quot;Active DAQ Attribute (DEPRECATED)&amp;quot; item of the archive source renamed to &amp;quot;DAQ Attribute actively&amp;quot; and unmarked deprecated due to it is the single way of creation multiple archives to single source.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Transports}}&lt;br /&gt;
* FIX: The generic Control Interface requesting function ''cntrIfCmd()'' is prevented from any local-direct-custom authentication at reforwarding to intermediate OpenSCADA nodes, that is especially actual for remote connections of UI.Vision for different users.&lt;br /&gt;
* The traffic logging in the file appended by rotation the files.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|User Interface}}&lt;br /&gt;
* FIX:Vision,WebVision: Fixing of compensation debries of the real numbers in position and size for true aligning the internal content of widgets with different size, when the scale greater of 1. Preventing of crashing in the ''VCADiagram::TrendObj::loadTrendsData()'' function at zero in &amp;quot;wantPer&amp;quot;.&lt;br /&gt;
* QTCfg,Vision: The tab distance of the TextArea set dynamic and calculated from the font metric for standard eight symbols &amp;quot;00000000&amp;quot;.&lt;br /&gt;
* {{Anch|Upd9WebCfgD|WebCfgD}}: Implemented for syntax highlight in the textareas.&lt;br /&gt;
* FIX:WebVision: Restoring a function of user changing after previous preventing the connection messages flooding with connection to the same session from other host or other agent. Adding the user of last request for preventing from new sessions opening after changing the user from original.&lt;br /&gt;
* FIX:VCAEngine: Moving setting the flag Attr::VizerSpec for attributes with the prefix &amp;quot;vs_&amp;quot; to the attributes inheritance and only for session widgets. Unification the Attribute's self flags by separation to storing and operative ones.&lt;br /&gt;
* FIX:QTStarter.lib_qtgen: The syntax highlight algorithm in ''SnthHgl::rule()'' cleaned from spare containers and unified.&lt;br /&gt;
* FIX:Vision: Preventing of crashing in the ShapeFormEl event handler at not finished initialisation, that is the &amp;quot;addrWdg&amp;quot; variable is missing. Preventing of the user changing for reforwarding connections.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Documents/Release_0.9/Update_9/uk&amp;diff=94041</id>
		<title>Documents/Release 0.9/Update 9/uk</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Documents/Release_0.9/Update_9/uk&amp;diff=94041"/>
				<updated>2026-05-12T16:16:13Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages/&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;div style=&amp;quot;float:right; border:1px solid gray; width:300px; padding:2px; margin-left: 10pt; margin-bottom: 10pt; &amp;quot;&amp;gt;&lt;br /&gt;
* '''Стан:''' &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;тестування та після-складання ...&amp;lt;/span&amp;gt;&lt;br /&gt;
{{:Documents/How_to/Release/uk}}&lt;br /&gt;
&amp;lt;/div&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This update of the [[Special:MyLanguage/Documents/Release_0.9|0.9 LTS release]] fixes about 70 bugs and appends MANY improvements, which you can read wholly in [http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=3066 the update ChangeLog].&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|[[Special:MyLanguage/Sub-projects/Automation_Linux_distributive|Automation Linux distributive of the project OpenSCADA]]}}&lt;br /&gt;
* adaptation of work the hosting server under constant DDoS in ~3 million unique IPs and with short time under power net by economy the batteries, and under OpenSCADA control;&lt;br /&gt;
* appending Debian 13 as the distributive base;&lt;br /&gt;
* moving back to the OpenSCADA server of building the Debian 9 base;&lt;br /&gt;
* moving of building the Debian 12,11,10 base to the Debian 13 environment with enabling back support SHA-1 here;&lt;br /&gt;
* switching the building conception to use '''sshfs''' in working remotely with the repositories;&lt;br /&gt;
* updating TDE to 14.1.4, 14.1.5 and next to 14.1.6;&lt;br /&gt;
* TDE &amp;gt; krusader-trinity &amp;gt; RAR: Loading the builtin TDEIO RAR library.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; TDEIO &amp;gt; media: Translation the FS options in the &amp;quot;propsdlg&amp;quot; plugin.&lt;br /&gt;
* TDE &amp;gt; tde-i18n-trinity &amp;gt; uk: Adding messages translation in patched packages to the Ukrainian part.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; KControl &amp;gt; Locale: Clearing the language settings to system ones.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity &amp;gt; TDELocale: Adding of obtaining country from environment.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity &amp;gt; TDEIO &amp;gt; SwitchLanguageDialog: Clearing all language setting.&lt;br /&gt;
* TDE &amp;gt; tdeutils-trinity &amp;gt; ARK: Adding &amp;quot;unrar-free&amp;quot; using.&lt;br /&gt;
* TDE &amp;gt; krusader-trinity &amp;gt; RAR: Adding &amp;quot;unrar-free&amp;quot; using.&lt;br /&gt;
* TDE &amp;gt; tdegraphics-trinity &amp;gt; kghostview: Represent PDF on Ghostscript 10.05.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity: KDesktop &amp;gt; Lock: Restoring the locking code to one in version 14.1.4 with extending for the lock dialog itself.&lt;br /&gt;
* TDE &amp;gt; tdepim-trinity &amp;gt; holiday_ua &amp;gt; HoliDays: Replacing by actual Holi Days and Memorial Days of Ukraine.&lt;br /&gt;
* TDE &amp;gt; kaffeine-trinity &amp;gt; xine-part: Adding translation the message &amp;quot;Impossible to obtain image!&amp;quot; to Ukrainian.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity: Preventing-oppressing double icons in the system tray from programs with equal window ID like to '''blueman''' and with an option of disabling that function, with fixing of using ''readBoolEntry()''.&lt;br /&gt;
* TDE &amp;gt; tqt3-trinity &amp;gt; Plugins &amp;gt; XIM: Calls ''XCloseIM()'' to prevent memory leaking.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity &amp;gt; TDEIO &amp;gt; KFileView: Processes file extensions with patterns at saving and doesn't reset the dialog size.&lt;br /&gt;
* TDE &amp;gt; kaffeine-trinity &amp;gt; xine-part: Allows to screenshot in any supported image-file format.&lt;br /&gt;
* TDE &amp;gt; tdesvn-trinity: Fixing of conflicts resolving in KDiff3, preventing of crashes at conflicts resolving, updating parent of changed item with all expandings.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; TDEIO &amp;gt; media: Restoring of using '''fuser'''.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; ksysguard: Removing the processes loading limit in 100%.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity &amp;gt; TDEIO &amp;gt; CopyJob: Don't rename directories and files overwrite for old, lesser and in different size.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; TDEIO &amp;gt; SMB: Prevents double ''result()'' signal generation through errors.&lt;br /&gt;
* TDE &amp;gt; tdepim-trinity &amp;gt; knote: Adding the find only local per selected note.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity: Complete disabling of processing for the unclassified devices due to it is very CPU intensive, especially on slow HW.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Main WWW-resources, documentation of the project and subprojects, and localisation}}&lt;br /&gt;
* appending the [[Special:MyLanguage/Libs/Main_graphical_elements|Main elements library of the user interface]] by description the new element-frame &amp;quot;Dynamic frame&amp;quot;;&lt;br /&gt;
* updating information of the subproject [[Special:MyLanguage/Sub-projects/Automatic_Builder_of_OpenSCADA|Automatic Builder of OpenSCADA]];&lt;br /&gt;
* adding Portuguese translation from Diego Eckhard for parts: SYS, DAQ.ModBus, Transport.{Sockets,SSL,Serial}, UI.{QTStarter,QTCfg,VCAEngine,Vision}.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|New and significantly updated parts}}&lt;br /&gt;
* OpenSCADA Core: 3:15:0 =&amp;gt; '''3:16:0'''&lt;br /&gt;
: ([[#Upd9InitCon|Implementing initiative connections — fixes and expandings of the conceptual changes of the previous updates]], [[#Upd9MessTrFix|Messages Translation — fixes of the conceptual changes of the previous updates]])&lt;br /&gt;
* OpenSCADA &amp;quot;DAQ&amp;quot; subsystem: 15 =&amp;gt; '''16'''&lt;br /&gt;
* OpenSCADA &amp;quot;Archives&amp;quot; subsystem: 14 =&amp;gt; '''15'''&lt;br /&gt;
* DAQ.Siemens: 4.5 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;4.8&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9SimStab|Common stabilization in the ISO_TCP connection]], [[#Upd9DirValAccess|Direct value getting and setting at the source-specific address]], [[#Upd9StoreDynVal|Storing values of the user's dynamic attributes]])&lt;br /&gt;
* DAQ.System: 3.3 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;3.5&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9SystemSMART|Reading the NVMe Log with moving on parsing by RE and reading string fields]])&lt;br /&gt;
* DAQ.LogicLev: 2.9 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.11&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9LogicLevRefl|Improving the parameter reflection mode]], [[#Upd9StoreDynVal|Storing values of the user's dynamic attributes]])&lt;br /&gt;
* DAQ.OPC_UA: 2.8 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.10&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9DirValAccess|Direct value getting and setting at the source-specific address]], [[#Upd9StoreDynVal|Storing values of the user's dynamic attributes]])&lt;br /&gt;
* DAQ.ModBus: 3.9 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;3.11&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9DirValAccess|Direct value getting and setting at the source-specific address]], [[#Upd9StoreDynVal|Storing values of the user's dynamic attributes]])&lt;br /&gt;
* DAQ.DAQGate: 2.14 =&amp;gt; '''2.15'''&lt;br /&gt;
* Protocol.HTTP: 3.9 =&amp;gt; '''3.11'''&lt;br /&gt;
* UI.WebCfgD: 2.8 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;3.0&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9WebCfgD|Syntax highlight in the textareas]])&lt;br /&gt;
* UI.VCAEngine: 7.17 =&amp;gt; '''7.19'''&lt;br /&gt;
* UI.WebVision: 6.13 =&amp;gt; '''6.16'''&lt;br /&gt;
* UI.QTStarter: 6.0 =&amp;gt; '''6.1'''&lt;br /&gt;
* UI.QTCfg: 6.1 =&amp;gt; '''6.2'''&lt;br /&gt;
* UI.WebCfgD: 3.0 =&amp;gt; '''3.1'''&lt;br /&gt;
* LibsDB.OscadaLibs:&lt;br /&gt;
:* JavaLikeCalc.flb_Json: &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;0.3&amp;lt;/b&amp;gt;&lt;br /&gt;
:* base:&lt;br /&gt;
::* UPS: 1.3 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.2&amp;lt;/b&amp;gt;&lt;br /&gt;
::: ([[#Upd9UPSDirDevs|Implementing devices directly, attributes definition in &amp;quot;Elements definition (defs)&amp;quot;]])&lt;br /&gt;
::* DiskSMART: 1.0 =&amp;gt; '''1.1'''&lt;br /&gt;
::: ([[#Upd9DSMARTInProc|Input processing procedure]])&lt;br /&gt;
::* initRemCntr: 1.1 =&amp;gt; '''1.2'''&lt;br /&gt;
:* DevLib.mbBase: 1.3 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;1.6&amp;lt;/b&amp;gt;&lt;br /&gt;
:: ([[#Upd9MbBaseInProcAtrUpd|Input processing procedure, additional types and flexible attributes update]])&lt;br /&gt;
:* LowDevLib:&lt;br /&gt;
::* IEC62056: 1.1 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.0&amp;lt;/b&amp;gt;&lt;br /&gt;
::: ([[#Upd9IEC62056Part21|Support 21 part and many improvements]])&lt;br /&gt;
::* S1BP: 1.0 =&amp;gt; '''1.1'''&lt;br /&gt;
* LibsDB.vcaBase.Main: 2.2 =&amp;gt; '''2.3'''&lt;br /&gt;
:* dynFrame: &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;1.2&amp;lt;/b&amp;gt;&lt;br /&gt;
:* storeHouse: 2.1 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.3&amp;lt;/b&amp;gt;&lt;br /&gt;
:: ([[#Upd9StoreHouseExt|Significant extending and fixing]])&lt;br /&gt;
:* TextLab: 1.2 =&amp;gt; '''1.3'''&lt;br /&gt;
:: ([[#Upd9LabExtSt|States extending]])&lt;br /&gt;
:* ImgLab: 1.2 =&amp;gt; '''1.3'''&lt;br /&gt;
:: ([[#Upd9LabExtSt|States extending]])&lt;br /&gt;
:* cntrPaspExt: 1.2 =&amp;gt; '''1.3'''&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|{{Anch|Upd9InitCon|CONCEPTUAL &amp;gt; [[Special:MyLanguage/Documents/DAQ#PassiveAndInitiative|Concentration the different OpenSCADA-hosts on the common server, both for IoT on OpenSCADA and other]] (fixes of the [[Special:MyLanguage/Documents/Release_0.9#Upd8InitCon|conceptual changes of the previous updates]]) }} }}&lt;br /&gt;
* LibsDB.vcaBase.wlb_Main.dynFrame: Advancing the frame implementation up to the possibility of items real placing, linking, generic control, saving and restoring.&lt;br /&gt;
* LibsDB.OscadaLibs:&lt;br /&gt;
** FIX:tmplib_base.initRemCntr: Fixing of saving the table of the remote OpenSCADA hosts after removing old ones.&lt;br /&gt;
*** Adding of direct freeing data of requests.&lt;br /&gt;
*** The key changed to force two symbols in HEX.&lt;br /&gt;
*** Allowed of updating the remote logical source objects for new sources.&lt;br /&gt;
*** The protection time of the execution increased to 60 seconds.&lt;br /&gt;
*** Checking and removing logical parameters with missing sources.&lt;br /&gt;
*** Setting the field &amp;quot;Allow the automatic removal of parameters and attributes&amp;quot; and &amp;quot;Synchronization time with the remote station, seconds&amp;quot; of the [[Special:MyLanguage/Modules/DAQGate|DAQGate module]].&lt;br /&gt;
** Security_user,Transport_in.{Sockets,SSL}::RemCntr: Appending detailed description of the objects target and using.&lt;br /&gt;
* data/{oscada_plc.xml,oscada_server.xml}: Simplifying the station name for short remote identifiers.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|{{Anch|Upd9MessTrFix|CONCEPTUAL &amp;gt; Messages Translation (fixes of the [[Special:MyLanguage/Documents/Release_0.9#MessTrFix|conceptual changes of the previous updates]]) }} }}&lt;br /&gt;
* LibsDB.vcaBase:&lt;br /&gt;
** FIX:wlb_Main.ElViewGraph: The attribute &amp;quot;Dimension (ed)&amp;quot; set to the type &amp;quot;String (translate)&amp;quot; to restore the transitive translation of the DAQ-Source messages at the links in the DYNAMIC-MULTILANGUAGE mode.&lt;br /&gt;
* FIX:DAQ.TDAQS,Archive.TArchives: Fixing dynamic translation of names of the redundant objects.&lt;br /&gt;
* FIX:SYS,DAQ.{.,JavaLikeCalc}: TFunction::IO: Fixing-finishing of the default value translation in the constructor and for the DAQ-Templates with its implementations.&lt;br /&gt;
* SYS:&lt;br /&gt;
** The Translation Manager is appended by an information into the last line about achieving an limit time.&lt;br /&gt;
** FIX:TMess: Adding of processing prestored I18N messages in the long ''TMess::translGet()'' variant, which is called from ''objFuncCall()'', instead the translation loss here.&lt;br /&gt;
* FIX:DB: Preventing the warnings &amp;quot;Some messages completely cleaned for the base ...&amp;quot; for items with no translation fields.&lt;br /&gt;
* FIX:DAQ: Fixing dynamic translation the select items from the default field in ''addLinksAttrs()''.&lt;br /&gt;
* FIX:UI.VCAEngine: The configuration value fixed in translation on the tab &amp;quot;Links&amp;quot; and processing the field translation for values with the prefix &amp;quot;val:&amp;quot; and switching to its.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|OpenSCADA libraries and projects}}&lt;br /&gt;
* LibsDB.OscadaLibs:&lt;br /&gt;
** Adding the new library &amp;quot;Json&amp;quot; of support JSON from Arkadii Kysil.&lt;br /&gt;
** FIX:{tmplib_base,tmplib_DevLib}.UPS: Fixing of writing to the writable attributes.&lt;br /&gt;
** tmplib_base:&lt;br /&gt;
*** digAlarm,anUnif,anUnifSt,codeState: The input processing procedure added by a parameter &amp;quot;args&amp;quot; as a link to arguments of the main procedure.&lt;br /&gt;
*** {{Anch|Upd9UPSDirDevs|UPS}}: Expanding by implementing devices directly in this template starting from Must EP2X. Appending of attributes transferring in parameters on the template base with their definition in the new attribute &amp;quot;Elements definition (defs)&amp;quot;. Adding the ''alarm()'' function for true control of borders with hysteresis.&lt;br /&gt;
*** FIX:manInUnif: Preventing of setting stored value to PLC at start, so overwriting actual one, also at the signal out the scale.&lt;br /&gt;
*** FIX:{{Anch|Upd9DSMARTInProc|DiskSMART}}: Adding the input processing procedure for processing specific fields and adding new derivative fields. The &amp;quot;Item definitions&amp;quot; field added a default list of specific interpretation the SMART fields. Improving some original messages.&lt;br /&gt;
*** anUnif: The alarm message of signal exceeding hardware border added by this wrong value.&lt;br /&gt;
** tmplib_DevLib:&lt;br /&gt;
*** mbBase,ergomera625: Improving the syntax highlight rules for types like to &amp;quot;u4&amp;quot;.&lt;br /&gt;
*** {{Anch|Upd9IEC62056Part21|IEC62056}}: Expanding by support part 21 (direct local data exchange) and improvements:&lt;br /&gt;
**** adding input procedure for processing read OBISes;&lt;br /&gt;
**** list of OBISes appeded by description and the syntax higflight;&lt;br /&gt;
**** adding an option of control bytes LE order of integers;&lt;br /&gt;
**** ID of the attribute of representing OBIS appended by &amp;quot;ClassId&amp;quot; and &amp;quot;a&amp;quot;;&lt;br /&gt;
**** &amp;quot;ClassId&amp;quot; of OBIS expanded up to two bytes;&lt;br /&gt;
**** trimming the visible strings up to first zero byte;&lt;br /&gt;
**** adding preset devices with known main OBISes;&lt;br /&gt;
**** address field expanded for support single digit like to SN;&lt;br /&gt;
**** the &amp;quot;tr&amp;quot; and &amp;quot;ctx&amp;quot; attributes moved from IO.&lt;br /&gt;
*** {{Anch|Upd9MbBaseInProcAtrUpd|mbBase}}: Expanded by an input procedure for customizing without changing the template. Expanding in support by the types &amp;quot;Int8 (i8)&amp;quot; and &amp;quot;Double (d)&amp;quot;, also as by recreation attributes with changed type and removing attributes are missing in the items list. Allowing to specify address of the register in HEX and OCTAL. Adding by applying entries of the register syntax of the module [[Special:MyLanguage/Modules/ModBus|DAQ.ModBus]].&lt;br /&gt;
* LibsDB.vcaBase:&lt;br /&gt;
** wlb_Main: The library appended by the frame &amp;quot;Dynamic frame (dynFrame)&amp;quot; with documenting.&lt;br /&gt;
*** The library appended by an extra icon 'weath13n' for the widget &amp;quot;Weather (weather)&amp;quot;.&lt;br /&gt;
*** FIX:{{Anch|Upd9LabExtSt|TextLab,ImgLab}}: Expanding for processing conflict states &amp;quot;false &amp;amp;&amp;amp; false&amp;quot; and &amp;quot;true &amp;amp;&amp;amp; true&amp;quot; taking the parameters from item [2] and [3].&lt;br /&gt;
**** Adding alarms generation from the &amp;quot;Error (err)&amp;quot; attribute.&lt;br /&gt;
**** FIX: Renaming the states name &amp;quot;Enable&amp;quot; to &amp;quot;Enabled&amp;quot; and &amp;quot;Disable&amp;quot; to &amp;quot;Disabled&amp;quot;.&lt;br /&gt;
**** FIX: Unifying the alarms blinking with just changing work color to alarm one in the second cycle.&lt;br /&gt;
*** alarmsAct,alarmsSt: Adaptation to human-readable names in messages.&lt;br /&gt;
*** FIX:{{Anch|Upd9StoreHouseExt|storeHouse}}: Moving the Control Panel formation and updating to the table updating code.&lt;br /&gt;
**** FIX: Separating data preparing part from formation the visual data for early preparing the lists and with limiting time of processed items.&lt;br /&gt;
**** Appending to processing the event ws_TableEdit of checking validity row and column.&lt;br /&gt;
**** The retry cycles and updating rewrote for specifying time in &amp;quot;toCalcCycles&amp;quot; in seconds and updating after its elapsing.&lt;br /&gt;
**** FIX: Preventing of show second filter field in the item form after change the user.&lt;br /&gt;
**** FIX: Fixing the images overview at selecting in the file combobox.&lt;br /&gt;
**** Specifying the transaction mode in all ''SQLReq()'' calls.&lt;br /&gt;
**** The control panel appended by the selection fields.&lt;br /&gt;
**** Rewrote in preparing the column list for filters with using redefined names of the standard fields &amp;quot;NAME&amp;quot;, &amp;quot;DSCR&amp;quot;, and with true sorting.&lt;br /&gt;
**** In file sizes used new function ''SYS.cpct2str()''.&lt;br /&gt;
*** FIX:ImgLab: Taking the background color even empty from images list at its presence.&lt;br /&gt;
**** FIX: Setting width of the border to 2 when it is zero at the selection blinking, that is for active elements.&lt;br /&gt;
**** Format of the attribute &amp;quot;Images (imgs)&amp;quot; moved to the help, that is to the second line.&lt;br /&gt;
*** FIX:objProps: Appending of tracing the user changing, appending for support real properties.&lt;br /&gt;
*** ElCadr: Adding the attribute &amp;quot;Parameter: Force disable PID (prmNotPID)&amp;quot; for disabling PID show at presence SP.&lt;br /&gt;
*** cntrPaspExt: Hide attributes in EVAL. Generating for user action messages at changing the editable properties.&lt;br /&gt;
*** TextLab: Adapted to use the default background at its missing in &amp;quot;st_text&amp;quot;.&lt;br /&gt;
** wlb_doc:&lt;br /&gt;
*** FIX:docRepYear: Fixing of processing the last value in year for data from archives.&lt;br /&gt;
*** docUsersSet: Expanding by a possibility to specify-configure of used archivers.&lt;br /&gt;
* Model.AGLKS.Model.DAQ_BlockCalc.gen_cnt: Appending the description by the field &amp;quot;MessName: {Name}&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|API}}&lt;br /&gt;
''!!!!:Changes'':&lt;br /&gt;
* SYS.ResString: ''getVal()'' set to constant.&lt;br /&gt;
* Archives,DAQ.*: Enumeration items of the source modes added by the &amp;quot;SRC_&amp;quot; prefix and &amp;quot;ActiveAttr&amp;quot; renamed to &amp;quot;DAQAttrAct&amp;quot;; items of the combination modes added by the &amp;quot;CMB_&amp;quot; prefix and an item &amp;quot;FromArchiver&amp;quot;; items of the data mode added by the &amp;quot;DM_&amp;quot; prefix instead &amp;quot;DM&amp;quot;.&lt;br /&gt;
* DAQ.TFunction: Switching the method &amp;quot;mStor&amp;quot; to ResString.&lt;br /&gt;
''Appends'':&lt;br /&gt;
* SYS.CntrNode,Protocol.HTTP: Adding the service requests &amp;quot;select:/db/list&amp;quot; by an option &amp;quot;nostor&amp;quot; for the empty item.&lt;br /&gt;
* SYS,UI.VCAEngine: Appending the definition &amp;quot;starts_with&amp;quot; as link to the STL::String function &amp;quot;compare(0,strlen(str),str) == 0&amp;quot; to replace ''compare()'' and ''find()'' in this role.&lt;br /&gt;
* Archives,DAQ.DAQGate: The TMArchivator object appended by a reimplementation TMess::SRec with a container of storing double messages in one second.&lt;br /&gt;
* SYS: The file's User API functions appended by ''fileRotate()'' for files rotation mostly the logging type.&lt;br /&gt;
** TCntrNode: new function ''nodeMessSnthHgl()''.&lt;br /&gt;
** XMLNode: The function ''load()'' appended of parsing pure HTML with an option LD_HTML. The function ''save()'' appended by an option HoldEmptyAttr of holding empty attributes.&lt;br /&gt;
** XMLNodeObj: Added by the User API and API function ''childDel( AutoHD&amp;lt;XMLNodeObj&amp;gt; nd )''. The User API function ''setAttr()'' added by a synonym ''attrSet()''.&lt;br /&gt;
* DAQ:&lt;br /&gt;
** TController,TParamContr: Adding a function ''justCreated()'' of detection the just creation.&lt;br /&gt;
** TParamContr: Added by a virtual function ''loadVal()'' of reloading all or one stored values.&lt;br /&gt;
** TPrmTempl.Impl.''archAttrs()'': Appended by a timestamp argument for using common timestamp in archiving.&lt;br /&gt;
** {{Anch|Upd9DirValAccess|ModBus,OPC_UA,Siemens}}: The Controller Object added by a User API function ''value()'' of direct value getting and setting at the source-specific address and through the address registering for getting-setting in the generic pooling cycle of the source.&lt;br /&gt;
* Archives: The TVArchivator object is added by the functions ''combMode()'' and ''setCombMode()''.&lt;br /&gt;
* JavaLikeCalc: The User API functions to string appended by ''sep2path()''.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|SYS}}&lt;br /&gt;
* Building: &lt;br /&gt;
** configure.ac: Core library version risen to 3:16:0 and the program version risen to 0.9.9. The module version of the subsystem &amp;quot;DAQ&amp;quot; risen to 16 and the subsystem &amp;quot;Archives&amp;quot; risen to 15.&lt;br /&gt;
** Appended for building to Debian 13 and Ubuntu 26.04 LTS.&lt;br /&gt;
** .,DAQ.Siemens: Generic adaptation for building on Debian 13, adaptation for support PCRE2 since missing old PCRE libraries on Debian 13 with moving the variable &amp;quot;vSz&amp;quot; to a definition TRegExp_vSz for old libraries.&lt;br /&gt;
** DB.MySQL: Adaption to build with headers without definition the &amp;quot;my_bool&amp;quot; type on Ubuntu 26.04 LTS.&lt;br /&gt;
* XMLNode: The function ''load()'' appended of parsing pure HTML with: tags without closing, attributes without a value, attribute values without quoting, closing tags switching.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|DAQ}}&lt;br /&gt;
* Templates: Enabling the selectable fields in the &amp;quot;Template configuration&amp;quot; tab for constants.&lt;br /&gt;
* FIX:{ModBus,OPC_UA,Siemens}.LogicLev: Preventing of wrong writing to PLC at RO links, when the value changed in the procedure.&lt;br /&gt;
* LogicLev,ModBus,OPC_UA,Siemens: The User API functions ''attrAdd()'' and ''attrDel()'' of managing user attributes moved from LogicLev, ModBus, OPC_UA, Siemens to the core parameter object and for all dynamic parameters at ''dynElCntr()''. Adding of {{Anch|Upd9StoreDynVal|storing values}} of the user's dynamic attributes.&lt;br /&gt;
* FIX:{{Anch|Upd9SimStab|Siemens}}: Moving the SELF_ISO_TCP mode to the generic ''outAt()'' function. Debugging the connection errors for the modes SELF_ISO_TCP and ISO_TCP on the actual S7-1500 connection.&lt;br /&gt;
* System: Adding the data acquisition of the slow sources per some cycle by the new configuration field &amp;quot;In cycle call for slow sources&amp;quot;.&lt;br /&gt;
** {{Anch|Upd9SystemSMART|DA_SMART}}: Adding for support reading the NVMe Log with moving on parsing by RE and reading string fields, like to temperature.&lt;br /&gt;
** DA_PROC: Appended by obtaining the field &amp;quot;User loading (%)&amp;quot; and &amp;quot;System loading (%)&amp;quot; from the file &amp;quot;/proc/{PID}/stat&amp;quot; also with the value concatenation for group selection.&lt;br /&gt;
* FIX:JavaLikeCalc: Fixing permission to the Function node after moving under ACL.&lt;br /&gt;
* FIX:{{Anch|Upd9LogicLevRefl|LogicLev}}: Improving the parameter reflection mode by a possibility to connect later the missing at the start sources, also as unlinking-unlocking disabled sources.&lt;br /&gt;
* FIX:DAQGate: Fixing ''messSet()'' by taking parameter whole ID from the first line of the argument &amp;quot;prm&amp;quot; and with its normalization by the prefix &amp;quot;prm_&amp;quot; removing. Set for writing to remote stations without checking the value at equality, due to the previous value can be not actual at situative reading.&lt;br /&gt;
* ModBus: Unified in registering values at the ModBus-specific address in other variant of the function ''regVal()''.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Archives-History}}&lt;br /&gt;
* FIX:Value: Prevented of crashing at zero period in ''TVArchEl::getVals()''.&lt;br /&gt;
** Added by a configuration field &amp;quot;Data combining mode (CombMode)&amp;quot;, as in the archive object, for specifying the data combination in the archiver, and the field in archive added by an item &amp;quot;From Archiver&amp;quot; by default.&lt;br /&gt;
** The &amp;quot;Active DAQ Attribute (DEPRECATED)&amp;quot; item of the archive source renamed to &amp;quot;DAQ Attribute actively&amp;quot; and unmarked deprecated due to it is the single way of creation multiple archives to single source.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Транспорти}}&lt;br /&gt;
* FIX: Функція запиту загального Інтерфейсу Керування ''cntrIfCmd()'' попереджена від будь якої локальної-прямої-користувацької автентифікації за переспрямування до проміжних вузлів OpenSCADA, що особливо актуально для віддалених підключень UI.Vision від різних користувачів.&lt;br /&gt;
* Журналювання трафіку у файл доповнено ротацією файлів.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Інтерфейс Користувача}}&lt;br /&gt;
* FIX:Vision,WebVision: Виправлення компенсації часток реальних чисел у позиції і розмірі для правильного вирівнювання внутрішнього вмісту віджетів з різним розміром, коли масштаб більше 1. Запобігання аварійного завершення функції ''VCADiagram::TrendObj::loadTrendsData()'' за нуля у &amp;quot;wantPer&amp;quot;.&lt;br /&gt;
* QTCfg,Vision: Розмір табуляції текстової області встановлено динамічним і обрахованим із метрики шрифту для стандартних восьми символів &amp;quot;00000000&amp;quot;.&lt;br /&gt;
* {{Anch|Upd9WebCfgD|WebCfgD}}: Реалізовано підсвітлювання синтаксису у текстових полях.&lt;br /&gt;
* FIX:WebVision: Відновлення функції зміни користувача після запобігання заповненню повідомленнями підключення до того-ж сеансу від іншого вузла і іншого агента. Додання користувача останнього запиту для запобігання відкриття нових сеансів після зміни користувача від оригінального.&lt;br /&gt;
* FIX:VCAEngine: Перенесення встановлення прапорця Attr::VizerSpec для атрибутів із префіксом &amp;quot;vs_&amp;quot; до спадкування атрибутів і лише для віджетів сеансу. Уніфікація власних прапорців Атрибуту поділом на збережені і оперативні.&lt;br /&gt;
* FIX:QTStarter.lib_qtgen: Алгоритм підсвітлення синтаксису у ''SnthHgl::rule()'' очищено від зайвих контейнерів і уніфіковано.&lt;br /&gt;
* FIX:Vision: Запобігання аварійному завершенню у обробнику події ShapeFormEl за незавершеної ініціалізації, тобто відсутня змінна &amp;quot;addrWdg&amp;quot;. Запобігання зміні користувача для переспрямованих підключень.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/11/en&amp;diff=94040</id>
		<title>Translations:Documents/Release 0.9/Update 9/11/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/11/en&amp;diff=94040"/>
				<updated>2026-05-12T16:16:06Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{CntHdr|Archives-History}}&lt;br /&gt;
* FIX:Value: Prevented of crashing at zero period in ''TVArchEl::getVals()''.&lt;br /&gt;
** Added by a configuration field &amp;quot;Data combining mode (CombMode)&amp;quot;, as in the archive object, for specifying the data combination in the archiver, and the field in archive added by an item &amp;quot;From Archiver&amp;quot; by default.&lt;br /&gt;
** The &amp;quot;Active DAQ Attribute (DEPRECATED)&amp;quot; item of the archive source renamed to &amp;quot;DAQ Attribute actively&amp;quot; and unmarked deprecated due to it is the single way of creation multiple archives to single source.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/7/en&amp;diff=94036</id>
		<title>Translations:Documents/Release 0.9/Update 9/7/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/7/en&amp;diff=94036"/>
				<updated>2026-05-12T16:16:05Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{CntHdr|OpenSCADA libraries and projects}}&lt;br /&gt;
* LibsDB.OscadaLibs:&lt;br /&gt;
** Adding the new library &amp;quot;Json&amp;quot; of support JSON from Arkadii Kysil.&lt;br /&gt;
** FIX:{tmplib_base,tmplib_DevLib}.UPS: Fixing of writing to the writable attributes.&lt;br /&gt;
** tmplib_base:&lt;br /&gt;
*** digAlarm,anUnif,anUnifSt,codeState: The input processing procedure added by a parameter &amp;quot;args&amp;quot; as a link to arguments of the main procedure.&lt;br /&gt;
*** {{Anch|Upd9UPSDirDevs|UPS}}: Expanding by implementing devices directly in this template starting from Must EP2X. Appending of attributes transferring in parameters on the template base with their definition in the new attribute &amp;quot;Elements definition (defs)&amp;quot;. Adding the ''alarm()'' function for true control of borders with hysteresis.&lt;br /&gt;
*** FIX:manInUnif: Preventing of setting stored value to PLC at start, so overwriting actual one, also at the signal out the scale.&lt;br /&gt;
*** FIX:{{Anch|Upd9DSMARTInProc|DiskSMART}}: Adding the input processing procedure for processing specific fields and adding new derivative fields. The &amp;quot;Item definitions&amp;quot; field added a default list of specific interpretation the SMART fields. Improving some original messages.&lt;br /&gt;
*** anUnif: The alarm message of signal exceeding hardware border added by this wrong value.&lt;br /&gt;
** tmplib_DevLib:&lt;br /&gt;
*** mbBase,ergomera625: Improving the syntax highlight rules for types like to &amp;quot;u4&amp;quot;.&lt;br /&gt;
*** {{Anch|Upd9IEC62056Part21|IEC62056}}: Expanding by support part 21 (direct local data exchange) and improvements:&lt;br /&gt;
**** adding input procedure for processing read OBISes;&lt;br /&gt;
**** list of OBISes appeded by description and the syntax higflight;&lt;br /&gt;
**** adding an option of control bytes LE order of integers;&lt;br /&gt;
**** ID of the attribute of representing OBIS appended by &amp;quot;ClassId&amp;quot; and &amp;quot;a&amp;quot;;&lt;br /&gt;
**** &amp;quot;ClassId&amp;quot; of OBIS expanded up to two bytes;&lt;br /&gt;
**** trimming the visible strings up to first zero byte;&lt;br /&gt;
**** adding preset devices with known main OBISes;&lt;br /&gt;
**** address field expanded for support single digit like to SN;&lt;br /&gt;
**** the &amp;quot;tr&amp;quot; and &amp;quot;ctx&amp;quot; attributes moved from IO.&lt;br /&gt;
*** {{Anch|Upd9MbBaseInProcAtrUpd|mbBase}}: Expanded by an input procedure for customizing without changing the template. Expanding in support by the types &amp;quot;Int8 (i8)&amp;quot; and &amp;quot;Double (d)&amp;quot;, also as by recreation attributes with changed type and removing attributes are missing in the items list. Allowing to specify address of the register in HEX and OCTAL. Adding by applying entries of the register syntax of the module [[Special:MyLanguage/Modules/ModBus|DAQ.ModBus]].&lt;br /&gt;
* LibsDB.vcaBase:&lt;br /&gt;
** wlb_Main: The library appended by the frame &amp;quot;Dynamic frame (dynFrame)&amp;quot; with documenting.&lt;br /&gt;
*** The library appended by an extra icon 'weath13n' for the widget &amp;quot;Weather (weather)&amp;quot;.&lt;br /&gt;
*** FIX:{{Anch|Upd9LabExtSt|TextLab,ImgLab}}: Expanding for processing conflict states &amp;quot;false &amp;amp;&amp;amp; false&amp;quot; and &amp;quot;true &amp;amp;&amp;amp; true&amp;quot; taking the parameters from item [2] and [3].&lt;br /&gt;
**** Adding alarms generation from the &amp;quot;Error (err)&amp;quot; attribute.&lt;br /&gt;
**** FIX: Renaming the states name &amp;quot;Enable&amp;quot; to &amp;quot;Enabled&amp;quot; and &amp;quot;Disable&amp;quot; to &amp;quot;Disabled&amp;quot;.&lt;br /&gt;
**** FIX: Unifying the alarms blinking with just changing work color to alarm one in the second cycle.&lt;br /&gt;
*** alarmsAct,alarmsSt: Adaptation to human-readable names in messages.&lt;br /&gt;
*** FIX:{{Anch|Upd9StoreHouseExt|storeHouse}}: Moving the Control Panel formation and updating to the table updating code.&lt;br /&gt;
**** FIX: Separating data preparing part from formation the visual data for early preparing the lists and with limiting time of processed items.&lt;br /&gt;
**** Appending to processing the event ws_TableEdit of checking validity row and column.&lt;br /&gt;
**** The retry cycles and updating rewrote for specifying time in &amp;quot;toCalcCycles&amp;quot; in seconds and updating after its elapsing.&lt;br /&gt;
**** FIX: Preventing of show second filter field in the item form after change the user.&lt;br /&gt;
**** FIX: Fixing the images overview at selecting in the file combobox.&lt;br /&gt;
**** Specifying the transaction mode in all ''SQLReq()'' calls.&lt;br /&gt;
**** The control panel appended by the selection fields.&lt;br /&gt;
**** Rewrote in preparing the column list for filters with using redefined names of the standard fields &amp;quot;NAME&amp;quot;, &amp;quot;DSCR&amp;quot;, and with true sorting.&lt;br /&gt;
**** In file sizes used new function ''SYS.cpct2str()''.&lt;br /&gt;
*** FIX:ImgLab: Taking the background color even empty from images list at its presence.&lt;br /&gt;
**** FIX: Setting width of the border to 2 when it is zero at the selection blinking, that is for active elements.&lt;br /&gt;
**** Format of the attribute &amp;quot;Images (imgs)&amp;quot; moved to the help, that is to the second line.&lt;br /&gt;
*** FIX:objProps: Appending of tracing the user changing, appending for support real properties.&lt;br /&gt;
*** ElCadr: Adding the attribute &amp;quot;Parameter: Force disable PID (prmNotPID)&amp;quot; for disabling PID show at presence SP.&lt;br /&gt;
*** cntrPaspExt: Hide attributes in EVAL. Generating for user action messages at changing the editable properties.&lt;br /&gt;
*** TextLab: Adapted to use the default background at its missing in &amp;quot;st_text&amp;quot;.&lt;br /&gt;
** wlb_doc:&lt;br /&gt;
*** FIX:docRepYear: Fixing of processing the last value in year for data from archives.&lt;br /&gt;
*** docUsersSet: Expanding by a possibility to specify-configure of used archivers.&lt;br /&gt;
* Model.AGLKS.Model.DAQ_BlockCalc.gen_cnt: Appending the description by the field &amp;quot;MessName: {Name}&amp;quot;.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/8/en&amp;diff=94037</id>
		<title>Translations:Documents/Release 0.9/Update 9/8/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/8/en&amp;diff=94037"/>
				<updated>2026-05-12T16:16:05Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{CntHdr|API}}&lt;br /&gt;
''!!!!:Changes'':&lt;br /&gt;
* SYS.ResString: ''getVal()'' set to constant.&lt;br /&gt;
* Archives,DAQ.*: Enumeration items of the source modes added by the &amp;quot;SRC_&amp;quot; prefix and &amp;quot;ActiveAttr&amp;quot; renamed to &amp;quot;DAQAttrAct&amp;quot;; items of the combination modes added by the &amp;quot;CMB_&amp;quot; prefix and an item &amp;quot;FromArchiver&amp;quot;; items of the data mode added by the &amp;quot;DM_&amp;quot; prefix instead &amp;quot;DM&amp;quot;.&lt;br /&gt;
* DAQ.TFunction: Switching the method &amp;quot;mStor&amp;quot; to ResString.&lt;br /&gt;
''Appends'':&lt;br /&gt;
* SYS.CntrNode,Protocol.HTTP: Adding the service requests &amp;quot;select:/db/list&amp;quot; by an option &amp;quot;nostor&amp;quot; for the empty item.&lt;br /&gt;
* SYS,UI.VCAEngine: Appending the definition &amp;quot;starts_with&amp;quot; as link to the STL::String function &amp;quot;compare(0,strlen(str),str) == 0&amp;quot; to replace ''compare()'' and ''find()'' in this role.&lt;br /&gt;
* Archives,DAQ.DAQGate: The TMArchivator object appended by a reimplementation TMess::SRec with a container of storing double messages in one second.&lt;br /&gt;
* SYS: The file's User API functions appended by ''fileRotate()'' for files rotation mostly the logging type.&lt;br /&gt;
** TCntrNode: new function ''nodeMessSnthHgl()''.&lt;br /&gt;
** XMLNode: The function ''load()'' appended of parsing pure HTML with an option LD_HTML. The function ''save()'' appended by an option HoldEmptyAttr of holding empty attributes.&lt;br /&gt;
** XMLNodeObj: Added by the User API and API function ''childDel( AutoHD&amp;lt;XMLNodeObj&amp;gt; nd )''. The User API function ''setAttr()'' added by a synonym ''attrSet()''.&lt;br /&gt;
* DAQ:&lt;br /&gt;
** TController,TParamContr: Adding a function ''justCreated()'' of detection the just creation.&lt;br /&gt;
** TParamContr: Added by a virtual function ''loadVal()'' of reloading all or one stored values.&lt;br /&gt;
** TPrmTempl.Impl.''archAttrs()'': Appended by a timestamp argument for using common timestamp in archiving.&lt;br /&gt;
** {{Anch|Upd9DirValAccess|ModBus,OPC_UA,Siemens}}: The Controller Object added by a User API function ''value()'' of direct value getting and setting at the source-specific address and through the address registering for getting-setting in the generic pooling cycle of the source.&lt;br /&gt;
* Archives: The TVArchivator object is added by the functions ''combMode()'' and ''setCombMode()''.&lt;br /&gt;
* JavaLikeCalc: The User API functions to string appended by ''sep2path()''.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/9/en&amp;diff=94038</id>
		<title>Translations:Documents/Release 0.9/Update 9/9/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/9/en&amp;diff=94038"/>
				<updated>2026-05-12T16:16:05Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{CntHdr|SYS}}&lt;br /&gt;
* Building: &lt;br /&gt;
** configure.ac: Core library version risen to 3:16:0 and the program version risen to 0.9.9. The module version of the subsystem &amp;quot;DAQ&amp;quot; risen to 16 and the subsystem &amp;quot;Archives&amp;quot; risen to 15.&lt;br /&gt;
** Appended for building to Debian 13 and Ubuntu 26.04 LTS.&lt;br /&gt;
** .,DAQ.Siemens: Generic adaptation for building on Debian 13, adaptation for support PCRE2 since missing old PCRE libraries on Debian 13 with moving the variable &amp;quot;vSz&amp;quot; to a definition TRegExp_vSz for old libraries.&lt;br /&gt;
** DB.MySQL: Adaption to build with headers without definition the &amp;quot;my_bool&amp;quot; type on Ubuntu 26.04 LTS.&lt;br /&gt;
* XMLNode: The function ''load()'' appended of parsing pure HTML with: tags without closing, attributes without a value, attribute values without quoting, closing tags switching.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/10/en&amp;diff=94039</id>
		<title>Translations:Documents/Release 0.9/Update 9/10/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/10/en&amp;diff=94039"/>
				<updated>2026-05-12T16:16:05Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{CntHdr|DAQ}}&lt;br /&gt;
* Templates: Enabling the selectable fields in the &amp;quot;Template configuration&amp;quot; tab for constants.&lt;br /&gt;
* FIX:{ModBus,OPC_UA,Siemens}.LogicLev: Preventing of wrong writing to PLC at RO links, when the value changed in the procedure.&lt;br /&gt;
* LogicLev,ModBus,OPC_UA,Siemens: The User API functions ''attrAdd()'' and ''attrDel()'' of managing user attributes moved from LogicLev, ModBus, OPC_UA, Siemens to the core parameter object and for all dynamic parameters at ''dynElCntr()''. Adding of {{Anch|Upd9StoreDynVal|storing values}} of the user's dynamic attributes.&lt;br /&gt;
* FIX:{{Anch|Upd9SimStab|Siemens}}: Moving the SELF_ISO_TCP mode to the generic ''outAt()'' function. Debugging the connection errors for the modes SELF_ISO_TCP and ISO_TCP on the actual S7-1500 connection.&lt;br /&gt;
* System: Adding the data acquisition of the slow sources per some cycle by the new configuration field &amp;quot;In cycle call for slow sources&amp;quot;.&lt;br /&gt;
** {{Anch|Upd9SystemSMART|DA_SMART}}: Adding for support reading the NVMe Log with moving on parsing by RE and reading string fields, like to temperature.&lt;br /&gt;
** DA_PROC: Appended by obtaining the field &amp;quot;User loading (%)&amp;quot; and &amp;quot;System loading (%)&amp;quot; from the file &amp;quot;/proc/{PID}/stat&amp;quot; also with the value concatenation for group selection.&lt;br /&gt;
* FIX:JavaLikeCalc: Fixing permission to the Function node after moving under ACL.&lt;br /&gt;
* FIX:{{Anch|Upd9LogicLevRefl|LogicLev}}: Improving the parameter reflection mode by a possibility to connect later the missing at the start sources, also as unlinking-unlocking disabled sources.&lt;br /&gt;
* FIX:DAQGate: Fixing ''messSet()'' by taking parameter whole ID from the first line of the argument &amp;quot;prm&amp;quot; and with its normalization by the prefix &amp;quot;prm_&amp;quot; removing. Set for writing to remote stations without checking the value at equality, due to the previous value can be not actual at situative reading.&lt;br /&gt;
* ModBus: Unified in registering values at the ModBus-specific address in other variant of the function ''regVal()''.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/16/en&amp;diff=94032</id>
		<title>Translations:Documents/Release 0.9/Update 9/16/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/16/en&amp;diff=94032"/>
				<updated>2026-05-12T16:16:04Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{CntHdr|Main WWW-resources, documentation of the project and subprojects, and localisation}}&lt;br /&gt;
* appending the [[Special:MyLanguage/Libs/Main_graphical_elements|Main elements library of the user interface]] by description the new element-frame &amp;quot;Dynamic frame&amp;quot;;&lt;br /&gt;
* updating information of the subproject [[Special:MyLanguage/Sub-projects/Automatic_Builder_of_OpenSCADA|Automatic Builder of OpenSCADA]];&lt;br /&gt;
* adding Portuguese translation from Diego Eckhard for parts: SYS, DAQ.ModBus, Transport.{Sockets,SSL,Serial}, UI.{QTStarter,QTCfg,VCAEngine,Vision}.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/15/en&amp;diff=94033</id>
		<title>Translations:Documents/Release 0.9/Update 9/15/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/15/en&amp;diff=94033"/>
				<updated>2026-05-12T16:16:04Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{CntHdr|New and significantly updated parts}}&lt;br /&gt;
* OpenSCADA Core: 3:15:0 =&amp;gt; '''3:16:0'''&lt;br /&gt;
: ([[#Upd9InitCon|Implementing initiative connections — fixes and expandings of the conceptual changes of the previous updates]], [[#Upd9MessTrFix|Messages Translation — fixes of the conceptual changes of the previous updates]])&lt;br /&gt;
* OpenSCADA &amp;quot;DAQ&amp;quot; subsystem: 15 =&amp;gt; '''16'''&lt;br /&gt;
* OpenSCADA &amp;quot;Archives&amp;quot; subsystem: 14 =&amp;gt; '''15'''&lt;br /&gt;
* DAQ.Siemens: 4.5 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;4.8&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9SimStab|Common stabilization in the ISO_TCP connection]], [[#Upd9DirValAccess|Direct value getting and setting at the source-specific address]], [[#Upd9StoreDynVal|Storing values of the user's dynamic attributes]])&lt;br /&gt;
* DAQ.System: 3.3 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;3.5&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9SystemSMART|Reading the NVMe Log with moving on parsing by RE and reading string fields]])&lt;br /&gt;
* DAQ.LogicLev: 2.9 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.11&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9LogicLevRefl|Improving the parameter reflection mode]], [[#Upd9StoreDynVal|Storing values of the user's dynamic attributes]])&lt;br /&gt;
* DAQ.OPC_UA: 2.8 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.10&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9DirValAccess|Direct value getting and setting at the source-specific address]], [[#Upd9StoreDynVal|Storing values of the user's dynamic attributes]])&lt;br /&gt;
* DAQ.ModBus: 3.9 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;3.11&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9DirValAccess|Direct value getting and setting at the source-specific address]], [[#Upd9StoreDynVal|Storing values of the user's dynamic attributes]])&lt;br /&gt;
* DAQ.DAQGate: 2.14 =&amp;gt; '''2.15'''&lt;br /&gt;
* Protocol.HTTP: 3.9 =&amp;gt; '''3.11'''&lt;br /&gt;
* UI.WebCfgD: 2.8 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;3.0&amp;lt;/b&amp;gt;&lt;br /&gt;
: ([[#Upd9WebCfgD|Syntax highlight in the textareas]])&lt;br /&gt;
* UI.VCAEngine: 7.17 =&amp;gt; '''7.19'''&lt;br /&gt;
* UI.WebVision: 6.13 =&amp;gt; '''6.16'''&lt;br /&gt;
* UI.QTStarter: 6.0 =&amp;gt; '''6.1'''&lt;br /&gt;
* UI.QTCfg: 6.1 =&amp;gt; '''6.2'''&lt;br /&gt;
* UI.WebCfgD: 3.0 =&amp;gt; '''3.1'''&lt;br /&gt;
* LibsDB.OscadaLibs:&lt;br /&gt;
:* JavaLikeCalc.flb_Json: &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;0.3&amp;lt;/b&amp;gt;&lt;br /&gt;
:* base:&lt;br /&gt;
::* UPS: 1.3 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.2&amp;lt;/b&amp;gt;&lt;br /&gt;
::: ([[#Upd9UPSDirDevs|Implementing devices directly, attributes definition in &amp;quot;Elements definition (defs)&amp;quot;]])&lt;br /&gt;
::* DiskSMART: 1.0 =&amp;gt; '''1.1'''&lt;br /&gt;
::: ([[#Upd9DSMARTInProc|Input processing procedure]])&lt;br /&gt;
::* initRemCntr: 1.1 =&amp;gt; '''1.2'''&lt;br /&gt;
:* DevLib.mbBase: 1.3 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;1.6&amp;lt;/b&amp;gt;&lt;br /&gt;
:: ([[#Upd9MbBaseInProcAtrUpd|Input processing procedure, additional types and flexible attributes update]])&lt;br /&gt;
:* LowDevLib:&lt;br /&gt;
::* IEC62056: 1.1 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.0&amp;lt;/b&amp;gt;&lt;br /&gt;
::: ([[#Upd9IEC62056Part21|Support 21 part and many improvements]])&lt;br /&gt;
::* S1BP: 1.0 =&amp;gt; '''1.1'''&lt;br /&gt;
* LibsDB.vcaBase.Main: 2.2 =&amp;gt; '''2.3'''&lt;br /&gt;
:* dynFrame: &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;1.2&amp;lt;/b&amp;gt;&lt;br /&gt;
:* storeHouse: 2.1 =&amp;gt; &amp;lt;b style=&amp;quot;color: red&amp;quot;&amp;gt;2.3&amp;lt;/b&amp;gt;&lt;br /&gt;
:: ([[#Upd9StoreHouseExt|Significant extending and fixing]])&lt;br /&gt;
:* TextLab: 1.2 =&amp;gt; '''1.3'''&lt;br /&gt;
:: ([[#Upd9LabExtSt|States extending]])&lt;br /&gt;
:* ImgLab: 1.2 =&amp;gt; '''1.3'''&lt;br /&gt;
:: ([[#Upd9LabExtSt|States extending]])&lt;br /&gt;
:* cntrPaspExt: 1.2 =&amp;gt; '''1.3'''&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/5/en&amp;diff=94034</id>
		<title>Translations:Documents/Release 0.9/Update 9/5/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/5/en&amp;diff=94034"/>
				<updated>2026-05-12T16:16:04Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{CntHdr|{{Anch|Upd9InitCon|CONCEPTUAL &amp;gt; [[Special:MyLanguage/Documents/DAQ#PassiveAndInitiative|Concentration the different OpenSCADA-hosts on the common server, both for IoT on OpenSCADA and other]] (fixes of the [[Special:MyLanguage/Documents/Release_0.9#Upd8InitCon|conceptual changes of the previous updates]]) }} }}&lt;br /&gt;
* LibsDB.vcaBase.wlb_Main.dynFrame: Advancing the frame implementation up to the possibility of items real placing, linking, generic control, saving and restoring.&lt;br /&gt;
* LibsDB.OscadaLibs:&lt;br /&gt;
** FIX:tmplib_base.initRemCntr: Fixing of saving the table of the remote OpenSCADA hosts after removing old ones.&lt;br /&gt;
*** Adding of direct freeing data of requests.&lt;br /&gt;
*** The key changed to force two symbols in HEX.&lt;br /&gt;
*** Allowed of updating the remote logical source objects for new sources.&lt;br /&gt;
*** The protection time of the execution increased to 60 seconds.&lt;br /&gt;
*** Checking and removing logical parameters with missing sources.&lt;br /&gt;
*** Setting the field &amp;quot;Allow the automatic removal of parameters and attributes&amp;quot; and &amp;quot;Synchronization time with the remote station, seconds&amp;quot; of the [[Special:MyLanguage/Modules/DAQGate|DAQGate module]].&lt;br /&gt;
** Security_user,Transport_in.{Sockets,SSL}::RemCntr: Appending detailed description of the objects target and using.&lt;br /&gt;
* data/{oscada_plc.xml,oscada_server.xml}: Simplifying the station name for short remote identifiers.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/6/en&amp;diff=94035</id>
		<title>Translations:Documents/Release 0.9/Update 9/6/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/6/en&amp;diff=94035"/>
				<updated>2026-05-12T16:16:04Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{CntHdr|{{Anch|Upd9MessTrFix|CONCEPTUAL &amp;gt; Messages Translation (fixes of the [[Special:MyLanguage/Documents/Release_0.9#MessTrFix|conceptual changes of the previous updates]]) }} }}&lt;br /&gt;
* LibsDB.vcaBase:&lt;br /&gt;
** FIX:wlb_Main.ElViewGraph: The attribute &amp;quot;Dimension (ed)&amp;quot; set to the type &amp;quot;String (translate)&amp;quot; to restore the transitive translation of the DAQ-Source messages at the links in the DYNAMIC-MULTILANGUAGE mode.&lt;br /&gt;
* FIX:DAQ.TDAQS,Archive.TArchives: Fixing dynamic translation of names of the redundant objects.&lt;br /&gt;
* FIX:SYS,DAQ.{.,JavaLikeCalc}: TFunction::IO: Fixing-finishing of the default value translation in the constructor and for the DAQ-Templates with its implementations.&lt;br /&gt;
* SYS:&lt;br /&gt;
** The Translation Manager is appended by an information into the last line about achieving an limit time.&lt;br /&gt;
** FIX:TMess: Adding of processing prestored I18N messages in the long ''TMess::translGet()'' variant, which is called from ''objFuncCall()'', instead the translation loss here.&lt;br /&gt;
* FIX:DB: Preventing the warnings &amp;quot;Some messages completely cleaned for the base ...&amp;quot; for items with no translation fields.&lt;br /&gt;
* FIX:DAQ: Fixing dynamic translation the select items from the default field in ''addLinksAttrs()''.&lt;br /&gt;
* FIX:UI.VCAEngine: The configuration value fixed in translation on the tab &amp;quot;Links&amp;quot; and processing the field translation for values with the prefix &amp;quot;val:&amp;quot; and switching to its.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/2/en&amp;diff=94030</id>
		<title>Translations:Documents/Release 0.9/Update 9/2/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/2/en&amp;diff=94030"/>
				<updated>2026-05-12T16:16:03Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This update of the [[Special:MyLanguage/Documents/Release_0.9|0.9 LTS release]] fixes about 70 bugs and appends MANY improvements, which you can read wholly in [http://oscada.org/svn/tags/openscada_0.9/ChangeLog?p=3066 the update ChangeLog].&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/14/en&amp;diff=94031</id>
		<title>Translations:Documents/Release 0.9/Update 9/14/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Documents/Release_0.9/Update_9/14/en&amp;diff=94031"/>
				<updated>2026-05-12T16:16:03Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{CntHdr|[[Special:MyLanguage/Sub-projects/Automation_Linux_distributive|Automation Linux distributive of the project OpenSCADA]]}}&lt;br /&gt;
* adaptation of work the hosting server under constant DDoS in ~3 million unique IPs and with short time under power net by economy the batteries, and under OpenSCADA control;&lt;br /&gt;
* appending Debian 13 as the distributive base;&lt;br /&gt;
* moving back to the OpenSCADA server of building the Debian 9 base;&lt;br /&gt;
* moving of building the Debian 12,11,10 base to the Debian 13 environment with enabling back support SHA-1 here;&lt;br /&gt;
* switching the building conception to use '''sshfs''' in working remotely with the repositories;&lt;br /&gt;
* updating TDE to 14.1.4, 14.1.5 and next to 14.1.6;&lt;br /&gt;
* TDE &amp;gt; krusader-trinity &amp;gt; RAR: Loading the builtin TDEIO RAR library.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; TDEIO &amp;gt; media: Translation the FS options in the &amp;quot;propsdlg&amp;quot; plugin.&lt;br /&gt;
* TDE &amp;gt; tde-i18n-trinity &amp;gt; uk: Adding messages translation in patched packages to the Ukrainian part.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; KControl &amp;gt; Locale: Clearing the language settings to system ones.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity &amp;gt; TDELocale: Adding of obtaining country from environment.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity &amp;gt; TDEIO &amp;gt; SwitchLanguageDialog: Clearing all language setting.&lt;br /&gt;
* TDE &amp;gt; tdeutils-trinity &amp;gt; ARK: Adding &amp;quot;unrar-free&amp;quot; using.&lt;br /&gt;
* TDE &amp;gt; krusader-trinity &amp;gt; RAR: Adding &amp;quot;unrar-free&amp;quot; using.&lt;br /&gt;
* TDE &amp;gt; tdegraphics-trinity &amp;gt; kghostview: Represent PDF on Ghostscript 10.05.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity: KDesktop &amp;gt; Lock: Restoring the locking code to one in version 14.1.4 with extending for the lock dialog itself.&lt;br /&gt;
* TDE &amp;gt; tdepim-trinity &amp;gt; holiday_ua &amp;gt; HoliDays: Replacing by actual Holi Days and Memorial Days of Ukraine.&lt;br /&gt;
* TDE &amp;gt; kaffeine-trinity &amp;gt; xine-part: Adding translation the message &amp;quot;Impossible to obtain image!&amp;quot; to Ukrainian.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity: Preventing-oppressing double icons in the system tray from programs with equal window ID like to '''blueman''' and with an option of disabling that function, with fixing of using ''readBoolEntry()''.&lt;br /&gt;
* TDE &amp;gt; tqt3-trinity &amp;gt; Plugins &amp;gt; XIM: Calls ''XCloseIM()'' to prevent memory leaking.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity &amp;gt; TDEIO &amp;gt; KFileView: Processes file extensions with patterns at saving and doesn't reset the dialog size.&lt;br /&gt;
* TDE &amp;gt; kaffeine-trinity &amp;gt; xine-part: Allows to screenshot in any supported image-file format.&lt;br /&gt;
* TDE &amp;gt; tdesvn-trinity: Fixing of conflicts resolving in KDiff3, preventing of crashes at conflicts resolving, updating parent of changed item with all expandings.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; TDEIO &amp;gt; media: Restoring of using '''fuser'''.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; ksysguard: Removing the processes loading limit in 100%.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity &amp;gt; TDEIO &amp;gt; CopyJob: Don't rename directories and files overwrite for old, lesser and in different size.&lt;br /&gt;
* TDE &amp;gt; tdebase-trinity &amp;gt; TDEIO &amp;gt; SMB: Prevents double ''result()'' signal generation through errors.&lt;br /&gt;
* TDE &amp;gt; tdepim-trinity &amp;gt; knote: Adding the find only local per selected note.&lt;br /&gt;
* TDE &amp;gt; tdelibs-trinity: Complete disabling of processing for the unclassified devices due to it is very CPU intensive, especially on slow HW.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Sub-projects/Automatic_Builder_of_OpenSCADA/uk&amp;diff=94007</id>
		<title>Sub-projects/Automatic Builder of OpenSCADA/uk</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Sub-projects/Automatic_Builder_of_OpenSCADA/uk&amp;diff=94007"/>
				<updated>2026-05-11T12:20:52Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Назва !! Заснування !! Стан !! Учасники&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Sub-projects/Automatic Builder of OpenSCADA|Автоматичний Складальник OpenSCADA]] || Березень 2015 ||&lt;br /&gt;
Імплементовано у скриптах побудови, опрацювання репозиторіїв і гілок та перевірки цілей щодо складання до 100 цілей за допомогою: CHROOTів репозиторіїв Linux, VPS та різних під-оточень. Результатом функціонування Складальника є: [http://oscada.org/main/download/ свіжі та підписані репозиторії Linux, штампи Live Дисків та інші бінарні архіви OpenSCADA].&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;5&amp;quot; | Опис&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | Спрямуванням підпроєкту є спрощення розповсюдження-дистриб'юції проєкту OpenSCADA через автоматичне складання бінарних пакетів, їх готових до використання репозиторіїв та інших складних дистрибутивів на кшталт Живих Дисків.&lt;br /&gt;
* '''[http://oscada.org/ua/rozrobka/zavdannja/posts/core/the_automatic_openscada_builder/ Завдання Керування]'''&lt;br /&gt;
* '''[[Special:MyLanguage/Sub-projects/Automation_Linux_distributive|Linux дистрибутив автоматизації проєкту OpenSCADA]]'''&lt;br /&gt;
* '''[[Special:MyLanguage/Documents/How_to/Live_disk|Як створити Живий Диск]]'''&lt;br /&gt;
* '''Стан підтримки''': Викликається вручну після вивантаження SVN-змін для загального складання на сервері через ''oscadaCheck'' та домашньому ПК щодо нових оточень через ''oscadaCheck_ExtGen'', а також автоматично на початку години для &amp;quot;Raspbian&amp;quot; цілей на RPi3 через ''oscadaCheck_RPi''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Складач представлено двома загальними BASH-скриптами та декільком BASH-скриптами перевірки:&lt;br /&gt;
* '''oscadaCheck*''' — прості скрипти із переліком профілів складання для перевірки у ''oscadaRepBranches'' і залежно від хосту складання; вони зазвичай запускаються CRON-планувальником для нічних складань або вручну. Відомий наразі перелік профілів відповідно до Таблиці 2:&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck oscadaCheck] — загальний, використовується на сервері OpenSCADA;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_WorkAtLTS oscadaCheck_WorkAtLTS] — додатковий загальний, використовується на сервері OpenSCADA при новому випуску LTS версії;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_ExtGen oscadaCheck_ExtGen] — зовнішній загальний, використовується на Домашньому ПК Автора;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_ExtGen_WorkAtLTS oscadaCheck_ExtGen_WorkAtLTS] — додатковий зовнішній загальний, використовується на Домашньому ПК Автора при новому випуску LTS версії;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_RPi oscadaCheck_RPi] — зовнішні &amp;quot;Raspbian&amp;quot; цілі, використовується на RPi Автора;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_RPi_WorkAtLTS oscadaCheck_RPi_WorkAtLTS] — додаткові зовнішні &amp;quot;Raspbian&amp;quot; цілі, використовується на RPi Автора при новому випуску LTS версії.&lt;br /&gt;
* [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaRepBranches '''oscadaRepBranches'''] — для опрацювання переліку профілів вказаних в командному рядку у форматі &amp;quot;'''{Target}[:option[,optionN]][ =]{EN}{ForWork}{ForLTS}{ForLTSServ}{OmitSourceTree}'''&amp;quot;, де:&lt;br /&gt;
** &amp;quot;EN&amp;quot;{0|1} — увімкнення цілі;&lt;br /&gt;
** &amp;quot;ForWork&amp;quot;{0|1} — включення до складання для Робочої (Work) гілки;&lt;br /&gt;
** &amp;quot;ForLTS&amp;quot;{0|1} — включення до складання для загальних оновлень Стабільної (LTS) гілки;&lt;br /&gt;
** &amp;quot;ForLTSServ&amp;quot;{0|1} — включення до складання для сервісних оновлень Стабільної (LTS) гілки;&lt;br /&gt;
** &amp;quot;OmitSourceTree&amp;quot;{0|1} — оминати завантаження дерева вихідних із SVN, переважно для складання живих штампів.&lt;br /&gt;
* [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaBuild '''oscadaBuild'''] — для безпосереднього складання і розміщення готових пакетів та іншого для Стабільної (LTS) і Робочої (Work) гілок OpenSCADA.&lt;br /&gt;
&lt;br /&gt;
Files structure of the automation building system means:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
\-- /data/&lt;br /&gt;
    |-- oscada/&lt;br /&gt;
    |   |-- bin/&lt;br /&gt;
    |   |   |-- oscadaBuild&lt;br /&gt;
    |   |   |-- oscadaRepBranches&lt;br /&gt;
    |   |   |-- oscadaCheck&lt;br /&gt;
    |   |   \-- oscadaCheck_WorkAtLTS&lt;br /&gt;
    |   |-- build/                 =&amp;gt; work building folder, which contains the unpacked CHROOTs&lt;br /&gt;
    |   |   |-- log/               =&amp;gt; logs of the builds&lt;br /&gt;
    |   |   \-- *.stamp            =&amp;gt; stamps of the successful builds&lt;br /&gt;
    |   \-- chroot-data.tgz        =&amp;gt; contains the GPG singing key for the packages and their repositories of the builder&lt;br /&gt;
    \-- share_res/&lt;br /&gt;
        \-- ftp/                   =&amp;gt; FTP-folder of the building results&lt;br /&gt;
            |-- {Debian,ALTLinux}/ =&amp;gt; folders of the repositories of the Automation Linux distributive&lt;br /&gt;
            |-- Misc/&lt;br /&gt;
            |   \-- chroots/       =&amp;gt; folder of the archives of the CHROOTs of the building&lt;br /&gt;
            \-- OpenSCADA/         =&amp;gt; folders of the repositories of OpenSCADA&lt;br /&gt;
                |-- LTS/           =&amp;gt; folders of the LTS repositories of OpenSCADA&lt;br /&gt;
                \-- Work/          =&amp;gt; folders of the Work repositories of OpenSCADA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The automatic building system supports also its distribution at specific environments (for some building types) like to different hardware platforms, instead their CHROOTs sometime. The distribution is performed by moving part of the automatic builder outward by: deploying the bottom file structure only for needed targets, organization for the local file server and scheduling the sync script [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaSyncFtp oscadaSyncFtp] on the automatic builder core (say [[User:RomanSavochenko|Roman Savochenko]] for) — the main FTP-server.&lt;br /&gt;
&lt;br /&gt;
Наразі автоматичний складальник передбачає складання:&lt;br /&gt;
* Робочої (Work) версії (1) щодо останньої SVN-ревізії із тегом &amp;quot;(stable)&amp;quot;;&lt;br /&gt;
* Стабільної (LTS) версії (0.9.U.S) щодо загального (U) та сервісного (S) оновлення.&lt;br /&gt;
&lt;br /&gt;
For Author's buildings, the specified scrips adapted to work with the FTP-folder of the building results directly on the OpenSCADA server by help '''sshfs''', and expanded also by options for a possibility of free specifying the SVN-revision to the both branches.&lt;br /&gt;
&lt;br /&gt;
Адаптація [https://www.debian.org/devel/debian-live Живого проєкту Debian] до цього проєкту:&lt;br /&gt;
* ''/usr/lib/live/build/binary_iso'' — додання аргументу &amp;quot;-input-charset UTF-8&amp;quot; до змінної XORRISO_OPTIONS для дозволу на диску файлів в UTF-8;&lt;br /&gt;
* ''/usr/lib/live/build/installer_debian-installer'' — взято із Debian 12 оскільки він із Debian 13 має помилки зі складанням для Debian 10,11.&lt;br /&gt;
&lt;br /&gt;
'''Table 1''': Реалізовані профілі — типи складання.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ціль !! Результат !! Метод складання !! Зовнішнє розгортання !! Додаткове&lt;br /&gt;
|-&lt;br /&gt;
| SrcTar || Пакети вихідних, запаковані XZ TAR пакетами || CHROOT &amp;quot;Debian_7_32&amp;quot; || Так || Оновлює документацію OpenSCADA для LTS.&lt;br /&gt;
|-&lt;br /&gt;
| SrcRPM, CentOs*, SuSE*, Fedora*, ALTLinux*, Mandriva* || Вихідні та бінарні RedHat пакети для апаратних архітектур x86_32 і x86_64 || CHROOT || Так || Допускає підлаштування до специфіки латками &amp;quot;openscada_*.patch&amp;quot;.&amp;lt;br/&amp;gt;Викликом наданого сценарію &amp;quot;reposUpdate&amp;quot; у теці результатів, репозиторії пакетів можуть бути: створені, оновлені, підписані щодо пакетів та репозиторію загалом.&amp;lt;br/&amp;gt;Цільові параметри:&lt;br /&gt;
* &amp;quot;rep&amp;quot; — до теки репозиторію замість теки OpenSCADA;&lt;br /&gt;
* &amp;quot;dev&amp;quot; — монтувати системні теки до CHROOT (/dev, /dev/pts, /proc).&lt;br /&gt;
|-&lt;br /&gt;
| Debian*, Raspbian*, Ubuntu* || Пакети Debian для апаратних архітектур x86_32, x86_64, ARMHF, ARM64, NATIVE || CHROOT || Так || Допускає підлаштування до специфіки латками &amp;quot;openscada[-{platform}]_*.patch&amp;quot;.&amp;lt;br/&amp;gt;Викликом наданого сценарію &amp;quot;reposUpdate&amp;quot; у теці результатів, репозиторії пакетів можуть бути: створені, оновлені, підписані щодо пакетів та репозиторію загалом.&amp;lt;br/&amp;gt;Цільові параметри:&lt;br /&gt;
* &amp;quot;rep&amp;quot; — до теки репозиторію замість теки OpenSCADA.&lt;br /&gt;
|-&lt;br /&gt;
| Nokia* || Пакети Debian для апаратної архітектури ARMEL || [http://www.scratchbox.org/ Scratchbox] || Так || Допускає підлаштування до специфіки латками &amp;quot;openscada_*.patch&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC*, LP8x81* || TAR пакети прошивок ПЛК для архітектури x86_32 || [[Special:MyLanguage/Sub-projects/Server#VPS:_ALTLinux32_builder|VPS: bldrALT32.oscada]] || Ні || Використовує mkimage профілі ALTLinux: &amp;quot;mkimage-profiles-5-plc&amp;quot;, &amp;quot;mkimage-profiles-5-plc-LP8x81&amp;quot;, &amp;quot;mkimage-profiles-6-plc&amp;quot;, &amp;quot;mkimage-profiles-6-plc-LP8x81&amp;quot;.&amp;lt;br/&amp;gt;Цільові параметри:&lt;br /&gt;
* &amp;quot;UI&amp;quot; — включити Користувацький Інтерфейс, лише для ALTLinux 5;&lt;br /&gt;
* &amp;quot;rt1&amp;quot; — використати ядро &amp;quot;rt1-up&amp;quot;, для ALTLinux 6.&lt;br /&gt;
|-&lt;br /&gt;
| Live_ALT || Гібридний ISO штамп або TAR пакет Живого Диску [[Special:MyLanguage/Sub-projects/Automation_Linux_distributive#ALTLinux|Linux дистрибутиву Автоматизації заснованого на ALTLinux]] || [[Special:MyLanguage/Sub-projects/Server#VPS:_ALTLinux32_builder|VPS: bldrALT32.oscada]] || Ні || Використовує ALTLinux mkimage профіль &amp;quot;mkimage-profiles-6-kdesktop&amp;quot;.&amp;lt;br/&amp;gt;Оновлює MD5SUM ISO штампів у файлі &amp;quot;MD5SUM&amp;quot;.&amp;lt;br/&amp;gt;Цільові параметри:&lt;br /&gt;
* &amp;quot;flash&amp;quot; — скласти TAR пакет замість ISO штампу.&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb || Гібридний ISO штамп Живого Диску [[Special:MyLanguage/Sub-projects/Automation_Linux_distributive#Debian|Linux дистрибутиву Автоматизації заснованого на Debian]] || [[Special:MyLanguage/Sub-projects/Server#VPS:_Debian.7B8.2C9.7D_builder|VPS: bldrDeb8.oscada]]; home.home || Ні || Використовує [https://www.debian.org/devel/debian-live/ профілі Живої Побудови] Debian: live7-32, live7-64, live8-32, live8-64, live9-32, live9-64, live10-32, live10-64, live11-32, live11-64.&amp;lt;br/&amp;gt;Оновлює MD5SUM ISO штампів у файлі &amp;quot;MD5SUM&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| ICP_DAS_LP_ARM, SMH2Gi || TAR пакети прошивок ПЛК для апаратної архітектури ARM. || [[Special:MyLanguage/Sub-projects/Server#VPS:_Debian.7B8.2C9.7D_builder|VPS: bldrDeb8.oscada]] + TOOLCHAIN || Ні || Використовує відповідні TOOLCHAINs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Таблиця 2''': Актуальні цілі складання (на 01.01.7531/01.03.2023).&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ціль(і) !! OpenSCADA !! Хост !! Примітки&lt;br /&gt;
|-&lt;br /&gt;
| SrcTar || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| SrcRPM || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Debian''&lt;br /&gt;
|-&lt;br /&gt;
| Debian_13_{32,64,armhf,arm64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_13_{32,64,armhf,arm64}:rep || Work+LTS+ServLTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_12_{32,64,armhf,arm64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_12_{32,64,armhf,arm64}:rep || Work+LTS+ServLTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_11_{32,64,armhf,arm64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_11_{32,64,armhf,arm64}:rep || Work+LTS+ServLTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_10_{32,64,armhf} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_10_{32,64,armhf}:rep || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_9_{32,64,armhf} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_9_{32,64,armhf}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_8_{32,64,armhf} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_8_{32,64,armhf}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_7_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_7_{32,64}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_6_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Raspbian, the same Debian but for [https://www.raspberrypi.org/ Raspberry Pi] — a very specific ARMv6 environment for the BCM2835 and early chips mostly.''&lt;br /&gt;
|-&lt;br /&gt;
| Raspbian_9_native || Work+LTS || pi.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Raspbian_8_native || LTS || pi.home ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Ubuntu''&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_26.04_{32,64} || Work+LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_24.04_{32,64} || Work+LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_22.04_{32,64} || LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_20.04_{32,64} || LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_18.04_{32,64} || LTS || home.home || Very new Linux kernel for CHROOT on oscada.org&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_16.04_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_14.04_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_12.04_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_11.10_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_10.04_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''CentOs''&lt;br /&gt;
|-&lt;br /&gt;
| CentOs_8_64:dev || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| CentOs_7_64 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| CentOs_6_{32,64} || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''SuSE''&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_15_64:dev || LTS || home.home || Very new Linux kernel for CHROOT on oscada.org. GPG2 needs for mounting the system folders.&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_13_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_12_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_11_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''ALTLinux''&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_7_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_7_{32,64}:rep || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_6_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_6_{32,64}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_5_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_5_{32,64}:rep || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Fedora''&lt;br /&gt;
|-&lt;br /&gt;
| Fedora_12_32 || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Mandriva''&lt;br /&gt;
|-&lt;br /&gt;
| Mandriva_2011_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Mandriva_2010_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Nokia''&lt;br /&gt;
|-&lt;br /&gt;
| Nokia_800 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Nokia_900 || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Nokia_950 || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''PLC+Embedded''&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT6 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT6:rt1 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT5 || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT5:UI || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT6 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT6:rt1 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT5 || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT5:UI || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| SMH2Gi || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| ICP_DAS_LP_ARM || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| TionPro270 || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Live''&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb13_64 || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb12_{32,64} || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb11_{32,64} || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb10_{32,64} || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb9_{32,64} || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb8_{32,64} || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb7_{32,64} || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_ALT || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_ALT:flash || - || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Sub-projects/Automatic_Builder_of_OpenSCADA/en&amp;diff=94006</id>
		<title>Sub-projects/Automatic Builder of OpenSCADA/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Sub-projects/Automatic_Builder_of_OpenSCADA/en&amp;diff=94006"/>
				<updated>2026-05-11T12:20:51Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Founded !! Status !! Members&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Sub-projects/Automatic Builder of OpenSCADA|Automatic Builder of OpenSCADA]] || May 2015 ||&lt;br /&gt;
Implemented in scripts of the building, repositories and branches processing and targets checking for building for up to 100 targets by: CHROOTs of the Linux repositories, VPS and different sub-environments.&lt;br /&gt;
As the result of the Builder work is: [http://oscada.org/main/download/ the fresh and signed packages repositories of Linux, Live Disk images and other binary archives of OpenSCADA].&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;5&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The sub-project is aimed to make easy the project OpenSCADA distribution through automatic building the binary packages, their ready to use repositories and other complex distributives like to Live Disks.&lt;br /&gt;
* '''[http://oscada.org/en/development/tasks/posts/core/the_automatic_openscada_builder/ Managing Task]'''&lt;br /&gt;
* '''[[Special:MyLanguage/Sub-projects/Automation_Linux_distributive|Automation Linux distributive of the project OpenSCADA]]'''&lt;br /&gt;
* '''[[Special:MyLanguage/Documents/How_to/Live_disk|How to Live Disk]]'''&lt;br /&gt;
* '''State of the support''': Called manually after committing SVN-changes for general build on the server via ''oscadaCheck'' and home PC for new environments via ''oscadaCheck_ExtGen'', and automatically at the beginning of an hour for &amp;quot;Raspbian&amp;quot; targets on RPi3 via ''oscadaCheck_RPi''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The builder is represented by two common BASH-scripts and several checking BASH-scripts:&lt;br /&gt;
* '''oscadaCheck*''' — simple scripts with list the building profiles for checking in ''oscadaRepBranches'' and depending on the building host; they are started typically by the CRON schedule for night builds or manually. Known currently profiles list corresponding to Table 2:&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck oscadaCheck] — generic one used on the OpenSCADA server;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_WorkAtLTS oscadaCheck_WorkAtLTS] — additional generic one used on the OpenSCADA server at the new LTS version release;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_ExtGen oscadaCheck_ExtGen] — external generic one used on the Author Home PC;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_ExtGen_WorkAtLTS oscadaCheck_ExtGen_WorkAtLTS] — additional external generic one used on the Author Home PC at the new LTS version release;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_RPi oscadaCheck_RPi] — external &amp;quot;Raspbian&amp;quot; targets' one used on the Author RPi;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_RPi_WorkAtLTS oscadaCheck_RPi_WorkAtLTS] — additional external &amp;quot;Raspbian&amp;quot; targets' one used on the Author RPi at the new LTS version release.&lt;br /&gt;
* [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaRepBranches '''oscadaRepBranches'''] — for processing of the profiles list pointed in the command line and in the format &amp;quot;'''{Target}[:option[,optionN]][ =]{EN}{ForWork}{ForLTS}{ForLTSServ}{OmitSourceTree}'''&amp;quot;, where:&lt;br /&gt;
** &amp;quot;EN&amp;quot;{0|1} — enabling the target;&lt;br /&gt;
** &amp;quot;ForWork&amp;quot;{0|1} — enabling to build for the Work branch;&lt;br /&gt;
** &amp;quot;ForLTS&amp;quot;{0|1} — enabling to build for generic updates of the LTS branch;&lt;br /&gt;
** &amp;quot;ForLTSServ&amp;quot;{0|1} — enabling to build for service updates of the LTS branch;&lt;br /&gt;
** &amp;quot;OmitSourceTree&amp;quot;{0|1} — omit the source tree download from SVN, mostly for building the live images.&lt;br /&gt;
* [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaBuild '''oscadaBuild'''] — for building and placing the result packages and other for the OpenSCADA's LTS or Work branches.&lt;br /&gt;
&lt;br /&gt;
Files structure of the automation building system means:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
\-- /data/&lt;br /&gt;
    |-- oscada/&lt;br /&gt;
    |   |-- bin/&lt;br /&gt;
    |   |   |-- oscadaBuild&lt;br /&gt;
    |   |   |-- oscadaRepBranches&lt;br /&gt;
    |   |   |-- oscadaCheck&lt;br /&gt;
    |   |   \-- oscadaCheck_WorkAtLTS&lt;br /&gt;
    |   |-- build/                 =&amp;gt; work building folder, which contains the unpacked CHROOTs&lt;br /&gt;
    |   |   |-- log/               =&amp;gt; logs of the builds&lt;br /&gt;
    |   |   \-- *.stamp            =&amp;gt; stamps of the successful builds&lt;br /&gt;
    |   \-- chroot-data.tgz        =&amp;gt; contains the GPG singing key for the packages and their repositories of the builder&lt;br /&gt;
    \-- share_res/&lt;br /&gt;
        \-- ftp/                   =&amp;gt; FTP-folder of the building results&lt;br /&gt;
            |-- {Debian,ALTLinux}/ =&amp;gt; folders of the repositories of the Automation Linux distributive&lt;br /&gt;
            |-- Misc/&lt;br /&gt;
            |   \-- chroots/       =&amp;gt; folder of the archives of the CHROOTs of the building&lt;br /&gt;
            \-- OpenSCADA/         =&amp;gt; folders of the repositories of OpenSCADA&lt;br /&gt;
                |-- LTS/           =&amp;gt; folders of the LTS repositories of OpenSCADA&lt;br /&gt;
                \-- Work/          =&amp;gt; folders of the Work repositories of OpenSCADA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The automatic building system supports also its distribution at specific environments (for some building types) like to different hardware platforms, instead their CHROOTs sometime. The distribution is performed by moving part of the automatic builder outward by: deploying the bottom file structure only for needed targets, organization for the local file server and scheduling the sync script [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaSyncFtp oscadaSyncFtp] on the automatic builder core (say [[User:RomanSavochenko|Roman Savochenko]] for) — the main FTP-server.&lt;br /&gt;
&lt;br /&gt;
Currently the automatic builder means for automatic building:&lt;br /&gt;
* The Work version (1) for the last SVN-revision with the tag &amp;quot;(stable)&amp;quot;;&lt;br /&gt;
* The LTS version (0.9.U.S) for generic (U) and service (S) update.&lt;br /&gt;
&lt;br /&gt;
For Author's buildings, the specified scrips adapted to work with the FTP-folder of the building results directly on the OpenSCADA server by help '''sshfs''', and expanded also by options for a possibility of free specifying the SVN-revision to the both branches.&lt;br /&gt;
&lt;br /&gt;
Customization of [https://www.debian.org/devel/debian-live the Debian Live project] for this project:&lt;br /&gt;
* ''/usr/lib/live/build/binary_iso'' — appending the argument &amp;quot;-input-charset UTF-8&amp;quot; to the variable XORRISO_OPTIONS for allowing   files in UTF-8 on the disk;&lt;br /&gt;
* ''/usr/lib/live/build/installer_debian-installer'' — taking from Debian 12 since that one from Debian 13 has errors with build for Debian 10,11.&lt;br /&gt;
&lt;br /&gt;
'''Table 1''': Implemented profiles — the building types.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Target !! Result !! Method of the building !! External deploying !! Additional&lt;br /&gt;
|-&lt;br /&gt;
| SrcTar || Source packages packed as XZ TAR packages || CHROOT &amp;quot;Debian_7_32&amp;quot; || Yes || Updates the OpenSCADA documentation for LTS.&lt;br /&gt;
|-&lt;br /&gt;
| SrcRPM, CentOs*, SuSE*, Fedora*, ALTLinux*, Mandriva* || RedHat source and binary packages for the hardware architectures x86_32 and x86_64 || CHROOT || Yes || Admits for tuning to the specific by the patches &amp;quot;openscada_*.patch&amp;quot;.&amp;lt;br/&amp;gt;Calling the provided script &amp;quot;reposUpdate&amp;quot; in the results directory there the packages repository can be: created, updated, signed for the packages and the repository in whole.&amp;lt;br/&amp;gt;Target options:&lt;br /&gt;
* &amp;quot;rep&amp;quot; — to the repository folder instead OpenSCADA folder;&lt;br /&gt;
* &amp;quot;dev&amp;quot; — mount the system folders to the CHROOT (/dev, /dev/pts, /proc).&lt;br /&gt;
|-&lt;br /&gt;
| Debian*, Raspbian*, Ubuntu* || Debian packages for the hardware architectures x86_32, x86_64, ARMHF, ARM64, NATIVE || CHROOT || Yes || Admits for tuning to the specific by the patches &amp;quot;openscada[-{platform}]_*.patch&amp;quot;.&amp;lt;br/&amp;gt;Calling the provided script &amp;quot;reposUpdate&amp;quot; in the results directory there the packages repository can be: created, updated, signed for the packages and the repository in whole.&amp;lt;br/&amp;gt;Target options:&lt;br /&gt;
* &amp;quot;rep&amp;quot; — to the repository folder instead OpenSCADA folder.&lt;br /&gt;
|-&lt;br /&gt;
| Nokia* || Debian packages for the hardware architecture ARMEL || [http://www.scratchbox.org/ Scratchbox] || Yes || Admits for tuning to the specific by the patches &amp;quot;openscada_*.patch&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC*, LP8x81* || TAR packages of the PLC firmwares for the hardware architecture x86_32 || [[Special:MyLanguage/Sub-projects/Server#VPS:_ALTLinux32_builder|VPS: bldrALT32.oscada]] || No || Uses the ALTLinux mkimage profiles: &amp;quot;mkimage-profiles-5-plc&amp;quot;, &amp;quot;mkimage-profiles-5-plc-LP8x81&amp;quot;, &amp;quot;mkimage-profiles-6-plc&amp;quot;, &amp;quot;mkimage-profiles-6-plc-LP8x81&amp;quot;.&amp;lt;br/&amp;gt;Target options:&lt;br /&gt;
* &amp;quot;UI&amp;quot; — include User Interface, for ALTLinux 5 only;&lt;br /&gt;
* &amp;quot;rt1&amp;quot; — use the kernel &amp;quot;rt1-up&amp;quot;, for ALTLinux 6.&lt;br /&gt;
|-&lt;br /&gt;
| Live_ALT || Hybrid ISO image or TAR package of the Live Disk of [[Special:MyLanguage/Sub-projects/Automation_Linux_distributive#ALTLinux|the Automation Linux distributive based on ALTLinux]] || [[Special:MyLanguage/Sub-projects/Server#VPS:_ALTLinux32_builder|VPS: bldrALT32.oscada]] || No || Uses the ALTLinux mkimage profile &amp;quot;mkimage-profiles-6-kdesktop&amp;quot;.&amp;lt;br/&amp;gt;Updates MD5SUM of the ISO images in the file &amp;quot;MD5SUM&amp;quot;.&amp;lt;br/&amp;gt;Target options:&lt;br /&gt;
* &amp;quot;flash&amp;quot; — build the TAR package instead the ISO image.&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb || Hybrid ISO image of the Live Disk of [[Special:MyLanguage/Sub-projects/Automation_Linux_distributive#Debian|the Automation Linux distributive based on Debian]] || [[Special:MyLanguage/Sub-projects/Server#VPS:_Debian.7B8.2C9.7D_builder|VPS: bldrDeb8.oscada]]; home.home || No || Uses [https://www.debian.org/devel/debian-live/ Live Build profiles] of Debian: live7-32, live7-64, live8-32, live8-64, live9-32, live9-64, live10-32, live10-64, live11-32, live11-64.&amp;lt;br/&amp;gt;Updates MD5SUM of the ISO images in the file &amp;quot;MD5SUM&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| ICP_DAS_LP_ARM, SMH2Gi || TAR packages of the PLC firmwares for the hardware architecture ARM. || [[Special:MyLanguage/Sub-projects/Server#VPS:_Debian.7B8.2C9.7D_builder|VPS: bldrDeb8.oscada]] + TOOLCHAIN || No || Uses the proper TOOLCHAINs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Table 2''': The actual building targets (on 01.01.7531/01.03.2023).&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Target(s) !! OpenSCADA !! Host !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| SrcTar || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| SrcRPM || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Debian''&lt;br /&gt;
|-&lt;br /&gt;
| Debian_13_{32,64,armhf,arm64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_13_{32,64,armhf,arm64}:rep || Work+LTS+ServLTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_12_{32,64,armhf,arm64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_12_{32,64,armhf,arm64}:rep || Work+LTS+ServLTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_11_{32,64,armhf,arm64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_11_{32,64,armhf,arm64}:rep || Work+LTS+ServLTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_10_{32,64,armhf} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_10_{32,64,armhf}:rep || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_9_{32,64,armhf} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_9_{32,64,armhf}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_8_{32,64,armhf} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_8_{32,64,armhf}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_7_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_7_{32,64}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_6_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Raspbian, the same Debian but for [https://www.raspberrypi.org/ Raspberry Pi] — a very specific ARMv6 environment for the BCM2835 and early chips mostly.''&lt;br /&gt;
|-&lt;br /&gt;
| Raspbian_9_native || Work+LTS || pi.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Raspbian_8_native || LTS || pi.home ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Ubuntu''&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_26.04_{32,64} || Work+LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_24.04_{32,64} || Work+LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_22.04_{32,64} || LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_20.04_{32,64} || LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_18.04_{32,64} || LTS || home.home || Very new Linux kernel for CHROOT on oscada.org&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_16.04_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_14.04_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_12.04_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_11.10_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_10.04_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''CentOs''&lt;br /&gt;
|-&lt;br /&gt;
| CentOs_8_64:dev || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| CentOs_7_64 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| CentOs_6_{32,64} || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''SuSE''&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_15_64:dev || LTS || home.home || Very new Linux kernel for CHROOT on oscada.org. GPG2 needs for mounting the system folders.&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_13_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_12_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_11_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''ALTLinux''&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_7_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_7_{32,64}:rep || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_6_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_6_{32,64}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_5_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_5_{32,64}:rep || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Fedora''&lt;br /&gt;
|-&lt;br /&gt;
| Fedora_12_32 || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Mandriva''&lt;br /&gt;
|-&lt;br /&gt;
| Mandriva_2011_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Mandriva_2010_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Nokia''&lt;br /&gt;
|-&lt;br /&gt;
| Nokia_800 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Nokia_900 || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Nokia_950 || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''PLC+Embedded''&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT6 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT6:rt1 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT5 || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT5:UI || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT6 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT6:rt1 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT5 || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT5:UI || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| SMH2Gi || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| ICP_DAS_LP_ARM || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| TionPro270 || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Live''&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb13_64 || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb12_{32,64} || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb11_{32,64} || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb10_{32,64} || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb9_{32,64} || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb8_{32,64} || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb7_{32,64} || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_ALT || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_ALT:flash || - || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Sub-projects/Automatic_Builder_of_OpenSCADA/3/en&amp;diff=94003</id>
		<title>Translations:Sub-projects/Automatic Builder of OpenSCADA/3/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Sub-projects/Automatic_Builder_of_OpenSCADA/3/en&amp;diff=94003"/>
				<updated>2026-05-11T12:20:47Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Files structure of the automation building system means:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
\-- /data/&lt;br /&gt;
    |-- oscada/&lt;br /&gt;
    |   |-- bin/&lt;br /&gt;
    |   |   |-- oscadaBuild&lt;br /&gt;
    |   |   |-- oscadaRepBranches&lt;br /&gt;
    |   |   |-- oscadaCheck&lt;br /&gt;
    |   |   \-- oscadaCheck_WorkAtLTS&lt;br /&gt;
    |   |-- build/                 =&amp;gt; work building folder, which contains the unpacked CHROOTs&lt;br /&gt;
    |   |   |-- log/               =&amp;gt; logs of the builds&lt;br /&gt;
    |   |   \-- *.stamp            =&amp;gt; stamps of the successful builds&lt;br /&gt;
    |   \-- chroot-data.tgz        =&amp;gt; contains the GPG singing key for the packages and their repositories of the builder&lt;br /&gt;
    \-- share_res/&lt;br /&gt;
        \-- ftp/                   =&amp;gt; FTP-folder of the building results&lt;br /&gt;
            |-- {Debian,ALTLinux}/ =&amp;gt; folders of the repositories of the Automation Linux distributive&lt;br /&gt;
            |-- Misc/&lt;br /&gt;
            |   \-- chroots/       =&amp;gt; folder of the archives of the CHROOTs of the building&lt;br /&gt;
            \-- OpenSCADA/         =&amp;gt; folders of the repositories of OpenSCADA&lt;br /&gt;
                |-- LTS/           =&amp;gt; folders of the LTS repositories of OpenSCADA&lt;br /&gt;
                \-- Work/          =&amp;gt; folders of the Work repositories of OpenSCADA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Sub-projects/Automatic_Builder_of_OpenSCADA/4/en&amp;diff=94004</id>
		<title>Translations:Sub-projects/Automatic Builder of OpenSCADA/4/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Sub-projects/Automatic_Builder_of_OpenSCADA/4/en&amp;diff=94004"/>
				<updated>2026-05-11T12:20:47Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The automatic building system supports also its distribution at specific environments (for some building types) like to different hardware platforms, instead their CHROOTs sometime. The distribution is performed by moving part of the automatic builder outward by: deploying the bottom file structure only for needed targets, organization for the local file server and scheduling the sync script [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaSyncFtp oscadaSyncFtp] on the automatic builder core (say [[User:RomanSavochenko|Roman Savochenko]] for) — the main FTP-server.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Sub-projects/Automatic_Builder_of_OpenSCADA/9/en&amp;diff=94005</id>
		<title>Translations:Sub-projects/Automatic Builder of OpenSCADA/9/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Sub-projects/Automatic_Builder_of_OpenSCADA/9/en&amp;diff=94005"/>
				<updated>2026-05-11T12:20:47Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For Author's buildings, the specified scrips adapted to work with the FTP-folder of the building results directly on the OpenSCADA server by help '''sshfs''', and expanded also by options for a possibility of free specifying the SVN-revision to the both branches.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Sub-projects/Automatic_Builder_of_OpenSCADA/en&amp;diff=93996</id>
		<title>Sub-projects/Automatic Builder of OpenSCADA/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Sub-projects/Automatic_Builder_of_OpenSCADA/en&amp;diff=93996"/>
				<updated>2026-05-11T11:51:24Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Founded !! Status !! Members&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Sub-projects/Automatic Builder of OpenSCADA|Automatic Builder of OpenSCADA]] || May 2015 ||&lt;br /&gt;
Implemented in scripts of the building, repositories and branches processing and targets checking for building for up to 100 targets by: CHROOTs of the Linux repositories, VPS and different sub-environments.&lt;br /&gt;
As the result of the Builder work is: [http://oscada.org/main/download/ the fresh and signed packages repositories of Linux, Live Disk images and other binary archives of OpenSCADA].&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;5&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The sub-project is aimed to make easy the project OpenSCADA distribution through automatic building the binary packages, their ready to use repositories and other complex distributives like to Live Disks.&lt;br /&gt;
* '''[http://oscada.org/en/development/tasks/posts/core/the_automatic_openscada_builder/ Managing Task]'''&lt;br /&gt;
* '''[[Special:MyLanguage/Sub-projects/Automation_Linux_distributive|Automation Linux distributive of the project OpenSCADA]]'''&lt;br /&gt;
* '''[[Special:MyLanguage/Documents/How_to/Live_disk|How to Live Disk]]'''&lt;br /&gt;
* '''State of the support''': Called manually after committing SVN-changes for general build on the server via ''oscadaCheck'' and home PC for new environments via ''oscadaCheck_ExtGen'', and automatically at the beginning of an hour for &amp;quot;Raspbian&amp;quot; targets on RPi3 via ''oscadaCheck_RPi''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The builder is represented by two common BASH-scripts and several checking BASH-scripts:&lt;br /&gt;
* '''oscadaCheck*''' — simple scripts with list the building profiles for checking in ''oscadaRepBranches'' and depending on the building host; they are started typically by the CRON schedule for night builds or manually. Known currently profiles list corresponding to Table 2:&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck oscadaCheck] — generic one used on the OpenSCADA server;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_WorkAtLTS oscadaCheck_WorkAtLTS] — additional generic one used on the OpenSCADA server at the new LTS version release;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_ExtGen oscadaCheck_ExtGen] — external generic one used on the Author Home PC;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_ExtGen_WorkAtLTS oscadaCheck_ExtGen_WorkAtLTS] — additional external generic one used on the Author Home PC at the new LTS version release;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_RPi oscadaCheck_RPi] — external &amp;quot;Raspbian&amp;quot; targets' one used on the Author RPi;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_RPi_WorkAtLTS oscadaCheck_RPi_WorkAtLTS] — additional external &amp;quot;Raspbian&amp;quot; targets' one used on the Author RPi at the new LTS version release.&lt;br /&gt;
* [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaRepBranches '''oscadaRepBranches'''] — for processing of the profiles list pointed in the command line and in the format &amp;quot;'''{Target}[:option[,optionN]][ =]{EN}{ForWork}{ForLTS}{ForLTSServ}{OmitSourceTree}'''&amp;quot;, where:&lt;br /&gt;
** &amp;quot;EN&amp;quot;{0|1} — enabling the target;&lt;br /&gt;
** &amp;quot;ForWork&amp;quot;{0|1} — enabling to build for the Work branch;&lt;br /&gt;
** &amp;quot;ForLTS&amp;quot;{0|1} — enabling to build for generic updates of the LTS branch;&lt;br /&gt;
** &amp;quot;ForLTSServ&amp;quot;{0|1} — enabling to build for service updates of the LTS branch;&lt;br /&gt;
** &amp;quot;OmitSourceTree&amp;quot;{0|1} — omit the source tree download from SVN, mostly for building the live images.&lt;br /&gt;
* [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaBuild '''oscadaBuild'''] — for building and placing the result packages and other for the OpenSCADA's LTS or Work branches.&lt;br /&gt;
&lt;br /&gt;
Files structure of the automation building system means:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
\-- /data/&lt;br /&gt;
    |-- oscada/&lt;br /&gt;
    |   |-- bin/&lt;br /&gt;
    |   |   |-- oscadaBuild&lt;br /&gt;
    |   |   |-- oscadaRepBranches&lt;br /&gt;
    |   |   |-- oscadaCheck&lt;br /&gt;
    |   |   \-- oscadaCheck_WorkAtLTS&lt;br /&gt;
    |   |-- build/                 =&amp;gt; work building folder, which contains the unpacked CHROOTs&lt;br /&gt;
    |   |   |-- log/               =&amp;gt; logs of the builds&lt;br /&gt;
    |   |   \-- *.stamp            =&amp;gt; stamps of the successful builds&lt;br /&gt;
    |   \-- chroot-data.tgz        =&amp;gt; contains the GPG singing key for the packages and their repositories of the builder&lt;br /&gt;
    \-- share_res/&lt;br /&gt;
        \-- ftp/                   =&amp;gt; FTP folder of the building results&lt;br /&gt;
            |-- {ALTLinux,Debian}/ =&amp;gt; Folders of the repositories of the Automation Linux distributive&lt;br /&gt;
            |-- Misc/&lt;br /&gt;
            |   \-- chroots/       =&amp;gt; Folder of the archives of the CHROOTs of the building&lt;br /&gt;
            \-- OpenSCADA/         =&amp;gt; Folders of the repositories of OpenSCADA&lt;br /&gt;
                |-- LTS/           =&amp;gt; Folders of the LTS repositories of OpenSCADA&lt;br /&gt;
                \-- Work/          =&amp;gt; Folders of the Work repositories of OpenSCADA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The automatic building system supports also its distribution at specific environments (for some building types) like to different hardware platforms, instead their CHROOTs sometime. The distribution is performed by moving part of the automatic builder outward by: deploying the bottom file structure only for needed targets, organization for the local file server and scheduling the sync script [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaSyncFtp oscadaSyncFtp] on the automatic builder core (say [[User:RomanSavochenko|Roman Savochenko]] for) — main FTP-server.&lt;br /&gt;
&lt;br /&gt;
Currently the automatic builder means for automatic building:&lt;br /&gt;
* The Work version (1) for the last SVN-revision with the tag &amp;quot;(stable)&amp;quot;;&lt;br /&gt;
* The LTS version (0.9.U.S) for generic (U) and service (S) update.&lt;br /&gt;
&lt;br /&gt;
Customization of [https://www.debian.org/devel/debian-live the Debian Live project] for this project:&lt;br /&gt;
* ''/usr/lib/live/build/binary_iso'' — appending the argument &amp;quot;-input-charset UTF-8&amp;quot; to the variable XORRISO_OPTIONS for allowing   files in UTF-8 on the disk;&lt;br /&gt;
* ''/usr/lib/live/build/installer_debian-installer'' — taking from Debian 12 since that one from Debian 13 has errors with build for Debian 10,11.&lt;br /&gt;
&lt;br /&gt;
'''Table 1''': Implemented profiles — the building types.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Target !! Result !! Method of the building !! External deploying !! Additional&lt;br /&gt;
|-&lt;br /&gt;
| SrcTar || Source packages packed as XZ TAR packages || CHROOT &amp;quot;Debian_7_32&amp;quot; || Yes || Updates the OpenSCADA documentation for LTS.&lt;br /&gt;
|-&lt;br /&gt;
| SrcRPM, CentOs*, SuSE*, Fedora*, ALTLinux*, Mandriva* || RedHat source and binary packages for the hardware architectures x86_32 and x86_64 || CHROOT || Yes || Admits for tuning to the specific by the patches &amp;quot;openscada_*.patch&amp;quot;.&amp;lt;br/&amp;gt;Calling the provided script &amp;quot;reposUpdate&amp;quot; in the results directory there the packages repository can be: created, updated, signed for the packages and the repository in whole.&amp;lt;br/&amp;gt;Target options:&lt;br /&gt;
* &amp;quot;rep&amp;quot; — to the repository folder instead OpenSCADA folder;&lt;br /&gt;
* &amp;quot;dev&amp;quot; — mount the system folders to the CHROOT (/dev, /dev/pts, /proc).&lt;br /&gt;
|-&lt;br /&gt;
| Debian*, Raspbian*, Ubuntu* || Debian packages for the hardware architectures x86_32, x86_64, ARMHF, ARM64, NATIVE || CHROOT || Yes || Admits for tuning to the specific by the patches &amp;quot;openscada[-{platform}]_*.patch&amp;quot;.&amp;lt;br/&amp;gt;Calling the provided script &amp;quot;reposUpdate&amp;quot; in the results directory there the packages repository can be: created, updated, signed for the packages and the repository in whole.&amp;lt;br/&amp;gt;Target options:&lt;br /&gt;
* &amp;quot;rep&amp;quot; — to the repository folder instead OpenSCADA folder.&lt;br /&gt;
|-&lt;br /&gt;
| Nokia* || Debian packages for the hardware architecture ARMEL || [http://www.scratchbox.org/ Scratchbox] || Yes || Admits for tuning to the specific by the patches &amp;quot;openscada_*.patch&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC*, LP8x81* || TAR packages of the PLC firmwares for the hardware architecture x86_32 || [[Special:MyLanguage/Sub-projects/Server#VPS:_ALTLinux32_builder|VPS: bldrALT32.oscada]] || No || Uses the ALTLinux mkimage profiles: &amp;quot;mkimage-profiles-5-plc&amp;quot;, &amp;quot;mkimage-profiles-5-plc-LP8x81&amp;quot;, &amp;quot;mkimage-profiles-6-plc&amp;quot;, &amp;quot;mkimage-profiles-6-plc-LP8x81&amp;quot;.&amp;lt;br/&amp;gt;Target options:&lt;br /&gt;
* &amp;quot;UI&amp;quot; — include User Interface, for ALTLinux 5 only;&lt;br /&gt;
* &amp;quot;rt1&amp;quot; — use the kernel &amp;quot;rt1-up&amp;quot;, for ALTLinux 6.&lt;br /&gt;
|-&lt;br /&gt;
| Live_ALT || Hybrid ISO image or TAR package of the Live Disk of [[Special:MyLanguage/Sub-projects/Automation_Linux_distributive#ALTLinux|the Automation Linux distributive based on ALTLinux]] || [[Special:MyLanguage/Sub-projects/Server#VPS:_ALTLinux32_builder|VPS: bldrALT32.oscada]] || No || Uses the ALTLinux mkimage profile &amp;quot;mkimage-profiles-6-kdesktop&amp;quot;.&amp;lt;br/&amp;gt;Updates MD5SUM of the ISO images in the file &amp;quot;MD5SUM&amp;quot;.&amp;lt;br/&amp;gt;Target options:&lt;br /&gt;
* &amp;quot;flash&amp;quot; — build the TAR package instead the ISO image.&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb || Hybrid ISO image of the Live Disk of [[Special:MyLanguage/Sub-projects/Automation_Linux_distributive#Debian|the Automation Linux distributive based on Debian]] || [[Special:MyLanguage/Sub-projects/Server#VPS:_Debian.7B8.2C9.7D_builder|VPS: bldrDeb8.oscada]]; home.home || No || Uses [https://www.debian.org/devel/debian-live/ Live Build profiles] of Debian: live7-32, live7-64, live8-32, live8-64, live9-32, live9-64, live10-32, live10-64, live11-32, live11-64.&amp;lt;br/&amp;gt;Updates MD5SUM of the ISO images in the file &amp;quot;MD5SUM&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| ICP_DAS_LP_ARM, SMH2Gi || TAR packages of the PLC firmwares for the hardware architecture ARM. || [[Special:MyLanguage/Sub-projects/Server#VPS:_Debian.7B8.2C9.7D_builder|VPS: bldrDeb8.oscada]] + TOOLCHAIN || No || Uses the proper TOOLCHAINs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Table 2''': The actual building targets (on 01.01.7531/01.03.2023).&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Target(s) !! OpenSCADA !! Host !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| SrcTar || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| SrcRPM || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Debian''&lt;br /&gt;
|-&lt;br /&gt;
| Debian_13_{32,64,armhf,arm64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_13_{32,64,armhf,arm64}:rep || Work+LTS+ServLTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_12_{32,64,armhf,arm64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_12_{32,64,armhf,arm64}:rep || Work+LTS+ServLTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_11_{32,64,armhf,arm64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_11_{32,64,armhf,arm64}:rep || Work+LTS+ServLTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_10_{32,64,armhf} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_10_{32,64,armhf}:rep || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_9_{32,64,armhf} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_9_{32,64,armhf}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_8_{32,64,armhf} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_8_{32,64,armhf}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_7_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_7_{32,64}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_6_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Raspbian, the same Debian but for [https://www.raspberrypi.org/ Raspberry Pi] — a very specific ARMv6 environment for the BCM2835 and early chips mostly.''&lt;br /&gt;
|-&lt;br /&gt;
| Raspbian_9_native || Work+LTS || pi.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Raspbian_8_native || LTS || pi.home ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Ubuntu''&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_26.04_{32,64} || Work+LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_24.04_{32,64} || Work+LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_22.04_{32,64} || LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_20.04_{32,64} || LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_18.04_{32,64} || LTS || home.home || Very new Linux kernel for CHROOT on oscada.org&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_16.04_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_14.04_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_12.04_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_11.10_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_10.04_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''CentOs''&lt;br /&gt;
|-&lt;br /&gt;
| CentOs_8_64:dev || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| CentOs_7_64 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| CentOs_6_{32,64} || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''SuSE''&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_15_64:dev || LTS || home.home || Very new Linux kernel for CHROOT on oscada.org. GPG2 needs for mounting the system folders.&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_13_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_12_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_11_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''ALTLinux''&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_7_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_7_{32,64}:rep || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_6_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_6_{32,64}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_5_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_5_{32,64}:rep || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Fedora''&lt;br /&gt;
|-&lt;br /&gt;
| Fedora_12_32 || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Mandriva''&lt;br /&gt;
|-&lt;br /&gt;
| Mandriva_2011_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Mandriva_2010_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Nokia''&lt;br /&gt;
|-&lt;br /&gt;
| Nokia_800 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Nokia_900 || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Nokia_950 || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''PLC+Embedded''&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT6 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT6:rt1 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT5 || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT5:UI || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT6 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT6:rt1 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT5 || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT5:UI || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| SMH2Gi || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| ICP_DAS_LP_ARM || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| TionPro270 || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Live''&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb13_64 || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb12_{32,64} || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb11_{32,64} || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb10_{32,64} || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb9_{32,64} || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb8_{32,64} || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb7_{32,64} || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_ALT || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_ALT:flash || - || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Sub-projects/Automatic_Builder_of_OpenSCADA/1/en&amp;diff=93994</id>
		<title>Translations:Sub-projects/Automatic Builder of OpenSCADA/1/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Sub-projects/Automatic_Builder_of_OpenSCADA/1/en&amp;diff=93994"/>
				<updated>2026-05-11T11:51:21Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Founded !! Status !! Members&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Sub-projects/Automatic Builder of OpenSCADA|Automatic Builder of OpenSCADA]] || May 2015 ||&lt;br /&gt;
Implemented in scripts of the building, repositories and branches processing and targets checking for building for up to 100 targets by: CHROOTs of the Linux repositories, VPS and different sub-environments.&lt;br /&gt;
As the result of the Builder work is: [http://oscada.org/main/download/ the fresh and signed packages repositories of Linux, Live Disk images and other binary archives of OpenSCADA].&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;5&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The sub-project is aimed to make easy the project OpenSCADA distribution through automatic building the binary packages, their ready to use repositories and other complex distributives like to Live Disks.&lt;br /&gt;
* '''[http://oscada.org/en/development/tasks/posts/core/the_automatic_openscada_builder/ Managing Task]'''&lt;br /&gt;
* '''[[Special:MyLanguage/Sub-projects/Automation_Linux_distributive|Automation Linux distributive of the project OpenSCADA]]'''&lt;br /&gt;
* '''[[Special:MyLanguage/Documents/How_to/Live_disk|How to Live Disk]]'''&lt;br /&gt;
* '''State of the support''': Called manually after committing SVN-changes for general build on the server via ''oscadaCheck'' and home PC for new environments via ''oscadaCheck_ExtGen'', and automatically at the beginning of an hour for &amp;quot;Raspbian&amp;quot; targets on RPi3 via ''oscadaCheck_RPi''.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Sub-projects/Automatic_Builder_of_OpenSCADA/2/en&amp;diff=93995</id>
		<title>Translations:Sub-projects/Automatic Builder of OpenSCADA/2/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Sub-projects/Automatic_Builder_of_OpenSCADA/2/en&amp;diff=93995"/>
				<updated>2026-05-11T11:51:21Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The builder is represented by two common BASH-scripts and several checking BASH-scripts:&lt;br /&gt;
* '''oscadaCheck*''' — simple scripts with list the building profiles for checking in ''oscadaRepBranches'' and depending on the building host; they are started typically by the CRON schedule for night builds or manually. Known currently profiles list corresponding to Table 2:&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck oscadaCheck] — generic one used on the OpenSCADA server;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_WorkAtLTS oscadaCheck_WorkAtLTS] — additional generic one used on the OpenSCADA server at the new LTS version release;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_ExtGen oscadaCheck_ExtGen] — external generic one used on the Author Home PC;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_ExtGen_WorkAtLTS oscadaCheck_ExtGen_WorkAtLTS] — additional external generic one used on the Author Home PC at the new LTS version release;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_RPi oscadaCheck_RPi] — external &amp;quot;Raspbian&amp;quot; targets' one used on the Author RPi;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_RPi_WorkAtLTS oscadaCheck_RPi_WorkAtLTS] — additional external &amp;quot;Raspbian&amp;quot; targets' one used on the Author RPi at the new LTS version release.&lt;br /&gt;
* [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaRepBranches '''oscadaRepBranches'''] — for processing of the profiles list pointed in the command line and in the format &amp;quot;'''{Target}[:option[,optionN]][ =]{EN}{ForWork}{ForLTS}{ForLTSServ}{OmitSourceTree}'''&amp;quot;, where:&lt;br /&gt;
** &amp;quot;EN&amp;quot;{0|1} — enabling the target;&lt;br /&gt;
** &amp;quot;ForWork&amp;quot;{0|1} — enabling to build for the Work branch;&lt;br /&gt;
** &amp;quot;ForLTS&amp;quot;{0|1} — enabling to build for generic updates of the LTS branch;&lt;br /&gt;
** &amp;quot;ForLTSServ&amp;quot;{0|1} — enabling to build for service updates of the LTS branch;&lt;br /&gt;
** &amp;quot;OmitSourceTree&amp;quot;{0|1} — omit the source tree download from SVN, mostly for building the live images.&lt;br /&gt;
* [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaBuild '''oscadaBuild'''] — for building and placing the result packages and other for the OpenSCADA's LTS or Work branches.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Sub-projects/Automatic_Builder_of_OpenSCADA/uk&amp;diff=93986</id>
		<title>Sub-projects/Automatic Builder of OpenSCADA/uk</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Sub-projects/Automatic_Builder_of_OpenSCADA/uk&amp;diff=93986"/>
				<updated>2026-05-10T14:57:06Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Назва !! Заснування !! Стан !! Учасники&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Sub-projects/Automatic Builder of OpenSCADA|Автоматичний Складальник OpenSCADA]] || Березень 2015 ||&lt;br /&gt;
Імплементовано у скриптах побудови, опрацювання репозиторіїв і гілок та перевірки цілей щодо складання до 100 цілей за допомогою: CHROOTів репозиторіїв Linux, VPS та різних під-оточень. Результатом функціонування Складальника є: [http://oscada.org/main/download/ свіжі та підписані репозиторії Linux, штампи Live Дисків та інші бінарні архіви OpenSCADA].&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;5&amp;quot; | Опис&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | Спрямуванням підпроєкту є спрощення розповсюдження-дистриб'юції проєкту OpenSCADA через автоматичне складання бінарних пакетів, їх готових до використання репозиторіїв та інших складних дистрибутивів на кшталт Живих Дисків.&lt;br /&gt;
* '''[http://oscada.org/ua/rozrobka/zavdannja/posts/core/the_automatic_openscada_builder/ Завдання Керування]'''&lt;br /&gt;
* '''[[Special:MyLanguage/Sub-projects/Automation_Linux_distributive|Linux дистрибутив автоматизації проєкту OpenSCADA]]'''&lt;br /&gt;
* '''[[Special:MyLanguage/Documents/How_to/Live_disk|Як створити Живий Диск]]'''&lt;br /&gt;
* '''Стан підтримки''': Викликається вручну після вивантаження SVN-змін для загального складання на сервері через ''oscadaCheck'' та домашньому ПК щодо нових оточень через ''oscadaCheck_ExtGen'', а також автоматично на початку години для &amp;quot;Raspbian&amp;quot; цілей на RPi3 через ''oscadaCheck_RPi''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Складач представлено двома загальними BASH-скриптами та декільком BASH-скриптами перевірки:&lt;br /&gt;
* '''oscadaCheck*''' — дуже прості скрипти із переліком профілів складання для перевірки ''oscadaRepBranches'' та у залежності від хосту складання; вони запускаються зазвичай CRON планувальником, для нічних складань, або вручну. Відомий наразі перелік профілів відповідно до Таблиці 2:&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck oscadaCheck] — загальний, використовується на OpenSCADA сервері;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_WorkAtLTS oscadaCheck_WorkAtLTS] — додатковий загальний, використовується на OpenSCADA сервері при новому випуску LTS версії;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_ExtGen oscadaCheck_ExtGen] — зовнішній загальний, використовується на Домашньому ПК Автора;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_ExtGen_WorkAtLTS oscadaCheck_ExtGen_WorkAtLTS] — додатковий зовнішній загальний, використовується на Домашньому ПК Автора при новому випуску LTS версії;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_RPi oscadaCheck_RPi] — зовнішні &amp;quot;Raspbian&amp;quot; цілі, використовується на RPi3 Автора;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_RPi_WorkAtLTS oscadaCheck_RPi_WorkAtLTS] — додаткові зовнішні &amp;quot;Raspbian&amp;quot; цілі, використовується на RPi3 Автора при новому випуску LTS версії.&lt;br /&gt;
* [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaRepBranches '''oscadaRepBranches'''] — для опрацювання переліку профілів вказаних у командному рядку у форматі &amp;quot;'''{Target}[:option[,optionN]] {EN}{ForWork}{ForLTS}{ForLTSServ}{OmitSourceTree}'''&amp;quot;, де:&lt;br /&gt;
** &amp;quot;EN&amp;quot;{0|1} — увімкнення цілі;&lt;br /&gt;
** &amp;quot;ForWork&amp;quot;{0|1} — включення до складання для Робочої (Work) гілки;&lt;br /&gt;
** &amp;quot;ForLTS&amp;quot;{0|1} — включення до складання для загальних оновлень Стабільної (LTS) гілки;&lt;br /&gt;
** &amp;quot;ForLTSServ&amp;quot;{0|1} — включення до складання для сервісних оновлень Стабільної (LTS) гілки;&lt;br /&gt;
** &amp;quot;OmitSourceTree&amp;quot;{0|1} — оминати завантаження дерева вихідних із SVN, переважно для складання Живих штампів.&lt;br /&gt;
* [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaBuild '''oscadaBuild'''] — для складання та розміщення результатних пакетів і іншого для Стабільної (LTS) та Робочої (Work) гілок OpenSCADA.&lt;br /&gt;
&lt;br /&gt;
Структура файлів системи автоматичного складання передбачає:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
\-- /data/&lt;br /&gt;
    |-- oscada/&lt;br /&gt;
    |   |-- bin/&lt;br /&gt;
    |   |   |-- oscadaBuild&lt;br /&gt;
    |   |   |-- oscadaRepBranches&lt;br /&gt;
    |   |   |-- oscadaCheck&lt;br /&gt;
    |   |   \-- oscadaCheck_WorkAtLTS&lt;br /&gt;
    |   |-- build/                 =&amp;gt; робоча тека складання, яка містить розпаковані CHROOTи&lt;br /&gt;
    |   |   |-- log/               =&amp;gt; протоколи складань&lt;br /&gt;
    |   |   \-- *.stamp            =&amp;gt; штампи-ознаки вдалих складань&lt;br /&gt;
    |   \-- chroot-data.tgz        =&amp;gt; містить GPG ключ підпису пакетів та їх репозиторіїв для складальника&lt;br /&gt;
    \-- share_res/&lt;br /&gt;
        \-- ftp/                   =&amp;gt; FTP тека результатів складання&lt;br /&gt;
            |-- {ALTLinux,Debian}/ =&amp;gt; Теки репозиторіїв Linux Дистрибутивів Автоматизації&lt;br /&gt;
            |-- Misc/&lt;br /&gt;
            |   \-- chroots/       =&amp;gt; Тека архівів складальних CHROOTів&lt;br /&gt;
            \-- OpenSCADA/         =&amp;gt; Теки репозиторіїв OpenSCADA&lt;br /&gt;
                |-- LTS/           =&amp;gt; Теки Стабільних (LTS) репозиторіїв OpenSCADA&lt;br /&gt;
                \-- Work/          =&amp;gt; Теки Робочих (Work) репозиторіїв OpenSCADA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Автоматична складальна система підтримує також її розподіл за специфічними оточеннями (для деяких типів складання) на кшталт різних апаратних платформ, інколи замість їх CHROOTів. Розподіл відбувається перенесенням частини автоматичного складальника назовні шляхом: розгортання структури на горі лише для потрібних цілей, організації локального файлового серверу та планування синхронізації скрипту [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaSyncFtp oscadaSyncFtp] на ядрі автоматичного складальника (скажіть [[User:RomanSavochenko|Роману Савоченко]] щодо цього) — основний FTP-сервер.&lt;br /&gt;
&lt;br /&gt;
Наразі автоматичний складальник передбачає складання:&lt;br /&gt;
* Робочої (Work) версії (1) щодо останньої SVN-ревізії із тегом &amp;quot;(stable)&amp;quot;;&lt;br /&gt;
* Стабільної (LTS) версії (0.9.U.S) щодо загального (U) та сервісного (S) оновлення.&lt;br /&gt;
&lt;br /&gt;
Customization of [https://www.debian.org/devel/debian-live the Debian Live project] for this project:&lt;br /&gt;
* ''/usr/lib/live/build/binary_iso'' — appending the argument &amp;quot;-input-charset UTF-8&amp;quot; to the variable XORRISO_OPTIONS for allowing   files in UTF-8 on the disk;&lt;br /&gt;
* ''/usr/lib/live/build/installer_debian-installer'' — taking from Debian 12 since that one from Debian 13 has errors with build for Debian 10,11.&lt;br /&gt;
&lt;br /&gt;
'''Table 1''': Реалізовані профілі — типи складання.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ціль !! Результат !! Метод складання !! Зовнішнє розгортання !! Додаткове&lt;br /&gt;
|-&lt;br /&gt;
| SrcTar || Пакети вихідних, запаковані XZ TAR пакетами || CHROOT &amp;quot;Debian_7_32&amp;quot; || Так || Оновлює документацію OpenSCADA для LTS.&lt;br /&gt;
|-&lt;br /&gt;
| SrcRPM, CentOs*, SuSE*, Fedora*, ALTLinux*, Mandriva* || Вихідні та бінарні RedHat пакети для апаратних архітектур x86_32 і x86_64 || CHROOT || Так || Допускає підлаштування до специфіки латками &amp;quot;openscada_*.patch&amp;quot;.&amp;lt;br/&amp;gt;Викликом наданого сценарію &amp;quot;reposUpdate&amp;quot; у теці результатів, репозиторії пакетів можуть бути: створені, оновлені, підписані щодо пакетів та репозиторію загалом.&amp;lt;br/&amp;gt;Цільові параметри:&lt;br /&gt;
* &amp;quot;rep&amp;quot; — до теки репозиторію замість теки OpenSCADA;&lt;br /&gt;
* &amp;quot;dev&amp;quot; — монтувати системні теки до CHROOT (/dev, /dev/pts, /proc).&lt;br /&gt;
|-&lt;br /&gt;
| Debian*, Raspbian*, Ubuntu* || Пакети Debian для апаратних архітектур x86_32, x86_64, ARMHF, ARM64, NATIVE || CHROOT || Так || Допускає підлаштування до специфіки латками &amp;quot;openscada[-{platform}]_*.patch&amp;quot;.&amp;lt;br/&amp;gt;Викликом наданого сценарію &amp;quot;reposUpdate&amp;quot; у теці результатів, репозиторії пакетів можуть бути: створені, оновлені, підписані щодо пакетів та репозиторію загалом.&amp;lt;br/&amp;gt;Цільові параметри:&lt;br /&gt;
* &amp;quot;rep&amp;quot; — до теки репозиторію замість теки OpenSCADA.&lt;br /&gt;
|-&lt;br /&gt;
| Nokia* || Пакети Debian для апаратної архітектури ARMEL || [http://www.scratchbox.org/ Scratchbox] || Так || Допускає підлаштування до специфіки латками &amp;quot;openscada_*.patch&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC*, LP8x81* || TAR пакети прошивок ПЛК для архітектури x86_32 || [[Special:MyLanguage/Sub-projects/Server#VPS:_ALTLinux32_builder|VPS: bldrALT32.oscada]] || Ні || Використовує mkimage профілі ALTLinux: &amp;quot;mkimage-profiles-5-plc&amp;quot;, &amp;quot;mkimage-profiles-5-plc-LP8x81&amp;quot;, &amp;quot;mkimage-profiles-6-plc&amp;quot;, &amp;quot;mkimage-profiles-6-plc-LP8x81&amp;quot;.&amp;lt;br/&amp;gt;Цільові параметри:&lt;br /&gt;
* &amp;quot;UI&amp;quot; — включити Користувацький Інтерфейс, лише для ALTLinux 5;&lt;br /&gt;
* &amp;quot;rt1&amp;quot; — використати ядро &amp;quot;rt1-up&amp;quot;, для ALTLinux 6.&lt;br /&gt;
|-&lt;br /&gt;
| Live_ALT || Гібридний ISO штамп або TAR пакет Живого Диску [[Special:MyLanguage/Sub-projects/Automation_Linux_distributive#ALTLinux|Linux дистрибутиву Автоматизації заснованого на ALTLinux]] || [[Special:MyLanguage/Sub-projects/Server#VPS:_ALTLinux32_builder|VPS: bldrALT32.oscada]] || Ні || Використовує ALTLinux mkimage профіль &amp;quot;mkimage-profiles-6-kdesktop&amp;quot;.&amp;lt;br/&amp;gt;Оновлює MD5SUM ISO штампів у файлі &amp;quot;MD5SUM&amp;quot;.&amp;lt;br/&amp;gt;Цільові параметри:&lt;br /&gt;
* &amp;quot;flash&amp;quot; — скласти TAR пакет замість ISO штампу.&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb || Гібридний ISO штамп Живого Диску [[Special:MyLanguage/Sub-projects/Automation_Linux_distributive#Debian|Linux дистрибутиву Автоматизації заснованого на Debian]] || [[Special:MyLanguage/Sub-projects/Server#VPS:_Debian.7B8.2C9.7D_builder|VPS: bldrDeb8.oscada]]; home.home || Ні || Використовує [https://www.debian.org/devel/debian-live/ профілі Живої Побудови] Debian: live7-32, live7-64, live8-32, live8-64, live9-32, live9-64, live10-32, live10-64, live11-32, live11-64.&amp;lt;br/&amp;gt;Оновлює MD5SUM ISO штампів у файлі &amp;quot;MD5SUM&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| ICP_DAS_LP_ARM, SMH2Gi || TAR пакети прошивок ПЛК для апаратної архітектури ARM. || [[Special:MyLanguage/Sub-projects/Server#VPS:_Debian.7B8.2C9.7D_builder|VPS: bldrDeb8.oscada]] + TOOLCHAIN || Ні || Використовує відповідні TOOLCHAINs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Таблиця 2''': Актуальні цілі складання (на 01.01.7531/01.03.2023).&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ціль(і) !! OpenSCADA !! Хост !! Примітки&lt;br /&gt;
|-&lt;br /&gt;
| SrcTar || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| SrcRPM || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Debian''&lt;br /&gt;
|-&lt;br /&gt;
| Debian_13_{32,64,armhf,arm64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_13_{32,64,armhf,arm64}:rep || Work+LTS+ServLTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_12_{32,64,armhf,arm64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_12_{32,64,armhf,arm64}:rep || Work+LTS+ServLTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_11_{32,64,armhf,arm64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_11_{32,64,armhf,arm64}:rep || Work+LTS+ServLTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_10_{32,64,armhf} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_10_{32,64,armhf}:rep || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_9_{32,64,armhf} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_9_{32,64,armhf}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_8_{32,64,armhf} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_8_{32,64,armhf}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_7_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_7_{32,64}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_6_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Raspbian, the same Debian but for [https://www.raspberrypi.org/ Raspberry Pi] — a very specific ARMv6 environment for the BCM2835 and early chips mostly.''&lt;br /&gt;
|-&lt;br /&gt;
| Raspbian_9_native || Work+LTS || pi.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Raspbian_8_native || LTS || pi.home ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Ubuntu''&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_26.04_{32,64} || Work+LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_24.04_{32,64} || Work+LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_22.04_{32,64} || LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_20.04_{32,64} || LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_18.04_{32,64} || LTS || home.home || Very new Linux kernel for CHROOT on oscada.org&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_16.04_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_14.04_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_12.04_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_11.10_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_10.04_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''CentOs''&lt;br /&gt;
|-&lt;br /&gt;
| CentOs_8_64:dev || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| CentOs_7_64 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| CentOs_6_{32,64} || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''SuSE''&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_15_64:dev || LTS || home.home || Very new Linux kernel for CHROOT on oscada.org. GPG2 needs for mounting the system folders.&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_13_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_12_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_11_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''ALTLinux''&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_7_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_7_{32,64}:rep || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_6_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_6_{32,64}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_5_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_5_{32,64}:rep || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Fedora''&lt;br /&gt;
|-&lt;br /&gt;
| Fedora_12_32 || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Mandriva''&lt;br /&gt;
|-&lt;br /&gt;
| Mandriva_2011_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Mandriva_2010_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Nokia''&lt;br /&gt;
|-&lt;br /&gt;
| Nokia_800 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Nokia_900 || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Nokia_950 || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''PLC+Embedded''&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT6 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT6:rt1 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT5 || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT5:UI || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT6 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT6:rt1 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT5 || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT5:UI || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| SMH2Gi || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| ICP_DAS_LP_ARM || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| TionPro270 || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Live''&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb13_64 || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb12_{32,64} || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb11_{32,64} || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb10_{32,64} || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb9_{32,64} || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb8_{32,64} || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb7_{32,64} || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_ALT || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_ALT:flash || - || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Sub-projects/Automatic_Builder_of_OpenSCADA/en&amp;diff=93985</id>
		<title>Sub-projects/Automatic Builder of OpenSCADA/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Sub-projects/Automatic_Builder_of_OpenSCADA/en&amp;diff=93985"/>
				<updated>2026-05-10T14:57:03Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Founded !! Status !! Members&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Sub-projects/Automatic Builder of OpenSCADA|Automatic Builder of OpenSCADA]] || May 2015 ||&lt;br /&gt;
Implemented in scripts of the building, repositories and branches processing and targets checking for building for up to 100 targets by: CHROOTs of the Linux repositories, VPS and different sub-environments.&lt;br /&gt;
As the result of the Builder work is: [http://oscada.org/main/download/ the fresh and signed packages repositories of Linux, Live Disk images and other binary archives of OpenSCADA].&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;5&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; | The sub-project is aimed to make easy the project OpenSCADA distribution through automatic building the binary packages, their ready to use repositories and other complex distributives like to Live Disks.&lt;br /&gt;
* '''[http://oscada.org/en/development/tasks/posts/core/the_automatic_openscada_builder/ Managing Task]'''&lt;br /&gt;
* '''[[Special:MyLanguage/Sub-projects/Automation_Linux_distributive|Automation Linux distributive of the project OpenSCADA]]'''&lt;br /&gt;
* '''[[Special:MyLanguage/Documents/How_to/Live_disk|How to Live Disk]]'''&lt;br /&gt;
* '''State of the support''': Called manually after committing SVN-changes for general build on the server via ''oscadaCheck'' and home PC for new environments via ''oscadaCheck_ExtGen'', and automatically at the beginning of the hour for &amp;quot;Raspbian&amp;quot; targets on RPi3 via ''oscadaCheck_RPi''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The builder is represented by two common BASH-scripts and several checking BASH-scripts:&lt;br /&gt;
* '''oscadaCheck*''' — very simple scripts with the building profiles list only for checking by ''oscadaRepBranches'' and depending on the building host; they are started typically by the CRON schedule, for night builds, or manually. Known currently profiles list corresponding to Table 2:&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck oscadaCheck] — generic one used on the OpenSCADA server;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_WorkAtLTS oscadaCheck_WorkAtLTS] — additional generic one used on the OpenSCADA server at the new LTS version release;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_ExtGen oscadaCheck_ExtGen] — external generic one used on the Author Home PC;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_ExtGen_WorkAtLTS oscadaCheck_ExtGen_WorkAtLTS] — additional external generic one used on the Author Home PC at the new LTS version release;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_RPi oscadaCheck_RPi] — external &amp;quot;Raspbian&amp;quot; targets' one used on the Author RPi3;&lt;br /&gt;
** [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaCheck_RPi_WorkAtLTS oscadaCheck_RPi_WorkAtLTS] — additional external &amp;quot;Raspbian&amp;quot; targets' one used on the Author RPi3 at the new LTS version release.&lt;br /&gt;
* [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaRepBranches '''oscadaRepBranches'''] — for processing of the profiles list pointed in the command line and in the format &amp;quot;'''{Target}[:option[,optionN]] {EN}{ForWork}{ForLTS}{ForLTSServ}{OmitSourceTree}'''&amp;quot;, where:&lt;br /&gt;
** &amp;quot;EN&amp;quot;{0|1} — enabling the target;&lt;br /&gt;
** &amp;quot;ForWork&amp;quot;{0|1} — enabling to build for the Work branch;&lt;br /&gt;
** &amp;quot;ForLTS&amp;quot;{0|1} — enabling to build for generic updates of the LTS branch;&lt;br /&gt;
** &amp;quot;ForLTSServ&amp;quot;{0|1} — enabling to build for service updates of the LTS branch;&lt;br /&gt;
** &amp;quot;OmitSourceTree&amp;quot;{0|1} — omit the source tree download from SVN, mostly for building the Live images.&lt;br /&gt;
* [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaBuild '''oscadaBuild'''] — for building and placing the result packages and other for the OpenSCADA LTS or Work branches.&lt;br /&gt;
&lt;br /&gt;
Files structure of the automation building system means:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
\-- /data/&lt;br /&gt;
    |-- oscada/&lt;br /&gt;
    |   |-- bin/&lt;br /&gt;
    |   |   |-- oscadaBuild&lt;br /&gt;
    |   |   |-- oscadaRepBranches&lt;br /&gt;
    |   |   |-- oscadaCheck&lt;br /&gt;
    |   |   \-- oscadaCheck_WorkAtLTS&lt;br /&gt;
    |   |-- build/                 =&amp;gt; work building folder, which contains the unpacked CHROOTs&lt;br /&gt;
    |   |   |-- log/               =&amp;gt; logs of the builds&lt;br /&gt;
    |   |   \-- *.stamp            =&amp;gt; stamps of the successful builds&lt;br /&gt;
    |   \-- chroot-data.tgz        =&amp;gt; contains the GPG singing key for the packages and their repositories of the builder&lt;br /&gt;
    \-- share_res/&lt;br /&gt;
        \-- ftp/                   =&amp;gt; FTP folder of the building results&lt;br /&gt;
            |-- {ALTLinux,Debian}/ =&amp;gt; Folders of the repositories of the Automation Linux distributive&lt;br /&gt;
            |-- Misc/&lt;br /&gt;
            |   \-- chroots/       =&amp;gt; Folder of the archives of the CHROOTs of the building&lt;br /&gt;
            \-- OpenSCADA/         =&amp;gt; Folders of the repositories of OpenSCADA&lt;br /&gt;
                |-- LTS/           =&amp;gt; Folders of the LTS repositories of OpenSCADA&lt;br /&gt;
                \-- Work/          =&amp;gt; Folders of the Work repositories of OpenSCADA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The automatic building system supports also its distribution at specific environments (for some building types) like to different hardware platforms, instead their CHROOTs sometime. The distribution is performed by moving part of the automatic builder outward by: deploying the bottom file structure only for needed targets, organization for the local file server and scheduling the sync script [http://oscada.org/svn/trunk/roman_do/Scripts/OpenSCADA/oscadaSyncFtp oscadaSyncFtp] on the automatic builder core (say [[User:RomanSavochenko|Roman Savochenko]] for) — main FTP-server.&lt;br /&gt;
&lt;br /&gt;
Currently the automatic builder means for automatic building:&lt;br /&gt;
* The Work version (1) for the last SVN-revision with the tag &amp;quot;(stable)&amp;quot;;&lt;br /&gt;
* The LTS version (0.9.U.S) for generic (U) and service (S) update.&lt;br /&gt;
&lt;br /&gt;
Customization of [https://www.debian.org/devel/debian-live the Debian Live project] for this project:&lt;br /&gt;
* ''/usr/lib/live/build/binary_iso'' — appending the argument &amp;quot;-input-charset UTF-8&amp;quot; to the variable XORRISO_OPTIONS for allowing   files in UTF-8 on the disk;&lt;br /&gt;
* ''/usr/lib/live/build/installer_debian-installer'' — taking from Debian 12 since that one from Debian 13 has errors with build for Debian 10,11.&lt;br /&gt;
&lt;br /&gt;
'''Table 1''': Implemented profiles — the building types.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Target !! Result !! Method of the building !! External deploying !! Additional&lt;br /&gt;
|-&lt;br /&gt;
| SrcTar || Source packages packed as XZ TAR packages || CHROOT &amp;quot;Debian_7_32&amp;quot; || Yes || Updates the OpenSCADA documentation for LTS.&lt;br /&gt;
|-&lt;br /&gt;
| SrcRPM, CentOs*, SuSE*, Fedora*, ALTLinux*, Mandriva* || RedHat source and binary packages for the hardware architectures x86_32 and x86_64 || CHROOT || Yes || Admits for tuning to the specific by the patches &amp;quot;openscada_*.patch&amp;quot;.&amp;lt;br/&amp;gt;Calling the provided script &amp;quot;reposUpdate&amp;quot; in the results directory there the packages repository can be: created, updated, signed for the packages and the repository in whole.&amp;lt;br/&amp;gt;Target options:&lt;br /&gt;
* &amp;quot;rep&amp;quot; — to the repository folder instead OpenSCADA folder;&lt;br /&gt;
* &amp;quot;dev&amp;quot; — mount the system folders to the CHROOT (/dev, /dev/pts, /proc).&lt;br /&gt;
|-&lt;br /&gt;
| Debian*, Raspbian*, Ubuntu* || Debian packages for the hardware architectures x86_32, x86_64, ARMHF, ARM64, NATIVE || CHROOT || Yes || Admits for tuning to the specific by the patches &amp;quot;openscada[-{platform}]_*.patch&amp;quot;.&amp;lt;br/&amp;gt;Calling the provided script &amp;quot;reposUpdate&amp;quot; in the results directory there the packages repository can be: created, updated, signed for the packages and the repository in whole.&amp;lt;br/&amp;gt;Target options:&lt;br /&gt;
* &amp;quot;rep&amp;quot; — to the repository folder instead OpenSCADA folder.&lt;br /&gt;
|-&lt;br /&gt;
| Nokia* || Debian packages for the hardware architecture ARMEL || [http://www.scratchbox.org/ Scratchbox] || Yes || Admits for tuning to the specific by the patches &amp;quot;openscada_*.patch&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC*, LP8x81* || TAR packages of the PLC firmwares for the hardware architecture x86_32 || [[Special:MyLanguage/Sub-projects/Server#VPS:_ALTLinux32_builder|VPS: bldrALT32.oscada]] || No || Uses the ALTLinux mkimage profiles: &amp;quot;mkimage-profiles-5-plc&amp;quot;, &amp;quot;mkimage-profiles-5-plc-LP8x81&amp;quot;, &amp;quot;mkimage-profiles-6-plc&amp;quot;, &amp;quot;mkimage-profiles-6-plc-LP8x81&amp;quot;.&amp;lt;br/&amp;gt;Target options:&lt;br /&gt;
* &amp;quot;UI&amp;quot; — include User Interface, for ALTLinux 5 only;&lt;br /&gt;
* &amp;quot;rt1&amp;quot; — use the kernel &amp;quot;rt1-up&amp;quot;, for ALTLinux 6.&lt;br /&gt;
|-&lt;br /&gt;
| Live_ALT || Hybrid ISO image or TAR package of the Live Disk of [[Special:MyLanguage/Sub-projects/Automation_Linux_distributive#ALTLinux|the Automation Linux distributive based on ALTLinux]] || [[Special:MyLanguage/Sub-projects/Server#VPS:_ALTLinux32_builder|VPS: bldrALT32.oscada]] || No || Uses the ALTLinux mkimage profile &amp;quot;mkimage-profiles-6-kdesktop&amp;quot;.&amp;lt;br/&amp;gt;Updates MD5SUM of the ISO images in the file &amp;quot;MD5SUM&amp;quot;.&amp;lt;br/&amp;gt;Target options:&lt;br /&gt;
* &amp;quot;flash&amp;quot; — build the TAR package instead the ISO image.&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb || Hybrid ISO image of the Live Disk of [[Special:MyLanguage/Sub-projects/Automation_Linux_distributive#Debian|the Automation Linux distributive based on Debian]] || [[Special:MyLanguage/Sub-projects/Server#VPS:_Debian.7B8.2C9.7D_builder|VPS: bldrDeb8.oscada]]; home.home || No || Uses [https://www.debian.org/devel/debian-live/ Live Build profiles] of Debian: live7-32, live7-64, live8-32, live8-64, live9-32, live9-64, live10-32, live10-64, live11-32, live11-64.&amp;lt;br/&amp;gt;Updates MD5SUM of the ISO images in the file &amp;quot;MD5SUM&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| ICP_DAS_LP_ARM, SMH2Gi || TAR packages of the PLC firmwares for the hardware architecture ARM. || [[Special:MyLanguage/Sub-projects/Server#VPS:_Debian.7B8.2C9.7D_builder|VPS: bldrDeb8.oscada]] + TOOLCHAIN || No || Uses the proper TOOLCHAINs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Table 2''': The actual building targets (on 01.01.7531/01.03.2023).&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Target(s) !! OpenSCADA !! Host !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| SrcTar || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| SrcRPM || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Debian''&lt;br /&gt;
|-&lt;br /&gt;
| Debian_13_{32,64,armhf,arm64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_13_{32,64,armhf,arm64}:rep || Work+LTS+ServLTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_12_{32,64,armhf,arm64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_12_{32,64,armhf,arm64}:rep || Work+LTS+ServLTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_11_{32,64,armhf,arm64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_11_{32,64,armhf,arm64}:rep || Work+LTS+ServLTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_10_{32,64,armhf} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_10_{32,64,armhf}:rep || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_9_{32,64,armhf} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_9_{32,64,armhf}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_8_{32,64,armhf} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_8_{32,64,armhf}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_7_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_7_{32,64}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Debian_6_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Raspbian, the same Debian but for [https://www.raspberrypi.org/ Raspberry Pi] — a very specific ARMv6 environment for the BCM2835 and early chips mostly.''&lt;br /&gt;
|-&lt;br /&gt;
| Raspbian_9_native || Work+LTS || pi.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Raspbian_8_native || LTS || pi.home ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Ubuntu''&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_26.04_{32,64} || Work+LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_24.04_{32,64} || Work+LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_22.04_{32,64} || LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_20.04_{32,64} || LTS || home.home || The 32-bit architecture is some limited and there is missing the MariaDB and libphonon4qt5 packages.&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_18.04_{32,64} || LTS || home.home || Very new Linux kernel for CHROOT on oscada.org&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_16.04_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_14.04_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_12.04_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_11.10_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu_10.04_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''CentOs''&lt;br /&gt;
|-&lt;br /&gt;
| CentOs_8_64:dev || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| CentOs_7_64 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| CentOs_6_{32,64} || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''SuSE''&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_15_64:dev || LTS || home.home || Very new Linux kernel for CHROOT on oscada.org. GPG2 needs for mounting the system folders.&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_13_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_12_{32,64} || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| SuSE_11_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''ALTLinux''&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_7_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_7_{32,64}:rep || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_6_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_6_{32,64}:rep || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_5_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux_5_{32,64}:rep || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Fedora''&lt;br /&gt;
|-&lt;br /&gt;
| Fedora_12_32 || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Mandriva''&lt;br /&gt;
|-&lt;br /&gt;
| Mandriva_2011_{32,64} || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Mandriva_2010_{32,64} || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Nokia''&lt;br /&gt;
|-&lt;br /&gt;
| Nokia_800 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Nokia_900 || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Nokia_950 || LTS || oscada.org ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''PLC+Embedded''&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT6 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT6:rt1 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT5 || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| Gen32PLC_ALT5:UI || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT6 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT6:rt1 || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT5 || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| LP8x81_ALT5:UI || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| SMH2Gi || LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| ICP_DAS_LP_ARM || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| TionPro270 || - || ||&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | ''Live''&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb13_64 || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb12_{32,64} || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb11_{32,64} || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb10_{32,64} || Work+LTS || home.home ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb9_{32,64} || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb8_{32,64} || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_Deb7_{32,64} || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_ALT || Work+LTS || oscada.org ||&lt;br /&gt;
|-&lt;br /&gt;
| Live_ALT:flash || - || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Sub-projects/Automatic_Builder_of_OpenSCADA/8/en&amp;diff=93984</id>
		<title>Translations:Sub-projects/Automatic Builder of OpenSCADA/8/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Sub-projects/Automatic_Builder_of_OpenSCADA/8/en&amp;diff=93984"/>
				<updated>2026-05-10T14:56:54Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Customization of [https://www.debian.org/devel/debian-live the Debian Live project] for this project:&lt;br /&gt;
* ''/usr/lib/live/build/binary_iso'' — appending the argument &amp;quot;-input-charset UTF-8&amp;quot; to the variable XORRISO_OPTIONS for allowing   files in UTF-8 on the disk;&lt;br /&gt;
* ''/usr/lib/live/build/installer_debian-installer'' — taking from Debian 12 since that one from Debian 13 has errors with build for Debian 10,11.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Modules/WebVision/ru&amp;diff=93981</id>
		<title>Modules/WebVision/ru</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Modules/WebVision/ru&amp;diff=93981"/>
				<updated>2026-05-10T04:54:26Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Модуль !! Имя !! Версия !! Лицензия !! Источник !! Языки !! Платформы !! Тип !! Автор&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Modules/WebVision|WebVision]] || Рабочий пользовательский интерфейс (WEB)&lt;br /&gt;
| 6.16 || GPL2 || ui_WebVision.so || en,uk,ru,de || x86,x86_64,ARM&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| UI || {{Author|Roman Savochenko|Maxim Lysenko (2007-2012), Ksenia Yashina (2007-2008)}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | Visual operation user interface, based on the WEB — front-end to the VCA engine.&lt;br /&gt;
* '''Total complexity:''' &amp;gt; 50 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}&lt;br /&gt;
* '''Sponsored by, for the primitive &amp;quot;Media&amp;quot; and Notification on 1.35 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' Hadi Ramezani&lt;br /&gt;
* '''Sponsored by, for the Notification on 0.85 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' Vinnica Poultry Farm&lt;br /&gt;
* '''Sponsored by, for finishing the mirroring of the primitive ElFigure on 0.5 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' SVItoVYR Ltd&lt;br /&gt;
* '''Sponsored by, for the Export on 0.8 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' Vinnica Poultry Farm&lt;br /&gt;
* '''[[Special:MyLanguage/Works/To_do|To Do]]:'''&lt;br /&gt;
&amp;lt;section begin=ToDo /&amp;gt;&lt;br /&gt;
: * revise and unify the keyboard focus forcing on a first active element considering them specifity, to ensure the keyboard shortcuts;&lt;br /&gt;
: - expand the primitive &amp;quot;Diagram&amp;quot; by the mouse scaling operations;&lt;br /&gt;
: - implement own RTE-editor for the view Text of the primitive FormEl;&lt;br /&gt;
: - ElFigure: fix some properties loss (line width at the least) at the actions processing, in the way of the primitive code common refactoring;&lt;br /&gt;
: - expand the status-bar, with the functions:&lt;br /&gt;
:: - printing and exporting the Diagram primitive after it moving to &amp;quot;SVG&amp;quot;.&lt;br /&gt;
: - ElFigure,Diagram: enable or make the anti aliasing, for the library GD;&lt;br /&gt;
: - implement the primitives &amp;quot;Diagram&amp;quot;, &amp;quot;ElFigure&amp;quot; in the tag &amp;quot;SVG&amp;quot;;&lt;br /&gt;
: - expand the variant &amp;quot;Animation&amp;quot; of the primitive &amp;quot;Media&amp;quot; in using the raw image files, like to PNG.&lt;br /&gt;
&amp;lt;section end=ToDo /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Модуль предоставляет в OpenSCADA механизм конечной визуализации среды визуализации и управления (СВУ). Модуль основан на WEB технологиях (XHTML, JavaScript, CSS, AJAX). В своей работе модуль использует данные движка СВУ — модуль [[Special:MyLanguage/Modules/VCAEngine|VCAEngine]].&lt;br /&gt;
{{#lst:Sub-projects/VCA/uk|Introduce}}&lt;br /&gt;
С целью избежания этих проблем, а также создания в кратчайшие сроки полного спектра различных типов СВУ, основан [[Special:MyLanguage/Sub-projects/VCA|проект создания концепции СВУ]]. Результатом этого проекта и стал данный модуль непосредственной визуализации (на основе Web-технологий), модуль непосредственной визуализации [[Special:MyLanguage/Modules/Vision|Vision]] и движок СВУ [[Special:MyLanguage/Modules/VCAEngine|VCAEngine]].&lt;br /&gt;
&lt;br /&gt;
== Назначение ==&lt;br /&gt;
Данный модуль непосредственной визуализации СВУ предназначен только для исполнения интерфейсов СВУ в среде WEB-технологий!&lt;br /&gt;
&lt;br /&gt;
Интерфейс пользователя формируется в WEB-браузере путём обращения к WEB-серверу и получения от него XHTML-документа по протоколу HTTP. В данном случае, в роли WEB-сервера выступает OpenSCADA, которая поддерживает стандартные коммуникационные механизмы TCP-сетей (модуль [[Special:MyLanguage/Modules/Sockets|Transport.Sockets]]), протокол передачи гипертекста (модуль [[Special:MyLanguage/Modules/HTTP|Protocol.HTTP]]), а также шифрование трафика между браузером и сервером ([[Special:MyLanguage/Modules/SSL|Transport.SSL]]). Исходя из этого, для получения доступа к интерфейсу пользователя, предоставляемого этим модулем, необходимо в OpenSCADA настроить транспорт (Transport.Sockets или Transport.SSL) в связке с протоколом HTTP (Protocol.HTTP). Вместе с OpenSCADA идут конфигурационные файлы, содержащие настройки Transport.Sockets для порта 10002. Следовательно, интерфейс модуля, по умолчанию, будет доступен по URL: &amp;quot;&amp;lt;nowiki&amp;gt;http://localhost:10002&amp;lt;/nowiki&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Финальная версия этого модуля СВУ, построенная на основе данного модуля, обеспечит:&lt;br /&gt;
{{#lst:Sub-projects/VCA/ru|TargetFeatures}}&lt;br /&gt;
&lt;br /&gt;
== Исполнение интерфейсов СВУ ==&lt;br /&gt;
Исполнение интерфейса СВУ заключается в запуске нового сеанса проекта, или подключения к существующему, на уровне движка СВУ (рис.2). Перед запросом, на подключение к сеансу, выполняется запрос на аутентификацию пользователя (рис.1). Далее, модуль непосредственной визуализации отображает и управляет данными сеанса. Главное окно режима исполнения данного модуля имеет вид, представленный на рисунке 3. Административные пользователи (&amp;quot;root&amp;quot; или в группе &amp;quot;root&amp;quot;) могут закрывать открытые сеансы.&lt;br /&gt;
&lt;br /&gt;
Интерфейс окна исполнения полностью строится динамически, скриптом JavaScript и исходя из содержимого сеанса проекта, путём прямых XML запросов к серверу.&lt;br /&gt;
&lt;br /&gt;
Реализовано обновление содержимого открытых страниц интерфейса визуализации с периодичностью исполнения визуализируемого сеанса проекта визуализации. В процессе обновления выполняется:&lt;br /&gt;
* запрос у модели списка открытых страниц, с признаком модификации страницы, и проверка соответствия реально открытых страниц этому списку;&lt;br /&gt;
* запрос ветви данных модифицированных страниц;&lt;br /&gt;
* обновление содержимого модифицированных страниц и их виджетов в соответствии с полученными измененными данными.&lt;br /&gt;
&lt;br /&gt;
Механизм запроса только изменённых данных основан на абсолютном счётчике исполнения сессии. При внесении реальных изменений в атрибуты виджетов выполняется запоминание значения этого счётчика, что и позволяет идентифицировать изменённые атрибуты. Такой подход позволяет повысить производительность и уменьшить трафик, в случае доступа к движку СВУ через сеть.&lt;br /&gt;
&lt;br /&gt;
Иерархически, модулем предусматривается возможность размещения страниц проекта как на главном окне исполнения (рис.3), так и вкладывая внутрь виджетов контейнеров, а также путем открытия дополнительных окон поверх основного.&lt;br /&gt;
&lt;br /&gt;
Located in the status bar:&lt;br /&gt;
* On the right side:&lt;br /&gt;
** the current user, on whose behalf the VCA interface is executed — by a clicking this user can be changed, typing of the new username and password;&lt;br /&gt;
** the current interface style, which can be changed selecting need one in the combobox;&lt;br /&gt;
** the current alarm status by a lamp with color related to the alarm level and the active notifiers' icons; blinks at the alarm appearing or changing; pressing on the lamp you may quiet the alarm in whole or the desired type of the notification, pressing the correspond notifier icon near;&lt;br /&gt;
** the menu buttons of call the page printing and data exporting for:&lt;br /&gt;
*** printing: Main Page, Documents;&lt;br /&gt;
*** exporting: Documents (HTML,CSV), Tables (CSV).&lt;br /&gt;
** manual on the VCA-project — calls by a click the manual on the visualization project for the file &amp;quot;'''{ProjVCA_ID}.[pdf|html|odt]'''&amp;quot; in [[Special:MyLanguage/Documents/Program_manual#Config|the document folder]] or specified in the [[#SpecAttrs|&amp;quot;prjDoc&amp;quot; attribute]];&lt;br /&gt;
** panel of user statuses and actions when specified in the [[#SpecAttrs|&amp;quot;statLine&amp;quot; attribute]]; mouse clicking left, right and double forms events to the main interface page.&lt;br /&gt;
* In the main field of the status line various messages and assistance messages are displayed.&lt;br /&gt;
&lt;br /&gt;
Модулем поддерживается многоязычность, которая включается [[Special:MyLanguage/Documents/Program_manual#ConfigTr|динамическим переводом сообщений OpenSCADA]]. Полученный язык передаётся модулем [[Special:MyLanguage/Modules/HTTP|Protocol.HTTP]] и определяется путём и в последовательности:&lt;br /&gt;
* URL параметр &amp;quot;lang&amp;quot;.&lt;br /&gt;
* Язык пользователя, который вошёл.&lt;br /&gt;
* Язык Web-браузера из HTTP свойства &amp;quot;Accept-Language&amp;quot;.&lt;br /&gt;
* Общий язык процесса OpenSCADA.&lt;br /&gt;
&lt;br /&gt;
[[file:HTTP_auth_ru.png|center|frame|Рис.1. Страница аутентификации.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_connect_ru.png|center|frame|Рис.2. Подключение или создание нового сеанса исполнения проекта СВУ.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run.png|center|frame|Рис.3. Главное окно режима исполнения.]]&lt;br /&gt;
&lt;br /&gt;
== {{Anch|Primitives|Представление базовых элементов (примитивов)}} ==&lt;br /&gt;
Данной версией модуля реализованы не все образы примитивов, заложенные проектом. В целом, проектом заложены примитивы:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Идентификатор !! Наименование !! Функция&lt;br /&gt;
|-&lt;br /&gt;
| ElFigure || Элементарная графическая фигура ||&lt;br /&gt;
Примитив является основой отрисовки элементарных графических фигур со всевозможной комбинацией их в одном объекте. Предусматривается поддержка следующих элементарных фигур:&lt;br /&gt;
* Линия.&lt;br /&gt;
* Дуга.&lt;br /&gt;
* Кривая Безье.&lt;br /&gt;
* Заливка замкнутого пространства.&amp;lt;br/&amp;gt;&lt;br /&gt;
Для всех фигур, содержащихся в виджете, устанавливаются единые свойства толщины, цвета и т.д., также, предусматривается возможность указания вышеперечисленных атрибутов для каждой фигуры отдельно и их динамизация.&lt;br /&gt;
|-&lt;br /&gt;
| FormEl || Элемент формы ||&lt;br /&gt;
Включает поддержку стандартных компонентов формы:&lt;br /&gt;
* Редактирование строки.&lt;br /&gt;
* Редактирование текста.&lt;br /&gt;
* Флажок.&lt;br /&gt;
* Кнопка.&lt;br /&gt;
* Выбор из списка.&lt;br /&gt;
* Список.&lt;br /&gt;
* Дерево.&lt;br /&gt;
* Таблица.&lt;br /&gt;
* Слайдер.&lt;br /&gt;
* Строка прокрутки. &lt;br /&gt;
|-&lt;br /&gt;
| Text || Текст || Элемент текста-метка. Характеризуется типом шрифта, цветом, ориентацией и выравниванием. Предусматривается поддержка аргументов. &lt;br /&gt;
|-&lt;br /&gt;
| Media || Медиа || Элемент отображения растровых и векторных изображений различных форматов, проигрывания анимированных изображений, проигрывание аудио-фрагментов и просмотр видео-фрагментов. &lt;br /&gt;
|-&lt;br /&gt;
| Diagram || Диаграмма || Элемент диаграммы с поддержкой возможности отображения нескольких потоков в реальном времени для: трендов (временных графиков), частотного спектра, XY диаграмм. &lt;br /&gt;
|-&lt;br /&gt;
| Protocol || Протокол || Элемент протокола — визуализатор сообщений программы, с поддержкой нескольких режимов работы.&lt;br /&gt;
|-&lt;br /&gt;
| Document || Документ || Элемент формирования отчётов, журналов и другой документации на основе доступных данных. &lt;br /&gt;
|-&lt;br /&gt;
| Box || Контейнер || Содержит механизм размещения-включения других виджетов для формирования новых, более сложных, виджетов и страниц конечной визуализации. &lt;br /&gt;
|-&lt;br /&gt;
| Function, &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;в планах&amp;lt;/span&amp;gt; || Функция API объектной модели OpenSCADA || Невизуальный виджет, на стороне исполнения, позволяющий включать вычислительные функции объектной модели OpenSCADA в СВУ.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Anch|SpecAttrs|The visualizer module provides and uses set of specific attributes}} of the generic means, the information of which is given in the table. These attributes are automatically created by the visualizer in their absence and during the first run, or created by the user in the frame of the specified area, as needed.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier (area) !! Name !! Appointment&lt;br /&gt;
|-&lt;br /&gt;
| keepAspectRatio (main page) || Keep aspect ratio on scale || Keep aspect ratio of the pages on scale.&lt;br /&gt;
|-&lt;br /&gt;
| stBarNoShow (main page) || Do not show the status bar || Hide the status bar of the main window.&lt;br /&gt;
|-&lt;br /&gt;
| notify{N}, notifyVisWebVision{N} (page) || Notification: type {N} || [[File:at.png]] Create manually with the type &amp;quot;Text&amp;quot;!&lt;br /&gt;
Specifies a notifier and a procedure of the notification resource obtaining according to the [[Special:MyLanguage/Modules/VCAEngine#Alarms|&amp;quot;Signalling (Alarms)&amp;quot; conception]].&lt;br /&gt;
|-&lt;br /&gt;
| statLine (main page) || Status line items || [[File:at.png]] Create manually with the type &amp;quot;Text&amp;quot;!&lt;br /&gt;
Text field with description of the status line item in the string form &amp;quot;'''{Id}:{Label}:{ToolTip}:{Color}:{Img}'''&amp;quot;, where:&lt;br /&gt;
* &amp;quot;Id&amp;quot; — identifier, uses also to form events from the widget &amp;quot;stIt_{Id}&amp;quot;.&lt;br /&gt;
* &amp;quot;Label&amp;quot; — visual label of the status element.&lt;br /&gt;
* &amp;quot;ToolTip&amp;quot; — context help about the element.&lt;br /&gt;
* &amp;quot;Color&amp;quot; — label color.&lt;br /&gt;
* &amp;quot;Img&amp;quot; — image of the status element, instead the label.&lt;br /&gt;
|-&lt;br /&gt;
| userSetVis (main page) || Setting the user || [[File:at.png]] Create manually with the type &amp;quot;String&amp;quot;!&lt;br /&gt;
Change the user or call a dialog to select it. Variants of the value:&lt;br /&gt;
* &amp;quot;*&amp;quot; — call for a selecting dialog of the user; &lt;br /&gt;
* &amp;quot;$&amp;quot; — change the user to the default one;&lt;br /&gt;
* &amp;quot;{user}[:{password}]&amp;quot; — direct change to ''user'' with ''password''; for empty password, the user is changed only if its permission is lesser or equal; a useful example of changing to the &amp;quot;user&amp;quot; after one minute inactivity:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 20pt&amp;quot;&amp;gt;&lt;br /&gt;
if((SYS.time()-this.ownerSess().userActTm()) &amp;lt; 60)userSetVis = &amp;quot;&amp;quot;;&lt;br /&gt;
else if(this.ownerSess().reqUser() != &amp;quot;user&amp;quot;) userSetVis = &amp;quot;user&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| prjDoc (main page) || Project document || [[File:at.png]] Create manually with the type &amp;quot;String&amp;quot;!&lt;br /&gt;
Specifying the project documentation of call from the status line's button with a possibility of disabling-concealing the button at empty value. The documentation specified in view &amp;quot;'''&amp;lt;nowiki&amp;gt;{OffLine}|{OnLineOpenSCADAWiki}&amp;lt;/nowiki&amp;gt;'''&amp;quot;, for example for the [[Special:MyLanguage/Using/Model_AGLKS|AGLCS project]] — &amp;quot;&amp;lt;nowiki&amp;gt;AGLCS|Using/Model_AGLKS&amp;lt;/nowiki&amp;gt;&amp;quot;. The online part is used in first order at its specifying!&lt;br /&gt;
|-&lt;br /&gt;
| vs_goHttpUrl (view &amp;quot;Button&amp;quot; of the primitive &amp;quot;FormEl&amp;quot;) || Go to the HTTP URL || [[File:at.png]] Create manually with the type &amp;quot;String&amp;quot;!&lt;br /&gt;
Go to the specified URL at the button press.&lt;br /&gt;
|-&lt;br /&gt;
| vs_background (views &amp;quot;Line edit&amp;quot;, &amp;quot;Text edit&amp;quot;, &amp;quot;Combo box&amp;quot;, &amp;quot;List&amp;quot;, &amp;quot;Tree&amp;quot;, &amp;quot;Table&amp;quot; of the primitive &amp;quot;FormEl&amp;quot;) || Custom background || [[File:at.png]] Create manually with the type &amp;quot;String&amp;quot;!&lt;br /&gt;
Specifies for the custom background in the form '''{color}-{transp} {image}'''.&lt;br /&gt;
|-&lt;br /&gt;
| vs_border (views &amp;quot;Line edit&amp;quot;, &amp;quot;Text edit&amp;quot;, &amp;quot;Combo box&amp;quot;, &amp;quot;List&amp;quot;, &amp;quot;Tree&amp;quot;, &amp;quot;Table&amp;quot; of the primitive &amp;quot;FormEl&amp;quot;) || Custom border || [[File:at.png]] Create manually with the type &amp;quot;String&amp;quot;!&lt;br /&gt;
Specifies for the custom border in the standard CSS-form '''{wdth}px {style} {color}'''.&lt;br /&gt;
|-&lt;br /&gt;
| vs_winTitle (the view &amp;quot;Box&amp;quot;) || Window title || [[File:at.png]] Create manually with the type &amp;quot;String&amp;quot;!&lt;br /&gt;
Dynamic window title value.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Рассмотрим реализацию каждого примитива более детально.&lt;br /&gt;
&lt;br /&gt;
=== Примитив элементарной фигуры (ElFigure) ===&lt;br /&gt;
&amp;lt;section begin=ElFigure /&amp;gt;&lt;br /&gt;
Реализована поддержка элементарных фигур: линии, эллиптической дуги, кривой Безье и заливка замкнутых контуров цветом и изображением; со свойствами:&lt;br /&gt;
* формирование произвольных изображений из трёх элементарных фигур и заполнений замкнутых пространств цветом или изображением;&lt;br /&gt;
* возможность определения свойств фигур как в целом, так и отдельно для каждой: ширина, цвет и стиль линии, ширина и цвет бордюра линии, цвет и изображение заполнения;&lt;br /&gt;
* масштабирование;&lt;br /&gt;
* трансформация: поворот и отражение;&lt;br /&gt;
* поддержка пользовательских атрибутов динамических: точек, ширин, цветов, стилей и изображений;&lt;br /&gt;
* формирование событий по действиям манипулятором мыши в замкнутом пространстве и в целом.&lt;br /&gt;
&lt;br /&gt;
На рисунке представлена часть экрана с кадром, содержащим вышеперечисленные элементарные фигуры.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_elfig.png|center]]&lt;br /&gt;
&amp;lt;section end=ElFigure /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Примитив текста (Text) ===&lt;br /&gt;
&amp;lt;section begin=Text /&amp;gt;&lt;br /&gt;
Реализована поддержка элемента текста со свойствами:&lt;br /&gt;
* Шрифт со свойствами: типа-класса, размера, усиления, наклонности, подчёркивания и перечёркивания. &lt;br /&gt;
* Цвет текста.&lt;br /&gt;
* Ориентация текста. &lt;br /&gt;
* Автоматический перенос по словам. &lt;br /&gt;
* Выравнивание текста по горизонтали и вертикали, со всеми вариантами.&lt;br /&gt;
* Отображение фона в виде цвета и изображения.&lt;br /&gt;
* Отображение бордюра вокруг текста с указанным цветом, шириной и стилем.&lt;br /&gt;
* Отображение HTML.&lt;br /&gt;
* Дополнение текста аргументами различного типа и свойств.&lt;br /&gt;
&lt;br /&gt;
На рисунке представлена часть экрана с кадром, содержащим примеры текста с использованием различных параметров.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_txt_ru.png|center]]&lt;br /&gt;
&amp;lt;section end=Text /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Примитив элемента формы (FormEl) ===&lt;br /&gt;
&amp;lt;section begin=FormEl /&amp;gt;&lt;br /&gt;
Реализована поддержка элементов формы на кадрах СВУ с заложенными свойства, включая следующие типы:&lt;br /&gt;
* ''Редактор строки'' — Представлено следующими видами: &amp;quot;Текст&amp;quot;, &amp;quot;Combo&amp;quot;, &amp;quot;Целое&amp;quot;, &amp;quot;Вещественное&amp;quot;, &amp;quot;Время&amp;quot;, &amp;quot;Дата&amp;quot;, &amp;quot;Время и Дата&amp;quot;. Все виды редактора строки поддерживают подтверждение ввода.&lt;br /&gt;
* ''Редактор текста'' — Представляет редактор плоского текста с подтверждением или отказом от ввода.&lt;br /&gt;
* ''Поле флажка'' — Предоставляет поле бинарного флажка.&lt;br /&gt;
* ''Кнопка'' — Предоставляет кнопку с поддержкой цвета кнопки, изображения в кнопке и режимов:&lt;br /&gt;
** стандартный;&lt;br /&gt;
** переключаемый;&lt;br /&gt;
** вызов меню;&lt;br /&gt;
** вызов загрузки файла;&lt;br /&gt;
** вызов сохранения файла.&lt;br /&gt;
* ''Выбор из списка'' — Предоставляет поле выбора элемента со списка указанных элементов.&lt;br /&gt;
* ''Список'' — Предоставляет поле списка с контролем за текущим элементом.&lt;br /&gt;
* ''Дерево'' — Предоставляет элемент дерева с возможностью выбора элементов.&lt;br /&gt;
* ''Таблица'' — Предоставляет элемент таблицы с возможностью выбора ячеек, строк или колонок, а также редактирования содержимого ячейки.&lt;br /&gt;
* ''Слайдер'' — Элемент слайдера.&lt;br /&gt;
* ''Прогрес-бар'' — Полоска прогресс-бара (идентично Слайдер).&lt;br /&gt;
* ''Пароль'' — Скрытый ввод пароля.&lt;br /&gt;
&lt;br /&gt;
Реализованы режимы &amp;quot;Включен&amp;quot; и &amp;quot;Активен&amp;quot;, а также передача изменений и событий в модель данных СВУ — движок. Режим &amp;quot;Активный&amp;quot; приводит к установке курсора активности для непустого фона и дополнительных условий различных видов &amp;quot;Text&amp;quot;, &amp;quot;Media&amp;quot; и &amp;quot;Box&amp;quot;:&lt;br /&gt;
* ''Text'' — не пустой текст;&lt;br /&gt;
* ''Media'' — не пустой источник изображения.&lt;br /&gt;
&lt;br /&gt;
На рисунке представлена часть экрана с кадром, содержащим вышеперечисленные элементы формы.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_formel_ru.png|center]]&lt;br /&gt;
&amp;lt;section end=FormEl /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primitive of the displaying the media-materials (Media) ===&lt;br /&gt;
&amp;lt;section begin=Media /&amp;gt;&lt;br /&gt;
Support of the element of the displaying of the media-materials with the following properties is provided:&lt;br /&gt;
* Indication of the media data source: images or video-material.&lt;br /&gt;
* Review of the images of most well-known formats with the possibility of fitting in the widget size and keeping aspect ratio here.&lt;br /&gt;
* Playback of the simple animated images and video formats with the possibility to control the playback speed (&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;inaccessible&amp;lt;/font&amp;gt;).&lt;br /&gt;
* Playback of the full-formatted video and audio by HTML5.&lt;br /&gt;
* Displaying the background as the color and image.&lt;br /&gt;
* Displaying the border along the perimeter of the widget, with the specified color, width and style.&lt;br /&gt;
* Formation of the active areas and generating the events when they are activated.&lt;br /&gt;
&lt;br /&gt;
На рисунке представлена часть экрана с кадром, содержащим примеры просмотра/проигрывания медиа-данных.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_media.png|center]]&lt;br /&gt;
&amp;lt;section end=Media /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Примитив построения диаграмм (Diagram) ===&lt;br /&gt;
&amp;lt;section begin=Diagram /&amp;gt;&lt;br /&gt;
Реализована поддержка элемента построения диаграмм для типов &amp;quot;График&amp;quot;, &amp;quot;Спектр&amp;quot; и &amp;quot;XY&amp;quot;, со свойствами:&lt;br /&gt;
* Общие свойства типов диаграммы &amp;quot;График&amp;quot;, &amp;quot;Спектр&amp;quot; и &amp;quot;XY&amp;quot;:&lt;br /&gt;
** возможность выбора архиватора, буфера архива или всех данных, при работе с архивными данными;&lt;br /&gt;
** адаптация графика параметра к реальным значениям данных путём подстройки шкалы, в случае отсутствия прямо указанного диапазона значений;&lt;br /&gt;
** управление масштабом шкалы значений путём увеличения, уменьшения и смещения;&lt;br /&gt;
** широкий диапазон масштабирования и адаптации шкалы времени с автоматическим приведением запрашиваемых данных к качеству достаточному для отображения, или нужному для экспорта — указанием предельного количества измерений в пикселе;&lt;br /&gt;
** отображение размерной сетки и маркеров по горизонтали и вертикали с адаптацией к диапазону отображения;&lt;br /&gt;
** следящий режим за текущим временем путём периодического обновления и смещения времени диаграммы к текущему времени —  времени последних данных в буфере архива.&lt;br /&gt;
* Свойства типа диаграммы &amp;quot;График&amp;quot;:&lt;br /&gt;
** построение графиков до 100 параметров на одной диаграмме в процентной шкале и возможностью отображения выбранных параметров в собственной шкале;&lt;br /&gt;
** построение графика для: текущих, архивных и пользовательских данных;&lt;br /&gt;
** формирования промежуточного буфера отображения для текущих значений;&lt;br /&gt;
** поддержка активного режима с курсором и получением значений под курсором;&lt;br /&gt;
** возможность построения графиков как в линейной, так и логарифмической шкале значений.&lt;br /&gt;
* Свойства типа диаграммы &amp;quot;Спектр&amp;quot;:&lt;br /&gt;
** построение графиков частотного спектра параметров до 100 на одной диаграмме в процентной шкале и возможностью отображения выбранных параметров в собственной шкале;&lt;br /&gt;
** построение графика для: архивных и пользовательских данных;&lt;br /&gt;
** поддержка активного режима с курсором и получением значений под курсором.&lt;br /&gt;
* Свойства типа диаграммы &amp;quot;XY&amp;quot;:&lt;br /&gt;
** построение XY графиков параметров до 50 на одной диаграмме в процентной шкале и возможностью отображения выбранных параметров в собственной шкале;&lt;br /&gt;
** построение графика для: текущих, архивных и пользовательских данных;&lt;br /&gt;
** формирования промежуточного буфера отображения для текущих значений;&lt;br /&gt;
** параметры распределяются парами на график, где чётные по оси Y (0,2,4...) и нечётные по оси X (1,3,5...);&lt;br /&gt;
** возможность построения графиков как в линейной, так и логарифмической шкале значений.&lt;br /&gt;
&lt;br /&gt;
На рисунке представлена часть экрана с кадром, содержащим примеры диаграмм: &amp;quot;График&amp;quot;, &amp;quot;Спектр&amp;quot; и &amp;quot;XY&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_diag.png|center]]&lt;br /&gt;
&amp;lt;section end=Diagram /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Примитив формирования протокола (Protocol) ===&lt;br /&gt;
&amp;lt;section begin=Protocol /&amp;gt;&lt;br /&gt;
Реализована поддержка элемента формирования протокола со свойствами:&lt;br /&gt;
* Формирование протокола из архива сообщений за указанное время и глубину.&lt;br /&gt;
* Запрос данных из указанных архиваторов сообщений.&lt;br /&gt;
* Выборка данных из архивов по уровню важности и шаблону категории сообщений.&lt;br /&gt;
* Поддержка режима слежения за появлением сообщений в архиве сообщений.&lt;br /&gt;
&lt;br /&gt;
На рисунке представлена часть экрана с кадром, содержащим пример протокола.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_prot_ru.png|center]]&lt;br /&gt;
&amp;lt;section end=Protocol /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Примитив формирования отчётной документации (Document) ===&lt;br /&gt;
&amp;lt;section begin=Document /&amp;gt;&lt;br /&gt;
Реализована поддержка элемента формирования отчётной документации со свойствами:&lt;br /&gt;
* Гибкое формирование структуры документа на основе языка гипертекстовой разметки, что предоставляет поддержку широких возможностей форматирования документов.&lt;br /&gt;
* Формирование документов по команде или расписанию, что необходимо для формирования отчётной документации в архив, с последующим просмотром архива.&lt;br /&gt;
* Формирование документов в режиме реального времени, для предоставления их полностью динамически и на основе архивов за указанное время.&lt;br /&gt;
* Использование атрибутов виджета для передачи в документ значений и адресов на архивы, что позволяет использовать виджет документа как шаблон, при формировании отчётов с другими входными данными.&lt;br /&gt;
&lt;br /&gt;
В основе любого документа лежит XHTML-шаблон. XHTML-шаблон это тег &amp;quot;body&amp;quot; WEB-страницы, содержащий статику документа в стандарте XHTML 1.0, и элементы исполняемых инструкций на одном из языков пользовательского программирования OpenSCADA в виде '''&amp;lt;?dp {procedure} ?&amp;gt;'''. Результирующий документ формируется путём исполнения процедур и вставки их результата в документ.&lt;br /&gt;
&lt;br /&gt;
Источником значений исполняемых инструкций являются атрибуты виджета этого примитива, а также все механизмы языка пользовательского программирования. Атрибуты могут добавляться пользователем и линковаться на реальные атрибуты параметров или-же являться автономными, значения которых будут формироваться в скрипте виджета. В случае со слинкованными атрибутами могут извлекаться значения из истории, архива.&lt;br /&gt;
&lt;br /&gt;
На рисунке представлен кадр, содержащий пример документа.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_doc_ru.png|center]]&lt;br /&gt;
&amp;lt;section end=Document /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Примитив контейнера (Box) ===&lt;br /&gt;
&amp;lt;section begin=Box /&amp;gt;&lt;br /&gt;
Реализована поддержка примитива контейнера, по совместительству выполняющего роль страниц проектов. Данный примитив является единственным элементом-контейнером, который может включать в себя ссылки на кадры из библиотеки, формируя тем самым пользовательские элементы нужной конфигурации. Примитив реализует предусмотренные проектом свойства. Перечислим, по пунктам, свойства данного примитива:&lt;br /&gt;
* ''Контейнер'' — Позволяет формировать нужные объекты путём группировки базовых в рамках данного примитива.&lt;br /&gt;
* ''Страница'' — Элементы, построенные на данном примитиве, могут выполнять роль страницы пользовательского интерфейса.&lt;br /&gt;
* ''Контейнер страниц'' — Свойство замещения, в процессе исполнения, собственного содержимого другой страницей. Используется для формирования фреймов на страницах пользовательского интерфейса. Например, главная страница типовой SCADA-системы с объектами сигнализации строится именно таким образом.&lt;br /&gt;
* ''Фон'' — Поддерживает возможность указания фона в виде цвета и изображения.&lt;br /&gt;
* ''Бордюр'' — Поддерживает возможность изображения бордюра с указанным цветом, толщиной и стилем.&lt;br /&gt;
&amp;lt;section end=Box /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Общая конфигурация модуля ==&lt;br /&gt;
Для конфигурации и управления этим модулем, предоставляется конфигурационная страница интерфейса управления OpenSCADA (Рис.4) где Вы можете осуществлять:&lt;br /&gt;
* Контроль за активными WEB-сеансами.&lt;br /&gt;
* Конфигурацию:&lt;br /&gt;
** Время жизни, в минутах, и максимальное количество сеансов.&lt;br /&gt;
** Время жизни, в часах, и максимальное количество страниц в кеше.&lt;br /&gt;
** Уровень сжатия PNG-изображений. Наиболее оптимальным является минимальный уровень 1, поскольку без сжатия получаются большие файлы, а большие уровни сжатия создают более высокую нагрузку на процессор.&lt;br /&gt;
** Изменение размера растровых изображений на стороне сервера. В основном чтобы уменьшить размер очень больших изображений, а соответственно и трафика, что приводит к увеличению нагрузки на сервер.&lt;br /&gt;
** Пользовательские CSS правила интерфейса. CSS правила переопределения стандартных, которые размещаются по специальному знаку ##CUST_CSS## файла WebVisionVCA.html.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_cfg_ru.png|center|frame|Рис.4. Страница конфигурации модуля.]]&lt;br /&gt;
&lt;br /&gt;
You can deeply customise main interface of the module overriding and adding the HTML and JavaScript code by placing to folder of your OpenSCADA project files WebVisionVCA.html and WebVisionVCA.js which initially you can obtain from the module source code — [http://oscada.org/svn/trunk/OpenSCADA/src/moduls/ui/WebVision/ UI.WebVision].&lt;br /&gt;
&lt;br /&gt;
== {{Anch|Efficiency|Эффективность и масштабируемость}} ==&lt;br /&gt;
{{CntHdr|31.07.2019}}&lt;br /&gt;
GROUNDS: The Web-sessions may create many objects servicing the VCA-session for generating images, processing documents and performing other background functions of the end user Web-interface. Moreover, in difference to [[Special:MyLanguage/Modules/Vision|Vision]], the VCA-sessions may be created, closed and recreated again multiple times for different users and remote hosts. In the time the memory heap is affected by the memory fragmentation, so the program consumes more memory than at the start. The table below represents the phenomenon for different environments and the first page of [[Special:MyLanguage/Using/Model_AGLKS|the DemoDB (AGLKS) project]] reopening:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Environment !! Initially, MB !! Iter. 1, MB !! Iter. 2, MB !! Iter. 3, MB !! Iter. 4, MB !! Iter. 5, MB !! Resume&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | ''Complete creation the Web- and VCA-sessions''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 amd64, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=2 || 181 || 189 || 190 || 195 || 195 || 194 || Satiated on the iteration '''3''', base consumption 8 MB, extra consumption 5 MB ('''62.5''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 amd64, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=1 || 177 || 185 || 186 || 186 || 185 || 186 || Satiated on the iteration '''2''', base consumption 8 MB, extra consumption 1 MB ('''13''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9 amd64, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=1 || 160 || 168 || 168 || 168.5 || 168.5 || 168.5 || Satiated on the iteration '''1''', base consumption 8 MB, extra consumption 0.5 MB ('''6''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 amd64, GLibC 2.28, GCC 8.3.0 + optional background objects in WebVision || 184 || 194.5 || 200 || 207 || 207 || 212.5 || Satiated on the iteration '''5''', base consumption 10.5 MB, extra consumption 18 MB ('''171''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 amd64, GLibC 2.28, GCC 8.3.0 || 182 || 191.5 || 199 || 206 || 212 || 212 || Satiated on the iteration '''4''', base consumption 9.5 MB, extra consumption 20 MB ('''200''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.74 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9 amd64, GLibC 2.24, GCC 6.3.0 || 160 || 170 || 178 || 179 || 183 || 185 || Satiated on the iteration '''5''', base consumption 10 MB, extra consumption 15 MB ('''150''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.72 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8 amd64, GLibC 2.19, GCC 4.9.2 || 125.5 || 133 || 139 || 139 || 139 || 139 || Satiated on the iteration '''2''', base consumption 7.5 MB, extra consumption 6 MB ('''80''' %), liboscada.so 3.8 MB, ui_WebVision.so 0.79 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 7 amd64, GLibC 2.13, GCC 4.7.2 || 101 || 108 || 111 || 112 || 112 || 112 || Satiated on the iteration '''2''', base consumption 7 MB, extra consumption 4 MB ('''57''' %), liboscada.so 3.4 MB, ui_WebVision.so 0.85 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 i386, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=1 || 144 || 152 || 152 || 152 || 152 || 152 || Satiated on the iteration '''1''', base consumption 8 MB, extra consumption 0 MB ('''0''' %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9 i386, GLibC 2.24, GCC 6.3.0 + MALLOC_ARENA_MAX=1 || 126.5 || 132.5 || 133 || 133 || 133 || 133 || Satiated on the iteration '''1''', base consumption 6 MB, extra consumption 0.5 MB ('''8''' %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 i386, GLibC 2.28, GCC 8.3.0 || 151 || 158 || 162.5 || 166 || 166 || 166 || Satiated on the iteration '''3''', base consumption 7 MB, extra consumption 8 MB ('''114''' %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9 i386, GLibC 2.24, GCC 6.3.0 || 125 || 131 || 132 || 136 || 136 || 139 || Satiated on the iteration '''5''', base consumption 6 MB, extra consumption 8 MB ('''133''' %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8 i386, GLibC 2.19, GCC 4.9.2 || 92.5 || 99 || 101.5 || 103 || 103.5 || 103.5 || Satiated on the iteration '''2''', base consumption 6.5 MB, extra consumption 4.5 ('''69''' %), liboscada.so 3.6 MB, ui_WebVision.so 0.94 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 7 i386, GLibC 2.13, GCC 4.7.2 || 70 || 76 || 76 || 76 || 77 || 77 || Satiated on the iteration '''2''', base consumption 6 MB, extra consumption 1 MB ('''16''' %), liboscada.so 3.6 MB, ui_WebVision.so 0.9 MB&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux 6 i386, GLibC 2.11.3, GCC 4.5.4 || 69 || 74 || 75 || 75 || 75 || 75 || Satiated on the iteration '''2''', base consumption 5 MB, extra consumption 1 MB ('''20''' %), liboscada.so 2.3 MB, ui_WebVision.so 0.9 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | ''Creation only VCA-session, from remote connection to the visualizer server''&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 amd64, GLibC 2.28, GCC 8.3.0 || 180 || 186 || 186 || 186 || 186 || 186 || Satiated on the iteration '''1''', extra consumption 0.2 MB (3 %)&lt;br /&gt;
|-&lt;br /&gt;
| Debian 7 amd64, GLibC 2.13, GCC 4.7.2 || 100 || 104 || 105 || 105 || 105 || 105 || Satiated on the iteration '''1''', extra consumption 1 MB (25 %)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 i386, GLibC 2.28, GCC 8.3.0 || 148 || 154 || 155 || 155 || 155 || 155 || Satiated on the iteration '''1''', extra consumption 1 MB (16 %)&lt;br /&gt;
|-&lt;br /&gt;
| Debian 7 i386, GLibC 2.13, GCC 4.7.2 || 69 || 72 || 72 || 72 || 72 || 72 || Satiated on the iteration '''1''', extra consumption 0 MB (0 %)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
CONCLUSION: We see obvious degradation in the memory effectivity on the last Debian releases starting at Debian 8 (GLibC 2.19) on I386 and Debian 9 (GLibC 2.24) on AMD64, when the memory consumption increased up to 200% after 3,4 free-allocate iterations of the same data. To more presenting of the problem there have built follow images on the data basis:&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_MemEffectAMD64.png|center|frame|Fig.5. Memory effectivity on AMD64 platform.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_MemEffectI386.png|center|frame|Fig.6. Memory effectivity on I386 platform.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_AbsInitSizeAMD64.png|center|frame|Fig.7. Absolute initial size of OpenSCADA &amp;quot;AGLKS&amp;quot; on the platform AMD64.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_AbsInitSizeAI386.png|center|frame|Fig.8. Absolute initial size of OpenSCADA &amp;quot;AGLKS&amp;quot; on the platform I386.]]&lt;br /&gt;
&lt;br /&gt;
MEASURES:&lt;br /&gt;
# The optional background objects were implemented for the primitives &amp;quot;FormEl&amp;quot; and &amp;quot;Text&amp;quot;, what will have most effect on mnemonic-schemes with these elements and wont have many effect for other, see the measuring data above.&lt;br /&gt;
# There were some tries to tune the memory allocator of GLibC using &amp;quot;[https://www.gnu.org/software/libc/manual/html_node/Memory-Allocation-Tunables.html Memory Allocation Tunables]&amp;quot; without any significant effect, so we will [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=934080 notify the Debian community], firstly.&lt;br /&gt;
# The problem was detected in arenas of the memory allocator, setting whose number to 1 (MALLOC_ARENA_MAX=1) completely resolves the problem and the effect you may see on Figures 9, 10, for a real big application.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_MemoryDef.png|center|frame|Fig.9. Tendency of the memory consumption on a real big application at the default conditions.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_MemoryArenas1.png|center|frame|Fig.10. Tendency of the memory consumption on a real big application at the environment variable MALLOC_ARENA_MAX=1.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|20.06.2013}}&lt;br /&gt;
GROUNDS: At working with the board [[Special:MyLanguage/Using/Kontron_MOPSlcdLX|MOPSlcdLX]], attention was drawn to the heavy load of the task of forming full-size trends. As it turned out later, a large load is created by the formation of a PNG image in the GD2 library, or rather, the packing procedure of ZLib. The subject analysis of the performance of the formation of images of various formats on this board is summarized in the table below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Trend building, milliseconds !! Converting to the image format, milliseconds !! Size of the image, bytes&lt;br /&gt;
|-&lt;br /&gt;
| PNG (0) || 200 || 800 || 1700365 &lt;br /&gt;
|-&lt;br /&gt;
| PNG (1) || 200 || 690 || 24000 &lt;br /&gt;
|-&lt;br /&gt;
| PNG (-1) || 200 || 1000 || 14800 &lt;br /&gt;
|-&lt;br /&gt;
| PNG (9) || 200 || 1900 || 13354 &lt;br /&gt;
|-&lt;br /&gt;
| JPEG (-1) || 200 || 180 || 53157 &lt;br /&gt;
|-&lt;br /&gt;
| GIF || 200 || 380 || 14300 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
CONCLUSION: As can be seen from the table above, the operation of forming PNG as a whole is resource-intensive and the most optimal level of compression is &amp;quot;1&amp;quot;. At the same time, the formation of JPEG and GIF is much faster, but these image formats have a number of critical flaws, namely: JPEG does not have an alpha channel (transparency), and GIF is limited by the number of colors, which in both cases leads to loss of transparency and distortion of text smoothing and images in general.&lt;br /&gt;
&lt;br /&gt;
MEASURES: The ability to select the compression level for the generated PNG images is added, and the default value is set to the optimal level &amp;quot;1&amp;quot;. The implementation of the formation of the &amp;quot;Diagram&amp;quot; primitive on the browser side in the &amp;quot;svg&amp;quot; or &amp;quot;canvas&amp;quot; tags is planned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Замечания ==&lt;br /&gt;
На данном этапе модуль может быть использован для построения реальных интерфейсов пользователя с поддержкой основных функций. Однако, отдельные проблемы могут возникать как по причине недоработанности, так и различия браузеров. Сейчас достаточно качественно обеспечена работоспособность на браузерах: Chromium (Google Chrome), FireFox, Opera, Konqueror.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [[:File:WebVision MemAllocFree.ods|Электронная таблица: Анализ эффективности распределения памяти.]]&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Modules/WebVision/uk&amp;diff=93980</id>
		<title>Modules/WebVision/uk</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Modules/WebVision/uk&amp;diff=93980"/>
				<updated>2026-05-10T04:54:24Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Модуль !! Ім'я !! Версія !! Ліцензія !! Джерело !! Мови !! Платформи !! Тип !! Автор&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Modules/WebVision|WebVision]] || Робочий користувацький інтерфейс (WEB)&lt;br /&gt;
| 6.16 || GPL2 || ui_WebVision.so || en,uk,ru,de || x86,x86_64,ARM&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| Користувацькі інтерфейси || {{Author|Роман Савоченко|Максим Лисенко (2007-2012), Ксенія Яшина (2007-2008)}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; | Опис&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | Робочий інтерфейс користувача, заснований на WEB — зовнішній інтерфейс до рушія СВУ.&lt;br /&gt;
* '''Загальна працемісткість:''' &amp;gt; 50 {{CtxDetails|ЛД|людино-днів, 1ЛД — 10 годин}}&lt;br /&gt;
* '''Спонсорування, примітиву &amp;quot;Медіа&amp;quot; та Сповіщення на 1.35 {{CtxDetails|ЛД|людино-днів, 1ЛД — 10 годин}}:''' Хайді Рамазані&lt;br /&gt;
* '''Спонсорування, Сповіщення на 0.85 {{CtxDetails|ЛД|людино-днів, 1ЛД — 10 годин}}:''' Вінницька Птахофабрика&lt;br /&gt;
* '''Спонсорування, завершення відображення примітиву ElFigure на 0.5 {{CtxDetails|ЛД|людино-днів, 1ЛД — 10 годин}}:''' ТОВ &amp;quot;СВІТоВИР&amp;quot;&lt;br /&gt;
* '''Спонсорування, Експорту на 0.8 {{CtxDetails|ЛД|людино-днів, 1ЛД — 10 годин}}:''' Вінницька Птахофабрика&lt;br /&gt;
* '''[[Special:MyLanguage/Works/To_do|Завдання (To Do)]]:'''&lt;br /&gt;
&amp;lt;section begin=ToDo /&amp;gt;&lt;br /&gt;
: * відревізувати та уніфікувати примушення клавіатурного фокусу на першому активному елементі з урахуванням їх специфіки, для гарантування клавіатурних скорочень;&lt;br /&gt;
: - розширити примітив &amp;quot;Діаграма&amp;quot; операціями масштабування мишею;&lt;br /&gt;
: - реалізувати власний RTE-редактор для вигляду Text примітиву FormEl;&lt;br /&gt;
: - ElFigure: виправити втрату деяких властивостей (щонайменш товщину лінії) при опрацюванні дій, у процесі загальної переробки коду примітиву;&lt;br /&gt;
: - доповнити панель статусу, функціями:&lt;br /&gt;
:: - друк і експорт примітиву Діаграма після її переведення на &amp;quot;SVG&amp;quot;.&lt;br /&gt;
: - ElFigure,Diagram: ввімкнути або реалізувати згладжування, для бібліотеки GD;&lt;br /&gt;
: - реалізувати примітиви &amp;quot;Діаграма&amp;quot;, &amp;quot;ElFigure&amp;quot; тегом &amp;quot;SVG&amp;quot;;&lt;br /&gt;
: - розширити варіант &amp;quot;Анімація&amp;quot; примітиву &amp;quot;Медіа&amp;quot; використанням RAW файлів зображень, на кшталт PNG.&lt;br /&gt;
&amp;lt;section end=ToDo /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Модуль надає до OpenSCADA механізм кінцевої візуалізації середовища візуалізації та управління (СВУ). Модуль засновано на WEB технологіях (XHTML, JavaScript, CSS, AJAX). У своїй роботі модуль використовує дані рушія СВУ — модуль [[Special:MyLanguage/Modules/VCAEngine|VCAEngine]].&lt;br /&gt;
{{#lst:Sub-projects/VCA/ru|Introduce}}&lt;br /&gt;
З метою запобігання цих проблем, а також створення у коротші терміни повного спектру різних типів СВУ, засновано [[Special:MyLanguage/Sub-projects/VCA|проєкт створення концепції СВУ]]. Результатом цього проєкту й став цей модуль безпосередньої візуалізації (на основі Web-технологій), модуль безпосередньої візуалізації [[Special:MyLanguage/Modules/Vision|Vision]] та рушій СВУ [[Special:MyLanguage/Modules/VCAEngine|VCAEngine]].&lt;br /&gt;
&lt;br /&gt;
== Призначення ==&lt;br /&gt;
Даний модуль безпосередньої візуалізації СВУ призначено тільки для виконання інтерфейсів СВУ у середовищі WEB-технологій!&lt;br /&gt;
&lt;br /&gt;
Інтерфейс користувача формується у WEB-браузері шляхом звернення до WEB-серверу та отримання від нього XHTML-документу за протоколом HTTP. У цьому випадку, у ролі WEB-серверу виступає OpenSCADA, яка підтримує стандартні комунікаційні механізми TCP-мереж (модуль [[Special:MyLanguage/Modules/Sockets|Transport.Sockets]]), протокол передачі гіпертексту (модуль [[Special:MyLanguage/Modules/HTTP|Protocol.HTTP]]), а також шифрування трафіку між браузером та сервером ([[Special:MyLanguage/Modules/SSL|Transport.SSL]]). Виходячи з цього, для отримання доступу до інтерфейсу користувача, який надається цим модулем, потрібно у OpenSCADA налаштувати транспорт (Transport.Sockets або Transport.SSL) у поєднані з протоколом HTTP (Protocol.HTTP). Разом з OpenSCADA постачаються конфігураційні файли, які містять налаштування Transport.Sockets для порту 10002. Відповідно, інтерфейс модуля, по замовченню, буде доступний за URL: &amp;quot;&amp;lt;nowiki&amp;gt;http://localhost:10002&amp;lt;/nowiki&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Фінальна версія цього модуля СВУ, яка побудована на основі даного модуля, забезпечить:&lt;br /&gt;
{{#lst:Sub-projects/VCA/uk|TargetFeatures}}&lt;br /&gt;
&lt;br /&gt;
== Виконання інтерфейсів СВУ ==&lt;br /&gt;
Виконання інтерфейсу СВУ полягає в запуску нового сеансу проєкту, або підключення до існуючого, на рівні рушія СВУ (рис.2). Перед запитом на підключення до сеансу здійснюється запит на аутентифікацію користувача (рис.1). Далі, модуль безпосередньої візуалізації відображає та керує даними сеансу. Головне вікно режиму виконання даного модуля має вигляд, наведений на рисунку 3. Адміністративні користувачі (&amp;quot;root&amp;quot; або у групі &amp;quot;root&amp;quot;) можуть закривати відкриті сеанси.&lt;br /&gt;
&lt;br /&gt;
Інтерфейс вікна виконання повністю будується динамічно, скриптом JavaScript та виходячи із вмісту сеансу проєкту, шляхом прямих XML запитів до серверу.&lt;br /&gt;
&lt;br /&gt;
Реалізовано оновлення вмісту відкритих сторінок інтерфейсу візуалізації з періодичністю виконання візуалізованого сеансу проєкту візуалізації. В процесі оновлення здійснюється:&lt;br /&gt;
* запит у моделі переліку відкритих сторінок, з ознакою модифікації сторінки, та перевірка відповідності реально відкритих сторінок цьому переліку;&lt;br /&gt;
* запит гілки даних модифікованих сторінок;&lt;br /&gt;
* оновлення вмісту модифікованих сторінок та їх віджетів у відповідності до отриманих змінених даних.&lt;br /&gt;
&lt;br /&gt;
Механізм запиту тільки змінених даних засновано на абсолютному лічильнику виконання сеансу. При внесенні реальних змін до атрибутів віджетів здійснюється запам'ятовування значення цього лічильника, що й дозволяє ідентифікувати змінені атрибути. Такий підхід дозволяє підвищити продуктивність та зменшити трафік, у випадку доступу до рушія СВУ через мережу.&lt;br /&gt;
&lt;br /&gt;
Ієрархічно, модулем передбачається можливість розташування сторінок проєкту як на головному вікні виконання (рис.3), так і вкладаючи всередину віджетів контейнерів, а також шляхом відкриття додаткових вікон поверх основного.&lt;br /&gt;
&lt;br /&gt;
На рядку статусу розташовуються:&lt;br /&gt;
* Праворуч:&lt;br /&gt;
** поточний користувач, від ім'я якого виконується інтерфейс СВУ — кліком можна змінити цього користувача, ввівши нове ім'я та пароль;&lt;br /&gt;
** поточний стиль інтерфейсу, який можна змінити обравши з комбобоксу потрібний;&lt;br /&gt;
** поточний статус порушення у лампі кольором, який відповідає рівню порушення, та іконки активних сповіщувачів; блимає при появі та зміні порушення; натиснувши на лампу Ви можете сквітувати (стишити) ці порушення цілком або бажаний тип сповіщення, натиснувши іконку відповідного сповіщувача поряд;&lt;br /&gt;
** кнопка меню із виклику друку та експорту даних сторінки для:&lt;br /&gt;
*** друку: Основної Сторінки, Документів;&lt;br /&gt;
*** експорту: Документів (HTML,CSV), Таблиць (CSV).&lt;br /&gt;
** підручнику на проєкт СВУ — кліком викликає підручник на проєкт візуалізації щодо файлу &amp;quot;'''{ProjVCA_ID}.[pdf|html|odt]'''&amp;quot; у [[Special:MyLanguage/Documents/Program_manual#Config|теці документів]] або визначеного у [[#SpecAttrs| атрибуті &amp;quot;prjDoc&amp;quot;]];&lt;br /&gt;
** панель користувацьких статусів і дій за визначенням у [[#SpecAttrs|атрибуті &amp;quot;statLine&amp;quot;]]; клацання лівою, правою та подвійним миші формує події до головної сторінки інтерфейсу.&lt;br /&gt;
* У головному полі рядка статусу виводяться різні інформаційні повідомлення та повідомлення допомоги.&lt;br /&gt;
&lt;br /&gt;
Модуль підтримує багатомовність, яка вмикається [[Special:MyLanguage/Documents/Program_manual#ConfigTr|динамічним перекладом повідомлень OpenSCADA]]. Отримана мова передається модулем [[Special:MyLanguage/Modules/HTTP|Protocol.HTTP]] та визначається шляхом та у послідовності:&lt;br /&gt;
* URL параметр &amp;quot;lang&amp;quot;.&lt;br /&gt;
* Мова користувача, що увійшов.&lt;br /&gt;
* Мова Web-браузеру з HTTP властивості &amp;quot;Accept-Language&amp;quot;.&lt;br /&gt;
* Загальна мова процесу OpenSCADA.&lt;br /&gt;
&lt;br /&gt;
[[file:HTTP_auth_uk.png|center|frame|Рис.1. Сторінка аутентифікації.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_connect_uk.png|center|frame|Рис.2. Підключення або створення нового сеансу виконання проєкту СВУ.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_uk.png|center|frame|Рис.3. Головне вікно режиму виконання.]]&lt;br /&gt;
&lt;br /&gt;
== {{Anch|Primitives|Представлення базових елементів (примітивів)}} ==&lt;br /&gt;
Даною версією модуля реалізовано не всі образи примітивів, закладені проєктом. Загалом, проєктом закладено примітиви:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Найменування !! Функція&lt;br /&gt;
|-&lt;br /&gt;
| ElFigure || Елементарна графічна фігура ||&lt;br /&gt;
Примітив є основою відмальовки елементарних графічних фігур зі всілякими комбінаціями їх у одному об'єкті. Передбачається підтримка наступних елементарних фігур:&lt;br /&gt;
* Лінія.&lt;br /&gt;
* Дуга.&lt;br /&gt;
* Крива Без'є.&lt;br /&gt;
* Заливка замкненого простору.&amp;lt;br/&amp;gt;&lt;br /&gt;
Для всіх фігур, що містяться у віджеті, встановлюються єдині властивості товщини, кольору та інше, також, передбачається можливість указання вищеперелічених атрибутів для кожної фігури окремо та їх динамізація.&lt;br /&gt;
|-&lt;br /&gt;
| FormEl || Елемент форми ||&lt;br /&gt;
Включає підтримку стандартних компонентів форми:&lt;br /&gt;
* Редагування рядку.&lt;br /&gt;
* Редагування тексту.&lt;br /&gt;
* Прапорець.&lt;br /&gt;
* Кнопка.&lt;br /&gt;
* Вибір з переліку.&lt;br /&gt;
* Перелік.&lt;br /&gt;
* Дерево.&lt;br /&gt;
* Таблиця.&lt;br /&gt;
* Слайдер.&lt;br /&gt;
* Стрічка прокрутки. &lt;br /&gt;
|-&lt;br /&gt;
| Text || Текст || Елемент тексту-мітка. Характеризується типом шрифту, кольором, орієнтацією та вирівнюванням. Передбачається підтримка аргументів. &lt;br /&gt;
|-&lt;br /&gt;
| Media || Медіа || Елемент відображення растрових та векторних зображень різних форматів, програвання анімованих зображень, програвання аудіо-фрагментів та перегляд відео-фрагментів. &lt;br /&gt;
|-&lt;br /&gt;
| Diagram || Діаграма || Елемент діаграми з підтримкою можливості відображення декількох потоків у реальному часі для: трендів (часових графіків), частотного спектру, XY діаграм.&lt;br /&gt;
|-&lt;br /&gt;
| Protocol || Протокол || Елемент протоколу — візуалізатор повідомлень програми, з підтримкою декількох режимів роботи.&lt;br /&gt;
|-&lt;br /&gt;
| Document || Документ || Елемент формування звітів, журналів та іншої документації на основі доступних даних. &lt;br /&gt;
|-&lt;br /&gt;
| Box || Контейнер || Містить механізм розташування-включення інших віджетів для формування нових, більш складних, віджетів та сторінок кінцевої візуалізації. &lt;br /&gt;
|-&lt;br /&gt;
| Function, &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;у планах&amp;lt;/span&amp;gt; || Функція API об'єктної моделі OpenSCADA || Невізуальний віджет, на боці виконання, що дозволяє включати обчислювальні функції об'єктної моделі OpenSCADA до СВУ.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Anch|SpecAttrs|Модулем візуалізатору надається та використовується низка специфічних атрибутів}} загального характеру, інформацію про які наведено у таблиці. Ці атрибути автоматично створюються візуалізатором за їх відсутності та під час першого запуску, або створюються користувачем у кадрі вказаної області, за потреби.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор (область) !! Ім'я !! Призначення&lt;br /&gt;
|-&lt;br /&gt;
| keepAspectRatio (головна сторінка) || Зберігати пропорцію при масштабуванні || Зберігати пропорцію сторінок при масштабуванні.&lt;br /&gt;
|-&lt;br /&gt;
| stBarNoShow (головна сторінка) || Не показувати рядок статусу || Приховати рядок статусу головного вікна.&lt;br /&gt;
|-&lt;br /&gt;
| notify{N}, notifyVisWebVision{N} (сторінка) || Сповіщувач: тип {N} || [[File:at.png]] Створити вручну із типом &amp;quot;Текст&amp;quot;!&lt;br /&gt;
Визначає сповіщувач та процедуру отримання ресурсу сповіщення згідно до [[Special:MyLanguage/Modules/VCAEngine#Alarms|концепції &amp;quot;Сигналізації (Аларми)&amp;quot;]].&lt;br /&gt;
|-&lt;br /&gt;
| statLine (головна сторінка) || Елементи рядку статусу || [[File:at.png]] Створити вручну із типом &amp;quot;Текст&amp;quot;!&lt;br /&gt;
Текстове поле з описом елементів рядка статусу користувача, у форматі рядка &amp;quot;'''{Id}:{Label}:{ToolTip}:{Color}:{Img}'''&amp;quot;, де:&lt;br /&gt;
* &amp;quot;Id&amp;quot; — ідентифікатор, використовується також для формування повідомлень від віджету &amp;quot;stIt_{Id}&amp;quot;.&lt;br /&gt;
* &amp;quot;Label&amp;quot; — візуальна мітка елементу статусу.&lt;br /&gt;
* &amp;quot;ToolTip&amp;quot; — спливаюча підказка стосовно елементу.&lt;br /&gt;
* &amp;quot;Color&amp;quot; — колір мітки.&lt;br /&gt;
* &amp;quot;Img&amp;quot; — зображення елементу статусу, замість мітки.&lt;br /&gt;
|-&lt;br /&gt;
| userSetVis (головна сторінка) || Встановлення користувача || [[File:at.png]] Створити вручну із типом &amp;quot;Рядок&amp;quot;!&lt;br /&gt;
Зміна користувача або виклик діалогу для його обрання. Варіанти значення:&lt;br /&gt;
* &amp;quot;*&amp;quot; — виклик діалогу обрання користувача;&lt;br /&gt;
* &amp;quot;$&amp;quot; — зміна користувача на типового;&lt;br /&gt;
* &amp;quot;{користувач}[:{пароль}]&amp;quot; — пряма зміна на ''користувач'' із ''паролем''; для порожнього пароля користувач змінюється лише якщо його права менше або дорівнюють; корисний приклад зміни на користувача &amp;quot;user&amp;quot; після хвилини неактивності:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 20pt&amp;quot;&amp;gt;&lt;br /&gt;
if((SYS.time()-this.ownerSess().userActTm()) &amp;lt; 60)userSetVis = &amp;quot;&amp;quot;;&lt;br /&gt;
else if(this.ownerSess().reqUser() != &amp;quot;user&amp;quot;) userSetVis = &amp;quot;user&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| prjDoc (головна сторінка) || Документ проєкту || [[File:at.png]] Створити вручну із типом &amp;quot;Рядок&amp;quot;!&lt;br /&gt;
Визначення документу проєкту виклику кнопкою рядка статусу із можливістю вимкнення-приховання кнопки за порожнього значення. Документ визначається у вигляді &amp;quot;'''&amp;lt;nowiki&amp;gt;{OffLine}|{OnLineOpenSCADAWiki}&amp;lt;/nowiki&amp;gt;'''&amp;quot;, до прикладу для [[Special:MyLanguage/Using/Model_AGLKS|проєкту АГЛКС]] — &amp;quot;&amp;lt;nowiki&amp;gt;AGLCS|Using/Model_AGLKS&amp;lt;/nowiki&amp;gt;&amp;quot;. Мережева частина використовується у першу чергу за її визначення.&lt;br /&gt;
|-&lt;br /&gt;
| vs_goHttpUrl (вигляд &amp;quot;Кнопка&amp;quot; примітиву &amp;quot;FormEl&amp;quot;) || Перехід за HTTP URL || [[File:at.png]] Створити вручну із типом &amp;quot;Рядок&amp;quot;!&lt;br /&gt;
Перехід на визначений URL за натисканням кнопки.&lt;br /&gt;
|-&lt;br /&gt;
| vs_background (види &amp;quot;Line edit&amp;quot;, &amp;quot;Text edit&amp;quot;, &amp;quot;Combo box&amp;quot;, &amp;quot;List&amp;quot;, &amp;quot;Tree&amp;quot;, &amp;quot;Table&amp;quot; примітиву &amp;quot;FormEl&amp;quot;) || Користувацький фон || [[File:at.png]] Створити вручну із типом &amp;quot;Рядок&amp;quot;!&lt;br /&gt;
Визначає користувацький фон у формі '''{color}-{transp} {image}'''.&lt;br /&gt;
|-&lt;br /&gt;
| vs_border (види &amp;quot;Line edit&amp;quot;, &amp;quot;Text edit&amp;quot;, &amp;quot;Combo box&amp;quot;, &amp;quot;List&amp;quot;, &amp;quot;Tree&amp;quot;, &amp;quot;Table&amp;quot; примітиву &amp;quot;FormEl&amp;quot;) || Користувацька границя || [[File:at.png]] Створити вручну із типом &amp;quot;Рядок&amp;quot;!&lt;br /&gt;
Визначає користувацьку границю у стандартній формі CSS '''{wdth}px {style} {color}'''.&lt;br /&gt;
|-&lt;br /&gt;
| vs_winTitle (вид &amp;quot;Box&amp;quot;) || Заголовок вікна || [[File:at.png]] Створити вручну із типом &amp;quot;Рядок&amp;quot;!&lt;br /&gt;
Значення динамічного заголовку вікна.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Розглянемо реалізацію кожного примітиву більш детально.&lt;br /&gt;
&lt;br /&gt;
=== Примітив елементарної фігури (ElFigure) ===&lt;br /&gt;
&amp;lt;section begin=ElFigure /&amp;gt;&lt;br /&gt;
Реалізовано підтримку елементарних фігур: лінії, еліптичної дуги, кривої Без'є та заливка замкнених контурів кольором та зображенням; з властивостями:&lt;br /&gt;
* формування довільних зображень із трьох елементарних фігур та заповнень замкнених просторів кольором або зображенням;&lt;br /&gt;
* можливість визначення властивостей фігур як загалом, так і окремо для кожної: ширина, колір та стиль лінії, ширина та колір бордюру лінії, колір та зображення заповнення;&lt;br /&gt;
* масштабування;&lt;br /&gt;
* трансформація: поворот та віддзеркалення;&lt;br /&gt;
* підтримка користувацьких атрибутів динамічних: точок, ширин, кольорів, стилів та зображень;&lt;br /&gt;
* формування подій за діями маніпулятором миші у замкненому просторі та загалом.&lt;br /&gt;
&lt;br /&gt;
На рисунку представлено частину екрану з кадром, який містить елементарні фігури.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_elfig.png|center]]&lt;br /&gt;
&amp;lt;section end=ElFigure /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Примітив тексту (Text) ===&lt;br /&gt;
&amp;lt;section begin=Text /&amp;gt;&lt;br /&gt;
Реалізовано підтримку елементу тексту зі властивостями:&lt;br /&gt;
* Шрифт зі властивостями: типу-класу, розміру, підсилення, нахилу, підкреслення та перекреслення. &lt;br /&gt;
* Колір тексту.&lt;br /&gt;
* Орієнтація тексту. &lt;br /&gt;
* Автоматичне перенесення за словами.&lt;br /&gt;
* Вирівнювання тексту по горизонталі та вертикалі, з усіма варіантами.&lt;br /&gt;
* Відображення фону у вигляді кольору та зображення.&lt;br /&gt;
* Відображення бордюру довкола тексту з вказаним кольором, шириною та стилем.&lt;br /&gt;
* Відображення HTML.&lt;br /&gt;
* Доповнення тексту аргументами різного типу та властивостей.&lt;br /&gt;
&lt;br /&gt;
На рисунку представлено частину екрана з кадром, що містить приклади тексту з використанням різних параметрів.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_txt_uk.png|center]]&lt;br /&gt;
&amp;lt;section end=Text /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Примітив елементу форми (FormEl) ===&lt;br /&gt;
&amp;lt;section begin=FormEl /&amp;gt;&lt;br /&gt;
Реалізовано підтримку елементів форми на кадрах СВУ із закладеними властивостями, включаючи наступні типи:&lt;br /&gt;
* ''Редактор рядку'' — Представлено наступними видами: &amp;quot;Текст&amp;quot;, &amp;quot;Combo&amp;quot;, &amp;quot;Ціле&amp;quot;, &amp;quot;Реальне&amp;quot;, &amp;quot;Час&amp;quot;, &amp;quot;Дата&amp;quot;, &amp;quot;Час та Дата&amp;quot;. Всі види редактору рядка підтримують підтвердження вводу.&lt;br /&gt;
* ''Редактор тексту'' — Надає редактор плаского тексту з підтвердженням або відмовою від вводу.&lt;br /&gt;
* ''Поле ознаки'' — Надає поле бінарної ознаки.&lt;br /&gt;
* ''Кнопка'' — Надає кнопку з підтримкою кольору кнопки, зображення у кнопці та режимів:&lt;br /&gt;
** стандартний;&lt;br /&gt;
** перемикальний;&lt;br /&gt;
** виклик меню;&lt;br /&gt;
** виклик завантаження файлу;&lt;br /&gt;
** виклик збереження файлу.&lt;br /&gt;
* ''Вибір з переліку'' — Надає поле вибору елементу з переліку вказаних елементів.&lt;br /&gt;
* ''Перелік'' — Надає поле переліку з контролем за поточним елементом.&lt;br /&gt;
* ''Дерево'' — Надає елемент дерева з можливістю обрання елементів.&lt;br /&gt;
* ''Таблиця'' — Надає елемент таблиці з можливістю вибору клітинок, рядків або стовпчиків, а також редагування вмісту клітинки.&lt;br /&gt;
* ''Слайдер'' — Елемент слайдеру.&lt;br /&gt;
* ''Прогрес-бар'' — Стрічка прогрес-бару (ідентично до Слайдер).&lt;br /&gt;
* ''Пароль'' — Приховане введення паролю.&lt;br /&gt;
&lt;br /&gt;
Реалізовано режими &amp;quot;Ввімкнено&amp;quot; та &amp;quot;Активний&amp;quot;, а також передача змін та повідомлень у модель даних СВУ — рушій. Режим &amp;quot;Активний&amp;quot; призводить до встановлення курсору активності для непорожнього фону та додаткових умов різних видів &amp;quot;Text&amp;quot;, &amp;quot;Media&amp;quot; та &amp;quot;Box&amp;quot;:&lt;br /&gt;
* ''Text'' — не порожній текст;&lt;br /&gt;
* ''Media'' — не порожнє джерело зображення.&lt;br /&gt;
&lt;br /&gt;
На рисунку представлено частину екрану з кадром, що містить вищеперелічені елементи форми.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_formel_uk.png|center]]&lt;br /&gt;
&amp;lt;section end=FormEl /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Примітив відображення медіа-матеріалів (Media) ===&lt;br /&gt;
&amp;lt;section begin=Media /&amp;gt;&lt;br /&gt;
Реалізовано підтримку елементу відображення медіа-матеріалів з властивостями:&lt;br /&gt;
* Вказання джерела медіа даних: зображення або відео-матеріалу.&lt;br /&gt;
* Перегляд зображень більшості відомих форматів з можливістю їх вписування у розмір віджету і збереження співвідношення сторін тут.&lt;br /&gt;
* Програвання простих анімованих форматів зображень та відео з можливістю управління швидкістю програвання (&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;недоступно&amp;lt;/font&amp;gt;).&lt;br /&gt;
* Програвання повноформатного відео та аудіо за допомогою HTML5.&lt;br /&gt;
* Відображення фону у вигляді кольору та зображення.&lt;br /&gt;
* Відображення бордюру по периметру віджету, з вказаним кольором, шириною та стилем.&lt;br /&gt;
* Формування активних областей та генерація повідомлень при їх активації.&lt;br /&gt;
&lt;br /&gt;
На рисунку представлено частину екрану з кадром, що містить приклади перегляду/програвання медіа-даних.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_media.png|center]]&lt;br /&gt;
&amp;lt;section end=Media /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Примітив побудови діаграм (Diagram) ===&lt;br /&gt;
&amp;lt;section begin=Diagram /&amp;gt;&lt;br /&gt;
Реалізовано підтримку елементу побудови діаграм для типів &amp;quot;Графік&amp;quot;, &amp;quot;Спектр&amp;quot; та &amp;quot;XY&amp;quot;, з властивостями:&lt;br /&gt;
* Загальні властивості типів діаграми &amp;quot;Графік&amp;quot;, &amp;quot;Спектр&amp;quot; та &amp;quot;XY&amp;quot;:&lt;br /&gt;
** можливість вибору архіватору, буферу архіву або всіх даних, при роботі з архівними даними;&lt;br /&gt;
** адаптація графіку параметра до реальних значень даних шляхом підлаштування шкалы, у випадку відсутності прямо вказаного діапазону значень;&lt;br /&gt;
** управління масштабом шкали значень шляхом збільшення, зменшення та зсуву;&lt;br /&gt;
** широкий діапазон масштабування та адаптації шкали часу з автоматичним приведенням запитаних даних до якості достатньої до відображення, або потрібної для експорту — вказанням граничної кількості вимірів у пікселі;&lt;br /&gt;
** відображення розмірної ґратки та маркерів по горизонталі та вертикалі з адаптацією до діапазону відображення;&lt;br /&gt;
** слідкуючий режим за поточним часом шляхом періодичного оновлення та зміщення часу діаграми до поточного часу —  часу останніх даних у буфері архіву.&lt;br /&gt;
* Властивості типу діаграми &amp;quot;Графік&amp;quot;:&lt;br /&gt;
** побудова графіків до 100 параметрів на одній діаграмі у процентній шкалі та можливістю відображення обраних параметрів у власній шкалі;&lt;br /&gt;
** побудова графіку для: поточних, архівних та користувацьких даних;&lt;br /&gt;
** формування проміжного буферу відображення для поточних значень;&lt;br /&gt;
** підтримка активного режиму з курсором та отриманням значень під курсором;&lt;br /&gt;
** можливість побудови графіків як у лінійній, так і логарифмічній шкалі значень.&lt;br /&gt;
* Властивості типу діаграми &amp;quot;Спектр&amp;quot;:&lt;br /&gt;
** побудова графіків частотного спектру параметрів до 100 на одній діаграмі у процентній шкалі та можливістю відображення обраних параметрів у власній шкалі;&lt;br /&gt;
** побудова графіку для: архівних та користувацьких даних;&lt;br /&gt;
** підтримка активного режиму з курсором та отриманням значень під курсором.&lt;br /&gt;
* Властивості типу діаграми &amp;quot;XY&amp;quot;:&lt;br /&gt;
** побудова XY графіків параметрів до 50 на одній діаграмі у процентній шкалі та можливістю відображення обраних параметрів у власній шкалі;&lt;br /&gt;
** побудова графіку для: поточних, архівних та користувацьких даних;&lt;br /&gt;
** формування проміжного буферу відображення для поточних значень;&lt;br /&gt;
** параметри розподіляються парами на графік, де парні за осі Y (0,2,4...) та непарні за осі X (1,3,5...);&lt;br /&gt;
** можливість побудови графіків як у лінійній, так і логарифмічній шкалі значень.&lt;br /&gt;
&lt;br /&gt;
На рисунку представлено частину екрану з кадром, що містить приклади діаграм: &amp;quot;Графік&amp;quot;, &amp;quot;Спектр&amp;quot; та &amp;quot;XY&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_diag.png|center]]&lt;br /&gt;
&amp;lt;section end=Diagram /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Примітив формування протоколу (Protocol) ===&lt;br /&gt;
&amp;lt;section begin=Protocol /&amp;gt;&lt;br /&gt;
Реалізовано підтримку елементу формування протоколу з властивостями:&lt;br /&gt;
* Формування протоколу з архіву повідомлень на вказаний час та глибину.&lt;br /&gt;
* Запит даних з вказаних архіваторів повідомлень.&lt;br /&gt;
* Вибірка даних з архівів за рівнем важливості та шаблоном категорії повідомлень.&lt;br /&gt;
* Підтримка режиму слідкування за появою повідомлень у архіві повідомлень.&lt;br /&gt;
&lt;br /&gt;
На рисунку представлено частину екрану з кадром, що містить приклад протоколу.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_prot_uk.png|center]]&lt;br /&gt;
&amp;lt;section end=Protocol /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Примітив формування звітної документації (Document) ===&lt;br /&gt;
&amp;lt;section begin=Document /&amp;gt;&lt;br /&gt;
Реалізовано підтримку елементу формування звітної документації з властивостями:&lt;br /&gt;
* Гнучке формування структури документу на основі мови гіпертекстової розмітки, що надає підтримку широких можливостей форматування документів.&lt;br /&gt;
* Формування документів за командою або розкладом, що необхідно для формування звітної документації до архіву, з подальшим переглядом архіву.&lt;br /&gt;
* Формування документів у режимі реального часу, для надання їх повністю динамічно та на основі архівів за вказаний час.&lt;br /&gt;
* Використання атрибутів віджету для передачі у документ значень та адрес на архіви, що дозволяє використовувати віджет документу як шаблон, при формуванні звітів з іншими вхідними даними.&lt;br /&gt;
&lt;br /&gt;
У основі будь-якого документу лежить XHTML-шаблон. XHTML-шаблон це тег &amp;quot;body&amp;quot; WEB-сторінки, що містить статику документу у стандарті XHTML 1.0 та елементи виконувальних інструкцій на мові користувацького програмування OpenSCADA, у вигляді '''&amp;lt;?dp {procedure} ?&amp;gt;'''. Результуючий документ формується шляхом виконання процедур та вставки їх результату у документ.&lt;br /&gt;
&lt;br /&gt;
Джерелом значень виконуваних інструкцій є атрибути віджету цього примітиву, а також всі механізми мови користувацького програмування OpenSCADA. Атрибути можуть додаватися користувачем та лінкуватися на реальні атрибути параметрів або-ж бути автономними, значення яких будуть формуватися у процедурі віджету. У випадку зі злінкованими атрибутами, значення можуть вийматися з архіву-історії.&lt;br /&gt;
&lt;br /&gt;
На рисунку представлено кадр, який містить приклад документу.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_doc_uk.png|center]]&lt;br /&gt;
&amp;lt;section end=Document /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Примітив контейнеру (Box) ===&lt;br /&gt;
&amp;lt;section begin=Box /&amp;gt;&lt;br /&gt;
Реалізовано підтримку примітиву контейнеру, що, за сумісництвом, виконує роль сторінок проєктів. Даний примітив є єдиним елементом-контейнером, який може включати у себе посилання на кадри з бібліотеки, формуючи тим самим користувацькі елементи потрібної конфігурації. Примітив реалізує передбачені проєктом властивості. Перелічимо, по пунктах, властивості даного примітиву:&lt;br /&gt;
* ''Контейнер'' — Дозволяє формувати потрібні об'єкти шляхом групування базових у межах даного примітиву.&lt;br /&gt;
* ''Сторінка'' — Елементи, побудовані на даному примітиві, можуть виконувати роль сторінки користувацького інтерфейсу.&lt;br /&gt;
* ''Контейнер сторінок'' — Властивість заміщення, у процесі виконання, власного вмісту іншою сторінкою. Використовується для формування фреймів на сторінках користувацького інтерфейсу. Наприклад, головна сторінка типової SCADA-системи з об'єктами сигналізації будується саме таким чином.&lt;br /&gt;
* ''Фон'' — Підтримує можливість указання фону у вигляді кольору та зображення.&lt;br /&gt;
* ''Бордюр'' — Підтримує можливість зображення бордюру з вказаним кольором, товщиною та стилем.&lt;br /&gt;
&amp;lt;section end=Box /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Загальна конфігурація модуля ==&lt;br /&gt;
Для конфігурації та керування цим модулем, надається конфігураційна сторінка інтерфейсу керування OpenSCADA (Рис.4) де Ви можете здійснювати:&lt;br /&gt;
* Контроль за активними WEB-сеансами.&lt;br /&gt;
* Конфігурацію:&lt;br /&gt;
** Час життя, у хвилинах, та максимальна кількість сеансі.&lt;br /&gt;
** Час життя, у годинах, та максимальна кількість сторінок у кеші.&lt;br /&gt;
** Рівень компресії PNG-зображень. Більш оптимальним є мінімальний рівень 1, оскільки без стиснення виходять великі файли, а більші рівні стиснення створюють більш високе навантаження на процесор.&lt;br /&gt;
** Зміна розміру растрових зображень на боці серверу. Переважно щоб зменшити розмір занадто великий зображень відтак і трафіку, що призводить до збільшення навантаження на сервер.&lt;br /&gt;
** Користувацькі CSS правила інтерфейсу. CSS правила перевизначення стандартних, що розташовуються за спеціальним знаком ##CUST_CSS## файлу WebVisionVCA.html.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_cfg_uk.png|center|frame|Рис.4. Сторінка конфігурації модуля.]]&lt;br /&gt;
&lt;br /&gt;
Ви можете глибоко налаштувати основний інтерфейс модуля замінивши та доповнивши код HTML і JavaScript шляхом розташування до теки вашого проєкту OpenSCADA файлів WebVisionVCA.html і WebVisionVCA.js, які початково можете отримати з вихідного коду модуля — [http://oscada.org/svn/trunk/OpenSCADA/src/moduls/ui/WebVision/ UI.WebVision].&lt;br /&gt;
&lt;br /&gt;
== {{Anch|Efficiency|Ефективність та масштабованість}} ==&lt;br /&gt;
{{CntHdr|31.07.2019}}&lt;br /&gt;
GROUNDS: The Web-sessions may create many objects servicing the VCA-session for generating images, processing documents and performing other background functions of the end user Web-interface. Moreover, in difference to [[Special:MyLanguage/Modules/Vision|Vision]], the VCA-sessions may be created, closed and recreated again multiple times for different users and remote hosts. In the time the memory heap is affected by the memory fragmentation, so the program consumes more memory than at the start. The table below represents the phenomenon for different environments and the first page of [[Special:MyLanguage/Using/Model_AGLKS|the DemoDB (AGLKS) project]] reopening:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Environment !! Initially, MB !! Iter. 1, MB !! Iter. 2, MB !! Iter. 3, MB !! Iter. 4, MB !! Iter. 5, MB !! Resume&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | ''Complete creation the Web- and VCA-sessions''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 amd64, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=2 || 181 || 189 || 190 || 195 || 195 || 194 || Satiated on the iteration '''3''', base consumption 8 MB, extra consumption 5 MB ('''62.5''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 amd64, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=1 || 177 || 185 || 186 || 186 || 185 || 186 || Satiated on the iteration '''2''', base consumption 8 MB, extra consumption 1 MB ('''13''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9 amd64, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=1 || 160 || 168 || 168 || 168.5 || 168.5 || 168.5 || Satiated on the iteration '''1''', base consumption 8 MB, extra consumption 0.5 MB ('''6''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 amd64, GLibC 2.28, GCC 8.3.0 + optional background objects in WebVision || 184 || 194.5 || 200 || 207 || 207 || 212.5 || Satiated on the iteration '''5''', base consumption 10.5 MB, extra consumption 18 MB ('''171''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 amd64, GLibC 2.28, GCC 8.3.0 || 182 || 191.5 || 199 || 206 || 212 || 212 || Satiated on the iteration '''4''', base consumption 9.5 MB, extra consumption 20 MB ('''200''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.74 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9 amd64, GLibC 2.24, GCC 6.3.0 || 160 || 170 || 178 || 179 || 183 || 185 || Satiated on the iteration '''5''', base consumption 10 MB, extra consumption 15 MB ('''150''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.72 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8 amd64, GLibC 2.19, GCC 4.9.2 || 125.5 || 133 || 139 || 139 || 139 || 139 || Satiated on the iteration '''2''', base consumption 7.5 MB, extra consumption 6 MB ('''80''' %), liboscada.so 3.8 MB, ui_WebVision.so 0.79 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 7 amd64, GLibC 2.13, GCC 4.7.2 || 101 || 108 || 111 || 112 || 112 || 112 || Satiated on the iteration '''2''', base consumption 7 MB, extra consumption 4 MB ('''57''' %), liboscada.so 3.4 MB, ui_WebVision.so 0.85 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 i386, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=1 || 144 || 152 || 152 || 152 || 152 || 152 || Satiated on the iteration '''1''', base consumption 8 MB, extra consumption 0 MB ('''0''' %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9 i386, GLibC 2.24, GCC 6.3.0 + MALLOC_ARENA_MAX=1 || 126.5 || 132.5 || 133 || 133 || 133 || 133 || Satiated on the iteration '''1''', base consumption 6 MB, extra consumption 0.5 MB ('''8''' %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 i386, GLibC 2.28, GCC 8.3.0 || 151 || 158 || 162.5 || 166 || 166 || 166 || Satiated on the iteration '''3''', base consumption 7 MB, extra consumption 8 MB ('''114''' %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9 i386, GLibC 2.24, GCC 6.3.0 || 125 || 131 || 132 || 136 || 136 || 139 || Satiated on the iteration '''5''', base consumption 6 MB, extra consumption 8 MB ('''133''' %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8 i386, GLibC 2.19, GCC 4.9.2 || 92.5 || 99 || 101.5 || 103 || 103.5 || 103.5 || Satiated on the iteration '''2''', base consumption 6.5 MB, extra consumption 4.5 ('''69''' %), liboscada.so 3.6 MB, ui_WebVision.so 0.94 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 7 i386, GLibC 2.13, GCC 4.7.2 || 70 || 76 || 76 || 76 || 77 || 77 || Satiated on the iteration '''2''', base consumption 6 MB, extra consumption 1 MB ('''16''' %), liboscada.so 3.6 MB, ui_WebVision.so 0.9 MB&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux 6 i386, GLibC 2.11.3, GCC 4.5.4 || 69 || 74 || 75 || 75 || 75 || 75 || Satiated on the iteration '''2''', base consumption 5 MB, extra consumption 1 MB ('''20''' %), liboscada.so 2.3 MB, ui_WebVision.so 0.9 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | ''Creation only VCA-session, from remote connection to the visualizer server''&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 amd64, GLibC 2.28, GCC 8.3.0 || 180 || 186 || 186 || 186 || 186 || 186 || Satiated on the iteration '''1''', extra consumption 0.2 MB (3 %)&lt;br /&gt;
|-&lt;br /&gt;
| Debian 7 amd64, GLibC 2.13, GCC 4.7.2 || 100 || 104 || 105 || 105 || 105 || 105 || Satiated on the iteration '''1''', extra consumption 1 MB (25 %)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 i386, GLibC 2.28, GCC 8.3.0 || 148 || 154 || 155 || 155 || 155 || 155 || Satiated on the iteration '''1''', extra consumption 1 MB (16 %)&lt;br /&gt;
|-&lt;br /&gt;
| Debian 7 i386, GLibC 2.13, GCC 4.7.2 || 69 || 72 || 72 || 72 || 72 || 72 || Satiated on the iteration '''1''', extra consumption 0 MB (0 %)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
CONCLUSION: We see obvious degradation in the memory effectivity on the last Debian releases starting at Debian 8 (GLibC 2.19) on I386 and Debian 9 (GLibC 2.24) on AMD64, when the memory consumption increased up to 200% after 3,4 free-allocate iterations of the same data. To more presenting of the problem there have built follow images on the data basis:&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_MemEffectAMD64.png|center|frame|Fig.5. Memory effectivity on AMD64 platform.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_MemEffectI386.png|center|frame|Fig.6. Memory effectivity on I386 platform.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_AbsInitSizeAMD64.png|center|frame|Fig.7. Absolute initial size of OpenSCADA &amp;quot;AGLKS&amp;quot; on the platform AMD64.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_AbsInitSizeAI386.png|center|frame|Fig.8. Absolute initial size of OpenSCADA &amp;quot;AGLKS&amp;quot; on the platform I386.]]&lt;br /&gt;
&lt;br /&gt;
MEASURES:&lt;br /&gt;
# The optional background objects were implemented for the primitives &amp;quot;FormEl&amp;quot; and &amp;quot;Text&amp;quot;, what will have most effect on mnemonic-schemes with these elements and wont have many effect for other, see the measuring data above.&lt;br /&gt;
# There were some tries to tune the memory allocator of GLibC using &amp;quot;[https://www.gnu.org/software/libc/manual/html_node/Memory-Allocation-Tunables.html Memory Allocation Tunables]&amp;quot; without any significant effect, so we will [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=934080 notify the Debian community], firstly.&lt;br /&gt;
# The problem was detected in arenas of the memory allocator, setting whose number to 1 (MALLOC_ARENA_MAX=1) completely resolves the problem and the effect you may see on Figures 9, 10, for a real big application.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_MemoryDef.png|center|frame|Fig.9. Tendency of the memory consumption on a real big application at the default conditions.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_MemoryArenas1.png|center|frame|Fig.10. Tendency of the memory consumption on a real big application at the environment variable MALLOC_ARENA_MAX=1.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|20.06.2013}}&lt;br /&gt;
GROUNDS: At working with the board [[Special:MyLanguage/Using/Kontron_MOPSlcdLX|MOPSlcdLX]], attention was drawn to the heavy load of the task of forming full-size trends. As it turned out later, a large load is created by the formation of a PNG image in the GD2 library, or rather, the packing procedure of ZLib. The subject analysis of the performance of the formation of images of various formats on this board is summarized in the table below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Trend building, milliseconds !! Converting to the image format, milliseconds !! Size of the image, bytes&lt;br /&gt;
|-&lt;br /&gt;
| PNG (0) || 200 || 800 || 1700365 &lt;br /&gt;
|-&lt;br /&gt;
| PNG (1) || 200 || 690 || 24000 &lt;br /&gt;
|-&lt;br /&gt;
| PNG (-1) || 200 || 1000 || 14800 &lt;br /&gt;
|-&lt;br /&gt;
| PNG (9) || 200 || 1900 || 13354 &lt;br /&gt;
|-&lt;br /&gt;
| JPEG (-1) || 200 || 180 || 53157 &lt;br /&gt;
|-&lt;br /&gt;
| GIF || 200 || 380 || 14300 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
CONCLUSION: As can be seen from the table above, the operation of forming PNG as a whole is resource-intensive and the most optimal level of compression is &amp;quot;1&amp;quot;. At the same time, the formation of JPEG and GIF is much faster, but these image formats have a number of critical flaws, namely: JPEG does not have an alpha channel (transparency), and GIF is limited by the number of colors, which in both cases leads to loss of transparency and distortion of text smoothing and images in general.&lt;br /&gt;
&lt;br /&gt;
MEASURES: The ability to select the compression level for the generated PNG images is added, and the default value is set to the optimal level &amp;quot;1&amp;quot;. The implementation of the formation of the &amp;quot;Diagram&amp;quot; primitive on the browser side in the &amp;quot;svg&amp;quot; or &amp;quot;canvas&amp;quot; tags is planned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Зауваження ==&lt;br /&gt;
На цьому етапі модуль може бути використаний для побудови реальних інтерфейсів користувача з підтримкою основних функцій. Однак, окремі проблеми можуть виникати як з причини недопрацьованості, так й різниці браузерів. На цей час достатньо якісно забезпечено працездатність на браузерах: Chromium (Google Chrome), FireFox, Opera, Konqueror.&lt;br /&gt;
&lt;br /&gt;
== Посилання ==&lt;br /&gt;
* [[:File:WebVision MemAllocFree.ods|Електронна таблиця: Аналіз ефективності розподілу пам'яті.]]&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Modules/WebVision/en&amp;diff=93979</id>
		<title>Modules/WebVision/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Modules/WebVision/en&amp;diff=93979"/>
				<updated>2026-05-10T04:54:23Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module !! Name !! Version !! License !! Source !! Languages !! Platforms !! Type !! Author&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Modules/WebVision|WebVision]] || Operation user interface (WEB)&lt;br /&gt;
| 6.16 || GPL2 || ui_WebVision.so || en,uk,ru,de || x86,x86_64,ARM&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| UI || {{Author|Roman Savochenko|Maxim Lysenko (2007-2012), Ksenia Yashina (2007-2008)}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | Visual operation user interface, based on the WEB — front-end to the VCA engine.&lt;br /&gt;
* '''Total complexity:''' &amp;gt; 50 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}&lt;br /&gt;
* '''Sponsored by, for the primitive &amp;quot;Media&amp;quot; and Notification on 1.35 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' Hadi Ramezani&lt;br /&gt;
* '''Sponsored by, for the Notification on 0.85 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' Vinnica Poultry Farm&lt;br /&gt;
* '''Sponsored by, for finishing the mirroring of the primitive ElFigure on 0.5 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' SVItoVYR Ltd&lt;br /&gt;
* '''Sponsored by, for the Export on 0.8 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' Vinnica Poultry Farm&lt;br /&gt;
* '''[[Special:MyLanguage/Works/To_do|To Do]]:'''&lt;br /&gt;
&amp;lt;section begin=ToDo /&amp;gt;&lt;br /&gt;
: * revise and unify the keyboard focus forcing on a first active element considering them specifity, to ensure the keyboard shortcuts;&lt;br /&gt;
: - expand the primitive &amp;quot;Diagram&amp;quot; by the mouse scaling operations;&lt;br /&gt;
: - implement own RTE-editor for the view Text of the primitive FormEl;&lt;br /&gt;
: - ElFigure: fix some properties loss (line width at the least) at the actions processing, in the way of the primitive code common refactoring;&lt;br /&gt;
: - expand the status-bar, with the functions:&lt;br /&gt;
:: - printing and exporting the Diagram primitive after it moving to &amp;quot;SVG&amp;quot;.&lt;br /&gt;
: - ElFigure,Diagram: enable or make the anti aliasing, for the library GD;&lt;br /&gt;
: - implement the primitives &amp;quot;Diagram&amp;quot;, &amp;quot;ElFigure&amp;quot; in the tag &amp;quot;SVG&amp;quot;;&lt;br /&gt;
: - expand the variant &amp;quot;Animation&amp;quot; of the primitive &amp;quot;Media&amp;quot; in using the raw image files, like to PNG.&lt;br /&gt;
&amp;lt;section end=ToDo /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The module provides in OpenSCADA a mechanism of the final visualization of the visual control area (VCA). The module is based on WEB technologies (XHTML, JavaScript, CSS, AJAX). In its work, the module uses the data from the VCA engine — module [[Special:MyLanguage/Modules/VCAEngine|VCAEngine]].&lt;br /&gt;
{{#lst:Sub-projects/VCA|Introduce}}&lt;br /&gt;
In order to avoid these problems, as well as to create as soon as possible the full spectrum of different types of VCA, [[Special:MyLanguage/Sub-projects/VCA|the generic concept of VCA]] is established. The result of this project — this direct visualization module (based on the Web-technologies), direct visualization module [[Special:MyLanguage/Modules/Vision|Vision]] and the VCA engine [[Special:MyLanguage/Modules/VCAEngine|VCAEngine]].&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
This module of the direct visualization of the VCA serves only for the execution of the VCA interfaces in the area of WEB-technologies!&lt;br /&gt;
&lt;br /&gt;
The user interface forms in WEB-browser, by reference to the WEB-server and receiving from it XHTML-document over HTTP. In this case, the WEB-server — OpenSCADA, which supports standard communication mechanisms of the TCP-networks (module [[Special:MyLanguage/Modules/Sockets|Transport.Sockets]]), hypertext transfer protocol (module [[Special:MyLanguage/Modules/HTTP|Protocol.HTTP]]), as well as encryption of the traffic between the browser and the server ([[Special:MyLanguage/Modules/SSL|Transport.SSL]]). Therefore, in order to access the user interface provided by this module, OpenSCADA must configure transport (Transport.Sockets or Transport.SSL) in conjunction with the HTTP protocol (Protocol.HTTP). OpenSCADA comes with configuration files that contain the Transport.Sockets configuration for port 10002. Consequently, the module interface, in the default, will be available at URL: &amp;quot;&amp;lt;nowiki&amp;gt;http://localhost:10002&amp;lt;/nowiki&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The final version of this VCA module, built on the basis of this module, will provide:&lt;br /&gt;
{{#lst:Sub-projects/VCA|TargetFeatures}}&lt;br /&gt;
&lt;br /&gt;
== Execution of the VCA interfaces ==&lt;br /&gt;
Execution of the VCA interface is to run a new project session, or connect to the existing one, on the level of the VCA engine (Fig.2). Before the connection request to the session the user authentication request (Fig.1) is done. Then the module of direct visualization displays and controls the data of the session. The main window of the execution mode of this module has the form presented at Figure 3. The administrator users (&amp;quot;root&amp;quot; or in the group &amp;quot;root&amp;quot;) can close the opened sessions.&lt;br /&gt;
&lt;br /&gt;
The interface of the execution window is built fully dynamically by the JavaScript script on the basis of the contents of the project session through direct XML requests to the server.&lt;br /&gt;
&lt;br /&gt;
Update of the contents of the open pages of the visual interface with periodicity of the project session is implemented. During the upgrade process:&lt;br /&gt;
:- request, in the model, of opened pages list and checking consistency of the really opened pages to this list;&lt;br /&gt;
:- requests of modified data on each opened page and its widgets;&lt;br /&gt;
:- updating content of the pages and their widgets in accordance with the received modified data.&lt;br /&gt;
&lt;br /&gt;
The mechanism of the request for only modified data is based on the absolute counter of the session execution. When you make real changes in the attributes of widgets the remembering of the value of this counter is made, which allows us to identify the modified attributes. This approach allows to increase productivity and reduce the load on the traffic in case of access to the model through the network.&lt;br /&gt;
&lt;br /&gt;
Hierarchically, the module assumes the possibility of placing pages of the project as in the main window of execution (Fig. 3), and by placing inside the container widgets, as well as by opening additional windows over the main one.&lt;br /&gt;
&lt;br /&gt;
Located in the status bar:&lt;br /&gt;
* On the right side:&lt;br /&gt;
** the current user, on whose behalf the VCA interface is executed — by a clicking this user can be changed, typing of the new username and password;&lt;br /&gt;
** the current interface style, which can be changed selecting need one in the combobox;&lt;br /&gt;
** the current alarm status by a lamp with color related to the alarm level and the active notifiers' icons; blinks at the alarm appearing or changing; pressing on the lamp you may quiet the alarm in whole or the desired type of the notification, pressing the correspond notifier icon near;&lt;br /&gt;
** the menu buttons of call the page printing and data exporting for:&lt;br /&gt;
*** printing: Main Page, Documents;&lt;br /&gt;
*** exporting: Documents (HTML,CSV), Tables (CSV).&lt;br /&gt;
** manual on the VCA-project — calls by a click the manual on the visualization project for the file &amp;quot;'''{ProjVCA_ID}.[pdf|html|odt]'''&amp;quot; in [[Special:MyLanguage/Documents/Program_manual#Config|the document folder]] or specified in the [[#SpecAttrs|&amp;quot;prjDoc&amp;quot; attribute]];&lt;br /&gt;
** panel of user statuses and actions when specified in the [[#SpecAttrs|&amp;quot;statLine&amp;quot; attribute]]; mouse clicking left, right and double forms events to the main interface page.&lt;br /&gt;
* In the main field of the status line various messages and assistance messages are displayed.&lt;br /&gt;
&lt;br /&gt;
The module supports multi-language which one enabled by the [[Special:MyLanguage/Documents/Program_manual#ConfigTr|dynamic messages translation of OpenSCADA]]. The gotten language passes by the module [[Special:MyLanguage/Modules/HTTP|Protocol.HTTP]] and detects in way and by the order:&lt;br /&gt;
* URL's parameter &amp;quot;lang&amp;quot;.&lt;br /&gt;
* Authenticated user's language.&lt;br /&gt;
* Language of the Web-browser from the HTTP property &amp;quot;Accept-Language&amp;quot;.&lt;br /&gt;
* Generic language of the OpenSCADA process.&lt;br /&gt;
&lt;br /&gt;
[[file:HTTP_auth.png|center|frame|Fig.1. Authentication page.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_connect.png|center|frame|Fig.2. Connection or creation of a new session of the execution project of the VCA.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run.png|center|frame|Fig.3. Main execution window.]]&lt;br /&gt;
&lt;br /&gt;
== {{Anch|Primitives|Presentation of the basic elements (primitives)}} ==&lt;br /&gt;
This version of the module does not implement all the shapes of the primitives laid by the project. In general, the project provides the following primitives:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Function&lt;br /&gt;
|-&lt;br /&gt;
| ElFigure || Elementary graphical figure ||&lt;br /&gt;
The primitive is the basis for drawing elementary graphical shapes with their possible combinations in a single object. The support of the following elementary figures is provided:&lt;br /&gt;
* Line.&lt;br /&gt;
* Arc.&lt;br /&gt;
* B&amp;amp;#233;zier curve.&lt;br /&gt;
* Fill of the enclosed space.&amp;lt;br/&amp;gt;&lt;br /&gt;
For all the figures, contained in the widget, set the common properties of thickness, color, etc., provides the possibility to specify the above-mentioned attributes for each figure separately and their dynamization.&lt;br /&gt;
|-&lt;br /&gt;
| FormEl || Element of the form ||&lt;br /&gt;
Includes support for the standard form components:&lt;br /&gt;
* Line edit.&lt;br /&gt;
* Text edit.&lt;br /&gt;
* Check box.&lt;br /&gt;
* Button.&lt;br /&gt;
* Combo box.&lt;br /&gt;
* List.&lt;br /&gt;
* Tree.&lt;br /&gt;
* Table.&lt;br /&gt;
* Slider.&lt;br /&gt;
* Scroll bar. &lt;br /&gt;
|-&lt;br /&gt;
| Text || Text || Text element-label. Characterized by the font type, color, orientation and alignment. Support for arguments is provided.&lt;br /&gt;
|-&lt;br /&gt;
| Media || Media || Element of the visualization of raster and vector images of various formats, playback of the animated images, playback of the audio fragments and view of the video fragments. &lt;br /&gt;
|-&lt;br /&gt;
| Diagram || Diagram || Element of the diagram with the support of the visualization in the real-time for the flow of several: trends (time charts), spectrum, XY diagrams.&lt;br /&gt;
|-&lt;br /&gt;
| Protocol || Protocol || Element of the protocol — visualizer of the program messages, with support of the multiple operating modes.&lt;br /&gt;
|-&lt;br /&gt;
| Document || Document || Element of the generating reports, journals and other documentation on the basis of available data. &lt;br /&gt;
|-&lt;br /&gt;
| Box || Container || Contains the mechanism for other widgets placement-including with the purpose of creation of new, more complex, widgets and pages of the end visualization. &lt;br /&gt;
|-&lt;br /&gt;
| Function, &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;in plane&amp;lt;/span&amp;gt; || Function of API of the object model of OpenSCADA || Not visual widget, on the runtime side, which allows to include a computing function of the object model of OpenSCADA in the VCA.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Anch|SpecAttrs|The visualizer module provides and uses set of specific attributes}} of the generic means, the information of which is given in the table. These attributes are automatically created by the visualizer in their absence and during the first run, or created by the user in the frame of the specified area, as needed.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier (area) !! Name !! Appointment&lt;br /&gt;
|-&lt;br /&gt;
| keepAspectRatio (main page) || Keep aspect ratio on scale || Keep aspect ratio of the pages on scale.&lt;br /&gt;
|-&lt;br /&gt;
| stBarNoShow (main page) || Do not show the status bar || Hide the status bar of the main window.&lt;br /&gt;
|-&lt;br /&gt;
| notify{N}, notifyVisWebVision{N} (page) || Notification: type {N} || [[File:at.png]] Create manually with the type &amp;quot;Text&amp;quot;!&lt;br /&gt;
Specifies a notifier and a procedure of the notification resource obtaining according to the [[Special:MyLanguage/Modules/VCAEngine#Alarms|&amp;quot;Signalling (Alarms)&amp;quot; conception]].&lt;br /&gt;
|-&lt;br /&gt;
| statLine (main page) || Status line items || [[File:at.png]] Create manually with the type &amp;quot;Text&amp;quot;!&lt;br /&gt;
Text field with description of the status line item in the string form &amp;quot;'''{Id}:{Label}:{ToolTip}:{Color}:{Img}'''&amp;quot;, where:&lt;br /&gt;
* &amp;quot;Id&amp;quot; — identifier, uses also to form events from the widget &amp;quot;stIt_{Id}&amp;quot;.&lt;br /&gt;
* &amp;quot;Label&amp;quot; — visual label of the status element.&lt;br /&gt;
* &amp;quot;ToolTip&amp;quot; — context help about the element.&lt;br /&gt;
* &amp;quot;Color&amp;quot; — label color.&lt;br /&gt;
* &amp;quot;Img&amp;quot; — image of the status element, instead the label.&lt;br /&gt;
|-&lt;br /&gt;
| userSetVis (main page) || Setting the user || [[File:at.png]] Create manually with the type &amp;quot;String&amp;quot;!&lt;br /&gt;
Change the user or call a dialog to select it. Variants of the value:&lt;br /&gt;
* &amp;quot;*&amp;quot; — call for a selecting dialog of the user; &lt;br /&gt;
* &amp;quot;$&amp;quot; — change the user to the default one;&lt;br /&gt;
* &amp;quot;{user}[:{password}]&amp;quot; — direct change to ''user'' with ''password''; for empty password, the user is changed only if its permission is lesser or equal; a useful example of changing to the &amp;quot;user&amp;quot; after one minute inactivity:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 20pt&amp;quot;&amp;gt;&lt;br /&gt;
if((SYS.time()-this.ownerSess().userActTm()) &amp;lt; 60)userSetVis = &amp;quot;&amp;quot;;&lt;br /&gt;
else if(this.ownerSess().reqUser() != &amp;quot;user&amp;quot;) userSetVis = &amp;quot;user&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| prjDoc (main page) || Project document || [[File:at.png]] Create manually with the type &amp;quot;String&amp;quot;!&lt;br /&gt;
Specifying the project documentation of call from the status line's button with a possibility of disabling-concealing the button at empty value. The documentation specified in view &amp;quot;'''&amp;lt;nowiki&amp;gt;{OffLine}|{OnLineOpenSCADAWiki}&amp;lt;/nowiki&amp;gt;'''&amp;quot;, for example for the [[Special:MyLanguage/Using/Model_AGLKS|AGLCS project]] — &amp;quot;&amp;lt;nowiki&amp;gt;AGLCS|Using/Model_AGLKS&amp;lt;/nowiki&amp;gt;&amp;quot;. The online part is used in first order at its specifying!&lt;br /&gt;
|-&lt;br /&gt;
| vs_goHttpUrl (view &amp;quot;Button&amp;quot; of the primitive &amp;quot;FormEl&amp;quot;) || Go to the HTTP URL || [[File:at.png]] Create manually with the type &amp;quot;String&amp;quot;!&lt;br /&gt;
Go to the specified URL at the button press.&lt;br /&gt;
|-&lt;br /&gt;
| vs_background (views &amp;quot;Line edit&amp;quot;, &amp;quot;Text edit&amp;quot;, &amp;quot;Combo box&amp;quot;, &amp;quot;List&amp;quot;, &amp;quot;Tree&amp;quot;, &amp;quot;Table&amp;quot; of the primitive &amp;quot;FormEl&amp;quot;) || Custom background || [[File:at.png]] Create manually with the type &amp;quot;String&amp;quot;!&lt;br /&gt;
Specifies for the custom background in the form '''{color}-{transp} {image}'''.&lt;br /&gt;
|-&lt;br /&gt;
| vs_border (views &amp;quot;Line edit&amp;quot;, &amp;quot;Text edit&amp;quot;, &amp;quot;Combo box&amp;quot;, &amp;quot;List&amp;quot;, &amp;quot;Tree&amp;quot;, &amp;quot;Table&amp;quot; of the primitive &amp;quot;FormEl&amp;quot;) || Custom border || [[File:at.png]] Create manually with the type &amp;quot;String&amp;quot;!&lt;br /&gt;
Specifies for the custom border in the standard CSS-form '''{wdth}px {style} {color}'''.&lt;br /&gt;
|-&lt;br /&gt;
| vs_winTitle (the view &amp;quot;Box&amp;quot;) || Window title || [[File:at.png]] Create manually with the type &amp;quot;String&amp;quot;!&lt;br /&gt;
Dynamic window title value.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Consider the implementation of each primitive in more detail.&lt;br /&gt;
&lt;br /&gt;
=== Elementary figure primitive (ElFigure) ===&lt;br /&gt;
&amp;lt;section begin=ElFigure /&amp;gt;&lt;br /&gt;
Support of the elementary figures is implemented: lines, elliptical arcs, B&amp;amp;#233;zier curves and fill of the enclosed space with the color and image with the properties:&lt;br /&gt;
* formation of arbitrary images from three elemental shapes and fillings of closed spaces with color or image;&lt;br /&gt;
* there is the possibility of determination of the figures' properties both in general and individual to each one: line width, color and style, line border's width and color, filling's color and image;&lt;br /&gt;
* scaling;&lt;br /&gt;
* transformation: rotation and mirroring;&lt;br /&gt;
* user's attributes support for dynamic: points, widths, colors, styles and images;&lt;br /&gt;
* formation of events by action of the mouse manipulator in a closed space and in general.&lt;br /&gt;
&lt;br /&gt;
Figure shows a part of the screen with a frame containing the elementary figures.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_elfig.png|center]]&lt;br /&gt;
&amp;lt;section end=ElFigure /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Text primitive (Text) ===&lt;br /&gt;
&amp;lt;section begin=Text /&amp;gt;&lt;br /&gt;
Support of the text element with the following properties is implemented:&lt;br /&gt;
* Font with the properties: type-class, size, bold, italic, strikeout and underline.&lt;br /&gt;
* Text color.&lt;br /&gt;
* Text orientation.&lt;br /&gt;
* Automatic word wrap.&lt;br /&gt;
* Alignment of the text horizontally and vertically with all variants.&lt;br /&gt;
* Displaying the background as the color and image.&lt;br /&gt;
* Displaying the border around the text, with the specified color, width and style.&lt;br /&gt;
* Displaying HTML. &lt;br /&gt;
* Addition of the text by arguments of different type and properties.&lt;br /&gt;
&lt;br /&gt;
Figure represents a part of the screen with the frame containing the text examples using various parameters.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_txt.png|center]]&lt;br /&gt;
&amp;lt;section end=Text /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primitive of the form element (FormEl) ===&lt;br /&gt;
&amp;lt;section begin=FormEl /&amp;gt;&lt;br /&gt;
Provides support for the form elements on the VCA frames with the planed properties, including the types:&lt;br /&gt;
* ''Line edit'' — Represented by the following types: &amp;quot;Text&amp;quot;, &amp;quot;Combo&amp;quot;, &amp;quot;Integer&amp;quot;, &amp;quot;Real&amp;quot;, &amp;quot;Time&amp;quot;, &amp;quot;Date&amp;quot;, &amp;quot;Date and time&amp;quot;. All kinds of line editor support the confirmation of entry.&lt;br /&gt;
* ''Text edit'' — Provides the flat-text editor with the confirmation or denial of entry.&lt;br /&gt;
* ''Check box'' — Provides a field of binary flag.&lt;br /&gt;
* ''Button'' — Provides the button with support of the button color, image in the button and the modes:&lt;br /&gt;
** standard;&lt;br /&gt;
** checkable;&lt;br /&gt;
** call the menu;&lt;br /&gt;
** call the file loading;&lt;br /&gt;
** call the file saving.&lt;br /&gt;
* ''Combo box'' — Provides a field for selecting an item from the list of specified items&lt;br /&gt;
* ''List'' — Provides the list box with the control of the current item.&lt;br /&gt;
* ''Tree'' — Provides the tree element with possibility of an item selection.&lt;br /&gt;
* ''Table'' — Provides the table element with the possibility of selecting for cells, rows or columns and editing the cell content.&lt;br /&gt;
* ''Slider'' — Slider element.&lt;br /&gt;
* ''Scroll bar'' — Scroll bar (Equal to Slider).&lt;br /&gt;
* ''Password'' — Hidden password typing.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Enabled&amp;quot; and &amp;quot;Active&amp;quot; modes are implemented, as well as the transfer of changes and events to the data model of the VCA — engine. The mode &amp;quot;Active&amp;quot; cause to the activity cursor set for not empty background and the addition conditions of the different views &amp;quot;Text&amp;quot;, &amp;quot;Media&amp;quot; and &amp;quot;Box&amp;quot;:&lt;br /&gt;
* ''Text'' — not empty text;&lt;br /&gt;
* ''Media'' — not empty source image.&lt;br /&gt;
&lt;br /&gt;
Figure represents a part of the screen with the frame containing the above-listed elements of the form.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_formel.png|center]]&lt;br /&gt;
&amp;lt;section end=FormEl /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primitive of the displaying the media-materials (Media) ===&lt;br /&gt;
&amp;lt;section begin=Media /&amp;gt;&lt;br /&gt;
Support of the element of the displaying of the media-materials with the following properties is provided:&lt;br /&gt;
* Indication of the media data source: images or video-material.&lt;br /&gt;
* Review of the images of most well-known formats with the possibility of fitting in the widget size and keeping aspect ratio here.&lt;br /&gt;
* Playback of the simple animated images and video formats with the possibility to control the playback speed (&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;inaccessible&amp;lt;/font&amp;gt;).&lt;br /&gt;
* Playback of the full-formatted video and audio by HTML5.&lt;br /&gt;
* Displaying the background as the color and image.&lt;br /&gt;
* Displaying the border along the perimeter of the widget, with the specified color, width and style.&lt;br /&gt;
* Formation of the active areas and generating the events when they are activated.&lt;br /&gt;
&lt;br /&gt;
Figure represents a part of the screen with the frame containing examples of reviewing/playback of the media-data.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_media.png|center]]&lt;br /&gt;
&amp;lt;section end=Media /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primitive of constructing diagrams (Diagram) ===&lt;br /&gt;
&amp;lt;section begin=Diagram /&amp;gt;&lt;br /&gt;
The diagrams construction element releases for types: &amp;quot;Graph&amp;quot;, &amp;quot;Spectrum&amp;quot; and &amp;quot;XY&amp;quot;, with properties:&lt;br /&gt;
* General properties of the diagram types &amp;quot;Graph&amp;quot;, &amp;quot;Spectrum&amp;quot; and &amp;quot;XY&amp;quot;:&lt;br /&gt;
** possibility to select the archiver, the archive buffer or all their, at working with the archiving data;&lt;br /&gt;
** adaptation of the parameter graph to real data values by adjusting the scale, in the absence of a directly specified range of values;&lt;br /&gt;
** controlling by axis ranges in way increasing, decreasing and shifting;&lt;br /&gt;
** wide range of scaling and adapting the time axis with automatic fitting the requested data to quality pretty for imaging, or needed for export — specifying the maximum number of measurements per pixel;&lt;br /&gt;
** imaging dimensional grid and markers in horizontal and vertical with adapting to the imaging range;&lt;br /&gt;
** tracing mode of the current time by periodically updating and shifting the time of the diagram to the current time — the time of the last data in the archive buffer.&lt;br /&gt;
* Properties of the diagram type &amp;quot;Graph&amp;quot;:&lt;br /&gt;
** constructing graphics up to 100 parameters per diagram in a percentage scale and displaying the selected parameters in its own scale;&lt;br /&gt;
** constructing graph for: current, archiving and users data;&lt;br /&gt;
** forming of an intermediate display buffer for current values;&lt;br /&gt;
** support for the active mode with cursor and getting values under the cursor;&lt;br /&gt;
** possibility of construction graphics as into both linear and logarithmic scale of the values.&lt;br /&gt;
* Properties of the diagram type &amp;quot;Spectrum&amp;quot;:&lt;br /&gt;
** construction of graphics of the frequency spectrum of parameters up to 100 on one diagram in a percentage scale and the ability to display selected parameters in its own scale;&lt;br /&gt;
** constructing graph for: archiving and users data;&lt;br /&gt;
** support for the active mode with cursor and getting values under the cursor;&lt;br /&gt;
* Properties of the diagram type &amp;quot;XY&amp;quot;:&lt;br /&gt;
** construction of XY graphs of parameters up to 50 on one diagram in a percentage scale and the ability to display selected parameters on its own scale;&lt;br /&gt;
** constructing graph for: current, archiving and users data;&lt;br /&gt;
** forming of an intermediate display buffer for current values;&lt;br /&gt;
** the parameters distributed by pairs at one graph, where paired by axis Y (0,2,4...) and unpaired by axis X (1,3,5...);&lt;br /&gt;
** possibility of construction graphics as into both linear and logarithmic scale of the values.&lt;br /&gt;
&lt;br /&gt;
Figure represents a part of the screen with the frame containing examples of the diagrams: &amp;quot;Graph&amp;quot;, &amp;quot;Spectrum&amp;quot; and &amp;quot;XY&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_diag.png|center]]&lt;br /&gt;
&amp;lt;section end=Diagram /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primitive of the protocol formation (Protocol) ===&lt;br /&gt;
&amp;lt;section begin=Protocol /&amp;gt;&lt;br /&gt;
Provides for support of the element of the protocol formation with the following properties:&lt;br /&gt;
* Protocol formation from the message archive for the specified time and depth.&lt;br /&gt;
* Request of the data from the message archivers.&lt;br /&gt;
* Selection of the data from the archives by the level of importance and the template of the message category.&lt;br /&gt;
* Support the mode of the tracking for the messages appearance in the message archive.&lt;br /&gt;
&lt;br /&gt;
Figure represents a part of the screen with the frame containing an example of the protocol.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_prot.png|center]]&lt;br /&gt;
&amp;lt;section end=Protocol /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primitive of the report formation (Document) ===&lt;br /&gt;
&amp;lt;section begin=Document /&amp;gt;&lt;br /&gt;
Provides for support element of the report formation with the following properties:&lt;br /&gt;
* Flexible formation of document structure based on HyperText Markup Language, which provides support for a wide range of features in the documents formatting.&lt;br /&gt;
* Formation of the documents at a command or a schedule, which necessary for creation of reports to the archive and then reviewing the archive.&lt;br /&gt;
* Formation of the documents in real time, to provide them completely dynamically and on the basis of archives at the specified time.&lt;br /&gt;
* Using the widget attributes for transmission to the document of values and addresses to the archives, which allows you to use the document widget as a template when generating reports with other input data.&lt;br /&gt;
&lt;br /&gt;
The basis of any document is the XHTML template. The XHTML-template is the tag &amp;quot;body&amp;quot; of the WEB-page which contains the document's static in the standard XHTML 1.0 and elements of the executable instructions in the user programming language of OpenSCADA in the view '''&amp;lt;?dp {procedure} ?&amp;gt;'''. The resulting document is formed by the procedures execution and insertion of their result into the document.&lt;br /&gt;
&lt;br /&gt;
The source for values of the executable instructions are the widget attributes of the primitive, as well as all the mechanisms of the user programming language OpenSCADA. Attributes may be added by the user and they can be linked to the actual attributes or parameters or they can be autonomous, values of which will be formed in the widget procedure. In the case of linked attributes the values can be extracted from the archive-history.&lt;br /&gt;
&lt;br /&gt;
Figure represents the frame, containing a sample of the document.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_run_doc.png|center]]&lt;br /&gt;
&amp;lt;section end=Document /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primitive of the box-container (Box) ===&lt;br /&gt;
&amp;lt;section begin=Box /&amp;gt;&lt;br /&gt;
Provides for support of the container primitive, which, in combination, plays the role of project pages. This primitive is the only container-element, which can itself include links to frames from the library, thus forming the user elements of the desired configuration. The primitive implements the properties provided by the project. Let's list, in points, the properties of this primitive:&lt;br /&gt;
* ''Container'' — Allows forming the desired objects by grouping in the primitive borders.&lt;br /&gt;
* ''Page'' — Elements, constructed on the basis of the primitive, may serve as a page of the user interface.&lt;br /&gt;
* ''Container of pages'' — Property of substitution, in the execution process, of its own content by another page. Used to create frames on the pages of the user interface. For example, the main page of the typical SCADA-system with signal objects is constructed in this way.&lt;br /&gt;
* ''Background'' — Supports for ability to specify the background as color and image.&lt;br /&gt;
* ''Border'' — Supports for displaying of the border with the specified color, width and style.&lt;br /&gt;
&amp;lt;section end=Box /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Overall configuration of the module ==&lt;br /&gt;
To configure and control this module, you have the configuration page of the OpenSCADA control interface (Fig.4):&lt;br /&gt;
* Control for the active WEB-sessions.&lt;br /&gt;
* Configuring:&lt;br /&gt;
** Lifetime, in minutes, and maximum number of the sessions.&lt;br /&gt;
** Lifetime, in hours, and maximum number of the cached pages.&lt;br /&gt;
** Level of the PNG-images compression. The optimum is the minimum level 1, since large files get uncompressed, and higher compression levels create a higher load on the processor.&lt;br /&gt;
** Resizing raster images on the server side. Mostly to decrease too big images size then decrease the traffic, what causes to rise the server load.&lt;br /&gt;
** Custom interface CSS rules. CSS rules to override the standard ones what placed in the special token ##CUST_CSS## of the file WebVisionVCA.html.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_wvis_cfg.png|center|frame|Fig.4. Configuration page of the module.]]&lt;br /&gt;
&lt;br /&gt;
You can deeply customise main interface of the module overriding and adding the HTML and JavaScript code by placing to folder of your OpenSCADA project files WebVisionVCA.html and WebVisionVCA.js which initially you can obtain from the module source code — [http://oscada.org/svn/trunk/OpenSCADA/src/moduls/ui/WebVision/ UI.WebVision].&lt;br /&gt;
&lt;br /&gt;
== {{Anch|Efficiency|Efficiency and scalability}} ==&lt;br /&gt;
{{CntHdr|31.07.2019}}&lt;br /&gt;
GROUNDS: The Web-sessions may create many objects servicing the VCA-session for generating images, processing documents and performing other background functions of the end user Web-interface. Moreover, in difference to [[Special:MyLanguage/Modules/Vision|Vision]], the VCA-sessions may be created, closed and recreated again multiple times for different users and remote hosts. In the time the memory heap is affected by the memory fragmentation, so the program consumes more memory than at the start. The table below represents the phenomenon for different environments and the first page of [[Special:MyLanguage/Using/Model_AGLKS|the DemoDB (AGLKS) project]] reopening:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Environment !! Initially, MB !! Iter. 1, MB !! Iter. 2, MB !! Iter. 3, MB !! Iter. 4, MB !! Iter. 5, MB !! Resume&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | ''Complete creation the Web- and VCA-sessions''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 amd64, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=2 || 181 || 189 || 190 || 195 || 195 || 194 || Satiated on the iteration '''3''', base consumption 8 MB, extra consumption 5 MB ('''62.5''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 amd64, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=1 || 177 || 185 || 186 || 186 || 185 || 186 || Satiated on the iteration '''2''', base consumption 8 MB, extra consumption 1 MB ('''13''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9 amd64, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=1 || 160 || 168 || 168 || 168.5 || 168.5 || 168.5 || Satiated on the iteration '''1''', base consumption 8 MB, extra consumption 0.5 MB ('''6''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 amd64, GLibC 2.28, GCC 8.3.0 + optional background objects in WebVision || 184 || 194.5 || 200 || 207 || 207 || 212.5 || Satiated on the iteration '''5''', base consumption 10.5 MB, extra consumption 18 MB ('''171''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.75 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 amd64, GLibC 2.28, GCC 8.3.0 || 182 || 191.5 || 199 || 206 || 212 || 212 || Satiated on the iteration '''4''', base consumption 9.5 MB, extra consumption 20 MB ('''200''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.74 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9 amd64, GLibC 2.24, GCC 6.3.0 || 160 || 170 || 178 || 179 || 183 || 185 || Satiated on the iteration '''5''', base consumption 10 MB, extra consumption 15 MB ('''150''' %), liboscada.so 3.5 MB, ui_WebVision.so 0.72 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8 amd64, GLibC 2.19, GCC 4.9.2 || 125.5 || 133 || 139 || 139 || 139 || 139 || Satiated on the iteration '''2''', base consumption 7.5 MB, extra consumption 6 MB ('''80''' %), liboscada.so 3.8 MB, ui_WebVision.so 0.79 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 7 amd64, GLibC 2.13, GCC 4.7.2 || 101 || 108 || 111 || 112 || 112 || 112 || Satiated on the iteration '''2''', base consumption 7 MB, extra consumption 4 MB ('''57''' %), liboscada.so 3.4 MB, ui_WebVision.so 0.85 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 i386, GLibC 2.28, GCC 8.3.0 + MALLOC_ARENA_MAX=1 || 144 || 152 || 152 || 152 || 152 || 152 || Satiated on the iteration '''1''', base consumption 8 MB, extra consumption 0 MB ('''0''' %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9 i386, GLibC 2.24, GCC 6.3.0 + MALLOC_ARENA_MAX=1 || 126.5 || 132.5 || 133 || 133 || 133 || 133 || Satiated on the iteration '''1''', base consumption 6 MB, extra consumption 0.5 MB ('''8''' %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 i386, GLibC 2.28, GCC 8.3.0 || 151 || 158 || 162.5 || 166 || 166 || 166 || Satiated on the iteration '''3''', base consumption 7 MB, extra consumption 8 MB ('''114''' %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 9 i386, GLibC 2.24, GCC 6.3.0 || 125 || 131 || 132 || 136 || 136 || 139 || Satiated on the iteration '''5''', base consumption 6 MB, extra consumption 8 MB ('''133''' %), liboscada.so 3.7 MB, ui_WebVision.so 0.9 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 8 i386, GLibC 2.19, GCC 4.9.2 || 92.5 || 99 || 101.5 || 103 || 103.5 || 103.5 || Satiated on the iteration '''2''', base consumption 6.5 MB, extra consumption 4.5 ('''69''' %), liboscada.so 3.6 MB, ui_WebVision.so 0.94 MB&lt;br /&gt;
|-&lt;br /&gt;
| Debian 7 i386, GLibC 2.13, GCC 4.7.2 || 70 || 76 || 76 || 76 || 77 || 77 || Satiated on the iteration '''2''', base consumption 6 MB, extra consumption 1 MB ('''16''' %), liboscada.so 3.6 MB, ui_WebVision.so 0.9 MB&lt;br /&gt;
|-&lt;br /&gt;
| ALTLinux 6 i386, GLibC 2.11.3, GCC 4.5.4 || 69 || 74 || 75 || 75 || 75 || 75 || Satiated on the iteration '''2''', base consumption 5 MB, extra consumption 1 MB ('''20''' %), liboscada.so 2.3 MB, ui_WebVision.so 0.9 MB&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | ''Creation only VCA-session, from remote connection to the visualizer server''&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 amd64, GLibC 2.28, GCC 8.3.0 || 180 || 186 || 186 || 186 || 186 || 186 || Satiated on the iteration '''1''', extra consumption 0.2 MB (3 %)&lt;br /&gt;
|-&lt;br /&gt;
| Debian 7 amd64, GLibC 2.13, GCC 4.7.2 || 100 || 104 || 105 || 105 || 105 || 105 || Satiated on the iteration '''1''', extra consumption 1 MB (25 %)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 i386, GLibC 2.28, GCC 8.3.0 || 148 || 154 || 155 || 155 || 155 || 155 || Satiated on the iteration '''1''', extra consumption 1 MB (16 %)&lt;br /&gt;
|-&lt;br /&gt;
| Debian 7 i386, GLibC 2.13, GCC 4.7.2 || 69 || 72 || 72 || 72 || 72 || 72 || Satiated on the iteration '''1''', extra consumption 0 MB (0 %)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
CONCLUSION: We see obvious degradation in the memory effectivity on the last Debian releases starting at Debian 8 (GLibC 2.19) on I386 and Debian 9 (GLibC 2.24) on AMD64, when the memory consumption increased up to 200% after 3,4 free-allocate iterations of the same data. To more presenting of the problem there have built follow images on the data basis:&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_MemEffectAMD64.png|center|frame|Fig.5. Memory effectivity on AMD64 platform.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_MemEffectI386.png|center|frame|Fig.6. Memory effectivity on I386 platform.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_AbsInitSizeAMD64.png|center|frame|Fig.7. Absolute initial size of OpenSCADA &amp;quot;AGLKS&amp;quot; on the platform AMD64.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_AbsInitSizeAI386.png|center|frame|Fig.8. Absolute initial size of OpenSCADA &amp;quot;AGLKS&amp;quot; on the platform I386.]]&lt;br /&gt;
&lt;br /&gt;
MEASURES:&lt;br /&gt;
# The optional background objects were implemented for the primitives &amp;quot;FormEl&amp;quot; and &amp;quot;Text&amp;quot;, what will have most effect on mnemonic-schemes with these elements and wont have many effect for other, see the measuring data above.&lt;br /&gt;
# There were some tries to tune the memory allocator of GLibC using &amp;quot;[https://www.gnu.org/software/libc/manual/html_node/Memory-Allocation-Tunables.html Memory Allocation Tunables]&amp;quot; without any significant effect, so we will [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=934080 notify the Debian community], firstly.&lt;br /&gt;
# The problem was detected in arenas of the memory allocator, setting whose number to 1 (MALLOC_ARENA_MAX=1) completely resolves the problem and the effect you may see on Figures 9, 10, for a real big application.&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_MemoryDef.png|center|frame|Fig.9. Tendency of the memory consumption on a real big application at the default conditions.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebVision_MemoryArenas1.png|center|frame|Fig.10. Tendency of the memory consumption on a real big application at the environment variable MALLOC_ARENA_MAX=1.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|20.06.2013}}&lt;br /&gt;
GROUNDS: At working with the board [[Special:MyLanguage/Using/Kontron_MOPSlcdLX|MOPSlcdLX]], attention was drawn to the heavy load of the task of forming full-size trends. As it turned out later, a large load is created by the formation of a PNG image in the GD2 library, or rather, the packing procedure of ZLib. The subject analysis of the performance of the formation of images of various formats on this board is summarized in the table below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Format !! Trend building, milliseconds !! Converting to the image format, milliseconds !! Size of the image, bytes&lt;br /&gt;
|-&lt;br /&gt;
| PNG (0) || 200 || 800 || 1700365 &lt;br /&gt;
|-&lt;br /&gt;
| PNG (1) || 200 || 690 || 24000 &lt;br /&gt;
|-&lt;br /&gt;
| PNG (-1) || 200 || 1000 || 14800 &lt;br /&gt;
|-&lt;br /&gt;
| PNG (9) || 200 || 1900 || 13354 &lt;br /&gt;
|-&lt;br /&gt;
| JPEG (-1) || 200 || 180 || 53157 &lt;br /&gt;
|-&lt;br /&gt;
| GIF || 200 || 380 || 14300 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
CONCLUSION: As can be seen from the table above, the operation of forming PNG as a whole is resource-intensive and the most optimal level of compression is &amp;quot;1&amp;quot;. At the same time, the formation of JPEG and GIF is much faster, but these image formats have a number of critical flaws, namely: JPEG does not have an alpha channel (transparency), and GIF is limited by the number of colors, which in both cases leads to loss of transparency and distortion of text smoothing and images in general.&lt;br /&gt;
&lt;br /&gt;
MEASURES: The ability to select the compression level for the generated PNG images is added, and the default value is set to the optimal level &amp;quot;1&amp;quot;. The implementation of the formation of the &amp;quot;Diagram&amp;quot; primitive on the browser side in the &amp;quot;svg&amp;quot; or &amp;quot;canvas&amp;quot; tags is planned.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
At this stage, the module can be used to construct real user interfaces with support for the main functions. However, some problems may arise due to the differences between browsers. At this time, provided enough quality performance on browsers: Chromium (Google Chrome), FireFox, Opera, Konqueror.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[:File:WebVision MemAllocFree.ods|Spreadsheet: Analysis of effectivity of the memory allocation.]]&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Modules/WebCfgD/uk&amp;diff=93977</id>
		<title>Modules/WebCfgD/uk</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Modules/WebCfgD/uk&amp;diff=93977"/>
				<updated>2026-05-10T04:52:44Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Модуль !! Ім'я !! Версія !! Ліцензія !! Джерело !! Мови !! Платформи !! Тип !! Автор&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Modules/WebCfgD|WebCfgD]] || Конфігуратор програми (Динамічний WEB)&lt;br /&gt;
| 3.1 || GPL2 || ui_WebCfgD.so || en,uk,ru,de || x86,x86_64,ARM&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| Користувацькі інтерфейси || Роман Савоченко&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; | Опис&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | Надає заснований на WEB динамічний конфігуратор OpenSCADA. Використано технології: XHTML, CSS та JavaScript.&lt;br /&gt;
* '''[[Special:MyLanguage/Works/To_do|Завдання (To Do)]]:'''&lt;br /&gt;
&amp;lt;section begin=ToDo /&amp;gt;&lt;br /&gt;
: - реалізувати неблокуючий доступ до зовнішніх станцій.&lt;br /&gt;
&amp;lt;section end=ToDo /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Цей модуль надає конфігуратор OpenSCADA. Конфігуратор реалізовано на основі таких Web-технологій:&lt;br /&gt;
* ''HTTP'' — протокол передачі гіпертексту;&lt;br /&gt;
* ''XHTML'' — розширена мова розмітки гіпертекстових документів;&lt;br /&gt;
* ''CSS'' — каскадні таблиці стилів гіпертекстових документів;&lt;br /&gt;
* ''JavaScript'' — мова програмування браузеру, вбудована у гіпертекстовий документ;&lt;br /&gt;
* ''DOM'' — об'єктна модель документу внутрішньої структури браузеру;&lt;br /&gt;
* ''AJAX'' — механізм асинхронних та синхронних запитів із JavaScript до серверу;&lt;br /&gt;
* ''XML'' — розширена мова розмітки.&lt;br /&gt;
&lt;br /&gt;
Інтерфейс конфігуратору формується у WEB-браузері шляхом звернення до WEB-серверу та отримання від нього XHTML-документу за протоколом HTTP. У цьому випадку, у ролі WEB-серверу виступає OpenSCADA, яка підтримує стандартні комунікаційні механізми TCP-мереж (модуль [[Special:MyLanguage/Modules/Sockets|Transport.Sockets]]), протокол передачі гіпертексту (модуль [[Special:MyLanguage/Modules/HTTP|Protocol.HTTP]]), а також шифрування трафіку між браузером та сервером ([[Special:MyLanguage/Modules/SSL|Transport.SSL]]). Виходячи з цього, для отримання доступу до інтерфейсу користувача, який надається цим модулем, потрібно у OpenSCADA налаштувати транспорт (Transport.Sockets або Transport.SSL) у поєднані з протоколом HTTP (Protocol.HTTP). Разом з OpenSCADA постачаються конфігураційні файли, які містять налаштування Transport.Sockets для порту 10002. Відповідно, інтерфейс модуля, по замовченню, буде доступний за URL: &amp;quot;&amp;lt;nowiki&amp;gt;http://localhost:10002&amp;lt;/nowiki&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Після отримання XHTML-документу браузером запускається програма на мові JavaScript, для формування динамічного інтерфейсу конфігуратору.&lt;br /&gt;
&lt;br /&gt;
У основі модуля лежить [[Special:MyLanguage/Documents/API|інтерфейс управління OpenSCADA]], що означає надання єдиного інтерфейсу конфігурації. Оновлення модуля може знадобитися тільки у випадку оновлення специфікації мови інтерфейсу управління. Для запиту контексту сторінки використовується груповий запит інтерфейсу управління, що дозволяє оптимізувати час віддаленого доступу за високо-латентними та повільними каналами зв'язку.&lt;br /&gt;
&lt;br /&gt;
Модуль реалізовувався та тестувався на чотирьох WEB-браузерах — представниках трьох типів WEB-рушіїв, а саме:&lt;br /&gt;
* Chromium 55&lt;br /&gt;
* Mozilla Firefox 3.0, 45.7&lt;br /&gt;
* Opera 9.6&lt;br /&gt;
* Konqueror 3.5, 4&lt;br /&gt;
&lt;br /&gt;
Використання модуля починається з відкриття сеансу користувача (автентифікації) модулем протоколу HTTP ([[Special:MyLanguage/Modules/HTTP|Protocol.HTTP]]). Для функціювання аутентифікації та механізму збереження сеансу, браузер повинен дозволяти Cookies.&lt;br /&gt;
&lt;br /&gt;
[[file:HTTP_auth_uk.png|center|frame|Рис.1. Аутентифікація користувача.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_workplacestruct_uk.png|center|frame|Рис.2. Робоче вікно конфігуратора.]]&lt;br /&gt;
&lt;br /&gt;
Розглянемо робоче вікно конфігуратору на рисунку 2.&lt;br /&gt;
&lt;br /&gt;
Робоче вікно конфігуратору складається із наступних частин:&lt;br /&gt;
:1 ''Панель інструментів'' — містить кнопки управління.&lt;br /&gt;
:2 ''Адреса відкритого вузла'' — відображає адресу обраного вузла.&lt;br /&gt;
:3 ''Навігатор'' — призначено для прямої навігації за деревом управління із підтримкою групового обрання утриманням клавіш Control або Shift, що використовується операціями видалення і встановлення.&lt;br /&gt;
:: [[file:at.png]] Зображення іконки [[Special:MyLanguage/Documents/Program_manual#Projects|проекту OpenSCADA]] спочатку отримується із файлу &amp;quot;'''{StationName}.[png|gif|jpg|jpeg]'''&amp;quot;, а потім, за відсутності першого, із файлу &amp;quot;'''{StationID}.[png|gif|jpg|jpeg]'''&amp;quot;, у [[Special:MyLanguage/Documents/Program_manual#Config|теці іконок]].&lt;br /&gt;
:4 ''Робоче поле'' — поділено на частини:&lt;br /&gt;
поділено на частини:&lt;br /&gt;
::4.1 ''Ім'я вузла'' — містить ім'я поточного вузла.&lt;br /&gt;
::4.2 ''Табулятор робочих областей'' — до табулятору розташовуються кореневі сторінки (області управління) вузла. Області управління наступних рівнів розташовуються у основному просторі контролю.&lt;br /&gt;
:5 ''Рядок статусу'' — відображає стан конфігуратора.&lt;br /&gt;
&lt;br /&gt;
Панель інструментів містить наступні кнопки управління (зліва на право):&lt;br /&gt;
* ''Завантажити'' — завантаження обраного об'єкту або гілки об'єктів зі сховища.&lt;br /&gt;
* ''Примусово завантажити'' — примусове завантаження (навіть без ознаки модифікації) обраного об'єкту або гілки об'єктів зі сховища.&lt;br /&gt;
* ''Зберегти'' — збереження обраного об'єкту або гілки об'єктів до сховища.&lt;br /&gt;
* ''Примусово зберегти'' — примусове збереження (навіть без ознаки модифікації) обраного об'єкту або гілки об'єктів до сховища.&lt;br /&gt;
* ''Нагору'' — підняття нагору по дереву.&lt;br /&gt;
* ''Попередня'' — відкриття попередньої сторінки, що відкривалася.&lt;br /&gt;
* ''Наступна'' — відкриття наступної сторінки, що відкривалася.&lt;br /&gt;
* ''Додати'' — додання нового об'єкту до контейнеру.&lt;br /&gt;
* ''Видалити'' — видалення обраного об'єкту.&lt;br /&gt;
* ''Копіювати елемент'' — копіювання обраного об'єкту.&lt;br /&gt;
* ''Вирізати елемент'' — вирізання обраного об'єкту. Початковий об'єкт видаляється після вставки.&lt;br /&gt;
* ''Вставити елемент'' — вставка скопійованого або вирізаного елементу.&lt;br /&gt;
* ''Оновити'' — оновлення вмісту поточної сторінки.&lt;br /&gt;
* ''Запустити'' — запуск періодичного оновлення вмісту поточної сторінки з інтервалом одна секунда.&lt;br /&gt;
* ''Зупинити'' — зупинка періодичного оновлення вмісту поточної сторінки з інтервалом одна секунда.&lt;br /&gt;
* ''Підручник на сторінку'' — виклик підручника обраної сторінки.&lt;br /&gt;
* ''Про...'' — інформація про цей модуль.&lt;br /&gt;
&lt;br /&gt;
Елементи управління поділяються на: базові, команди, переліки, таблиці та зображення. Всі елементи відображаються у послідовності, яка суворо відповідає їх розташуванню у описі мови інтерфейсу управління.&lt;br /&gt;
&lt;br /&gt;
== Конфігурація ==&lt;br /&gt;
Для налаштування власної поведінки у окремих випадках, модулем надається можливість налаштування параметрів за посередництвом інтерфейсу управління OpenSCADA (рис.3). Такими параметрами є:&lt;br /&gt;
* Перехід на сторінку конфігурації переліку зовнішніх OpenSCADA станцій, що використовується для надання можливості віддаленої конфігурації.&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_webdcfg_uk.png|center|frame|Рис.3. Сторінка конфігурації самого конфігуратора.]]&lt;br /&gt;
&lt;br /&gt;
== Базові елементи ==&lt;br /&gt;
До числа базових елементів входять: інформаційні елементи, поля вводу значень, елементи обрання з переліку, прапорці-ознаки, текстові поля. У випадку відсутності ім'я елементу, базовий елемент приєднується до попереднього базового елементу. Приклад групи базових елементів з приєднанням наведено на рисунку 4.&lt;br /&gt;
&lt;br /&gt;
Для елементів вводу, які не передбачають миттєвих змін та можуть тривалий час редагуватися перед остаточним завершенням, передбачено механізм підтвердження. Цей механізм дозволяє виключити затримки при редагуванні, особливо у випадках конфігурації віддалених станцій, та вносити зміни за підтвердженням. До елементів вводу з підтвердженням відносяться: поля вводу рядків тексту або чисельних значень та текстові поля. Підтвердження здійснюється натиском кнопки, яка з'являється поряд з полем вводу після початку редагування.&lt;br /&gt;
&lt;br /&gt;
Текстові поля підтримують підсвічення синтаксису, правила чого передаються у вигляді регулярних виразів з інтерфейсу управління або можуть бути вбудовані до значення тексту як коментар у [[Special:MyLanguage/Documents/API#SnthHgl|XML-тегу &amp;quot;SnthHgl&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_genelem_uk.png|center|frame|Рис.4. Приєднання базових елементів.]]&lt;br /&gt;
&lt;br /&gt;
== Команди ==&lt;br /&gt;
Команди — це елементи передачі визначених вказівок дії вузлу та організації посилань-переходів на інші сторінки. Команди можуть містити параметри. Параметри формуються з базових елементів. Приклад команди з параметрами приведено на рисунку 5.&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_commandelem_uk.png|center|frame|Рис.5. Команда.]]&lt;br /&gt;
&lt;br /&gt;
== Списки ==&lt;br /&gt;
Переліки містять групу базових елементів одного типу. Операції над елементами доступні через контекстне меню переліку, за кліком мишею на переліку. Через елементи переліку можуть виконуватися операції переходу на інші сторінки, зазвичай дочірні. Переліки можуть бути індексованими. Приклад переліку наведено на рисунку 6.&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_listelem_uk.png|center|frame|Рис.6. Список.]]&lt;br /&gt;
&lt;br /&gt;
== Таблиці ==&lt;br /&gt;
Таблиці містять значення базових елементів. Тип базового елементу є індивідуальним для кожного стовпчика. Приклад таблиці наведено на рисунку 7. Операції над структурою таблиці, для редагованих таблиць, доступні за посередництвом контекстного меню, за кліком на службовому стовпчику із номерами рядків. Редагування елементів таблиці здійснюється шляхом подвійного кліку по потрібній клітинці.&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_tableelem_uk.png|center|frame|Рис.7. Таблиця.]]&lt;br /&gt;
&lt;br /&gt;
== Зображення ==&lt;br /&gt;
Зображення закликано передавати графічну інформацію до конфігураторів. Приклад зображення наведено на рисунку 8.&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_imgelem_uk.png|center|frame|Рис.8. Зображення.]]&lt;br /&gt;
&lt;br /&gt;
== Дизайн ==&lt;br /&gt;
Модуль підтримує зміну дизайну шляхом розташування у робочій/поточній теці двох файлів WebCfgDVCA.html та WebCfgDVCA.js, де перший — це XHTML-шаблон сторінки конфігуратору, а другий — це JavaScript програма XHTML-шаблону.&lt;br /&gt;
&lt;br /&gt;
На цей час наявні наступні дизайни:&lt;br /&gt;
* Новий стандартний дизайн (по замовченню): [[:file:WebCfgDVCA_std.html.gz|WebCfgDVCA.html]], [[:file:WebCfgDVCA_std.js.gz|WebCfgDVCA.js]]&lt;br /&gt;
* Старий стандартний дизайн (по замовченню): [[:file:WebCfgDVCA_std201701.html.gz|WebCfgDVCA.html]], [[:file:WebCfgDVCA_std201701.js.gz|WebCfgDVCA.js]]&lt;br /&gt;
&lt;br /&gt;
== Помилки ==&lt;br /&gt;
Представлення конфігуратору може дещо відрізнятися на різних типах браузерів. Це пов'язано з тим, що у основі цього модуля лежить багато достатньо складних технологій, а також відмінностей їх реалізації на різних типах WEB-рушіїв.&lt;br /&gt;
&lt;br /&gt;
Окрім того, кожний Web-браузер містить власні помилки. Частину помилок було обійдено у процесі реалізації, однак частина залишилася через значні складності у їх обході або-ж фактичної неможливості це виконати.&lt;br /&gt;
&lt;br /&gt;
У цьому розділі міститься таблиця переліку виявлених помилок WEB-браузерів, які проявляються у конфігураторі.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Помилка !! Опис !! Виправлення&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | ''Mozilla FireFox 3.0.4'' (stable, few errors) &lt;br /&gt;
|-&lt;br /&gt;
| Offset of the popup window of the editable combobox at 5 pixels to the up and to the left. ||&lt;br /&gt;
The problem lies in the fact that the calculation of the absolute position of the element of the document doesn't grab exactly 5 pixels. Error of 5 pixels is visible in relation to the coordinates of the mouse pointer and the position of the newly-created entirely-positioned window. The algorithm for computing the position:&amp;lt;br/&amp;gt;&lt;br /&gt;
''for( ; obj != null; obj = obj.offsetParent ) posX += obj.offsetLeft;''&lt;br /&gt;
| To correction of this error to the estimated value on this browser the 5 pixels are added. &lt;br /&gt;
|-&lt;br /&gt;
| In the element of the list (&amp;lt;select size=&amp;quot;10&amp;quot;/&amp;gt;) the vertical scroll is always shows and never turned on the horizontal one. || This element is actively used for building the context menu and drop-down list of the editable combo-box. || &amp;lt;span style=&amp;quot;color: blue&amp;quot;&amp;gt;For workaround the browser error I must include the list in the block with scroll of the block itself.&amp;lt;/span&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| The image field is not updating. || In order to eliminate the need for restructuring of the configurable page while updating the values of fields in the tree of the structure objects of the pages which was get from the XMLHttpRequest, the properties are created with the links to the object of the tags of the fields (addr_lab, addr_val_w). In objects with the name of the tag &amp;quot;img&amp;quot;, these properties are not created by the browser. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | ''Opera'' (stable, few errors) &lt;br /&gt;
|-&lt;br /&gt;
| Scroll of the unit of the page does not turn on. For example when displaying large images of the trend. || The block is fixed with the parameters{ overflow: auto; width: 600px; } however, in the case of the exceeding the size of the interior elements the scroll is not turned on. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt;  &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | ''Konqueror'' (very unstable on the dynamic resources and contains many errors) &lt;br /&gt;
|-&lt;br /&gt;
| Stable browser crashing. || Browser repeatedly and consistently crashes while the computation of JavaScript and when dealing with the external windows. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| The scroll of the navigation tree doesn't returned. || If you drag the navigation tree to the vertical scroll, then scroll it down, then roll the large branch, the vertical scroll disappears, and some of the tree remains invisible behind the top of the block. That. the contents of the block are not updated. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| The images do not update. || In the fields of images, to update the image from the server, the property &amp;quot;src&amp;quot; is to be changed. The browser does not sense it, or even updates the size of the frame, and the image is not updated. Methods to prevent caching of the images are used, but do not help. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| Capturing button images || JavaScript of the module uses non-asynchronous but synchronous requests to the server to save the sequence of actions. At moments of such a request, if it was triggered by an event from an image (the image is a button), the image is captured as if it were for transfer, even for short-term mouse clicks. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| Impossible to insert a new element to the tree of objects obtained as a result of XMLHttpRequest || To control the modification of the configuration page structure, the current structure tree was mapped to the newly received XMLHttpRequest. When inserting a new element into the structure tree using insertBefore(), a &amp;quot;DOM error 4&amp;quot; error occurs. If the insertion takes place in a tree created from scratch (and not from XMLHttpRequest), this error does not occur. The problem seems to be the difference between the &amp;quot;document&amp;quot; object of the owner of these trees. In such a tree it is not possible to add a node created as document.createElement(). Only the ones created as mytree.ownerDocument.createElement() are inserted. || The procedure for verifying the structure has been simplified and reduced to the definition of the fact of the change.&lt;br /&gt;
|-&lt;br /&gt;
| The mechanisms of the context menu formation in the Konqueror 4 doesn't work. || Typically, to create a context menu, the oncontextmenu handler, on Firefox and IE, or onmousedown with the right key processing, on the other browsers, are used. In Konqueror, oncontextmenu does not work at all, and onmousedown works only in Konqueror 3.5. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt; &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Modules/WebCfgD/ru&amp;diff=93975</id>
		<title>Modules/WebCfgD/ru</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Modules/WebCfgD/ru&amp;diff=93975"/>
				<updated>2026-05-10T04:52:37Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Модуль !! Имя !! Версия !! Лицензия !! Источник !! Языки !! Платформы !! Тип !! Автор&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Modules/WebCfgD|WebCfgD]] || Конфигуратор программы (Динамический WEB)&lt;br /&gt;
| 3.1 || GPL2 || ui_WebCfgD.so || en,uk,ru,de || x86,x86_64,ARM&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| UI || {{Author|Roman Savochenko|Maxim Lysenko (2009) — the page initial translation}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | Provides the WEB-based configurator of OpenSCADA. The technologies are used: XHTML, CSS and JavaScript.&lt;br /&gt;
* '''[[Special:MyLanguage/Works/To_do|To Do]]:'''&lt;br /&gt;
&amp;lt;section begin=ToDo /&amp;gt;&lt;br /&gt;
: - implement non locking access to the external stations.&lt;br /&gt;
&amp;lt;section end=ToDo /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Этот модуль предоставляет конфигуратор OpenSCADA. Конфигуратор реализован на основе таких Web-технологий:&lt;br /&gt;
* ''HTTP'' — протокол передачи гипертекста;&lt;br /&gt;
* ''XHTML'' — расширенный язык разметки гипертекстовых документов;&lt;br /&gt;
* ''CSS'' — каскадные таблицы стилей гипертекстовых документов;&lt;br /&gt;
* ''JavaScript'' — язык программирования браузера, встроенный в гипертекстовый документ;&lt;br /&gt;
* ''DOM'' — объектная модель документа внутренней структуры браузера;&lt;br /&gt;
* ''AJAX'' — механизм асинхронных и синхронных запросов из JavaScript к серверу;&lt;br /&gt;
* ''XML'' — расширяемый язык разметки.&lt;br /&gt;
&lt;br /&gt;
Интерфейс конфигуратора формируется в WEB-браузере путём обращения к WEB-серверу и получения от него XHTML-документа по протоколу HTTP. В данном случае, в роли WEB-сервера выступает OpenSCADA, которая поддерживает стандартные коммуникационные механизмы TCP-сетей (модуль [[Special:MyLanguage/Modules/Sockets|Transport.Sockets]]), протокол передачи гипертекста (модуль [[Special:MyLanguage/Modules/HTTP|Protocol.HTTP]]), а также шифрование трафика между браузером и сервером ([[Special:MyLanguage/Modules/SSL|Transport.SSL]]). Исходя из этого, для получения доступа к интерфейсу пользователя, предоставляемого этим модулем, необходимо в OpenSCADA настроить транспорт (Transport.Sockets или Transport.SSL) в связке с протоколом HTTP (Protocol.HTTP). Вместе с OpenSCADA идут конфигурационные файлы, содержащие настройки Transport.Sockets для порта 10002. Следовательно, интерфейс модуля, по умолчанию, будет доступен по URL: &amp;quot;&amp;lt;nowiki&amp;gt;http://localhost:10002&amp;lt;/nowiki&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
После получения XHTML-документа браузером запускается программа на языке JavaScript, для формирования динамического интерфейса конфигуратора.&lt;br /&gt;
&lt;br /&gt;
В основе модуля лежит [[Special:MyLanguage/Documents/API|интерфейс управления OpenSCADA]], а значит предоставляется единый интерфейс конфигурации. Обновление модуля может потребоваться только в случае обновления спецификации языка интерфейса управления. Для запроса контекста страницы используется групповой запрос интерфейса управления, что позволяет оптимизировать время удалённого доступа по высоколатентным и медленным каналам связи.&lt;br /&gt;
&lt;br /&gt;
Модуль реализовался и тестировался на четырёх WEB-браузерах — представителях трёх типов WEB-движков, а именно:&lt;br /&gt;
* Chromium 55&lt;br /&gt;
* Mozilla Firefox 3.0, 45.7&lt;br /&gt;
* Opera 9.6&lt;br /&gt;
* Konqueror 3.5, 4&lt;br /&gt;
&lt;br /&gt;
Использование модуля начинается с открытия сеанса пользователя (аутентификации) модулем протокола HTTP ([[Special:MyLanguage/Modules/HTTP|Protocol.HTTP]]). Для функционирования аутентификации и механизма сохранения сеанса, браузер должен разрешать Cookies.&lt;br /&gt;
&lt;br /&gt;
[[file:HTTP_auth_ru.png|center|frame|Рис.1. Аутентификация пользователя.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_workplacestruct_ru.png|center|frame|Рис.2. Рабочее окно конфигуратора.]]&lt;br /&gt;
&lt;br /&gt;
Рассмотрим рабочее окно конфигуратора на рисунке 2.&lt;br /&gt;
&lt;br /&gt;
The operating window of the configurator consists of the following parts:&lt;br /&gt;
:1 ''Toolbar'' — contains the control buttons.&lt;br /&gt;
:2 ''Address of the opened node'' — displays the selected node address.&lt;br /&gt;
:3 ''Navigator'' — designed for direct navigation by the control tree and with support the group selection by holding Control or Shift keys, that is used by deletion and setting operations.&lt;br /&gt;
:: [[file:at.png]] Icon's image of [[Special:MyLanguage/Documents/Program_manual#Projects|the OpenSCADA project]] is taken firstly from the file &amp;quot;'''{StationName}.[png|gif|jpg|jpeg]'''&amp;quot; and next, at the first one missing, from the file &amp;quot;'''{StationID}.[png|gif|jpg|jpeg]'''&amp;quot;, in [[Special:MyLanguage/Documents/Program_manual#Config|the icons folder]].&lt;br /&gt;
:4 ''Workplace field'' — divided to parts:&lt;br /&gt;
::4.1 ''Node name'' — contains the current node name.&lt;br /&gt;
::4.2 ''Tabulator of the working areas'' — the root pages (control areas) of the node are placed into the tabulator. The control areas of the following levels are placed on the main control place.&lt;br /&gt;
:4 ''Status line'' — indicating the configurator status.&lt;br /&gt;
&lt;br /&gt;
The toolbar contains the following control buttons (from left to right):&lt;br /&gt;
* ''Load'' — loads the selected object or branch of the object from the storage.&lt;br /&gt;
* ''Load forcibly'' — loads the selected object or branch of the object from the storage forcibly (even without the modification sign).&lt;br /&gt;
* ''Save'' — saves the selected object or branch of the object to the storage.&lt;br /&gt;
* ''Save forcibly'' — saves the selected object or branch of the object to the storage forcibly (even without the modification sign).&lt;br /&gt;
* ''Up'' — goes to the parent page.&lt;br /&gt;
* ''Back'' — goes back to the previous page.&lt;br /&gt;
* ''Forward'' — goes forward to the forward page.&lt;br /&gt;
* ''Add'' — adds a new object to the container.&lt;br /&gt;
* ''Delete'' — deletes the selected object.&lt;br /&gt;
* ''Copy item'' — copies the selected object.&lt;br /&gt;
* ''Cut item'' — cuts of the selected object. The original object is removed after paste.&lt;br /&gt;
* ''Paste item'' — pastes of the copied or cut item.&lt;br /&gt;
* ''Refresh'' — refreshes the current page.&lt;br /&gt;
* ''Start'' — runs periodically update of the current page content with an interval of one second.&lt;br /&gt;
* ''Stop'' — stops periodically update of the current page content with an interval of one second.&lt;br /&gt;
* ''Manual on the page'' — calls the selected page manual.&lt;br /&gt;
* ''About'' — information about the module.&lt;br /&gt;
&lt;br /&gt;
Элементы управления делятся на: базовые, команды, списки, таблицы и изображения. Все элементы отображаются в последовательности, строго соответствующей их расположению в описании языка интерфейса управления.&lt;br /&gt;
&lt;br /&gt;
== Конфигурация ==&lt;br /&gt;
Для настройки собственного поведения в отдельных случаях, модулем предоставляется возможность настройки отдельных параметров посредством интерфейса управления OpenSCADA (рис.3). Таковыми параметрами являются:&lt;br /&gt;
* Переход на страницу конфигурации перечня внешних OpenSCADA станций, что используется для предоставления возможности удалённой конфигурации.&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_webdcfg_ru.png|center|frame|Рис.3. Страница конфигурации самого конфигуратора.]]&lt;br /&gt;
&lt;br /&gt;
== Базовые элементы ==&lt;br /&gt;
В число базовых элементов входят: информационные элементы, поля ввода значений, элементы выбора из списка, флаги, текстовые поля. В случае отсутствия имени элемента, базовый элемент присоединяется к предыдущему базовому элементу. Пример группы базовых элементов с присоединением приведён на рисунке 4.&lt;br /&gt;
&lt;br /&gt;
Для элементов ввода, которые не подразумевают мгновенного изменения и могут продолжительное время редактироваться перед окончательным завершением, предусмотрен механизм подтверждения. Этот механизм позволяет исключить задержки при редактировании, особенно в случае конфигурации удалённых станций, и вносить изменения по подтверждению. К элементам ввода с подтверждением относятся: поля ввода строк текста или числовых значений и текстовые поля. Подтверждение осуществляется нажатием кнопки, которая появляется рядом с полем ввода после начала редактирования.&lt;br /&gt;
&lt;br /&gt;
Text fields support the syntax highlighting, the rules are transmitted in the form of regular expressions from the control interface or can be builtin to the text value as a commentary in [[Special:MyLanguage/Documents/API#SnthHgl|the XML-tag &amp;quot;SnthHgl&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_genelem_ru.png|center|frame|Рис.4. Присоединение базовых элементов.]]&lt;br /&gt;
&lt;br /&gt;
== Команды ==&lt;br /&gt;
Команды — это элементы передачи определённых указаний действия узлу и организации ссылок-переходов на другие страницы. Команды могут содержать параметры. Параметры формируются из базовых элементов. Пример команды с параметрами приведен на рисунке 5.&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_commandelem_ru.png|center|frame|Рис.5. Команда.]]&lt;br /&gt;
&lt;br /&gt;
== Списки ==&lt;br /&gt;
Списки содержат группу базовых элементов одного типа. Операции над элементами доступны через контекстное меню списка, по клику мышью на списке. Через элементы списка могут выполняться операции перехода на другие страницы, обычно дочерние. Списки могут быть индексированными. Пример списка приведен на рисунке 6.&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_listelem_ru.png|center|frame|Рис.6. Список.]]&lt;br /&gt;
&lt;br /&gt;
== Таблицы ==&lt;br /&gt;
Таблицы содержат значения базовых элементов. Тип базового элемента является индивидуальным для каждой колонки. Пример таблицы приведен на рисунке 7. Операции над структурой таблицы, для редактируемых таблиц, доступны посредством контекстного меню, по клику на служебной колонке с номерами строк. Редактирование элементов таблицы производится путём двойного клика по нужной ячейке.&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_tableelem_ru.png|center|frame|Рис.7. Таблица.]]&lt;br /&gt;
&lt;br /&gt;
== Изображения ==&lt;br /&gt;
Изображения призваны передавать графическую информацию в конфигураторы. Пример изображения приведен на рисунке 8.&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_imgelem_ru.png|center|frame|Рис.8. Изображение.]]&lt;br /&gt;
&lt;br /&gt;
== Дизайн ==&lt;br /&gt;
Модуль поддерживает смену дизайна путём размещения в рабочей/текущей папке двух файлов WebCfgDVCA.html и WebCfgDVCA.js, где первый — это XHTML-шаблон страницы конфигуратора, а второй — это JavaScript программа XHTML-шаблону.&lt;br /&gt;
&lt;br /&gt;
На данное время доступны следующие дизайны:&lt;br /&gt;
* Новый стандартный дизайн (по умолчанию): [[:file:WebCfgDVCA_std.html.gz|WebCfgDVCA.html]], [[:file:WebCfgDVCA_std.js.gz|WebCfgDVCA.js]]&lt;br /&gt;
* Старый стандартный дизайн (по умолчанию): [[:file:WebCfgDVCA_std201701.html.gz|WebCfgDVCA.html]], [[:file:WebCfgDVCA_std201701.js.gz|WebCfgDVCA.js]]&lt;br /&gt;
&lt;br /&gt;
== Ошибки ==&lt;br /&gt;
Представление конфигуратора может несколько отличаться на разных типах браузеров. Это связано с тем, что в основе данного модуля лежит много достаточно сложных технологий, а также отличий их реализации на разных типах WEB-движков.&lt;br /&gt;
&lt;br /&gt;
Кроме того, каждый Web-браузер содержит собственные ошибки. Часть ошибок была обойдена в процессе реализации, однако часть осталась в виду значительных трудностей в их обходе или-же фактической невозможности это сделать.&lt;br /&gt;
&lt;br /&gt;
В данном разделе содержится таблица перечня обнаруженных ошибок WEB-браузеров, которые проявляются в конфигураторе.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ошибка !! Описание !! Исправление&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | ''Mozilla FireFox 3.0.4'' (stable, few errors) &lt;br /&gt;
|-&lt;br /&gt;
| Offset of the popup window of the editable combobox at 5 pixels to the up and to the left. ||&lt;br /&gt;
The problem lies in the fact that the calculation of the absolute position of the element of the document doesn't grab exactly 5 pixels. Error of 5 pixels is visible in relation to the coordinates of the mouse pointer and the position of the newly-created entirely-positioned window. The algorithm for computing the position:&amp;lt;br/&amp;gt;&lt;br /&gt;
''for( ; obj != null; obj = obj.offsetParent ) posX += obj.offsetLeft;''&lt;br /&gt;
| To correction of this error to the estimated value on this browser the 5 pixels are added. &lt;br /&gt;
|-&lt;br /&gt;
| In the element of the list (&amp;lt;select size=&amp;quot;10&amp;quot;/&amp;gt;) the vertical scroll is always shows and never turned on the horizontal one. || This element is actively used for building the context menu and drop-down list of the editable combo-box. || &amp;lt;span style=&amp;quot;color: blue&amp;quot;&amp;gt;For workaround the browser error I must include the list in the block with scroll of the block itself.&amp;lt;/span&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| The image field is not updating. || In order to eliminate the need for restructuring of the configurable page while updating the values of fields in the tree of the structure objects of the pages which was get from the XMLHttpRequest, the properties are created with the links to the object of the tags of the fields (addr_lab, addr_val_w). In objects with the name of the tag &amp;quot;img&amp;quot;, these properties are not created by the browser. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | ''Opera'' (stable, few errors) &lt;br /&gt;
|-&lt;br /&gt;
| Scroll of the unit of the page does not turn on. For example when displaying large images of the trend. || The block is fixed with the parameters{ overflow: auto; width: 600px; } however, in the case of the exceeding the size of the interior elements the scroll is not turned on. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt;  &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | ''Konqueror'' (very unstable on the dynamic resources and contains many errors) &lt;br /&gt;
|-&lt;br /&gt;
| Stable browser crashing. || Browser repeatedly and consistently crashes while the computation of JavaScript and when dealing with the external windows. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| The scroll of the navigation tree doesn't returned. || If you drag the navigation tree to the vertical scroll, then scroll it down, then roll the large branch, the vertical scroll disappears, and some of the tree remains invisible behind the top of the block. That. the contents of the block are not updated. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| The images do not update. || In the fields of images, to update the image from the server, the property &amp;quot;src&amp;quot; is to be changed. The browser does not sense it, or even updates the size of the frame, and the image is not updated. Methods to prevent caching of the images are used, but do not help. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| Capturing button images || JavaScript of the module uses non-asynchronous but synchronous requests to the server to save the sequence of actions. At moments of such a request, if it was triggered by an event from an image (the image is a button), the image is captured as if it were for transfer, even for short-term mouse clicks. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| Impossible to insert a new element to the tree of objects obtained as a result of XMLHttpRequest || To control the modification of the configuration page structure, the current structure tree was mapped to the newly received XMLHttpRequest. When inserting a new element into the structure tree using insertBefore(), a &amp;quot;DOM error 4&amp;quot; error occurs. If the insertion takes place in a tree created from scratch (and not from XMLHttpRequest), this error does not occur. The problem seems to be the difference between the &amp;quot;document&amp;quot; object of the owner of these trees. In such a tree it is not possible to add a node created as document.createElement(). Only the ones created as mytree.ownerDocument.createElement() are inserted. || The procedure for verifying the structure has been simplified and reduced to the definition of the fact of the change.&lt;br /&gt;
|-&lt;br /&gt;
| The mechanisms of the context menu formation in the Konqueror 4 doesn't work. || Typically, to create a context menu, the oncontextmenu handler, on Firefox and IE, or onmousedown with the right key processing, on the other browsers, are used. In Konqueror, oncontextmenu does not work at all, and onmousedown works only in Konqueror 3.5. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt; &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Modules/WebCfgD/en&amp;diff=93976</id>
		<title>Modules/WebCfgD/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Modules/WebCfgD/en&amp;diff=93976"/>
				<updated>2026-05-10T04:52:37Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module !! Name !! Version !! License !! Source !! Languages !! Platforms !! Type !! Author&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Modules/WebCfgD|WebCfgD]] || Program configurator (Dynamic WEB)&lt;br /&gt;
| 3.1 || GPL2 || ui_WebCfgD.so || en,uk,ru,de || x86,x86_64,ARM&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| UI || {{Author|Roman Savochenko|Maxim Lysenko (2009) — the page initial translation}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | Provides the WEB-based configurator of OpenSCADA. The technologies are used: XHTML, CSS and JavaScript.&lt;br /&gt;
* '''[[Special:MyLanguage/Works/To_do|To Do]]:'''&lt;br /&gt;
&amp;lt;section begin=ToDo /&amp;gt;&lt;br /&gt;
: - implement non locking access to the external stations.&lt;br /&gt;
&amp;lt;section end=ToDo /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This module provides the configurator of OpenSCADA. The configurator is implemented on the basis of Web-technologies:&lt;br /&gt;
* ''HTTP'' — hypertext transfer protocol;&lt;br /&gt;
* ''XHTML'' — extended language of markup of the hypertext documents;&lt;br /&gt;
* ''CSS'' — cascading style sheets of hypertext documents;&lt;br /&gt;
* ''JavaScript'' — the browser programming language built-in into the hypertext document;&lt;br /&gt;
* ''DOM'' — document object model of the internal structure of the browser;&lt;br /&gt;
* ''AJAX'' — arrangement of asynchronous and synchronous requests from the JavaScript to the server;&lt;br /&gt;
* ''XML'' — eXtensible Markup Language.&lt;br /&gt;
&lt;br /&gt;
The configurator interface forms in WEB-browser, by reference to the WEB-server and receiving from it XHTML-document over HTTP. In this case, the WEB-server — OpenSCADA, which supports standard communication mechanisms of the TCP-networks (module [[Special:MyLanguage/Modules/Sockets|Transport.Sockets]]), hypertext transfer protocol (module [[Special:MyLanguage/Modules/HTTP|Protocol.HTTP]]), as well as encryption of the traffic between the browser and the server ([[Special:MyLanguage/Modules/SSL|Transport.SSL]]). Therefore, in order to access the user interface provided by this module, OpenSCADA must configure transport (Transport.Sockets or Transport.SSL) in conjunction with the HTTP protocol (Protocol.HTTP). OpenSCADA comes with configuration files that contain the Transport.Sockets configuration for port 10002. Consequently, the module interface, in the default, will be available at URL: &amp;quot;&amp;lt;nowiki&amp;gt;http://localhost:10002&amp;lt;/nowiki&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
After receiving the XHTML document, the browser launches the program in the JavaScript language, to create the configurator dynamic interface.&lt;br /&gt;
&lt;br /&gt;
The module is based on [[Special:MyLanguage/Documents/API|the control interface of OpenSCADA]], which means providing a single configuration interface. Update of the module may be required only in the case of updating the specification of the control interface language. To query the page context, group query of the control interface is used, which allows you to optimize the time of remote access on high-latency and slow communication channels.&lt;br /&gt;
&lt;br /&gt;
The module was implemented and tested on four WEB-browsers — representatives of the three types of WEB-engines, as follows:&lt;br /&gt;
* Chromium 55&lt;br /&gt;
* Mozilla Firefox 3.0, 45.7&lt;br /&gt;
* Opera 9.6&lt;br /&gt;
* Konqueror 3.5, 4&lt;br /&gt;
&lt;br /&gt;
Using the module starts with the opening of the session (the user authentication) by the module of the protocol HTTP ([[Special:MyLanguage/Modules/HTTP|Protocol.HTTP]]). For the operation of the authentication and the mechanism of saving of the session, the browser must allow Cookies.&lt;br /&gt;
&lt;br /&gt;
[[file:HTTP_auth.png|center|frame|Fig.1. User authentication.]]&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_workplacestruct.png|center|frame|Fig.2. Working window of the configurator.]]&lt;br /&gt;
&lt;br /&gt;
Let's examine the working window of the configurator in Figure 2.&lt;br /&gt;
&lt;br /&gt;
The operating window of the configurator consists of the following parts:&lt;br /&gt;
:1 ''Toolbar'' — contains the control buttons.&lt;br /&gt;
:2 ''Address of the opened node'' — displays the selected node address.&lt;br /&gt;
:3 ''Navigator'' — designed for direct navigation by the control tree and with support the group selection by holding Control or Shift keys, that is used by deletion and setting operations.&lt;br /&gt;
:: [[file:at.png]] Icon's image of [[Special:MyLanguage/Documents/Program_manual#Projects|the OpenSCADA project]] is taken firstly from the file &amp;quot;'''{StationName}.[png|gif|jpg|jpeg]'''&amp;quot; and next, at the first one missing, from the file &amp;quot;'''{StationID}.[png|gif|jpg|jpeg]'''&amp;quot;, in [[Special:MyLanguage/Documents/Program_manual#Config|the icons folder]].&lt;br /&gt;
:4 ''Workplace field'' — divided to parts:&lt;br /&gt;
::4.1 ''Node name'' — contains the current node name.&lt;br /&gt;
::4.2 ''Tabulator of the working areas'' — the root pages (control areas) of the node are placed into the tabulator. The control areas of the following levels are placed on the main control place.&lt;br /&gt;
:4 ''Status line'' — indicating the configurator status.&lt;br /&gt;
&lt;br /&gt;
The toolbar contains the following control buttons (from left to right):&lt;br /&gt;
* ''Load'' — loads the selected object or branch of the object from the storage.&lt;br /&gt;
* ''Load forcibly'' — loads the selected object or branch of the object from the storage forcibly (even without the modification sign).&lt;br /&gt;
* ''Save'' — saves the selected object or branch of the object to the storage.&lt;br /&gt;
* ''Save forcibly'' — saves the selected object or branch of the object to the storage forcibly (even without the modification sign).&lt;br /&gt;
* ''Up'' — goes to the parent page.&lt;br /&gt;
* ''Back'' — goes back to the previous page.&lt;br /&gt;
* ''Forward'' — goes forward to the forward page.&lt;br /&gt;
* ''Add'' — adds a new object to the container.&lt;br /&gt;
* ''Delete'' — deletes the selected object.&lt;br /&gt;
* ''Copy item'' — copies the selected object.&lt;br /&gt;
* ''Cut item'' — cuts of the selected object. The original object is removed after paste.&lt;br /&gt;
* ''Paste item'' — pastes of the copied or cut item.&lt;br /&gt;
* ''Refresh'' — refreshes the current page.&lt;br /&gt;
* ''Start'' — runs periodically update of the current page content with an interval of one second.&lt;br /&gt;
* ''Stop'' — stops periodically update of the current page content with an interval of one second.&lt;br /&gt;
* ''Manual on the page'' — calls the selected page manual.&lt;br /&gt;
* ''About'' — information about the module.&lt;br /&gt;
&lt;br /&gt;
The control elements are divided to: basic, commands, lists, tables and images. All items are displayed in the sequence strictly appropriate to their location in the description of the control interface language.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
In order to customize its own behavior in some cases, the module provides the ability to configure the parameters through the control interface of OpenSCADA (Fig.3). These parameters are:&lt;br /&gt;
* Go to the configuration of the list of remote stations of OpenSCADA, which is used to provide the remote configuration.&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_webdcfg.png|center|frame|Fig.3. Configuration page of the configurator.]]&lt;br /&gt;
&lt;br /&gt;
== Basic elements ==&lt;br /&gt;
Into the number of the basic elements are included: information elements, the field to input values, the elements of combo box, flags, text fields. In the case of absence of an element name, the basic element connects to the previous basic element. Examples of the basic elements with the connection is shown in Figure 4.&lt;br /&gt;
&lt;br /&gt;
For input elements that do not provide immediate changes and can be edited for a long time before final completion, a confirmation mechanism is provided. This mechanism eliminates the delay when editing, especially in the case of the remote stations configuration, and to make changes on the confirmation. The input elements with confirmation include: fields for entering text strings or numerical values and text fields. Confirmation is made by pressing the button that appears next to the input field after the start of editing.&lt;br /&gt;
&lt;br /&gt;
Text fields support the syntax highlighting, the rules are transmitted in the form of regular expressions from the control interface or can be builtin to the text value as a commentary in [[Special:MyLanguage/Documents/API#SnthHgl|the XML-tag &amp;quot;SnthHgl&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_genelem.png|center|frame|Fig.4. Connection of the basic elements.]]&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
The commands are the elements of transferring of certain instructions of an action to the node and for organization of links-transitions on other pages. Commands may contain parameters. The parameters are formed from the basic elements. Example of the commands with the parameters is shown in Figure 5.&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_commandelem.png|center|frame|Fig.5. The command.]]&lt;br /&gt;
&lt;br /&gt;
== Lists ==&lt;br /&gt;
The lists contain a group of basic elements of the same type. Operations under the elements are accessible via the context menu of the list, by the mouse click on the list. Through the elements of the list can be performed the moving operations to other pages, mostly children. Lists can be indexed. An example of the list is shown in Figure 6.&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_listelem.png|center|frame|Fig.6. The list.]]&lt;br /&gt;
&lt;br /&gt;
== Tables ==&lt;br /&gt;
The tables contain values of the basic elements. Type of the basic element is an individual for each column. Example of the table is given in Figure 7. Operations on the structure of the table for editable tables are accessible through the context menu, by the mouse clicking on the service button with the line number. Editing of the table is done by double-clicking on the desired cell.&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_tableelem.png|center|frame|Fig.7. The table.]]&lt;br /&gt;
&lt;br /&gt;
== Images ==&lt;br /&gt;
The images are designed to transmit graphic information into the configurators. Example of the image is shown in Figure 8.&lt;br /&gt;
&lt;br /&gt;
[[file:WebCfgD_imgelem.png|center|frame|Fig.8. The image.]]&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The Module supports the design changing, placing to the work/current directory the two files WebCfgDVCA.html and WebCfgDVCA.js, where the first one is the XHTML-template of the configurator page and the second one is the JavaScript program of the XHTML-template.&lt;br /&gt;
&lt;br /&gt;
Currently, the following designs are available:&lt;br /&gt;
* New standard (default) design: [[:file:WebCfgDVCA_std.html.gz|WebCfgDVCA.html]], [[:file:WebCfgDVCA_std.js.gz|WebCfgDVCA.js]]&lt;br /&gt;
* Old standard (default) design: [[:file:WebCfgDVCA_std201701.html.gz|WebCfgDVCA.html]], [[:file:WebCfgDVCA_std201701.js.gz|WebCfgDVCA.js]]&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
Representation of the configurator may differ somewhat in different types of browsers. This is due to the fact that in the basis of this module lies a lot of complicated technologies, as well as differences in their implementation on different types of WEB-drives.&lt;br /&gt;
&lt;br /&gt;
In addition, each Web-browser has its own problems. Some errors were made for workaround in the process of implementation, but part of them has stayed in sight of the significant difficulties in their workaround and also of actual impossibility to do so.&lt;br /&gt;
&lt;br /&gt;
This section contains a table of list of detected WEB browser errors that appear in the configurator.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error !! Description !! Correction&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | ''Mozilla FireFox 3.0.4'' (stable, few errors) &lt;br /&gt;
|-&lt;br /&gt;
| Offset of the popup window of the editable combobox at 5 pixels to the up and to the left. ||&lt;br /&gt;
The problem lies in the fact that the calculation of the absolute position of the element of the document doesn't grab exactly 5 pixels. Error of 5 pixels is visible in relation to the coordinates of the mouse pointer and the position of the newly-created entirely-positioned window. The algorithm for computing the position:&amp;lt;br/&amp;gt;&lt;br /&gt;
''for( ; obj != null; obj = obj.offsetParent ) posX += obj.offsetLeft;''&lt;br /&gt;
| To correction of this error to the estimated value on this browser the 5 pixels are added. &lt;br /&gt;
|-&lt;br /&gt;
| In the element of the list (&amp;lt;select size=&amp;quot;10&amp;quot;/&amp;gt;) the vertical scroll is always shows and never turned on the horizontal one. || This element is actively used for building the context menu and drop-down list of the editable combo-box. || &amp;lt;span style=&amp;quot;color: blue&amp;quot;&amp;gt;For workaround the browser error I must include the list in the block with scroll of the block itself.&amp;lt;/span&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| The image field is not updating. || In order to eliminate the need for restructuring of the configurable page while updating the values of fields in the tree of the structure objects of the pages which was get from the XMLHttpRequest, the properties are created with the links to the object of the tags of the fields (addr_lab, addr_val_w). In objects with the name of the tag &amp;quot;img&amp;quot;, these properties are not created by the browser. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | ''Opera'' (stable, few errors) &lt;br /&gt;
|-&lt;br /&gt;
| Scroll of the unit of the page does not turn on. For example when displaying large images of the trend. || The block is fixed with the parameters{ overflow: auto; width: 600px; } however, in the case of the exceeding the size of the interior elements the scroll is not turned on. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt;  &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | ''Konqueror'' (very unstable on the dynamic resources and contains many errors) &lt;br /&gt;
|-&lt;br /&gt;
| Stable browser crashing. || Browser repeatedly and consistently crashes while the computation of JavaScript and when dealing with the external windows. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| The scroll of the navigation tree doesn't returned. || If you drag the navigation tree to the vertical scroll, then scroll it down, then roll the large branch, the vertical scroll disappears, and some of the tree remains invisible behind the top of the block. That. the contents of the block are not updated. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| The images do not update. || In the fields of images, to update the image from the server, the property &amp;quot;src&amp;quot; is to be changed. The browser does not sense it, or even updates the size of the frame, and the image is not updated. Methods to prevent caching of the images are used, but do not help. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| Capturing button images || JavaScript of the module uses non-asynchronous but synchronous requests to the server to save the sequence of actions. At moments of such a request, if it was triggered by an event from an image (the image is a button), the image is captured as if it were for transfer, even for short-term mouse clicks. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| Impossible to insert a new element to the tree of objects obtained as a result of XMLHttpRequest || To control the modification of the configuration page structure, the current structure tree was mapped to the newly received XMLHttpRequest. When inserting a new element into the structure tree using insertBefore(), a &amp;quot;DOM error 4&amp;quot; error occurs. If the insertion takes place in a tree created from scratch (and not from XMLHttpRequest), this error does not occur. The problem seems to be the difference between the &amp;quot;document&amp;quot; object of the owner of these trees. In such a tree it is not possible to add a node created as document.createElement(). Only the ones created as mytree.ownerDocument.createElement() are inserted. || The procedure for verifying the structure has been simplified and reduced to the definition of the fact of the change.&lt;br /&gt;
|-&lt;br /&gt;
| The mechanisms of the context menu formation in the Konqueror 4 doesn't work. || Typically, to create a context menu, the oncontextmenu handler, on Firefox and IE, or onmousedown with the right key processing, on the other browsers, are used. In Konqueror, oncontextmenu does not work at all, and onmousedown works only in Konqueror 3.5. || &amp;lt;span style=&amp;quot;color: red&amp;quot;&amp;gt;not solved&amp;lt;/span&amp;gt; &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Modules/QTCfg/en&amp;diff=93972</id>
		<title>Modules/QTCfg/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Modules/QTCfg/en&amp;diff=93972"/>
				<updated>2026-05-10T04:51:53Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Module !! Name !! Version !! License !! Source !! Languages !! Platforms !! Type !! Author !! Description&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Modules/QTCfg|QTCfg]] || Program configurator (Qt)&lt;br /&gt;
| 6.2 || GPL2 || ui_QTCfg.so || en,uk,ru,de,pt || x86,x86_64,ARM&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| UI || {{Author|Roman Savochenko|Maxim Lysenko (2009) — the page initial translation}} || Provides the Qt-based configurator of OpenSCADA.&lt;br /&gt;
* '''[[Special:MyLanguage/Works/To_do|To Do]]:'''&lt;br /&gt;
&amp;lt;section begin=ToDo /&amp;gt;&lt;br /&gt;
&amp;lt;section end=ToDo /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The module provides the configurator of OpenSCADA, which based on the multi-platform library [http://qt.io Qt] of the graphical user interface (GUI) of initially created by the firm [http://www.trolltech.com TrollTech].&lt;br /&gt;
&lt;br /&gt;
The module is based on [[Special:MyLanguage/Documents/API|the control interface of OpenSCADA]], which means providing a single configuration interface. Update of the module may be required only in the case of updating the specification of the control interface language. To query the page context, group query of the control interface is used, which allows you to optimize the time of remote access on high-latency and slow communication channels.&lt;br /&gt;
&lt;br /&gt;
Let's examine the working window of the configurator in Figure 1.&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_workplacestruct.png|center|frame|Fig.1. Working window of the configurator]]&lt;br /&gt;
&lt;br /&gt;
The operating window of the configurator consists of the following parts:&lt;br /&gt;
:1 ''Menu'' — contains the drop-down menu of the configurator.&lt;br /&gt;
:2 ''Toolbar'' — contains quick control buttons.&lt;br /&gt;
:3 ''Navigator'' — designed for direct navigation by the control tree.&lt;br /&gt;
::: [[file:at.png]] Icon's image of [[Special:MyLanguage/Documents/Program_manual#Projects|the OpenSCADA project]] is taken firstly from the file &amp;quot;'''{StationName}.[png|gif|jpg|jpeg]'''&amp;quot; and next, at the first one missing, from the file &amp;quot;'''{StationID}.[png|gif|jpg|jpeg]'''&amp;quot;, in [[Special:MyLanguage/Documents/Program_manual#Config|the icons folder]].&lt;br /&gt;
::3.1 Text entry field to search for an item in the current tree branch.&lt;br /&gt;
:4 ''Status line'' — indicating the configurator status with a button calling the status history.&lt;br /&gt;
::4.1 ''Indicator/choice of the user'' — displays the current user, by double-clicking the user selection dialog opens. Contains also an indicator of changes in the configuration.&lt;br /&gt;
:5 ''Workplace field'' — divided to parts:&lt;br /&gt;
::5.1 ''Node name'' — contains the current node name.&lt;br /&gt;
::5.2 ''Tabulator of the working areas'' — the root pages (control areas) of the node are placed into the tabulator. The control areas of the following levels are placed on the main control place.&lt;br /&gt;
&lt;br /&gt;
Menu of the configurator contains the following items:&lt;br /&gt;
* ''File'' — group of the general commands:&lt;br /&gt;
** ''Load from DB'' — loads the selected object or branch of the object from the database.&lt;br /&gt;
** ''Load from DB forcibly'' — loads the selected object or branch of the object from the database forcibly, not only when it changed.&lt;br /&gt;
** ''Save to DB'' — saves the selected object or branch of the object to the database.&lt;br /&gt;
** ''Save to DB forcibly'' — saves the selected object or branch of the object to the database forcibly, not only when it changed.&lt;br /&gt;
** ''Close'' — closes the configurator window.&lt;br /&gt;
** ''Quit'' — quits OpenSCADA.&lt;br /&gt;
* ''Edit'' — editing commands:&lt;br /&gt;
** ''Add'' — adds a new object to the container.&lt;br /&gt;
** ''Delete'' — deletes the selected object.&lt;br /&gt;
** ''Copy item'' — copies the selected object.&lt;br /&gt;
** ''Cut item'' — cuts of the selected object. The original object is removed after paste.&lt;br /&gt;
** ''Paste item'' — pastes of the copied or cut item.&lt;br /&gt;
* ''View'' — navigation and control of the view commands:&lt;br /&gt;
** ''Up'' — goes to the parent page.&lt;br /&gt;
** ''Back'' — goes back to the previous page, with a menu of direct access items.&lt;br /&gt;
** ''Forward'' — goes forward to the forward page, with a menu of direct access items.&lt;br /&gt;
** ''Refresh'' — refreshes the current page.&lt;br /&gt;
** ''Start'' — runs periodically update of the current page content with an interval of one second.&lt;br /&gt;
** ''Stop'' — stops the periodically update of the current page content with an interval of one second.&lt;br /&gt;
** ''Favorite'' — going to the selected favorite pages.&lt;br /&gt;
** ''Append to favorite for {Page}/Remove from favorite  for {Page}'' — toggles the current page as favorite.&lt;br /&gt;
* ''Help'' — assistance call commands:&lt;br /&gt;
** ''About'' — information about this module and OpenSCADA.&lt;br /&gt;
** ''About Qt'' — information about the Qt library.&lt;br /&gt;
** ''Manual on 'QTCfg' '' — calls inline or offline manual on the module QTCfg.&lt;br /&gt;
** ''Manual on 'OpenSCADA 0.9' '' — calls inline or offline index of links to documents and manuals on OpenSCADA.&lt;br /&gt;
** ''Manual on the page'' — calls inline or offline manual on selected page.&lt;br /&gt;
** ''What's This'' — requests information for the interface elements and receive their full contextual help.&lt;br /&gt;
&lt;br /&gt;
The toolbar contains the following management buttons (from left to right):&lt;br /&gt;
* ''Load from the DB'' — loads the selected object or branch of the object from the database.&lt;br /&gt;
* ''Save to the DB'' — saves the selected object or branch of the object to the database.&lt;br /&gt;
* ''Add'' — adds a new object to the container.&lt;br /&gt;
* ''Delete'' — deletes the selected object.&lt;br /&gt;
* ''Copy item'' — copies the selected object.&lt;br /&gt;
* ''Cut item'' — cuts of the selected object. The original object is removed after paste.&lt;br /&gt;
* ''Paste item'' — pastes of the copied or cut item.&lt;br /&gt;
* ''Up'' — goes to the parent page.&lt;br /&gt;
* ''Back'' — goes back to the previous page, with a menu of direct access items.&lt;br /&gt;
* ''Forward'' — goes forward to the forward page, with a menu of direct access items.&lt;br /&gt;
* ''Refresh'' — refreshes the current page.&lt;br /&gt;
* ''Start'' — runs periodically update of the current page content with an interval of one second.&lt;br /&gt;
* ''Stop'' — stops periodically update of the current page content with an interval of one second.&lt;br /&gt;
* ''Favorite'' — going to the selected favorite pages.&lt;br /&gt;
* ''Append to favorite for {Page}/Remove from favorite  for {Page}'' — toggles the current page as favorite.&lt;br /&gt;
* ''Manual on the page'' — calls inline or offline manual on selected page.&lt;br /&gt;
* Call buttons of the graphical interface modules of OpenSCADA based on the Qt library&lt;br /&gt;
&lt;br /&gt;
In the navigation tree the context menu of following contents is supported:&lt;br /&gt;
* ''Load from the DB'' — loads the selected object or branch of the object from the database.&lt;br /&gt;
* ''Save to the DB'' — saves the selected object or branch of the object to the database.&lt;br /&gt;
* ''Add'' — adds a new object to the container.&lt;br /&gt;
* ''Delete'' — deletes the selected object.&lt;br /&gt;
* ''Copy item'' — copies the selected object.&lt;br /&gt;
* ''Cut item'' — cuts of the selected object. The original object is removed after paste.&lt;br /&gt;
* ''Paste item'' — pastes of the copied or cut item.&lt;br /&gt;
* ''Favorite'' — going to the selected favorite pages.&lt;br /&gt;
* ''Append to favorite for {Page}/Remove from favorite  for {Page}'' — toggles the current page as favorite.&lt;br /&gt;
* ''Refresh the items tree'' — refreshes the navigation tree content.&lt;br /&gt;
&lt;br /&gt;
The control elements are divided to: basic, commands, lists, tables and images. All items are displayed in the sequence strictly appropriate to their location in the description of the control interface language.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
In order to customize its own behavior in some cases, the module provides the ability to configure the parameters through the control interface of OpenSCADA (Fig.2). These parameters are:&lt;br /&gt;
* Timeouts of the connection checking '{fail}:{good}' — sometimes (for the SSH tunnels), it is useful to reduce the connecting timeout up to 30 seconds to keep the connection.&lt;br /&gt;
* Initial path of the configurator — allows to determine what local page to open when you start the configurator.&lt;br /&gt;
* Initial user of the configurator — points on behalf of the which user to open configuration without requiring a password.&lt;br /&gt;
* ToolTip limit in chars to prevent of big emerging help windows, by default 150. Set zero for disable.&lt;br /&gt;
* Go to configuration of the remote OpenSCADA hosts list, which is used to provide the remote configuration.&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg.png|center|frame|Fig.2. Configuration page of the configurator.]]&lt;br /&gt;
&lt;br /&gt;
Vertically scalable fields (list, text, and table) provide automatic scaling for available space and field contents. In addition, they have the ability to manually change their height by snapping and dragging the bottom of the widget, which, however, does not work for all Qt widget styles.&lt;br /&gt;
&lt;br /&gt;
== Basic elements ==&lt;br /&gt;
Into the number of the basic elements are included: information elements, the field to input values, the elements of combo box, flags, text fields. In the case of absence of an element name, the basic element connects to the previous basic element. Examples of the basic elements with the connection is shown in Figure 3.&lt;br /&gt;
&lt;br /&gt;
For input elements that do not provide immediate changes and can be edited for a long time before final completion, a confirmation mechanism is provided. This mechanism eliminates the delay when editing, especially in the case of the remote stations configuration, and to make changes on the confirmation. The input elements with confirmation include: fields for entering text strings or numerical values and text fields. Confirmation is made by pressing the button that appears next to the input field after the start of editing.&lt;br /&gt;
&lt;br /&gt;
Text fields support finding also as the syntax highlighting, the rules are transmitted in the form of regular expressions from the control interface or can be builtin to the text value as a commentary in [[Special:MyLanguage/Documents/API#SnthHgl|the XML-tag &amp;quot;SnthHgl&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_genelem.png|center|frame|Fig.3. Connection of the basic elements.]]&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
The commands are the elements of transferring of certain instructions of an action to the node and for organization of links-transitions on other pages. Commands may contain parameters. The parameters are formed from the basic elements. Example of the commands with the parameters is shown in Figure 4.&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_commandelem.png|center|frame|Fig.4. The command.]]&lt;br /&gt;
&lt;br /&gt;
== Lists ==&lt;br /&gt;
The lists contain a group of basic elements of the same type. Operations under the elements are accessible via the context menu of the list. Through the elements of the list can be performed the moving operations to other pages, mostly children. The transition is implemented by double-clicking of the mouse on an element of the list. Lists can be indexed. An example of the list is shown in Figure 5.&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_listelem.png|center|frame|Fig.5. The list.]]&lt;br /&gt;
&lt;br /&gt;
== Tables ==&lt;br /&gt;
The tables contain values of the basic elements and support finding. Type of the basic element is an individual for each column. Example of the table is given in Figure 6. Operations on the structure of the table for editable tables are accessible through the context menu. Editing of the table is done by double-clicking on the desired cell.&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_tableelem.png|center|frame|Fig.6. The table.]]&lt;br /&gt;
&lt;br /&gt;
== Images ==&lt;br /&gt;
The images are designed to transmit graphic information into the configurators. Example of the image is shown in Figure 7. From the context menu you can save the image and writable ones you can also load and clear.&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_imgelem.png|center|frame|Fig.7. The image.]]&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Modules/QTCfg/ru&amp;diff=93973</id>
		<title>Modules/QTCfg/ru</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Modules/QTCfg/ru&amp;diff=93973"/>
				<updated>2026-05-10T04:51:53Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Модуль !! Имя !! Версия !! Лицензия !! Источник !! Языки !! Платформы !! Тип !! Автор !! Описание&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Modules/QTCfg|QTCfg]] || Конфигуратор программы (Qt)&lt;br /&gt;
| 6.2 || GPL2 || ui_QTCfg.so || en,uk,ru,de,pt || x86,x86_64,ARM&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| Пользовательские интерфейсы || Роман Савоченко || Предоставляет основанный на Qt конфигуратор OpenSCADA.&lt;br /&gt;
* '''[[Special:MyLanguage/Works/To_do|Задачи (To Do)]]:'''&lt;br /&gt;
&amp;lt;section begin=ToDo /&amp;gt;&lt;br /&gt;
&amp;lt;section end=ToDo /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Модуль предоставляет конфигуратор OpenSCADA, который основан на многоплатформенной библиотеке [http://qt.io Qt] графического пользовательского интерфейса (GUI), изначально созданного фирмой [http://www.trolltech.com TrollTech].&lt;br /&gt;
&lt;br /&gt;
В основе модуля лежит [[Special:MyLanguage/Documents/API|интерфейс управления OpenSCADA]], а значит предоставляется единый интерфейс конфигурации. Обновление модуля может потребоваться только в случае обновления спецификации языка интерфейса управления. Для запроса контекста страницы используется групповой запрос интерфейса управления, что позволяет оптимизировать время удалённого доступа по высоколатентным и медленным каналам связи.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим рабочее окно конфигуратора на рисунке 1.&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_workplacestruct.png|center|frame|Рис.1. Рабочее окно конфигуратора.]]&lt;br /&gt;
&lt;br /&gt;
Рабочее окно конфигуратора состоит из следующих частей:&lt;br /&gt;
:1 ''Меню'' — содержит выпадающее меню конфигуратора.&lt;br /&gt;
:2 ''Панель инструментов'' — содержит кнопки быстрого управления.&lt;br /&gt;
:3 ''Навигатор'' — предназначен для прямой навигации по дереву управления.&lt;br /&gt;
::: [[file:at.png]] Изображение иконки [[Special:MyLanguage/Documents/Program_manual#Projects|проекта OpenSCADA]] сначала получается из файла &amp;quot;'''{StationName}.[png|gif|jpg|jpeg]'''&amp;quot;, а затем, при отсутствии первого, из файла &amp;quot;'''{StationID}.[png|gif|jpg|jpeg]'''&amp;quot;, в [[Special:MyLanguage/Documents/Program_manual#Config|каталоге иконок]].&lt;br /&gt;
::3.1 Поле ввода текста для поиска элемента в текущей ветви дерева.&lt;br /&gt;
:4 ''Строка статуса'' — отображает состояний конфигуратора с кнопкой вызова истории строки статуса.&lt;br /&gt;
::4.1 ''Индикатор/выбор пользователя'' — отображает текущего пользователя, по двойному клику открывается диалог выбора пользователя. Также содержит индикатор факта внесения изменений в конфигурацию.&lt;br /&gt;
:5 ''Рабочее поле'' — поделено на части:&lt;br /&gt;
::5.1 ''Имя узла'' — содержит имя текущего узла.&lt;br /&gt;
::5.2 ''Табулятор рабочих областей'' — в табулятор помещаются корневые страницы (области управления) узла. Области управления следующих уровней помещаются в основном пространстве контроля.&lt;br /&gt;
&lt;br /&gt;
Menu of the configurator contains the following items:&lt;br /&gt;
* ''File'' — group of the general commands:&lt;br /&gt;
** ''Load from DB'' — loads the selected object or branch of the object from the database.&lt;br /&gt;
** ''Load from DB forcibly'' — loads the selected object or branch of the object from the database forcibly, not only when it changed.&lt;br /&gt;
** ''Save to DB'' — saves the selected object or branch of the object to the database.&lt;br /&gt;
** ''Save to DB forcibly'' — saves the selected object or branch of the object to the database forcibly, not only when it changed.&lt;br /&gt;
** ''Close'' — closes the configurator window.&lt;br /&gt;
** ''Quit'' — quits OpenSCADA.&lt;br /&gt;
* ''Edit'' — editing commands:&lt;br /&gt;
** ''Add'' — adds a new object to the container.&lt;br /&gt;
** ''Delete'' — deletes the selected object.&lt;br /&gt;
** ''Copy item'' — copies the selected object.&lt;br /&gt;
** ''Cut item'' — cuts of the selected object. The original object is removed after paste.&lt;br /&gt;
** ''Paste item'' — pastes of the copied or cut item.&lt;br /&gt;
* ''View'' — navigation and control of the view commands:&lt;br /&gt;
** ''Up'' — goes to the parent page.&lt;br /&gt;
** ''Back'' — goes back to the previous page, with a menu of direct access items.&lt;br /&gt;
** ''Forward'' — goes forward to the forward page, with a menu of direct access items.&lt;br /&gt;
** ''Refresh'' — refreshes the current page.&lt;br /&gt;
** ''Start'' — runs periodically update of the current page content with an interval of one second.&lt;br /&gt;
** ''Stop'' — stops the periodically update of the current page content with an interval of one second.&lt;br /&gt;
** ''Favorite'' — going to the selected favorite pages.&lt;br /&gt;
** ''Append to favorite for {Page}/Remove from favorite  for {Page}'' — toggles the current page as favorite.&lt;br /&gt;
* ''Help'' — assistance call commands:&lt;br /&gt;
** ''About'' — information about this module and OpenSCADA.&lt;br /&gt;
** ''About Qt'' — information about the Qt library.&lt;br /&gt;
** ''Manual on 'QTCfg' '' — calls inline or offline manual on the module QTCfg.&lt;br /&gt;
** ''Manual on 'OpenSCADA 0.9' '' — calls inline or offline index of links to documents and manuals on OpenSCADA.&lt;br /&gt;
** ''Manual on the page'' — calls inline or offline manual on selected page.&lt;br /&gt;
** ''What's This'' — requests information for the interface elements and receive their full contextual help.&lt;br /&gt;
&lt;br /&gt;
The toolbar contains the following management buttons (from left to right):&lt;br /&gt;
* ''Load from the DB'' — loads the selected object or branch of the object from the database.&lt;br /&gt;
* ''Save to the DB'' — saves the selected object or branch of the object to the database.&lt;br /&gt;
* ''Add'' — adds a new object to the container.&lt;br /&gt;
* ''Delete'' — deletes the selected object.&lt;br /&gt;
* ''Copy item'' — copies the selected object.&lt;br /&gt;
* ''Cut item'' — cuts of the selected object. The original object is removed after paste.&lt;br /&gt;
* ''Paste item'' — pastes of the copied or cut item.&lt;br /&gt;
* ''Up'' — goes to the parent page.&lt;br /&gt;
* ''Back'' — goes back to the previous page, with a menu of direct access items.&lt;br /&gt;
* ''Forward'' — goes forward to the forward page, with a menu of direct access items.&lt;br /&gt;
* ''Refresh'' — refreshes the current page.&lt;br /&gt;
* ''Start'' — runs periodically update of the current page content with an interval of one second.&lt;br /&gt;
* ''Stop'' — stops periodically update of the current page content with an interval of one second.&lt;br /&gt;
* ''Favorite'' — going to the selected favorite pages.&lt;br /&gt;
* ''Append to favorite for {Page}/Remove from favorite  for {Page}'' — toggles the current page as favorite.&lt;br /&gt;
* ''Manual on the page'' — calls inline or offline manual on selected page.&lt;br /&gt;
* Call buttons of the graphical interface modules of OpenSCADA based on the Qt library&lt;br /&gt;
&lt;br /&gt;
In the navigation tree the context menu of following contents is supported:&lt;br /&gt;
* ''Load from the DB'' — loads the selected object or branch of the object from the database.&lt;br /&gt;
* ''Save to the DB'' — saves the selected object or branch of the object to the database.&lt;br /&gt;
* ''Add'' — adds a new object to the container.&lt;br /&gt;
* ''Delete'' — deletes the selected object.&lt;br /&gt;
* ''Copy item'' — copies the selected object.&lt;br /&gt;
* ''Cut item'' — cuts of the selected object. The original object is removed after paste.&lt;br /&gt;
* ''Paste item'' — pastes of the copied or cut item.&lt;br /&gt;
* ''Favorite'' — going to the selected favorite pages.&lt;br /&gt;
* ''Append to favorite for {Page}/Remove from favorite  for {Page}'' — toggles the current page as favorite.&lt;br /&gt;
* ''Refresh the items tree'' — refreshes the navigation tree content.&lt;br /&gt;
&lt;br /&gt;
Элементы управления делятся на: базовые, команды, списки, таблицы и изображения. Все элементы отображаются в последовательности, строго соответствующей их расположению в описании языка интерфейса управления.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
In order to customize its own behavior in some cases, the module provides the ability to configure the parameters through the control interface of OpenSCADA (Fig.2). These parameters are:&lt;br /&gt;
* Timeouts of the connection checking '{fail}:{good}' — sometimes (for the SSH tunnels), it is useful to reduce the connecting timeout up to 30 seconds to keep the connection.&lt;br /&gt;
* Initial path of the configurator — allows to determine what local page to open when you start the configurator.&lt;br /&gt;
* Initial user of the configurator — points on behalf of the which user to open configuration without requiring a password.&lt;br /&gt;
* ToolTip limit in chars to prevent of big emerging help windows, by default 150. Set zero for disable.&lt;br /&gt;
* Go to configuration of the remote OpenSCADA hosts list, which is used to provide the remote configuration.&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_ru.png|center|frame|Рис.2. Страница конфигурации самого конфигуратора.]]&lt;br /&gt;
&lt;br /&gt;
Вертикально масштабированные поля (перечень, текст и таблица) предусматривают автоматичное масштабирование на доступное пространство и под содержимое полей. Кроме этого, для них доступна возможность ручного изменение высоты путём хватания за нижний край виджета и перетягивания его, что однако работает не для всех стилей виджетов Qt.&lt;br /&gt;
&lt;br /&gt;
== Базовые элементы ==&lt;br /&gt;
В число базовых элементов входят: информационные элементы, поля ввода значений, элементы выбора из списка, флаги, текстовые поля. В случае отсутствия имени элемента, базовый элемент присоединяется к предыдущему базовому элементу. Пример группы базовых элементов с присоединением приведён на рисунке 3.&lt;br /&gt;
&lt;br /&gt;
Для элементов ввода, которые не подразумевают мгновенного изменения и могут продолжительное время редактироваться перед окончательным завершением, предусмотрен механизм подтверждения. Этот механизм позволяет исключить задержки при редактировании, особенно в случае конфигурации удалённых станций, и вносить изменения по подтверждению. К элементам ввода с подтверждением относятся: поля ввода строк текста или числовых значений и текстовые поля. Подтверждение осуществляется нажатием кнопки, которая появляется рядом с полем ввода после начала редактирования.&lt;br /&gt;
&lt;br /&gt;
Текстовые поля поддерживает поиск, также как подсветку синтаксиса, правила которой передаются в виде регулярных выражений из интерфейса управления или могут быть встроены в значение текста как комментарий в [[Special:MyLanguage/Documents/API#SnthHgl|XML-теге &amp;quot;SnthHgl&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_genelem_ru.png|center|frame|Рис.3. Присоединение базовых элементов.]]&lt;br /&gt;
&lt;br /&gt;
== Команды ==&lt;br /&gt;
Команды — это элементы передачи определённых указаний действия узлу и организации ссылок-переходов на другие страницы. Команды могут содержать параметры. Параметры формируются из базовых элементов. Пример команды с параметрами приведен на рисунке 4.&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_commandelem_ru.png|center|frame|Рис.4. Команда.]]&lt;br /&gt;
&lt;br /&gt;
== Списки ==&lt;br /&gt;
Списки содержат группу базовых элементов одного типа. Операции над элементами доступны через контекстное меню списка. Через элементы списка могут выполняться операции перехода на другие страницы, обычно дочерние. Переход осуществляется посредством двойного клика мышки на элементе списка. Списки могут быть индексированными. Пример списка приведен на рисунке 5.&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_listelem_ru.png|center|frame|Рис.5. Список.]]&lt;br /&gt;
&lt;br /&gt;
== Таблицы ==&lt;br /&gt;
Таблицы содержат значения базовых элементов и поддерживают поиск. Тип базового элемента является индивидуальным для каждой колонки. Пример таблицы приведен на рисунке 6. Операции над структурой таблицы, для редактируемых таблиц, доступны посредством контекстного меню. Редактирование элементов таблицы производится путём двойного клика по нужной ячейке.&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_tableelem_ru.png|center|frame|Рис.6. Таблица.]]&lt;br /&gt;
&lt;br /&gt;
== Images ==&lt;br /&gt;
The images are designed to transmit graphic information into the configurators. Example of the image is shown in Figure 7. From the context menu you can save the image and writable ones you can also load and clear.&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_imgelem_ru.png|center|frame|Рис.7. Изображение.]]&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Modules/QTCfg/uk&amp;diff=93971</id>
		<title>Modules/QTCfg/uk</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Modules/QTCfg/uk&amp;diff=93971"/>
				<updated>2026-05-10T04:51:45Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Модуль !! Ім'я !! Версія !! Ліцензія !! Джерело !! Мови !! Платформи !! Тип !! Автор !! Опис&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Modules/QTCfg|QTCfg]] || Конфігуратор програми (Qt)&lt;br /&gt;
| 6.2 || GPL2 || ui_QTCfg.so || en,uk,ru,de,pt || x86,x86_64,ARM&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| Користувацькі інтерфейси || Роман Савоченко || Надає заснований на Qt конфігуратор OpenSCADA.&lt;br /&gt;
* '''[[Special:MyLanguage/Works/To_do|Завдання (To Do)]]:'''&lt;br /&gt;
&amp;lt;section begin=ToDo /&amp;gt;&lt;br /&gt;
&amp;lt;section end=ToDo /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Модуль надає конфігуратор OpenSCADA, який засновано на багатоплатформеній бібліотеці [http://qt.io Qt] графічного користувацького інтерфейсу (GUI), початково створеного фірмою [http://www.trolltech.com TrollTech].&lt;br /&gt;
&lt;br /&gt;
У основі модуля лежить [[Special:MyLanguage/Documents/API|інтерфейс управління OpenSCADA]], що означає надання єдиного інтерфейсу конфігурації. Оновлення модуля може знадобитися лише у випадку оновлення специфікації мови інтерфейсу управління. Для запиту контексту сторінки використовується груповий запит інтерфейсу управління, що дозволяє оптимізувати час віддаленого доступу за високо-латентними та повільними каналами зв'язку.&lt;br /&gt;
&lt;br /&gt;
Розглянемо робоче вікно конфігуратору на рисунку 1.&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_workplacestruct_uk.png|center|frame|Рис.1. Робоче вікно конфігуратору.]]&lt;br /&gt;
&lt;br /&gt;
Робоче вікно конфігуратору складається з наступних частин:&lt;br /&gt;
:1 ''Меню'' — містить меню конфігуратору, що випадає.&lt;br /&gt;
:2 ''Панель інструментів'' — містить кнопки швидкого управління.&lt;br /&gt;
:3 ''Навігатор'' — призначений для прямої навігації за деревом управління.&lt;br /&gt;
::: [[file:at.png]] Зображення іконки [[Special:MyLanguage/Documents/Program_manual#Projects|проекту OpenSCADA]] спочатку отримується із файлу &amp;quot;'''{StationName}.[png|gif|jpg|jpeg]'''&amp;quot;, а потім, за відсутності першого, із файлу &amp;quot;'''{StationID}.[png|gif|jpg|jpeg]'''&amp;quot;, у [[Special:MyLanguage/Documents/Program_manual#Config|теці іконок]].&lt;br /&gt;
::3.1 Поле вводу тексту для пошуку елементу у поточній гілці дерева.&lt;br /&gt;
:4 ''Рядок статусу'' — відображає стан конфігуратора з кнопкою виклику історії рядку статусу.&lt;br /&gt;
::4.1 ''Індикатор/обрання користувача'' — відображає поточного користувача, подвійним кліком відкривається діалог вибору користувача. Також містить індикатор факту внесення змін до конфігурації.&lt;br /&gt;
:5 ''Робоче поле'' — поділено на частини:&lt;br /&gt;
::5.1 ''Ім'я вузла'' — містить ім'я поточного вузла.&lt;br /&gt;
::5.2 ''Табулятор робочих областей'' — до табулятору розташовуються кореневі сторінки (області управління) вузла. Області управління наступних рівнів розташовуються у основному просторі контролю.&lt;br /&gt;
&lt;br /&gt;
Меню конфігуратору містить наступні пункти:&lt;br /&gt;
* ''Файл'' — група загальних команд:&lt;br /&gt;
** ''Завантажити з БД'' — завантаження обраного об'єкту або гілки об'єктів з БД.&lt;br /&gt;
** ''Примусово завантажити з БД'' — примусове завантаження обраного об'єкту або гілки об'єктів з БД, не тільки коли змінено.&lt;br /&gt;
** ''Зберегти у БД'' — збереження обраного об'єкту або гілки об'єктів у БД.&lt;br /&gt;
** ''Примусово зберегти у БД'' — примусове збереження обраного об'єкту або гілки об'єктів у БД, не тільки коли змінено.&lt;br /&gt;
** ''Закрити'' — закриття вікна конфігуратору.&lt;br /&gt;
** ''Вихід'' — завершення роботи програми.&lt;br /&gt;
* ''Редагування'' — команди редагування:&lt;br /&gt;
** ''Додати'' — додання нового об'єкту до контейнеру.&lt;br /&gt;
** ''Видалити'' — видалення обраного об'єкту.&lt;br /&gt;
** ''Копіювати елемент'' — копіювання обраного об'єкту.&lt;br /&gt;
** ''Вирізати елемент'' — вирізання обраного об'єкту. Початковий об'єкт видаляється після вставки.&lt;br /&gt;
** ''Вставити елемент'' — вставка скопійованого або вирізаного елементу.&lt;br /&gt;
* ''Вид'' — команди навігації та управління видом:&lt;br /&gt;
** ''Нагору'' — піднятися вверх по дереву.&lt;br /&gt;
** ''Попередня'' — відкриття попередньої сторінки, що відкривалася, із меню прямо доступних елементів.&lt;br /&gt;
** ''Наступна'' — відкриття наступної сторінки, що відкривалася, із меню прямо доступних елементів.&lt;br /&gt;
** ''Оновити'' — оновлення вмісту поточної сторінки.&lt;br /&gt;
** ''Запустити'' — запуск періодичного оновлення вмісту поточної сторінки з інтервалом одна секунда.&lt;br /&gt;
** ''Зупинити'' — зупинка періодичного оновлення вмісту поточної сторінки з інтервалом одна секунда.&lt;br /&gt;
** ''Улюблене'' — перехід до улюбленої обраної сторінки.&lt;br /&gt;
** ''Додати до улюблених для {Сторінки}/Видалити із улюблених для для {Сторінки}'' — перемикає поточну сторінку в улюблених.&lt;br /&gt;
* ''Допомога'' — команди виклику допомоги:&lt;br /&gt;
** ''Про'' — інформація про цей модуль та OpenSCADA.&lt;br /&gt;
** ''Про Qt'' — інформація про бібліотеку Qt.&lt;br /&gt;
** ''Підручник на 'QTCfg' '' — виклик локального або віддаленого підручника по модулю QTCfg.&lt;br /&gt;
** ''Підручник на 'OpenSCADA 0.9' '' — виклик локального або віддаленого індексу посилань на документацію та підручники на OpenSCADA.&lt;br /&gt;
** ''Підручник на сторінку'' — виклик локального або віддаленого підручника обраної сторінки.&lt;br /&gt;
** ''Що це'' — запит інформації за елементами інтерфейсу та отримання їх повної контекстної допомоги.&lt;br /&gt;
&lt;br /&gt;
Панель інструментів містить наступні кнопки швидкого управління (зліва на право):&lt;br /&gt;
* ''Завантажити з БД'' — завантаження обраного об'єкту або гілки об'єктів з БД.&lt;br /&gt;
* ''Зберегти у БД'' — збереження обраного об'єкту або гілки об'єктів у БД.&lt;br /&gt;
* ''Додати'' — додання нового об'єкту до контейнеру.&lt;br /&gt;
* ''Видалити'' — видалення обраного об'єкту.&lt;br /&gt;
* ''Копіювати елемент'' — копіювання обраного об'єкту.&lt;br /&gt;
* ''Вирізати елемент'' — вирізання обраного об'єкту. Початковий об'єкт видаляється після вставки.&lt;br /&gt;
* ''Вставити елемент'' — вставка скопійованого або вирізаного елементу.&lt;br /&gt;
* ''Нагору'' — підняття нагору по дереву.&lt;br /&gt;
* ''Попередня'' — відкриття попередньої сторінки, що відкривалася, із меню прямо доступних елементів.&lt;br /&gt;
* ''Наступна'' — відкриття наступної сторінки, що відкривалася, із меню прямо доступних елементів.&lt;br /&gt;
* ''Оновити'' — оновлення вмісту поточної сторінки.&lt;br /&gt;
* ''Запустити'' — запуск періодичного оновлення вмісту поточної сторінки з інтервалом одна секунда.&lt;br /&gt;
* ''Зупинити'' — зупинка періодичного оновлення вмісту поточної сторінки з інтервалом одна секунда.&lt;br /&gt;
* ''Улюблене'' — перехід до улюбленої обраної сторінки.&lt;br /&gt;
* ''Додати до улюблених для {Сторінки}/Видалити із улюблених для для {Сторінки}'' — перемикає поточну сторінку в улюблених.&lt;br /&gt;
* ''Підручник на сторінку'' — виклик локального або віддаленого підручника обраної сторінки.&lt;br /&gt;
* Кнопки виклику модулів графічних інтерфейсів OpenSCADA на бібліотеці Qt.&lt;br /&gt;
&lt;br /&gt;
У дереві навігації підтримується контекстне меню наступного вмісту:&lt;br /&gt;
* ''Завантажити з БД'' — завантаження обраного об'єкту або гілки об'єктів з БД.&lt;br /&gt;
* ''Зберегти у БД'' — збереження обраного об'єкту або гілки об'єктів у БД.&lt;br /&gt;
* ''Додати'' — додання нового об'єкту до контейнеру.&lt;br /&gt;
* ''Видалити'' — видалення обраного об'єкту.&lt;br /&gt;
* ''Копіювати елемент'' — копіювання обраного об'єкту.&lt;br /&gt;
* ''Вирізати елемент'' — вирізання обраного об'єкту. Початковий об'єкт видаляється після вставки.&lt;br /&gt;
* ''Вставити елемент'' — вставка скопійованого або вирізаного елементу.&lt;br /&gt;
* ''Улюблене'' — перехід до улюбленої обраної сторінки.&lt;br /&gt;
* ''Додати до улюблених для {Сторінки}/Видалити із улюблених для для {Сторінки}'' — перемикає поточну сторінку в улюблених.&lt;br /&gt;
* ''Оновити елементи дерева'' — оновлення вмісту дерева навігації.&lt;br /&gt;
&lt;br /&gt;
Елементи управління поділяються на: базові, команди, переліки, таблиці та зображення. Всі елементи відображаються у послідовності, яка суворо відповідає їх розташуванню у описі мови інтерфейсу управління.&lt;br /&gt;
&lt;br /&gt;
== Конфігурація ==&lt;br /&gt;
Для налаштування власної поведінки у окремих випадках, модулем надається можливість налаштування параметрів за посередництвом інтерфейсу управління OpenSCADA (рис.2). Такими параметрами є:&lt;br /&gt;
* Таймаути перевірки підключення, у секундах, &amp;quot;{немає}:{є}&amp;quot; — інколи (для тунелю SSH) корисно зменшити таймаут перевірки наявності підключення до 30 секунд з метою утримання підключення.&lt;br /&gt;
* Початковий шлях конфігуратору — дозволяє визначити, яку локальну сторінку відкривати при запуску конфігуратору.&lt;br /&gt;
* Початковий користувач конфігуратору — вказує, від ім'я якого користувача відкривати конфігуратор без запиту пароля.&lt;br /&gt;
* Обмеження ToolTip, у символах, для запобігання спливання великих вікон допомоги, по замовченню 150. Встановити нуль для вимкнення.&lt;br /&gt;
* Перейти до конфігурації переліку віддалених хостів OpenSCADA, що використовується для надання можливості віддаленої конфігурації.&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_uk.png|center|frame|Рис.2. Сторінка конфігурації самого конфігуратору.]]&lt;br /&gt;
&lt;br /&gt;
Вертикально масштабовані поля (перелік, текст та таблиця) передбачають автоматичне масштабування на наявний простір та під вміст полів. Окрім цього, для них доступна можливість ручної зміни висоти шляхом хапання за нижній край віджета та перетягування його, що однак працює не для всіх стилів віджетів Qt.&lt;br /&gt;
&lt;br /&gt;
== Базові елементи ==&lt;br /&gt;
До числа базових елементів входять: інформаційні елементи, поля вводу значень, елементи обрання з переліку, прапорці-ознаки, текстові поля. У випадку відсутності ім'я елементу, базовий елемент приєднується до попереднього базового елементу. Приклад групи базових елементів з приєднанням наведено на рисунку 3.&lt;br /&gt;
&lt;br /&gt;
Для елементів вводу, які не передбачають миттєвих змін та можуть тривалий час редагуватися перед остаточним завершенням, передбачено механізм підтвердження. Цей механізм дозволяє виключити затримки при редагуванні, особливо у випадках конфігурації віддалених станцій, та вносити зміни за підтвердженням. До елементів вводу з підтвердженням відносяться: поля вводу рядків тексту або чисельних значень та текстові поля. Підтвердження здійснюється натиском кнопки, яка з'являється поряд з полем вводу після початку редагування.&lt;br /&gt;
&lt;br /&gt;
Текстові поля підтримують пошук, також як підсвічення синтаксису, правила чого передаються у вигляді регулярних виразів з інтерфейсу управління або можуть бути вбудовані до значення тексту як коментар у [[Special:MyLanguage/Documents/API#SnthHgl|XML-тегу &amp;quot;SnthHgl&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_genelem_uk.png|center|frame|Рис.3. Приєднання базових елементів.]]&lt;br /&gt;
&lt;br /&gt;
== Команди ==&lt;br /&gt;
Команди — це елементи передачі визначених вказівок дії вузлу та організації посилань-переходів на інші сторінки. Команди можуть містити параметри. Параметри формуються з базових елементів. Приклад команди з параметрами приведено на рисунку 4.&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_commandelem_uk.png|center|frame|Рис.4. Команда.]]&lt;br /&gt;
&lt;br /&gt;
== Переліки ==&lt;br /&gt;
Переліки містять групу базових елементів одного типу. Операції над елементами доступні через контекстне меню переліку. Через елементи переліку можуть виконуватися операції переходу на інші сторінки, зазвичай дочірні. Перехід здійснюється посередництвом подвійного кліку мишею на елементі переліку. Переліки можуть бути індексованими. Приклад переліку наведено на рисунку 5.&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_listelem_uk.png|center|frame|Рис.5. Список.]]&lt;br /&gt;
&lt;br /&gt;
== Таблиці ==&lt;br /&gt;
Таблиці містять значення базових елементів та підтримують пошук. Тип базового елементу є індивідуальним для кожного стовпчика. Приклад таблиці наведено на рисунку 6. Операції над структурою таблиці, для редагованих таблиць, доступні за посередництвом контекстного меню. Редагування елементів таблиці здійснюється шляхом подвійного кліку по потрібній клітинці.&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_tableelem_uk.png|center|frame|Рис.6. Таблиця.]]&lt;br /&gt;
&lt;br /&gt;
== Зображення ==&lt;br /&gt;
Зображення призначено передавати графічну інформацію до конфігураторів. Приклад зображення наведено на рисунку 7. Із контекстного меню ви можете зберегти зображення, та доступні до запису можете також завантажити і очистити.&lt;br /&gt;
&lt;br /&gt;
[[file:QTCfg_imgelem_uk.png|center|frame|Рис.7. Зображення.]]&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Libs/Main_graphical_elements/en&amp;diff=93969</id>
		<title>Libs/Main graphical elements/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Libs/Main_graphical_elements/en&amp;diff=93969"/>
				<updated>2026-05-10T04:51:16Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Version !! License !! Source !! Languages !! Author !! Icon&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Libs/Main_graphical_elements|Main elements library of the user interface]]&lt;br /&gt;
| 2.3 || GPLv2&lt;br /&gt;
| vcaBase.db ([http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/vcaBase.sql SQL], [[:File:vcaBase.db.gz|GZip]]) &amp;gt; VCA.wlb_Main&lt;br /&gt;
| en, uk, ru&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| {{Author|[[User:RomanSavochenko|Roman Savochenko]]|Maxim Lysenko (2011-2012) — the page initial translation}} || [[File:LibMainGraphElements.png]]&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | Provides the library of the main elements of the user interface of common and the industrial automation.&lt;br /&gt;
* '''Founded:''' September 2007&lt;br /&gt;
* '''Initially created:''' in [http://wiki.oscada.org/HomePageEn/Using/GraphicElementsLibraries/MainElements the old Wiki]&lt;br /&gt;
* '''Used by:''' [[Special:MyLanguage/Using|most projects on OpenSCADA]]&lt;br /&gt;
* '''[[Special:MyLanguage/Works/To_do|To Do]]:'''&lt;br /&gt;
&amp;lt;section begin=ToDo /&amp;gt;&lt;br /&gt;
&amp;lt;section end=ToDo /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The library is created to provide main elements of the user interface and it contains graphic elements, often need when forming the user interface of the automation of technological and common processes. The library is built on the basis [[Special:MyLanguage/Modules/VCAEngine#WidgetPrimitives|primitives of the widgets]] and the internal programming language [[Special:MyLanguage/Modules/JavaLikeCalc|JavaLikeCalc]].&lt;br /&gt;
&lt;br /&gt;
The element's names and their parameters are available in languages: English, Ukrainian and mRussian. Their source code wrote in the human-language independent mode with calls for the translations by the function ''tr()'' and the message's translation also allowed for English, Ukrainian and mRussian.&lt;br /&gt;
&lt;br /&gt;
For connection the library to a project of the OpenSCADA station you can obtain the database file as:&lt;br /&gt;
* supplied with a ready and proper package of the Linux distribution like to &amp;quot;openscada-libdb-vca&amp;quot;, &amp;quot;openscada-LibDB.VCA&amp;quot;;&lt;br /&gt;
* directly taken for most actual one from [http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/vcaBase.sql the subversion repository] and converted to the DB SQLite file in the way:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;BASH&amp;quot; style=&amp;quot;margin-left: 15px&amp;quot;&amp;gt;&lt;br /&gt;
wget http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/vcaBase.sql&lt;br /&gt;
sqlite3 -init vcaBase.sql vcaBase.db .exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* downloaded for [[:File:vcaBase.db.gz|the one attached here]].&lt;br /&gt;
&lt;br /&gt;
This obtained file next you can place into the project directory of the station and create the database object for the DB module &amp;quot;SQLite&amp;quot;, registering the database file in the configuration.&lt;br /&gt;
&lt;br /&gt;
== {{Anch|Widgets|Widgets — graphical elements}} ==&lt;br /&gt;
Contains general-purpose widgets that are intended to be placed on [[#MainFrames|the main frames]]. These main frames can also be frames outside of this [[#RootPgSo|concept of the signal objects of the root page &amp;quot;RootPgSo&amp;quot;]], but it should be taken in account that they often refer to and call certain [[#Panels|control panels]]!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=anShow /&amp;gt;&lt;br /&gt;
| {{Anch|anShow|&amp;lt;h3&amp;gt;Analog show ([[Special:MyLanguage/Libs/Main_graphical_elements#anShow|anShow]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=anShow /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element on Figure 1.1 is used to display the current value of the analog parameter and the regulator mode, if the parameter is a regulator. Also this element generates notifications of violations on the corresponding parameter settings. The element commonly uses and represents the representative structure of [[Special:MyLanguage/Libs/Main#anUnif|the &amp;quot;Analog signal&amp;quot; DAQ-template]].&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_AnShow.png|center|frame|Fig.1.1. The element &amp;quot;Analog show&amp;quot; in the development and runtime modes (left to right).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
This widget can be used by the developer to create mnemonic schemes with displaying of values of the analog parameters and PID-regulators. To use it you need to add this widget to a mnemonic scheme, adjust for the horizontal, vertical size, by scaling, and link to the data source parameter.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode, in the main field of the element, there are displayed the parameter name, the regulator mode (only for the regulators) and the current value-variable of this parameter; which, depending on the presence of a violation, are displayed in the color style: ''labColorGood'', ''labColorWarning'', ''labColorAlarm''; and in which value the image of the inquieted parameter may blink. At the hardware errors and non validity the data, the last value is grayed out and crossed out. In the tooltip the user may get the linked parameter description and its errors.&lt;br /&gt;
&lt;br /&gt;
In the active mode of the element you can obtain [[#Passport|the parameter passport]] clicking the right mouse button on the body of the widget. The passport will present all properties of the parameter. Pressing the left mouse button in the widget body will cause to appear in the panels area for [[#ElCadr|control panel]] of the parameter, and the selection of this widget will be displayed with the blinking frame.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The widget supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent widget/page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| pErr || Parameter: error || String || Input link || Parameter&amp;amp;#124;err || Code and text of the parameter error. It is used to generate alarm. The following error codes are processed:&lt;br /&gt;
* 1,2 — failure, parameter is not valid, be shown in gray and cross out besides the case with ''redEVAL'';&lt;br /&gt;
* 3,4 — above and below the alarm limit, be shown in the styled color ''labColorAlarm'';&lt;br /&gt;
* 5,6 — above and below the warning limit, be shown in the styled color ''labColorWarning'';&lt;br /&gt;
* 10,11 — the user alarm codes of the statuses warning and alarm, be sown accordingly in the styled color ''labColorWarning'' and ''labColorAlarm''.&lt;br /&gt;
|-&lt;br /&gt;
| pModeA || Parameter: regulator mode: auto || Boolean || Input link || Parameter&amp;amp;#124;auto || The large letter &amp;quot;A&amp;quot; is displayed on the left when the value checked. &lt;br /&gt;
|-&lt;br /&gt;
| pModeC || Parameter: regulator mode: cascade || Boolean || Input link || Parameter&amp;amp;#124;casc || The large letter &amp;quot;C&amp;quot; is displayed on the left when the value checked.&lt;br /&gt;
|-&lt;br /&gt;
| pName || Parameter: name || String (translate) || Input link || Parameter&amp;amp;#124;NAME || Short name of the parameter displayed over the value and inserted to the alarm messages.&lt;br /&gt;
|-&lt;br /&gt;
| pPrec || Parameter: precision || Integer || Input link || Parameter&amp;amp;#124;prec || Number signs after the dot, for positive values, and precision (signs in whole), for negative, to display the real end variable on the screen.&lt;br /&gt;
|-&lt;br /&gt;
| pVal || Parameter: value || Real || Input link || Parameter&amp;amp;#124;var || Engineeric real value of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| redEVAL || Red parameter name in case of failure || Boolean || Constant || || By default, the color of the parameter's name for the &amp;quot;failure&amp;quot; state (EVAL value) is gray. But some critical for the process parameters must have the &amp;quot;failure&amp;quot; state displayed with the red parameter's name.&lt;br /&gt;
|-&lt;br /&gt;
| spName || Speech name || String (translate) || Constant || || The parameter name for speech synthesis during the formation of alarm messages taking into account accents of words, pauses, etc. Empty value disables the speech notification!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=anShow1 /&amp;gt;&lt;br /&gt;
| {{Anch|anShow1|&amp;lt;h3&amp;gt;Analog show 1 ([[Special:MyLanguage/Libs/Main_graphical_elements#anShow1|anShow1]]); Analog show 1, short ([[Special:MyLanguage/Libs/Main_graphical_elements#anShow1|anShow1s]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.4 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=anShow1 /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element on Figure 1.2 is used to display the current value of the analog parameter and a short prefix of the measured value type. Also this element generates notifications of violations on the corresponding parameter settings. The element commonly uses and represents the representative structure of [[Special:MyLanguage/Libs/Main#anUnif|the &amp;quot;Analog signal&amp;quot; DAQ-template]].&lt;br /&gt;
&lt;br /&gt;
These two elements differ only in their initial horizontal size, that is, the second &amp;quot;Analog show 1, short&amp;quot; is a short version for very short cases and it is directly inherited from the first one.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_anShow1.png|center|frame|Fig.1.2. The element &amp;quot;Analog show 1&amp;quot; in the development and runtime modes (left to right).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
This widget can be used by the developer to create mnemonic schemes with displaying of values of the analog parameters with a prefix and/or as an element of the static screen table. To use it you need to add this widget to a mnemonic scheme, adjust for the horizontal, vertical size, by scaling, and link to the data source parameter.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode, in the main field of the element, there are displayed the short prefix and the current value-variable of this parameter; which, depending on the presence of a violation, are displayed in the color style: ''labColorGood'', ''labColorWarning'', ''labColorAlarm''; and in which value the image of the inquieted parameter may blink. At the hardware errors and non validity the data, the last value is grayed out and crossed out. In the tooltip the user may get the linked parameter description and its errors.&lt;br /&gt;
&lt;br /&gt;
In the active mode of the element you can obtain [[#Passport|the parameter passport]] clicking the right mouse button on the body of the widget. The passport will present all properties of the parameter. Pressing the left mouse button in the widget body will cause to appear in the panels area for [[#ElCadr|control panel]] of the parameter, and the selection of this widget will be displayed with the blinking frame.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The widget supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent widget/page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| pErr || Parameter: error || String || Input link || Parameter&amp;amp;#124;err || Code and text of the parameter error. It is used to generate alarm. The following error codes are processed:&lt;br /&gt;
* 1,2 — failure, parameter is not valid, be shown in gray and cross out;&lt;br /&gt;
* 3,4 — above and below the alarm limit, be shown in the styled color ''labColorAlarm'';&lt;br /&gt;
* 5,6 — above and below the warning limit, be shown in the styled color ''labColorWarning'';&lt;br /&gt;
* 10,11 — the user alarm codes of the statuses warning and alarm, be sown accordingly in the styled color ''labColorWarning'' and ''labColorAlarm''.&lt;br /&gt;
|-&lt;br /&gt;
| pNAME || Parameter: name || String (translate) || Input link || Parameter&amp;amp;#124;NAME || Short name of the parameter inserted to the alarm messages.&lt;br /&gt;
|-&lt;br /&gt;
| prec || Parameter: precision || Integer || Input link || Parameter&amp;amp;#124;prec || Number signs after the dot, for positive values, and precision (signs in whole), for negative, to display the real end variable on the screen.&lt;br /&gt;
|-&lt;br /&gt;
| pVal || Parameter: value || Real || Input link || Parameter&amp;amp;#124;var || Engineeric real value of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| spName || Speech name || String (translate) || Constant || || The parameter name for speech synthesis during the formation of alarm messages taking into account accents of words, pauses, etc. Empty value disables the speech notification!&lt;br /&gt;
|-&lt;br /&gt;
| pName || Short name || String || Constant || || Short name-prefix value.&lt;br /&gt;
|-&lt;br /&gt;
| pNameSz || Short name size || Integer || Constant || || Size of the short name-prefix in pixels, use the zero value to disable the field.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=TextLab /&amp;gt;&lt;br /&gt;
| {{Anch|TextLab|&amp;lt;h3&amp;gt;Text label ([[Special:MyLanguage/Libs/Main_graphical_elements#TextLab|TextLab]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=TextLab /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element on Figure 1.3 is used to display the dynamic text labels, which form on basis of the discrete signals. Also this element generates notifications of violations on the locally defined condition, the attribute '''ntf''', additionally it cans generate alarms from the attribute &amp;quot;Error (err)&amp;quot;. The element commonly uses and represents the representative structure of DAQ-templates of [[Special:MyLanguage/Libs/Main#digitBlockUnif|the discrete block]] and [[Special:MyLanguage/Libs/Main#codeState|the code state]].&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' Vassily Grigoriev, [http://e-beam.ru the Laboratory of Vacuum Technologies]&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_TextLab.png|center|frame|Fig.1.3. The element &amp;quot;Text label&amp;quot; in the development and runtime modes (left to right).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
This widget can be used by the developer to create mnemonic schemes with displaying of text labels and/or as an element of the static screen table. To use it you need to add this widget to a mnemonic scheme, adjust for the horizontal, vertical size and link to the data source parameter.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode, in the main field of the element, there are displayed the text label, what related to values of the discrete signals of the parameter and the attribute '''digStts''' configuration; where the background, depending to availability of a violation related to the attribute '''ntf''' condition, sets to the violation color; and to what the inquieted parameter may blink. At the hardware errors and non validity the data, the background shows in the gray color.&lt;br /&gt;
&lt;br /&gt;
In the active mode of the element you can obtain [[#Passport|the parameter passport]] clicking twice the left mouse button on the body of the widget. The passport will present all properties of the parameter. Pressing the left mouse button in the widget body will cause to appear in the panels area for [[#ElCadr|control panel]] of the parameter, and the selection of this widget will be displayed with the blinking frame. The commands are duplicated in the context menu that appears when the right mouse button is pressed in the widget area.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The widget supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent widget/page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| err || Parameter: error || Address || Input link || Parameter&amp;amp;#124;err || Used as the address for accessing the DAQ-Parameter object of messages sending and the value also used for alarms generation.&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Parameter: name || String (translate) || Input link || Parameter&amp;amp;#124;NAME || Short name of the parameter to be inserted in the notification of violations and actions of the user-operator.&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Parameter: description || String (translate) || Input link || Parameter&amp;amp;#124;DESCR || Description or long name of the parameter to be inserted in the notification of violations and actions of the user-operator.&lt;br /&gt;
|-&lt;br /&gt;
| st_open || Parameter: status-open || Boolean || Input link || Parameter&amp;amp;#124;st_open || The state &amp;quot;Opened&amp;quot; of the parameter or the common state of the switch at missing the state signal &amp;quot;Closed&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| st_close || Parameter: status-close || Boolean || Input link || Parameter&amp;amp;#124;st_close || The state &amp;quot;Closed&amp;quot; of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| st_text || Parameter: status (text) || String (translate) || Input link || Parameter&amp;amp;#124;st_text || Text of the parameter state, at the mode &amp;quot;Code state&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| digStts || Parameter: statuses || String (translate) || Input link || Parameter&amp;amp;#124;digStts || Configuration of the parameter statuses with the structure '''{openedLabel}-{color};{closedLabel}-{color};{noOpenedClosedLabel}-{color};{OpenedClosedLabel}-{color};{errLabel}-{color}''', for the discrete block.&lt;br /&gt;
|-&lt;br /&gt;
| com || Parameter: command || Boolean || Full link || Parameter&amp;amp;#124;com || The command &amp;quot;Open&amp;quot; of the parameter or the common command of the switch at missing the command signal &amp;quot;Close&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| close || Parameter: close || Boolean || Full link || Parameter&amp;amp;#124;close || The command &amp;quot;Close&amp;quot; of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| stop || Parameter: stop || Boolean || Full link || Parameter&amp;amp;#124;stop || The command &amp;quot;Stop&amp;quot; of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| com_text || Parameter: command text (from digComs) || String || Full link || Parameter&amp;amp;#124;com_text || Text of the parameter command, at the mode &amp;quot;Code state&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| digComs || Parameter: commands || String (translate) || Input link || Parameter&amp;amp;#124;digComs || Configuration of the parameter commands with the structure '''{openLabel}-{color};{closeLabel}-{color}''', for the discrete block, and '''{com1Label}-{color};{com2Label}-{color};...;{comNLabel}-{color}''', for the code status.&lt;br /&gt;
|-&lt;br /&gt;
| ntf || Notification &amp;quot;{st}:{modes}:{Speech text}&amp;quot; || String (translate) || Constant || || Configuration of the notification forming at the status (st) [0&amp;amp;#124;1&amp;amp;#124;2(both)&amp;amp;#124;3(err)] and [[Special:MyLanguage/Modules/VCAEngine#Alarms|the notification modes-methods (modes)]], as a string of the digital methods, and by the speech, if pointed such method. The speech message for &amp;quot;3(err)&amp;quot; is taken from the &amp;quot;Error (err)&amp;quot; attribute.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ImgLab /&amp;gt;&lt;br /&gt;
| {{Anch|ImgLab|&amp;lt;h3&amp;gt;Image label ([[Special:MyLanguage/Libs/Main_graphical_elements#ImgLab|ImgLab]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=ImgLab /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element on Figure 1.4 is used to display the dynamic image labels, which form on basis of the discrete signals. Also this element generates notifications of violations on the locally defined condition, the attribute '''ntf''', additionally it cans generate alarms from the attribute &amp;quot;Error (err)&amp;quot;. The element commonly uses and represents the representative structure of DAQ-templates of [[Special:MyLanguage/Libs/Main#digitBlockUnif|the discrete block]] and [[Special:MyLanguage/Libs/Main#codeState|the code state]].&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' Vinnica Poultry Farm&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ImgLab.png|center|frame|Fig.1.4. The element &amp;quot;Image label&amp;quot; in the development and runtime modes (left to right).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
This widget can be used by the developer to create mnemonic schemes with displaying of image labels and/or as an element of the static screen table. To use it you need to add this widget to a mnemonic scheme, adjust for the horizontal, vertical size and link to the data source parameter.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode, in the main field of the element, there are displayed the image label, what related to values of the discrete signals of the parameter and the attribute '''imgs''' configuration; where the background, depending to availability of a violation related to the attribute '''ntf''' condition, sets to the violation color; and to what the inquieted parameter may blink. At the hardware errors and non validity the data, the background shows in the gray color.&lt;br /&gt;
&lt;br /&gt;
In the active mode of the element you can obtain [[#Passport|the parameter passport]] clicking twice the left mouse button on the body of the widget. The passport will present all properties of the parameter. Pressing the left mouse button in the widget body will cause to appear in the panels area for [[#ElCadr|control panel]] of the parameter, and the selection of this widget will be displayed with the blinking frame. The commands are duplicated in the context menu that appears when the right mouse button is pressed in the widget area.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The widget supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent widget/page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| err || Parameter: error || Address || Input link || Parameter&amp;amp;#124;err || Used as the address for accessing the DAQ-Parameter object of messages sending and the value also used for alarms generation.&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Parameter: name || String (translate) || Input link || Parameter&amp;amp;#124;NAME || Short name of the parameter to be inserted in the notification of violations and actions of the user-operator.&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Parameter: description || String (translate) || Input link || Parameter&amp;amp;#124;DESCR || Description or long name of the parameter to be inserted in the notification of violations and actions of the user-operator.&lt;br /&gt;
|-&lt;br /&gt;
| st_open || Parameter: status-open || Boolean || Input link || Parameter&amp;amp;#124;st_open || The state &amp;quot;Opened&amp;quot; of the parameter or the common state of the switch at missing the state signal &amp;quot;Closed&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| st_close || Parameter: status-close || Boolean || Input link || Parameter&amp;amp;#124;st_close || The state &amp;quot;Closed&amp;quot; of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| st_img || Parameter: status &amp;quot;{img}:{bCol}:{blink}&amp;quot; || String || Input link || Parameter&amp;amp;#124;st_text || Image of the parameter state, at the mode &amp;quot;Code state&amp;quot;, where:&lt;br /&gt;
* ''img'' — image name, see [[Special:MyLanguage/Modules/VCAEngine#Media|the image attributes]];&lt;br /&gt;
* ''bCol'' — background color;&lt;br /&gt;
* ''blink'' — blink sign [0&amp;amp;#124;1] of the background.&lt;br /&gt;
|-&lt;br /&gt;
| imgs || Images, for &amp;quot;{openedImage}-{bCol}:{closedImage}-{bCol}:{noOpenedClosedImage}-{bCol}:{OpenedClosedImage}-{bCol}:{errImage}-{bCol}&amp;quot; || String || Constant || || Configuration of the parameter statuses with the structure '''{openedImage}-{bCol}:{closedImage}-{bCol}:{noOpenedClosedImage}-{bCol};{OpenedClosedImage}-{bCol};{errImage}-{bCol}''', for the discrete block.&lt;br /&gt;
|-&lt;br /&gt;
| digStts || Parameter: statuses || String (translate) || Input link || Parameter&amp;amp;#124;digStts || Standard configuration of the parameter statuses with the structure '''{notUsed}-{openedColor};{notUsed}-{closedColor};{notUsed}-{noOpenedClosedColor};{notUsed}-{OpenedClosedColor};{notUsed}-{errColor}''', for the discrete block and missing of the attribute '''imgs''.&lt;br /&gt;
|-&lt;br /&gt;
| com || Parameter: command || Boolean || Full link || Parameter&amp;amp;#124;com || The command &amp;quot;Open&amp;quot; of the parameter or the common command of the switch at missing the command signal &amp;quot;Close&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| close || Parameter: close || Boolean || Full link || Parameter&amp;amp;#124;close || The command &amp;quot;Close&amp;quot; of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| stop || Parameter: stop || Boolean || Full link || Parameter&amp;amp;#124;stop || The command &amp;quot;Stop&amp;quot; of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| com_text || Parameter: command text (from digComs) || String || Full link || Parameter&amp;amp;#124;com_text || Text of the parameter command, at the mode &amp;quot;Code state&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| digComs || Parameter: commands || String (translate) || Input link || Parameter&amp;amp;#124;digComs || Configuration of the parameter commands with the structure '''{openLabel}-{color};{closeLabel}-{color};{stopLabel}-{color}''', for the discrete block, and '''{com1Label}-{color};{com2Label}-{color};...;{comNLabel}-{color}''', for the code status.&lt;br /&gt;
|-&lt;br /&gt;
| ntf || Notification &amp;quot;{st}:{modes}:{Speech text}&amp;quot; || String (translate) || Constant || || Configuration of the notification forming at the status (st) [0&amp;amp;#124;1&amp;amp;#124;2(both)&amp;amp;#124;3(err)] and [[Special:MyLanguage/Modules/VCAEngine#Alarms|the notification modes-methods (modes)]], as a string of the digital methods, and by the speech, if pointed such method. The speech message for &amp;quot;3(err)&amp;quot; is taken from the &amp;quot;Error (err)&amp;quot; attribute.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=alarmsAct /&amp;gt;&lt;br /&gt;
| {{Anch|alarmsAct|&amp;lt;h3&amp;gt;Alarms — active ([[Special:MyLanguage/Libs/Main_graphical_elements#alarmsAct|alarmsAct]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.4 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=alarmsAct /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
The element in Figure 1.5 serves to dynamically display the active violations in a tabular form and to highlight them in color and text. The violations are obtained from [[Special:MyLanguage/Documents/Program_manual#ArchMess|the buffer of current-active violations of OpenSCADA]]. In fact, the element implements the primitive &amp;quot;[[Special:MyLanguage/Sub-projects/VCA#ImplProtocol|Protocol]]&amp;quot; functions for violations and extension opportunities.&lt;br /&gt;
&lt;br /&gt;
Messages sorting is fixed by the rule &amp;quot;active + highest level + last&amp;quot; to the messages top, which can only be changed by editing the element's source code.&lt;br /&gt;
&lt;br /&gt;
For detailed study of current violations, the element provides a function of increasing the height up or down in focus.&lt;br /&gt;
&lt;br /&gt;
The element is created, and is usually used, in pair with the [[#alarmsSt|full-format frame of presenting the violations history]], which is completed with most features of this element but also for the violations history.&lt;br /&gt;
&lt;br /&gt;
The main user extension is the ability to define visible table fields from a list of options:&lt;br /&gt;
* ''atm'' — time of the violation appearing;&lt;br /&gt;
* ''qttm'' — time of the violation confirmation (quietation), for quieted violations;&lt;br /&gt;
* ''lev'' — level of the violation;&lt;br /&gt;
* ''type'' — type-name of the violation from the level ''lev'' and the attribute &amp;quot;types&amp;quot;;&lt;br /&gt;
* ''cat'' — category of the violation;&lt;br /&gt;
* ''mess'' — full and unparsed text of the violation message;&lt;br /&gt;
* ''prm'' — address of the DAQ-parameter of the data source;&lt;br /&gt;
* ''dscr'' — description of the violation from the source DAQ-parameter;&lt;br /&gt;
* ''dscrCust{N}'' — description of the user field ''N'';&lt;br /&gt;
* ''alrm'' — text of the violation;&lt;br /&gt;
* ''cmnt'' — commentary of the violation.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] This element and its fields generally represent the structure of the violation message, which is described in detail in [[Special:MyLanguage/Documents/Program_manual#ArchMess|the Program manual]].&lt;br /&gt;
&lt;br /&gt;
As you can see from the list of possible table fields, this item supports confirmation (quietation), commenting, and user fields.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' Ustijancev Michael&lt;br /&gt;
* '''Sponsored by, for appending the new user field &amp;quot;Type&amp;quot; on 0.2 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' INSERTEC LTDA&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_alarmsAct.png|center|frame|Fig.1.5. The element &amp;quot;Alarms — active&amp;quot; in the development and runtime modes (top to down).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
This widget can be used by the developer in creating mnemonic schemes with constant display of active violations or for their general display on [[#RootPgSo|the root page]]. To use it you need to add this widget to a mnemonic scheme or the root page, adjust for the horizontal, vertical size, configure vertical extension and adjust other properties, such as the list and the order in which the table fields are displayed.&lt;br /&gt;
&lt;br /&gt;
If you want to exclude the validation function then you have to exclude the validation time &amp;quot;qttm&amp;quot; from the list and make the element inactive.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode, a table is created to list the active violations, by defined fields, rules of sorting and highlighting; the contents of which are updated periodically and dynamically. When the table is selected and the focus is obtained, its height can be expanded to display more messages if this feature is enabled and the condition accordance is got for a certain number of violations.&lt;br /&gt;
&lt;br /&gt;
The user is given the opportunity to confirm the violation, by changing the value of the confirmation time field or by using the control panel that pops up after selecting the element and the violation item.&lt;br /&gt;
&lt;br /&gt;
The user can also comment on the violation by correcting appropriate field of the table.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| active || Active || Boolean || Turn off if there disabled confirmation, focus gaining and editing in general — purely displaying.&lt;br /&gt;
|-&lt;br /&gt;
| hHdrVis || Show header: horizontal || Boolean ||&lt;br /&gt;
|-&lt;br /&gt;
| vHdrVis || Show header: vertical || Boolean ||&lt;br /&gt;
|-&lt;br /&gt;
| formDtTm || Data and time format (%Y-%m-%d %H.%M.%S[.%MS,%US]) || String || Format of displaying the time of violation and confirmation.&lt;br /&gt;
|-&lt;br /&gt;
| expOnItems || Expand on focus: items (&amp;lt;=0-disabled) || Integer || Maximum number of messages to trigger the element expansion, height increasing, at focus gaining.&lt;br /&gt;
|-&lt;br /&gt;
| expOnFocus || Expand on focus: pixels (0-disabled,&amp;gt;-down,&amp;lt;-up) || Integer || Set to the desired value of the element extension, height increasing, at focus gaining.&lt;br /&gt;
|-&lt;br /&gt;
| colms || Columns&lt;br /&gt;
List separated by ',' from the variants: atm, qttm, lev, type, cat, mess, prm, dscr, dscrCust{N}, alrm, cmnt.&lt;br /&gt;
| String || Determine in the desired sequence and the fields filling.&lt;br /&gt;
|-&lt;br /&gt;
| highLght || Highlight rules&lt;br /&gt;
Rows in the form &amp;quot;{lev}[{slev}]{quitt}:{color}:{font}:{fontColor}&amp;quot;.&lt;br /&gt;
| Text || Highlight rules, where:&lt;br /&gt;
* ''lev'' — main level of the message [0...7];&lt;br /&gt;
* ''slev'' — sub-level of the message [0...9], optional;&lt;br /&gt;
* ''quitt'' — sign of the message confirmation (quietation) [0|1];&lt;br /&gt;
* ''color'' — background color of the message row;&lt;br /&gt;
* ''font'' — text font of the message row;&lt;br /&gt;
* ''fontColor'' — text color of the message row.&lt;br /&gt;
To example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;BASH&amp;quot;&amp;gt;&lt;br /&gt;
#&amp;lt;SnthHgl font=&amp;quot;monospace&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;rule expr=&amp;quot;^#[^\n]*&amp;quot; color=&amp;quot;gray&amp;quot; font_italic=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
# &amp;lt;rule expr=&amp;quot;^[0-9]*&amp;quot; color=&amp;quot;blue&amp;quot;&amp;gt;&lt;br /&gt;
#  &amp;lt;rule expr=&amp;quot;[01]$&amp;quot; color=&amp;quot;red&amp;quot;/&amp;gt;&lt;br /&gt;
# &amp;lt;/rule&amp;gt;&lt;br /&gt;
# &amp;lt;rule expr=&amp;quot;(?&amp;lt;=:).*&amp;quot; font_weight=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
#&amp;lt;/SnthHgl&amp;gt;&lt;br /&gt;
50:gray&lt;br /&gt;
40:red&lt;br /&gt;
150:yellow&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colDscrCustNames || Names list of the user fields, separated by ';' || String (translate) || At the support of user fields and their visibility, their names are given here.&lt;br /&gt;
|-&lt;br /&gt;
| types || Types list at the level from 0, separated by ';' || String (translate) || Types-names of alarms at their level, typically &amp;quot;Debug;Info;Notice;Warning;Error;Critical;Alert;Emergency&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| messCat || Message category || String || Category of the processing alarm messages, typically it is empty for all alarms.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=objProps /&amp;gt;&lt;br /&gt;
| {{Anch|objProps|&amp;lt;h3&amp;gt;Object properties ([[Special:MyLanguage/Libs/Main_graphical_elements#objProps|objProps]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru&lt;br /&gt;
 &amp;lt;section end=objProps /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
The element on Figure 1.6 serves to display the properties of the data source in tabular form and to highlight them in color, as an object, and to allow the values of the recordable properties to be changed. This element also generates violation notifications according to the features of the object. The element generally uses and represents a representative structure &amp;quot;[[Special:MyLanguage/Libs/Main#ComplexObject|Complex objects]]&amp;quot; of the DAQ-templates.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' PAC HARTRON&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_objProps.png|center|frame|Fig.1.6. The element &amp;quot;Object properties&amp;quot; in the development and runtime modes (left to right).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
This widget can be used by the developer in creating mnemonic schemes with consolidated rendering of the object as a whole and entity with properties. To use it you need to add this widget to a mnemonic scheme, adjust for the horizontal, vertical size, by scaling, and link to the data source parameter at the DAQ-template &amp;quot;[[Special:MyLanguage/Libs/Main#ComplexObject|Complex objects]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode, a table is displayed with properties in the rows where the first column is the property name and the second column is its value. Row can be backlit by an alarm color in case of violation of this property. Of particular importance is the title of the widget, which displays the name of the object background color which can become an emergency color in the presence of violations in the object.&lt;br /&gt;
&lt;br /&gt;
The properties table is active and at selecting the property row, which means the writing, a field for setting the property value will appear below.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| objName || Object: name || String || Input link || Object&amp;amp;#124;NAME || The object name for the title.&lt;br /&gt;
|-&lt;br /&gt;
| objDescr || Object: description || Text || Input link || Object&amp;amp;#124;DESCR || The object description for tooltip to the title.&lt;br /&gt;
|-&lt;br /&gt;
| objErr || Object: error || String || Input link || Object&amp;amp;#124;err || The object error to form notifications and to highlight the title, the conception error codes are processed.&lt;br /&gt;
|-&lt;br /&gt;
| objItems || Object: items || Object || Input link || Object&amp;amp;#124;items || Descriptive object of the properties of the physical object, according to the concept.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=calendar /&amp;gt;&lt;br /&gt;
| {{Anch|calendar|&amp;lt;h3&amp;gt;Calendar ([[Special:MyLanguage/Libs/Main_graphical_elements#calendar|calendar]])&amp;lt;/h3&amp;gt;}} || 1.0 || GPLv2 || * || en, uk, ru &amp;lt;section end=calendar /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
The element on Figure 1.7 is used to display the month of the calendar by week, which allows you to select the year, month and day, as well as switch to the current day.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' SVItoVYR LTD&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_calendar.png|center|frame|Fig.1.7. The element &amp;quot;Calendar&amp;quot; in the development and runtime modes (left to right).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
This widget can be used by the developer to create mnemonic schemes with displaying the calendar. To use it you need to add this widget to a mnemonic scheme, adjust for the horizontal, vertical size, by scaling, and use the attribute &amp;quot;selTime&amp;quot; of this widget to obtain and to set the date.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode, the year, month, and day are displayed according to the &amp;quot;selTime&amp;quot; attribute.&lt;br /&gt;
&lt;br /&gt;
The user can select the year and month from the list, as well as the day in the represented weeks. An appropriate button is provided for a quick return to the current day.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| selTime || Selected time || Integer || The calendar in seconds from the UNIX-epoch.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=weather /&amp;gt;&lt;br /&gt;
| {{Anch|weather|&amp;lt;h3&amp;gt;Weather ([[Special:MyLanguage/Libs/Main_graphical_elements#weather|weather]])&amp;lt;/h3&amp;gt;}} || 1.0 || GPLv2 || * || en, uk &amp;lt;section end=weather /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
The element on Figure 1.8 is used to display weather data from parameters on the DAQ-template &amp;quot;[[Special:MyLanguage/Libs/Main#weather|Weather]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_weather.png|center|frame|Fig.1.8. The element &amp;quot;Weather&amp;quot; in the development and runtime modes (left to right).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
This widget can be used the developer to create mnemonic schemes with displaying the weather. To use it you need to add this widget to a mnemonic scheme, adjust for the horizontal, vertical size, by scaling, and link to the data source parameter at the DAQ-template &amp;quot;[[Special:MyLanguage/Libs/Main#weather|Weather]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode, the current weather is displayed in the top and forecast displayed in the bottom with details on the images' tooltip.&lt;br /&gt;
&lt;br /&gt;
[[File:at.png]] Images for some weather conditions can be missed yet due to the images are still appended!&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| current || Weather: Current || Object || Input link || Parameter&amp;amp;#124;current || The object with current data.&lt;br /&gt;
|-&lt;br /&gt;
| forecast || Weather: Forecast || Object || Input link || Parameter&amp;amp;#124;forecast || The object with forecast data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=RootPgSo /&amp;gt;&lt;br /&gt;
| {{Anch|RootPgSo|&amp;lt;h2&amp;gt;Root page (SO) ([[Special:MyLanguage/Libs/Main_graphical_elements#RootPgSo|RootPgSo]])&amp;lt;/h2&amp;gt;}}&lt;br /&gt;
| 2.7 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=RootPgSo /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || 1000 ms&lt;br /&gt;
|}&lt;br /&gt;
The element-frame, shown in Figure 2, serves as the basis for the user interfaces creating, initially for control the technological processes, grounded on the signal objects (SO).&lt;br /&gt;
&lt;br /&gt;
The root page contains four areas:&lt;br /&gt;
* signal objects area of the buttons-indicators (top);&lt;br /&gt;
* navigation area by types of view (right-top);&lt;br /&gt;
* container of the main frames of the user interface (in the centr);&lt;br /&gt;
* container of the control panels (right-bottom).&lt;br /&gt;
&lt;br /&gt;
''Signal objects area of the buttons-indicators'' provides information on the presence of violations in the signal object and for switching between them.&lt;br /&gt;
&lt;br /&gt;
To show the signal objects selection the background color is used, by the styles: ''backColorButton'' and ''backColorButtonSel''. And the violations are displayed in the color of the text according to the styles: ''labColorGood'', ''labColorWarning'', ''labColorAlarm''; and in which value the text of the inquieted signal object may blink.&lt;br /&gt;
&lt;br /&gt;
Buttons are currently generated dynamically by copying the first and only, according to the virtual pages of the signal objects in the project tree, with the serial digital identification from 1 (one). The limitation on the number of buttons or signal objects is only the total length of the names of the signal objects that can be placed in two rows of these buttons. That is, for short names we can get up to near 100 signal objects. If the signal object is one, even this single base button is hidden.&lt;br /&gt;
&lt;br /&gt;
''Navigation area by types of view'' — indication of the choice and selection of the type of view, such as: &amp;quot;Mnemonic schemes&amp;quot;, &amp;quot;Graph groups&amp;quot;, &amp;quot;Contour groups&amp;quot;, &amp;quot;Documents&amp;quot; and more; and the listing buttons or the direct selection combobox of the frames into the signal object.&lt;br /&gt;
&lt;br /&gt;
The buttons area of the types of view is dynamic, in the sense of occupying the space of the missing ones, and the meaning of the types of view themselves are configured to different from the default value, i.e. there are two main types of view (view1 and view2), three auxiliary (view3, view4 and view5), as well as one common to the whole interface (view6).&lt;br /&gt;
&lt;br /&gt;
Below are also the buttons of quietation those appear in the event of violations, and at the top is a customizable logo.&lt;br /&gt;
&lt;br /&gt;
''Container of the main frames of the user interface'' — the area of the container for inclusion in it of the basic frames by their choice of buttons of types of view or change of the signal object.&lt;br /&gt;
&lt;br /&gt;
''[[#alarmsAct|The generic table of active violations]]'' — contains coloured rows of actual alarms sorted by their importance with the more important on the top. The widget disabled initially.&lt;br /&gt;
&lt;br /&gt;
''Container of the control panels'' — container area to include control panels of various objects in the container area of the main frames, for example — panel of the parameter, document, graph and more.&lt;br /&gt;
&lt;br /&gt;
Under the control panels container placed a button to start the demo mode — mode in which performed periodic switching for representative frames, changing regimes and other operations by a scenario.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored in the dynamization by''': Vinnica Poultry Farm&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_RootPgSoD.png|center|frame|Fig.2a. The &amp;quot;Root page (SO)&amp;quot; frame in the development mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
This widget can be used only in the root page mode that should be placed in the project's tree as an element &amp;quot;so&amp;quot;. Additionally, around the main page should be made following tree hierarchy:&lt;br /&gt;
: /'''control'''/* — logical container, contains a variety of control panels;&lt;br /&gt;
: /'''so'''/ — this frame as a container, contains of logical containers of the signal objects:&lt;br /&gt;
:: '''{n}'''/ — logical container of the signal object ''n'' (1...), contains logical containers and templates of the types of view:&lt;br /&gt;
::: ['''view1'''|'''mn''']/* — the type of view 1 (typically and early it is the mnemonic schemes), contains a lot of pages of the end frames;&lt;br /&gt;
::: ['''view2'''|'''ggraph''']/* — the type of view 2 (typically and early it is a template of [[#grpGraph|the graphics group]]), contains a lot of pages of the end frames;&lt;br /&gt;
::: ['''view3'''|'''gcadr''']/* — the type of view 3 (typically and early it is a template of [[#grpCadr|the contours group]]), contains a lot of pages of the end frames;&lt;br /&gt;
::: ['''view4'''|'''gview''']/* — the type of view 4 (typically and early it is a template of [[#ViewCadr|the overview frames panel]]), contains a lot of pages of the end frames;&lt;br /&gt;
::: ['''view5'''|'''doc''']/* — the type of view 5 (typically and early it is a logical container of the documents), contains a lot of pages of the end frames;&lt;br /&gt;
::: '''greg'''/* — the specific page template of [[#cntrRegul|the PID-regulator configuration]], contains a lot of pages of the end PID-regulators configuration, statically connected and which are call only by the &amp;quot;PID&amp;quot; button of [[#ElCadr|the element cadre]].&lt;br /&gt;
:: ['''view6'''|'''rg''']/ — logical container of the global type of view 6 (typically and early it is [[#ResultGrph|the result graphics]] — common graphs for the entire interface):&lt;br /&gt;
::: ['''view6'''|'''rg''']/* — the type of view 6 (typically and early it is a template of [[#ResultGrph|the result graphics]]), contains a lot of pages of the end frames.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Identifiers of the pages of the types of view, specified as ['''view1'''|'''mn'''], must be specified in the tree either in the new scheme &amp;quot;view1&amp;quot; or in the old scheme &amp;quot;mn&amp;quot;. Mixing is not supported and the view items must not be empty, that is contain at least one active page!&lt;br /&gt;
&lt;br /&gt;
As the text of the signal object buttons, there are used name of the logical container with the corresponding ''n'' identifier. The description of this container also takes the text of the tooltip to this button if it is not empty. Description of the container also taken into tooltip for this button, if it is not empty.&lt;br /&gt;
&lt;br /&gt;
All further adjustments and edits around this frame must be made for its copy-link in the project tree, and it is strongly not recommended to edit it in the library, otherwise you will lose the ability to update the library or these changes when updating it!&lt;br /&gt;
&lt;br /&gt;
The text and the tooltip of the buttons of the types of view are directly changed in the corresponding properties of these widgets. The fast keys of the type of view are taken from the toolbar brackets, such as &amp;quot;Graphs (CtrlAlt+G)&amp;quot;, and processed accordingly. To change the image of the type of view, it is enough to override the icon of the corresponding view, such as &amp;quot;view1&amp;quot;, by loading the image with the appropriate name in the project Mime-data.&lt;br /&gt;
&lt;br /&gt;
To enable [[#alarmsAct|the generic table of active violations]] just set '''1 (one)''' in the frame links configuration for &amp;quot;alarms &amp;gt; en&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To enable and configure the returning to some non privilege user after some time of the inactivity just set '''{minutes)-{user}''' in the frame links configuration for &amp;quot;defUser&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can change the image of the logo in the same way as the image of the type of view, that is, upload a new image called &amp;quot;logo&amp;quot; to the project's Mime-data, and then adjust the geometry of the logo widget to the desired proportions. You can move the image widget to the left by moving the signal object button to the right by the size of the logo. If you do not need the logo at all then to nullify the widget width, but do not remove it!&lt;br /&gt;
&lt;br /&gt;
Potentially, you can also move the navigation bar and the control panel container to the left by moving the main frame container, and maybe the signal object button, to the right.&lt;br /&gt;
&lt;br /&gt;
If necessary, the root page can be appended with additional elements that do not require special processing, that is, changes to the initial procedure of the frame, that is no longer using but editing. [[file:at.png]] It should be noted here that reducing the size of the containers will lead to the appearance of scrollbars and-or will require adjusting the frames of placement in the container but this may not be necessary given the extension of the container to unused button rows of the signal objects.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
When starting the frame in the runtime mode, there are first constructed the buttons of the signal objects, which are formed in two rows, after which the container of the main frames expands up for one row if there is enough one, or for two if the signal object is one. Next, there are formed buttons of the types of view, present of which are activated and expanded to fill the space of the missing ones.&lt;br /&gt;
&lt;br /&gt;
After the dynamic forming, the frame periodically controls the frame change in the main frame container, which is displayed by the corresponding background color in a button of the signal object and the type of view to which the frame belongs. Between the listing buttons, information about the total number of frames and the current position is updated, and the buttons themselves are activated according to the possibility of listing in the current frame position. For the combobox of direct frames selection from list, respectively, the current list of frames is formed and the name of the current one is set. It also monitors the status of violation-notification of the signal objects, which is accordingly displayed by the text color of the buttons of the signal object and its flashing, as well as the quietation buttons are activated or deactivated.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The frame supports now of working with very big &amp;quot;Periodic processing&amp;quot; value or disabling the periodic processing in whole (the value -2) and that value also propagated to the child pages and widgets if they want such behaviour (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
Changing of the frame in the control panel container are not tracked and their are generally called from the main frame interface, unless it is cleared by changing the main frame by opening the panel-terminator.&lt;br /&gt;
&lt;br /&gt;
From the basic actions, the frame allows the user to select the signal object, the type of view and the corresponding frame. By pressing the button of the signal object, the type of view, directly selecting in the combobox or listing; resulting in a call to the corresponding frame in the main frame container. From the ancillary actions, the user can quiet the violation-notification and start the Demo-mode, if one provided. The default frame setting involves servicing a number of hotkeys, such as '''CtrlAlt+[1...0]''' to call the signal objects 1 to 10, and '''CtrlAlt+[MGCVDR]''' to call appropriate types of view.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_RootPgSoR.png|center|frame|Fig.2b. The &amp;quot;Root page (SO)&amp;quot; frame in the runtime mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| alarms &amp;gt; en (config) || Alarms &amp;gt; Enabled || Boolean || [[#alarmsAct|The generic table of active violations]] enabling&lt;br /&gt;
|-&lt;br /&gt;
| defUser (config) || Default to return, {minutes)-{user} || String || Enabling and configuring the returning to some non privilege user after some time of the inactivity by the string '''{minutes)-{user}'''.&lt;br /&gt;
|-&lt;br /&gt;
| demoPlayProc || Procedure of the Demo play || Text || A procedure on [[Special:MyLanguage/Modules/JavaLikeCalc|the JavaLikeCalc language]] to play some demo. Enables the Demo-mode button in the runtime mode. To an example of such procedure see the demo-projects [[Special:MyLanguage/Using/Model_AGLKS|AGLKS]] and [[Special:MyLanguage/Using/Model_Boiler|Boiler]]!&lt;br /&gt;
|-&lt;br /&gt;
| colspan=4 | ''The visualizer specific attributes common for both [[Special:MyLanguage/Modules/Vision|UI.Vision]] ([[Special:MyLanguage/Modules/Vision#SpecAttrs|more]]) and [[Special:MyLanguage/Modules/WebVision|UI.WebVision]] ([[Special:MyLanguage/Modules/WebVision#SpecAttrs|more]])''&lt;br /&gt;
|-&lt;br /&gt;
| keepAspectRatio || Keep aspect ratio on scale || Boolean || Keep aspect ratio of the pages on scale.&lt;br /&gt;
|-&lt;br /&gt;
| stBarNoShow || Do not show the status bar || Boolean || Hide the status bar of the main window.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=4 | ''The visualizer specific attributes for [[Special:MyLanguage/Modules/Vision|UI.Vision]] ([[Special:MyLanguage/Modules/Vision#SpecAttrs|more]])''&lt;br /&gt;
|-&lt;br /&gt;
| runWin || Run window || Integer numbers selection || Setting the mode of the main window execution:&lt;br /&gt;
* &amp;quot;Original size (0)&amp;quot;.&lt;br /&gt;
* &amp;quot;Maximize (1)&amp;quot;.&lt;br /&gt;
* &amp;quot;Full screen (2)&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| statLine || Status line items || Text || Text field with description of the status line items.&lt;br /&gt;
|-&lt;br /&gt;
| winPosCntrSave || Windows position control and save || Boolean || Enabling the windows position control and save.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=4 | ''Main procedures of [[Special:MyLanguage/Modules/VCAEngine#Alarms|the notification mechanism]]''&lt;br /&gt;
|-&lt;br /&gt;
| notify0 || Notification: type 0 (Light) || Text ||&lt;br /&gt;
|-&lt;br /&gt;
| notify1 || Notification: type 1 (Buzzer) || Text ||&lt;br /&gt;
|-&lt;br /&gt;
| notify2 || Notification: type 2 (TextSpeech) || Text || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== {{Anch|MainFrames|Main frames}} ==&lt;br /&gt;
Contains elements-frames of the template and end types, as well as elements-widgets and panels from which they are built and used. These frames are intended to be placed in the project tree of the pages, built on [[#RootPgSo|the concept of the signal objects of the root page &amp;quot;RootPgSo&amp;quot;]]. However, they may be located as separate entities or as part of your own concept of the page management, but it should be take in account that frames often refer and call certain [[#Panels|control panels]] of the common usage and related elements!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=grpGraph /&amp;gt;&lt;br /&gt;
| {{Anch|grpGraph|&amp;lt;h3&amp;gt;Graphics group ([[Special:MyLanguage/Libs/Main_graphical_elements#grpGraph|grpGraph]]); Graphics group 10 ([[Special:MyLanguage/Libs/Main_graphical_elements#grpGraph|grpGraph10]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.6 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=grpGraph /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element-frame shown in Figure 3.1 is provided for simultaneous observation of trends and control the parameters in the signal object, includes both instances of the widget &amp;quot;[[#ElViewGraph|Graphics group element]]&amp;quot; of each parameter (up to 8 or 10) and [[Special:MyLanguage/Sub-projects/VCA#Diagram|the primitive &amp;quot;Diagram&amp;quot;]] to monitor the parameters' trends and browsing history, and also the scroll bar for fast navigation on allowed history of selected parameters for show. The variant in 10 trends is inherited from the base variant in 8 trends and you can create your own variants by inherit the base and append more graphics group elements.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_grpGraphD.png|center|frame|Fig.3.1a. The &amp;quot;Graphics group&amp;quot; frame in the development mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
The frame is designed to perform the role of page-template, and should therefore be placed directly in the project's tree. In the project-template &amp;quot;[[#RootPgSo|Signal groups]]&amp;quot;, for each signal object, this frame is included in the role of a template that allows you to create on its basis a set of pages of the graphics group. To each frame can be connected up to eight-ten parameters, setting the links. Trends, for which there are not set the links, will be hidden at runtime or allowed for user's selection at case of presence the list of the parameters to select in the attribute &amp;quot;Select: parameters accessible to select&amp;quot; (the list format described in [[#graphSelPrm|the parameters selection dialog]]).&lt;br /&gt;
&lt;br /&gt;
The default trend depth in the past is set at 10 minutes — for current operational control, which can be changed directly by editing the corresponding field of the diagram widget, for example, for the project template page, to spread to all end pages.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode, the trends, for which links have been set, are displayed. Control of the parameters from the graphics group element, described in detail in the section of the &amp;quot;[[#ElViewGraph|Graphics group element (ElViewGraph)]]&amp;quot; widget. Additionally you can control the display properties of graphs, for what, together this page, there automatically opens [[#grph_panel|the graph control panel]] or you have to click the left mouse button in the graph area.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The frame supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_grpGraphR.png|center|frame|Fig.3.1b. The &amp;quot;Graphics group&amp;quot; frame in the runtime mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| name || Name || String (translate) || Constant ||  || Group name&lt;br /&gt;
|-&lt;br /&gt;
| allowSelLst || Select: parameters accessible to select || Text || No || || Place here the parameters for selection by the user in a list of the DAQ-paths to them (for more details see the &amp;quot;[[#graphSelPrm|Graph parameter selection]]&amp;quot; dialog):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:&amp;quot;&amp;gt;&lt;br /&gt;
/LogicLev/proc/prm_CPU/prm_load&lt;br /&gt;
/LogicLev/proc/prm_MEM/prm_use&lt;br /&gt;
/LogicLev/proc/prm_CPU/prm_T &amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| perUserSel || Select: save the selection per user || Boolean || No || || Set to save the user selection separately&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Element {n} from 1 to 8(10)''&lt;br /&gt;
|-&lt;br /&gt;
| el{n} || colspan=&amp;quot;5&amp;quot; | ''List of the linking parameters corresponds to the list of the &amp;quot;Graphics group element (ElViewGraph)&amp;quot; widget''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ElViewGraph /&amp;gt;&lt;br /&gt;
| {{Anch|ElViewGraph|&amp;lt;h4&amp;gt;Graphics group element ([[Special:MyLanguage/Libs/Main_graphical_elements#ElViewGraph|ElViewGraph]])&amp;lt;/h4&amp;gt;}}&lt;br /&gt;
| 1.5 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=ElViewGraph /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || 2000 ms&lt;br /&gt;
|}&lt;br /&gt;
The element-widget shown in Figure 3.1.1 is provided to create [[#grpGraph|graphics groups]]. The widget contains information about parameter, the regulator mode, if the parameter is such, the units of analog parameter, as well as the color corresponding to the parameter's trend. The widget commonly uses and represents the representative structure of the DAQ-templates &amp;quot;[[Special:MyLanguage/Libs/Main#anUnif|Analog signal]]&amp;quot; and &amp;quot;[[Special:MyLanguage/Libs/Main#digitBlockUnif|Discrete block]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ElViewGraphD.png|center|frame|Fig.3.1.1a. The &amp;quot;Graphics group element&amp;quot; widget in the development mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
Though this widget is not intended for independent use in isolation from [[#grpGraph|the graphics groups]], it can be used, for example, placing it to the mnemonic scheme and linking with the data source parameter.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode, in the main field of the element, there are displayed the parameter name, the regulator mode (only for the regulators), the current value-variable and the unit of this parameter; which, depending on the presence of a violation, are displayed in the color style: ''labColorGood'', ''labColorWarning'', ''labColorAlarm''. At the hardware errors and non validity the data, the last value is greyed out.&lt;br /&gt;
&lt;br /&gt;
Except the available visual data, a number of control elements are provided:&lt;br /&gt;
* &amp;quot;Selection&amp;quot; — at pressing the left mouse button in the widget area, in the right side will appear [[#ElCadr|the control panel]], and the widget selection will be displayed by the border flashing.&lt;br /&gt;
* &amp;quot;Hide/Show&amp;quot; — double-clicking in the widget area toggles the show-hiding of the item's graph.&lt;br /&gt;
* &amp;quot;Context menu functions&amp;quot; — a number of functions are provided through the context menu:&lt;br /&gt;
** &amp;quot;Passport&amp;quot; — getting [[#Passport|the passport]] of the parameter, which will present all it properties.&lt;br /&gt;
** &amp;quot;Hide/Show&amp;quot; — toggling the display or hiding of a graph of this element, similar to a double click.&lt;br /&gt;
** &amp;quot;Show one&amp;quot; — single graph display of the selected parameter in its native scale by hiding the rest of the items in the group.&lt;br /&gt;
** &amp;quot;Show all&amp;quot; — display all parameter graphs in the group.&lt;br /&gt;
** &amp;quot;Calculating&amp;quot; — calling the [[#graphCalc|calculating dialog]] above the visible data of the selected parameter.&lt;br /&gt;
** &amp;quot;Select&amp;quot; — calling the [[#graphSelPrm|selection dialog]] of the parameter from the list of ones available for selection — the attribute &amp;quot;Select: parameters accessible to select&amp;quot; of the owner cadre. This item is only available if a selection list is available. From the dialog the user can clear the parameter also and what for statically preset parameters means of return to the static parameter.&lt;br /&gt;
&lt;br /&gt;
The widget saves of a user selected parameter in the session table of the project and loads the parameter at next run, include the trend color which default value typically takes from a style.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The widget supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent widget/page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ElViewGraphR.png|center|frame|Fig.3.1.1b. The &amp;quot;Graphics group element&amp;quot; widget in the runtime mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| name || Name || String (translate) || Input link || Parameter&amp;amp;#124;NAME || Parameter name-code, to display in the name field.&lt;br /&gt;
|-&lt;br /&gt;
| dscr || Description || Text (translate) || Input link || Parameter&amp;amp;#124;DESCR || Parameter description, to place in the tooltip and statusbar.&lt;br /&gt;
|-&lt;br /&gt;
| addr || Address || Address || Input link || Parameter&amp;amp;#124;var || Address to the parameter attribute for the trend building.&lt;br /&gt;
|-&lt;br /&gt;
| color || Graphic color || String || No || || Working color of the trend&lt;br /&gt;
|-&lt;br /&gt;
| colorDef || Default color from the style || String || No || || Default color of the trend on the cadre level&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Analog parameters''&lt;br /&gt;
|-&lt;br /&gt;
| ed || Dimension || String (translate) || Input link || Parameter&amp;amp;#124;ed ||&lt;br /&gt;
|-&lt;br /&gt;
| prec ||  Precision || Integer || Input link || Parameter&amp;amp;#124;prec || Number signs after the dot, for positive values, and precision (signs in whole), for negative, to display the real end variable on the screen.&lt;br /&gt;
|-&lt;br /&gt;
| log || Logarithmic scale || Boolean || Input link || Parameter&amp;amp;#124;log ||&lt;br /&gt;
|-&lt;br /&gt;
| max || Maximum || Real || Input link || Parameter&amp;amp;#124;max || Upper limit value of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| min || Minimum || Real || Input link || Parameter&amp;amp;#124;min || Minimum limit values of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| aMax || Border up alarm || Real || Input link || Parameter&amp;amp;#124;aMax ||&lt;br /&gt;
|-&lt;br /&gt;
| aMin || Border down alarm || Real || Input link || Parameter&amp;amp;#124;aMin ||&lt;br /&gt;
|-&lt;br /&gt;
| wMax || Border up warning || Real || Input link || Parameter&amp;amp;#124;wMax ||&lt;br /&gt;
|-&lt;br /&gt;
| wMin || Border down warning || Real || Input link || Parameter&amp;amp;#124;wMin || &lt;br /&gt;
|-&lt;br /&gt;
| pModeA || Regulator mode: auto || Boolean || Input link || Parameter&amp;amp;#124;auto || The regulator mode &amp;quot;Automatic&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| pModeC || Regulator mode: cascade || Boolean || Input link || Parameter&amp;amp;#124;casc || The regulator mode &amp;quot;Cascade&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Discrete parameters''&lt;br /&gt;
|-&lt;br /&gt;
| digComs || Digital: commands || String (translate) || Constant || || Names and colors of the buttons of the commands are in the format '''{On}[-color]:{Off}[-color][:{Stop}[-color]]'''. Default colors are: green, red and yellow. &lt;br /&gt;
|-&lt;br /&gt;
| digStts || Digital: states || String (translate) || Constant || || Names and colors of the labels of the states are in the format '''{On}[-color]:{Off}[-color]'''. Default colors are: green and red. &lt;br /&gt;
|-&lt;br /&gt;
| digRevers || Digital: reversion || Boolean || Constant ||  || Discrete signal reverse. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=graphSelPrm /&amp;gt;&lt;br /&gt;
| {{Anch|graphSelPrm|&amp;lt;h4&amp;gt;Graph parameter selection ([[Special:MyLanguage/Libs/Main_graphical_elements#graphSelPrm|graphSelPrm]])&amp;lt;/h4&amp;gt;}}&lt;br /&gt;
| 1.5 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=graphSelPrm /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element, shown in Figure 3.1.2, implements a dialog of selection the data source, often the archive ones, for the trend formation in the &amp;quot;[[#grpGraph|Graphics group]]&amp;quot; frame. Selection is provided from the list, specified in the attribute &amp;quot;Select: parameters accessible to select (allowSelLst)&amp;quot; of the frame-initiator. For the selected source you can specify the name, scale, logarithmic scale, dimension and the color of the trend.&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot;Select: parameters accessible to select (allowSelLst)&amp;quot; attribute the data sources should be placed in the following way:&lt;br /&gt;
* '''{DAQ_Arh_addr}[:Name[:min:max[:dim]]''', where:&lt;br /&gt;
** &amp;quot;DAQ_Arh_addr&amp;quot; — address of the parameter, for the group linking, or address of the attribute with data from the &amp;quot;Data acquisition (DAQ)&amp;quot; subsystem, as well as the address of the values' archive, for example:&lt;br /&gt;
*** '''/LogicLev/gen/prm_F3''' — address of the &amp;quot;F3&amp;quot; parameter ;&lt;br /&gt;
*** '''/DAQ/System/AutoDA/prm_CPULoad/load''' — address of the &amp;quot;load&amp;quot; attribute of the &amp;quot;CPULoad&amp;quot; parameter;&lt;br /&gt;
*** '''/Archive/va_LC21_1_var''' — address of the &amp;quot;LC21_1_var&amp;quot; archive.&lt;br /&gt;
** &amp;quot;Name&amp;quot; — name of the source to display. At the group linking the name will be taken from the &amp;quot;NAME&amp;quot; attribute.&lt;br /&gt;
** &amp;quot;min&amp;quot;, &amp;quot;max&amp;quot; — display scale. At group linking the scale will be taken from the &amp;quot;min&amp;quot; and &amp;quot;max&amp;quot; attributes, respectively. In the case of the scale absence (min &amp;gt;= max) the auto-scale will be enabled.&lt;br /&gt;
** &amp;quot;dim&amp;quot; — dimension (measuring unit) of the parameter to display. At the group linking it will be taken from the &amp;quot;ed&amp;quot; attribute.&lt;br /&gt;
* '''&amp;lt;varhs&amp;gt;''' — template of the group selection, if you specify it all available archives in the system will be included into the selection list.&lt;br /&gt;
&lt;br /&gt;
Examples of the &amp;quot;Select: parameters accessible to select (allowSelLst)&amp;quot; attribute's content:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/System/AutoDA/prm_CPULoad/load:CPU Load:0:100:%&lt;br /&gt;
/LogicLev/gen/prm_F3&lt;br /&gt;
&amp;lt;varhs&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_graphSelPrm.png|center|frame|Fig.3.1.2. The &amp;quot;Graph parameter selection&amp;quot; frame in the development and runtime mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
This frame should be placed to the panels' logical container of the project tree. The &amp;quot;Select: parameters accessible to select (allowSelLst)&amp;quot; attribute must be defined to a list of sources according to the rules described above in the &amp;quot;[[#grpGraph|Graphics groups]]&amp;quot;, which should provide the selection of the sources by the user. As a result, the &amp;quot;Select&amp;quot; item will appear in the context menu of the [[#ElViewGraph|Graphics group element]].&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
Calling the dialogue is made by the &amp;quot;Select&amp;quot; item of the [[#ElViewGraph|Graphics group element]] context menu. The dialogue provides the user to the possibility of selection the data source from the list, as well as an indication of its basic parameters: name, scale, logarithmic scale, dimension and the color of the trend, which you also can select typical/styled one by clearing. When you accept the dialogue the selected parameters are applied to the graphics group element chart, replacing the links. The &amp;quot;&amp;lt;Clear&amp;gt;&amp;quot; item selection and applying causes to clearing all the links and the graph's item. Into a text field under the list you can rapidly find any needed parameter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=graphCalc /&amp;gt;&lt;br /&gt;
| {{Anch|graphCalc|&amp;lt;h4&amp;gt;Graph parameter calculation ([[Special:MyLanguage/Libs/Main_graphical_elements#graphCalc|graphCalc]])&amp;lt;/h4&amp;gt;}} || 1.0 || GPLv2 || * || en, uk, ru &amp;lt;section end=graphCalc /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
The element, shown in Figure 3.1.3, implements a dialog of user calculation of the selected graph parameter for the graphically visible data. The user is given an option to select calculations from the built-in library, the privileged user (&amp;quot;root&amp;quot; or in the &amp;quot;ITW&amp;quot; group) has the opportunity to edit or write their own calculation procedure.&lt;br /&gt;
&lt;br /&gt;
In general, the built-in library currently contains the following functions of the user calculation:&lt;br /&gt;
* Sum, at hour.&lt;br /&gt;
* Average and range.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_graphCalc.png|center|frame|Fig.3.1.3. The &amp;quot;Graph parameter calculation&amp;quot; frame in the development and runtime mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
This frame should be placed to the panels' logical container of the project tree.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
Calling the dialogue is made by the &amp;quot;Calculation&amp;quot; item of the [[#ElViewGraph|Graphics group element]] context menu. The dialog gives the user the choice of the function of calculation the visible data of the selected parameter and the ability to edit-write their own function, for the privileged user. The calculation result is located in the corresponding text box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=grpCadr /&amp;gt;&lt;br /&gt;
| {{Anch|grpCadr|&amp;lt;h3&amp;gt;Contours group ([[Special:MyLanguage/Libs/Main_graphical_elements#grpCadr|grpCadr]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=grpCadr /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element-frame, shown in Figure 3.2, provides for simultaneous monitoring and control of contours of several parameters, up to eight, includes both instances of the widget &amp;quot;[[#ElCadr|Element cadre]] for each contour, and [[Special:MyLanguage/Sub-projects/VCA#Diagram|the primitive &amp;quot;Diagram&amp;quot;]] to monitor the trends of the contours and viewing history.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_grpCadrD.png|center|frame|Fig.3.2a. The &amp;quot;Contours group&amp;quot; frame in the development mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
The frame is designed to perform the role of page-template, and should therefore be placed directly in the project's tree. In the project-template &amp;quot;[[#RootPgSo|Signal groups]]&amp;quot;, for the first signal object, this frame is included in the role of a template that allows you to create on its basis a set of pages of the contours group. To each frame can be connected up to eight parameters, setting the links. Contours and trends, for which there are not set the links, will be hidden at runtime.&lt;br /&gt;
&lt;br /&gt;
The default trend depth in the past is set at 10 minutes — for current operational control, which can be changed directly by editing the corresponding field of the diagram widget, for example, for the project template page, to spread to all end pages.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode, the contours and trends, for which links have been set, are displayed. Control of the parameters by contours, described in detail in the section of the &amp;quot;[[#ElCadr|Element cadre]]&amp;quot; panel. In addition to this you can control the trends display properties, which requires the left mouse button to click in the trend's area and by means of appeared [[#grph_panel|trend's control panel]] to make the necessary actions.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The frame supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_grpCadrR.png|center|frame|Fig.3.2b. The &amp;quot;Contours group&amp;quot; frame in the runtime mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| grpName || Group name || String || Constant ||  || Group's name&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Element {n} from 1 to 8.''&lt;br /&gt;
|-&lt;br /&gt;
| el{n} || colspan=&amp;quot;5&amp;quot; | ''The list of the linking parameters corresponds to the &amp;quot;Element cadre (ElCadr)&amp;quot; panel''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ViewCadr /&amp;gt;&lt;br /&gt;
| {{Anch|ViewCadr|&amp;lt;h3&amp;gt;Group of overview frames ([[Special:MyLanguage/Libs/Main_graphical_elements#ViewCadr|ViewCadr]])&amp;lt;/h3&amp;gt;}} || 1.1 || GPLv2 || * || en, uk, ru &amp;lt;section end=ViewCadr /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element-frame shown in Figure 3.3 is used to display the current parameter trends in individual frames-widgets with up to 24 units (6x4) for which scaling is supported depending on their configured number. The frames-widgets of the parameter trends are implemented with the satellite widget &amp;quot;[[#ElViewCadr|Frame of the group of overview]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ViewCadrD.png|center|frame|Fig.3.3a. The &amp;quot;Group of overview frames&amp;quot; frame in the development mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
The frame is designed to perform the role of page-template, and should therefore be placed directly in the project's tree. In the project-template &amp;quot;[[#RootPgSo|Signal groups]]&amp;quot;, for the first signal object, this frame is included in the role of a template that allows you to create on its basis a set of pages of the group of overview. Frames-widgets, for which there are not set the links, will be hidden at runtime and will be performed the proportional scaling to missing full rows and columns to fill the entire frame.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode, the frames-widgets, for which links have been set, are displayed. Control of the parameters from the frames-widgets, described in detail in the section of the &amp;quot;[[#ElViewCadr|Frame of the group of overview]]&amp;quot; widget.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ViewCadrR.png|center|frame|Fig.3.3b. The &amp;quot;Group of overview frames&amp;quot; frame in the runtime mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| name || Name || String || Constant ||  || Frame's name&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Frame-widget {r}_{c},  where {r} — rows from 1 to 4  and {c} - columns from 1 to 6.'' &lt;br /&gt;
|-&lt;br /&gt;
| el{r}_{c} || colspan=&amp;quot;5&amp;quot; | ''The list of linked parameters corresponds to ones of the &amp;quot;Frame of the group of overview (ElViewCadr)&amp;quot; widget''  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ElViewCadr /&amp;gt;&lt;br /&gt;
| {{Anch|ElViewCadr|&amp;lt;h4&amp;gt;Frame of the group of overview ([[Special:MyLanguage/Libs/Main_graphical_elements#ElViewCadr|ElViewCadr]])&amp;lt;/h4&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=ElViewCadr /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element-widget, shown in Figure 3.3.1, serves as the basis for [[#ViewCadr|the group of overview frames]] and is not usually used independently. The widget displays the text information about parameter in the form of the name and value, and a trend of the parameter for small period of time (2 minutes) to observe the current trend of the parameter with auto-scaling on the value scale. The widget commonly uses and represents the representative structure of the DAQ-template &amp;quot;[[Special:MyLanguage/Libs/Main#anUnif|Analog signal]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ElViewCadr.png|center|frame|Fig.3.3.1. The &amp;quot;Frame of the group of overview&amp;quot; widget in the development and runtime modes (left to right).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
Though this widget is not intended for independent use, in isolation from [[#ViewCadr|the group of overview frames]], it can be still used, for example, placing it to the mnemonic scheme and linking with the data source parameter.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode, the main field of the element displays the parameter name, the current value-variable and the trend of the parameter; which are always displayed in the style color: ''labColorGood''.&lt;br /&gt;
&lt;br /&gt;
In the active mode of the element you can obtain [[#Passport|the parameter passport]] clicking the right mouse button on the body of the widget. The passport will present all properties of the parameter. Pressing the left mouse button in the widget body will cause to appear in the panels area for [[#ElCadr|control panel]] of the parameter, and the selection of this widget will be displayed with the blinking frame.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The widget supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent widget/page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| name || Name || String || Input link || Parameter&amp;amp;#124;NAME || Parameter name (code) for display in the name's field.&lt;br /&gt;
|-&lt;br /&gt;
| addr || Address || Address || Input link || Parameter&amp;amp;#124;var || Address to the value attribute of the parameter to construct the trend.&lt;br /&gt;
|-&lt;br /&gt;
| var || Variable || Real || Input link || Parameter&amp;amp;#124;var || Directly the parameter value to be displayed in the value field.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ResultGraph /&amp;gt;&lt;br /&gt;
| {{Anch|ResultGraph|&amp;lt;h3&amp;gt;Result graphics ([[Special:MyLanguage/Libs/Main_graphical_elements#ResultGraph|ResultGraph]])&amp;lt;/h3&amp;gt;}} || 1.1 || GPLv2 || * || en, uk, ru &amp;lt;section end=ResultGraph /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element-frame shown in Figure 3.4 is used to display a group of the current parameter trends (up to 5) in individual frames-widgets with up to 16 units (4x4) for which scaling is supported depending on their configured number. The frames-widgets of the parameter trends are implemented with the satellite widget &amp;quot;[[#ResultGraphEl|Frame of the result graphics]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Summary the total number of displayed graphs in one frame reaches 80, and it is intended to form a separate type of view that is used outside [[#RootPgSo|the signal objects]] — globally for the entire visualization project.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The frame doesn't support any control.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ResultGraphD.png|center|frame|Fig.3.4a. The &amp;quot;Result graphics&amp;quot; frame in the development mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
The frame is designed to perform the role of page-template, and should therefore be placed directly in the project's tree. In the project-template &amp;quot;[[#RootPgSo|Signal groups]]&amp;quot;, at the root page level it has a special virtual page &amp;quot;Result graphics&amp;quot; with the result graphics template, that allows you to create on its basis a set of pages of the result graphics. Frames-widgets, for which there are not set any links, will be hidden at runtime and will be performed the proportional scaling to missing full rows and columns to fill the entire frame.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode, the frames-widgets, for which links have been set, are displayed.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ResultGraphR.png|center|frame|Fig.3.4b. The &amp;quot;Result graphics&amp;quot; frame in the runtime mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| grpName || Group name || String || Constant ||  || Group name&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Frame-widget {n} from 1 to 16.'' &lt;br /&gt;
|-&lt;br /&gt;
| el{n} || colspan=&amp;quot;5&amp;quot; | ''The list of linking parameters corresponds to the &amp;quot;Frame of the result graphics (ResultGraphEl)&amp;quot; widget.''  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ResultGraphEl /&amp;gt;&lt;br /&gt;
| {{Anch|ResultGraphEl|&amp;lt;h4&amp;gt;Frame of the result graphics ([[Special:MyLanguage/Libs/Main_graphical_elements#ResultGraphEl|ResultGraphEl]])&amp;lt;/h4&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=ResultGraphEl /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element-widget, shown in Figure 3.4.1, serves as the basis for [[#ResultGraph|the result graphics]] and is not usually used independently. The widget displays the name of the group and up to five trends, with their text labels, over a fixed period of time (10 minutes) to observe the current trend of the parameters. The widget commonly uses and represents the representative structure of the DAQ-template &amp;quot;[[Special:MyLanguage/Libs/Main#anUnif|Analog signal]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ResultGraphEl.png|center|frame|Fig.3.4.1. The &amp;quot;Frame of the result graphics&amp;quot; widget in the development and runtime modes (left to right).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
Though this widget is not intended for independent use, in isolation from [[#ResultGrph|the result graphics]], it can be still used, for example, placing it to the mnemonic scheme and linking with the data source parameter.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode, the main element field displays the group header, headers and trends of the parameters in the configuration-defined or styled colors.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The widget supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent widget/page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| title || Title || String || Constant || || Displays at the top of the graphs, in the absence the graphs field expands up.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Parameter {n} from 1 to 5.''&lt;br /&gt;
|-&lt;br /&gt;
| p{n}_addr || Parameter{n}: address || Address || Input link || Parameter {n}&amp;amp;#124;var || Address to the parameter attribute for plotting the graph {n}.&lt;br /&gt;
|-&lt;br /&gt;
| p{n}_clr || Parameter{n}: color || Color || From style || labColorGrph{n} || &lt;br /&gt;
|-&lt;br /&gt;
| p{n}_max || Parameter{n}: maximum || Real || Input link || Parameter {n}&amp;amp;#124;max || Upper limit of the trend.&lt;br /&gt;
|-&lt;br /&gt;
| p{n}_min || Parameter{n}: minimum || Real || Input link || Parameter {n}&amp;amp;#124;min || Lower limit of the trend.&lt;br /&gt;
|-&lt;br /&gt;
| p{n}_name || Parameter{n}: name || String || Input link || Parameter {n}&amp;amp;#124;NAME || Short name of the parameter to display in the field on the left.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=cntrRegul /&amp;gt;&lt;br /&gt;
| {{Anch|cntrRegul|&amp;lt;h3&amp;gt;Regulator's control panel ([[Special:MyLanguage/Libs/Main_graphical_elements#cntrRegul|cntrRegul]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=cntrRegul /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
Element-frame, shown in Figure 3.5, is used for adjustment of PID-regulator, includes information about the parameter-regulator, fields of the regulator's settings and [[Special:MyLanguage/Sub-projects/VCA#Diagram|the &amp;quot;Diagram&amp;quot; primitive]], to monitor the trends of the regulator and browsing history. The frame commonly uses and represents the representative structure of the DAQ-template for the [[Special:MyLanguage/Libs/Main#pidUnif|analog]] and [[Special:MyLanguage/Libs/Main#pidUnifImp|pulse]] PID-regulators.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' [http://diyaorg.dp.ua DIYA Ltd]&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_cntrRegulD.png|center|frame|Fig.3.5a. The &amp;quot;Regulator's control panel&amp;quot; frame in the development mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — Development}}&lt;br /&gt;
This frame can be used as a panel, called from [[#ElCadr|the control of panel of the parameters]], as well as a template-page. The frame should be placed directly in the project's tree, namely to [[#RootPgSo|the panels container]], where the dynamic linking will be performed to the regulator parameter. To create a static list of contours of the regulators' configuration, with the possibility of listing in it, you must place them in the container &amp;quot;greg&amp;quot; of the regulators' contours of each [[#RootPgSo|signal object]] and statically link them with the corresponding parameter, and to ensure equality of the panel's ID and the linked parameter.&lt;br /&gt;
&lt;br /&gt;
The default trend depth in the past is set at 20 minutes — for current operational control, which can be changed directly by editing the corresponding field of the diagram widget.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode, you can see:&lt;br /&gt;
* name of the regulator parameter;&lt;br /&gt;
* field with the regulator properties in the composition: identifier, name, description, measuring unit, set-point, variable output, scale and mode;&lt;br /&gt;
* coefficients of the regulator configuration: Gain, Ci, Ti, Cd, Td, TdLg, Zin, H1, H2, C1, C2, C3, C4, Tpl, Tml and Rfkt;&lt;br /&gt;
* the diagram area with displaying the trends: variable (green, the style &amp;quot;labColorGrph4&amp;quot;), set-point (blue, the style &amp;quot;labColorGrph3&amp;quot;), the analog output (cyan, the style &amp;quot;labColorGrph5&amp;quot;), the regulator mode &amp;quot;Automate&amp;quot; (magenta, the style &amp;quot;labColorGrph7&amp;quot;) and the digital outputs (orange, the style &amp;quot;labColorGrph2&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Users have an ability to change the PID-regulator's coefficients, mode, set-point, output and immediately to see the reaction on the diagram. In addition, the user may learn the history of the regulator work, which requires the left mouse button click in the graph area and by means of appeared [[#grph_panel|trend's control panel]] to make the necessary navigation actions. To return [[#ElCadr|the control panel of the parameter]] the left mouse button must be clicked in an empty area of the frame.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_cntrRegulR.png|center|frame|Fig.3.5b. The &amp;quot;Regulator's control panel&amp;quot; frame in the runtime mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Parameter: code || String || Input link || Parameter&amp;amp;#124;SHIFR ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Parameter: code || String || Input link || Parameter&amp;amp;#124;NAME ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Parameter: description || String || Input link || Parameter&amp;amp;#124;DESCR ||&lt;br /&gt;
|-&lt;br /&gt;
| max || Parameter: scale maximum || Real || Input link || Parameter&amp;amp;#124;max ||&lt;br /&gt;
|-&lt;br /&gt;
| min || Parameter: scale minimum || Real || Input link || Parameter&amp;amp;#124;min ||&lt;br /&gt;
|-&lt;br /&gt;
| ed || Parameter: dimension of variable || String || Input link || Parameter&amp;amp;#124;ed ||&lt;br /&gt;
|-&lt;br /&gt;
| prec || Parameter: precision || Integer || Input link || Parameter&amp;amp;#124;prec || Number of digits after coma, placed in value and set-point of the PID.&lt;br /&gt;
|-&lt;br /&gt;
| var || Parameter: variable || Real || Input link || Parameter&amp;amp;#124;var ||&lt;br /&gt;
|-&lt;br /&gt;
| var_addr || Parameter: variable address || Address || Input link || Parameter&amp;amp;#124;var || Address for the trend building of the variable.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''PID-regulator''&lt;br /&gt;
|-&lt;br /&gt;
| auto_addr || Parameter: auto || Address || Input link || Parameter&amp;amp;#124;auto || Address for the trend building of the mode &amp;quot;Auto&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| sp || Parameter: set-point || Real || Input link || Parameter&amp;amp;#124;sp ||&lt;br /&gt;
|-&lt;br /&gt;
| sp_addr || Parameter: set-point address || Address || Input link || Parameter&amp;amp;#124;sp || Address for the trend building of the set-point.&lt;br /&gt;
|-&lt;br /&gt;
| out || Parameter: output || Real || Input link || Parameter&amp;amp;#124;out ||&lt;br /&gt;
|-&lt;br /&gt;
| out_addr || Parameter: output address || Address || Input link || Parameter&amp;amp;#124;out || Address for the trend building of the analog output.&lt;br /&gt;
|-&lt;br /&gt;
| Hdwn || Parameter: bottom output border || Real || Full link || Parameter&amp;amp;#124;Hdwn || Limit the analog output value at the bottom.&lt;br /&gt;
|-&lt;br /&gt;
| Hup || Parameter: upper output border || Real || Full link || Parameter&amp;amp;#124;Hup || Limit the analog output value at the top.&lt;br /&gt;
|-&lt;br /&gt;
| Kp || Parameter: gain coefficient || Real || Full link || Parameter&amp;amp;#124;Kp ||&lt;br /&gt;
|-&lt;br /&gt;
| Ki || Parameter: coeff. of integration || Real || Full link || Parameter&amp;amp;#124;Ki ||&lt;br /&gt;
|-&lt;br /&gt;
| Ti || Parameter: time of integration || Real || Full link || Parameter&amp;amp;#124;Ti ||&lt;br /&gt;
|-&lt;br /&gt;
| Kd || Parameter: coeff. of differential || Real || Full link || Parameter&amp;amp;#124;Kd ||&lt;br /&gt;
|-&lt;br /&gt;
| Td || Parameter: time of differentiation || Real || Full link || Parameter&amp;amp;#124;Td ||&lt;br /&gt;
|-&lt;br /&gt;
| Tzd || Parameter: differential part lag time || Real || Full link || Parameter&amp;amp;#124;Tzd ||&lt;br /&gt;
|-&lt;br /&gt;
| Zi || Parameter: insensitivity area || Real || Full link || Parameter&amp;amp;#124;Zi ||&lt;br /&gt;
|-&lt;br /&gt;
| K1 || Parameter: input 1 coefficient || Real || Full link || Parameter&amp;amp;#124;K1 ||&lt;br /&gt;
|-&lt;br /&gt;
| K2 || Parameter: input 2 coefficient || Real || Full link || Parameter&amp;amp;#124;K2 ||&lt;br /&gt;
|-&lt;br /&gt;
| K3 || Parameter: input 3 coefficient || Real || Full link || Parameter&amp;amp;#124;K3 ||&lt;br /&gt;
|-&lt;br /&gt;
| K4 || Parameter: input 4 coefficient || Real || Full link || Parameter&amp;amp;#124;K4 ||&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Pulse PID-regulator''&lt;br /&gt;
|-&lt;br /&gt;
| impQdwn_addr || Parameter: address of impulse output down || Address || Input link || Parameter&amp;amp;#124;impQdwn || Address for the trend building of the pulse output &amp;quot;Down&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| impQup_addr || Parameter: address of impulse output up || Address || Input link || Parameter&amp;amp;#124;impQup || Address for the trend building of the pulse output &amp;quot;Up&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| KImpRfact || Parameter: rate factor || Real || Full link || Parameter&amp;amp;#124;KImpRfact || Asymmetry in up and down pulse width generation.&lt;br /&gt;
|-&lt;br /&gt;
| TImpMin || Parameter: minimal impulse time || Integer || Full link || Parameter&amp;amp;#124;TImpMin || Pulses are generated from the specified width.&lt;br /&gt;
|-&lt;br /&gt;
| TImpPer || Parameter: pulses period || Integer || Full link || Parameter&amp;amp;#124;TImpPer || Periodicity of repetition of pulse generation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=alarmsSt /&amp;gt;&lt;br /&gt;
| {{Anch|alarmsSt|&amp;lt;h3&amp;gt;Alarms — state ([[Special:MyLanguage/Libs/Main_graphical_elements#alarmsSt|alarmsSt]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.5 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=alarmsSt /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
The element-frame in Figure 3.6 serves to display the violations history and to update their dynamically for the current time in a full-format tabular form, to highlight them in color and text and the possibility of multilevel filtering. The violations are obtained from [[Special:MyLanguage/Documents/Program_manual#ArchMess|the buffer of current-active violations of OpenSCADA]] and archive(s), specified in the configuration field &amp;quot;'''alArch'''&amp;quot;. In fact, the element implements the primitive &amp;quot;[[Special:MyLanguage/Sub-projects/VCA#ImplProtocol|Protocol]]&amp;quot; functions for violations and extension opportunities.&lt;br /&gt;
&lt;br /&gt;
The frame in general contains elements:&lt;br /&gt;
* the messages table — the main area;&lt;br /&gt;
* a button of the mass confirmation — the top left;&lt;br /&gt;
* a combobox of selection of the data model level sort rule, it provides sorting by the selected column from the list defined in '''colms''' and by default this is time, as the second criterion (last on the top) — the next one top left;&lt;br /&gt;
* a navigation panel at the messages history-archive — the top centre and right, consisting of:&lt;br /&gt;
** the top-end time of the data;&lt;br /&gt;
** size — depth of the data requesting;&lt;br /&gt;
** the buttons of fast listing — per one and five intervals-depths forward and backward and at the current time;&lt;br /&gt;
** a button to quickly move to the next part of a large query interval, divided by the limit on the number of messages in the table — for very dense-active messages generation;&lt;br /&gt;
** a button to call-form of the report document for the actual table's data.&lt;br /&gt;
* elements of the five-level filter with displaying the next level at activation the last one, by selecting a column from the list of specified ones in '''colms''' — the top after the previous one.&lt;br /&gt;
&lt;br /&gt;
According to the announced list of the control elements, message sorting can be modified by the user, both by the built-in column sorting mechanism of a single visualizer and at the data model level, if such function the visualizer is not provided. Considering the basic purpose of the frame is the status of the violations (ie history), the default sorting rule is the &amp;quot;last&amp;quot; to the messages top.&lt;br /&gt;
&lt;br /&gt;
The frame is created, and is usually used, in pair with the [[#alarmsAct|widget of dynamically display the active violations]], which is completed with main features of this frame but only for active violations and in the small widget.&lt;br /&gt;
&lt;br /&gt;
The main user extension is the ability to define visible table fields from a list of options:&lt;br /&gt;
* ''atm'' — time of the violation appearing;&lt;br /&gt;
* ''qttm'' — time of the violation confirmation;&lt;br /&gt;
* ''nrmtm'' — time of coming-returning the violation to the state &amp;quot;NORM&amp;quot;;&lt;br /&gt;
* ''lev'' — level of the violation;&lt;br /&gt;
* ''type'' — type-name of the violation from the level ''lev'' and the attribute &amp;quot;types&amp;quot;;&lt;br /&gt;
* ''cat'' — category of the violation;&lt;br /&gt;
* ''mess'' — full and unparsed text of the violation message;&lt;br /&gt;
* ''prm'' — address of the DAQ-parameter of the data source;&lt;br /&gt;
* ''dscr'' — description of the violation from the source DAQ-parameter;&lt;br /&gt;
* ''dscrCust{N}'' — description of the user field ''N'';&lt;br /&gt;
* ''alrm'' — text of the violation;&lt;br /&gt;
* ''cmnt'' — commentary of the violation.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] This frame and its fields generally represent the structure of the violation message, which is described in detail in [[Special:MyLanguage/Documents/Program_manual#ArchMess|the Program manual]].&lt;br /&gt;
&lt;br /&gt;
As you can see from the list of possible table fields, this item supports confirmation, commenting, and user fields.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' Ustijancev Michael&lt;br /&gt;
* '''Sponsored by, for appending the new user field &amp;quot;Type&amp;quot; on 0.2 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' INSERTEC LTDA&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_alarmsStD.png|center|frame|Fig.3.6a. The frame &amp;quot;Alarms — state&amp;quot; in the development mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
The widget is designed to perform the role of page, and should therefore be placed directly in the project's tree. After adding, the frame must be adjusted for the properties, such as the list and the order in which the table fields are displayed.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Because the frame displays the status and the history of the violations, the creation and use of [[Special:MyLanguage/Documents/Program_manual#ArchMess|the message archiver]] is mandatory. Therefore, create or use a template archiver &amp;quot;Alarms&amp;quot; of the startup project with duplicate exclusion options, and specify it (FSArch.alarms) in the frame property &amp;quot;'''alArch'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The combobox of selecting sorting rule is disabled by default for the sake of using the built-in column sort function of the table of the corresponding visualizer. If this feature is not provided by the visualizer then enable this combo box.&lt;br /&gt;
&lt;br /&gt;
If you want to exclude the validation function then you have to exclude the validation time &amp;quot;qttm&amp;quot; from the list and make the table element inactive.&lt;br /&gt;
&lt;br /&gt;
The report building at the table data is also disabled by default. To enable it, you have to place [[#alarmsStReport|the frame of alarms reporting]] in the logical container of panels of the project tree and then enable the characteristic report generation button in the upper right corner of this frame.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode, a table is created from the active violations list, for the current time, and violations from the history by defined fields, with the activity control and marking and rules of the highlighting; the contents of which are updated periodically and dynamically for the current time.&lt;br /&gt;
&lt;br /&gt;
The user can use the navigation bar to determine the time interval of the data in the table, specifying the top-end and depth of the required data. In the process of requesting too tight data spaces, only the number of messages specified in the property '''messLim''' will be readable, and the user can use the button in the navigation bar, what appears in that case, to move to the next piece.&lt;br /&gt;
&lt;br /&gt;
The data obtained in the table can be filtered by the content of the column selected accordingly, which can be performed at up to five levels, the filter elements of which will appear after the last filter level is selected.&lt;br /&gt;
&lt;br /&gt;
The user is given the opportunity to confirm the violation, by changing the value of the confirmation time field or by using the control panel that pops up after selecting the table element and the violation item. The user may also confirm all active violations by clicking the mass confirmation button.&lt;br /&gt;
&lt;br /&gt;
If there is a column sort function in the visualizer, or enable sorting at the data model level, the user can select a column to sort the table rows at that content.&lt;br /&gt;
&lt;br /&gt;
The user may also comment on the violation by correcting appropriate field of the table.&lt;br /&gt;
&lt;br /&gt;
To generate a separate report, the user can click the characteristic button in the top right corner if this feature is enabled.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_alarmsStR.png|center|frame|Fig.3.6b. The frame &amp;quot;Alarms — state&amp;quot; in the runtime mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| messCat || Message category || String || Category of the processing messages, typically it is &amp;quot;al*:*&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| messLim || Messages limit, quantity || Integer || Maximum quantity of the messages in the table, typically it is 1000.&lt;br /&gt;
|-&lt;br /&gt;
| alArch || Alarms archiver, &amp;quot;{ArhMod}.{Arh}&amp;quot; || String || An archiver from which the violations will be taken, empty for all ones.&lt;br /&gt;
|-&lt;br /&gt;
| alarms.active || Active || Boolean || Turn off if there disabled confirmation, focus gaining and editing in general — purely displaying.&lt;br /&gt;
|-&lt;br /&gt;
| hHdrVis || Show header: horizontal || Boolean ||&lt;br /&gt;
|-&lt;br /&gt;
| vHdrVis || Show header: vertical || Boolean ||&lt;br /&gt;
|-&lt;br /&gt;
| formDtTm || Data and time format (%Y-%m-%d %H.%M.%S[.%MS,%US]) || String || Format of displaying the time of violation and confirmation.&lt;br /&gt;
|-&lt;br /&gt;
| colms || Columns&lt;br /&gt;
List separated by ',' from the variants: atm, qttm, nrmtm, lev, type, cat, mess, prm, dscr, dscrCust{N}, alrm, cmnt.&lt;br /&gt;
| String || Determine in the desired sequence and the fields filling.&lt;br /&gt;
|-&lt;br /&gt;
| highLght || Highlight rules&lt;br /&gt;
Rows in the form &amp;quot;{lev}[{slev}]{quitt}{act}:{color}:{font}:{fontColor}&amp;quot;.&lt;br /&gt;
| Text || Highlight rules, where:&lt;br /&gt;
* ''lev'' — main level of the message [0...7];&lt;br /&gt;
* ''slev'' — sub-level of the message [0...9], optional;&lt;br /&gt;
* ''quitt'' — sign of the message confirmation [0|1];&lt;br /&gt;
* ''act'' — sign of the message activity [0|1];&lt;br /&gt;
* ''color'' — background color of the message row;&lt;br /&gt;
* ''font'' — text font of the message row;&lt;br /&gt;
* ''fontColor'' — text color of the message row.&lt;br /&gt;
To example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;BASH&amp;quot;&amp;gt;&lt;br /&gt;
#&amp;lt;SnthHgl font=&amp;quot;monospace&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;rule expr=&amp;quot;^#[^\n]*&amp;quot; color=&amp;quot;gray&amp;quot; font_italic=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
# &amp;lt;rule expr=&amp;quot;^[0-9]*&amp;quot; color=&amp;quot;blue&amp;quot;&amp;gt;&lt;br /&gt;
#  &amp;lt;rule expr=&amp;quot;[01]{2}$&amp;quot; color=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
#   &amp;lt;rule expr=&amp;quot;[01]$&amp;quot; color=&amp;quot;darkorange&amp;quot;/&amp;gt;&lt;br /&gt;
#  &amp;lt;/rule&amp;gt;&lt;br /&gt;
# &amp;lt;/rule&amp;gt;&lt;br /&gt;
# &amp;lt;rule expr=&amp;quot;(?&amp;lt;=:).*&amp;quot;&amp;gt;&lt;br /&gt;
#  &amp;lt;rule expr=&amp;quot;[^:]*&amp;quot; font_weight=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
#  &amp;lt;rule expr=&amp;quot;(?&amp;lt;=:).*&amp;quot; font_italic=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
# &amp;lt;/rule&amp;gt;&lt;br /&gt;
#&amp;lt;/SnthHgl&amp;gt;&lt;br /&gt;
501:gray&lt;br /&gt;
401:red&lt;br /&gt;
1501:yellow&lt;br /&gt;
511:gray:Arial 11 0 1&lt;br /&gt;
411:red:Arial 11 0 1&lt;br /&gt;
1511:yellow:Arial 11 0 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colDscrCustNames || Names list of the user fields, separated by ';' || String (translate) || At the support of user fields and their visibility, their names are given here.&lt;br /&gt;
|-&lt;br /&gt;
| types || Types list at the level from 0, separated by ';' || String (translate) || Types-names of alarms at their level, typically &amp;quot;Debug;Info;Notice;Warning;Error;Critical;Alert;Emergency&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=alarmsStReport /&amp;gt;&lt;br /&gt;
| {{Anch|alarmsStReport|&amp;lt;h4&amp;gt;Report ([[Special:MyLanguage/Libs/Main_graphical_elements#alarmsStReport|alarmsStReport]])&amp;lt;/h4&amp;gt;}} || 1.0 || GPLv2 || * || en, uk, ru &amp;lt;section end=alarmsStReport /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
The element-frame, shown in Figure 3.6.1, implements a dialog to display a report document based on a list of violations received from [[#alarmsSt|the full-format frame of presenting the violations history]].&lt;br /&gt;
&lt;br /&gt;
The main purpose and function of this frame is to provide an opportunity to print the violations history table and export data from it.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' Ustijancev Michael&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_alarmsStReport.png|center|frame|Fig.3.6.1. The frame &amp;quot;Alarms — report&amp;quot;.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
This frame should be placed to the panels' logical container of the project tree.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
Calling the dialogue is made by a characteristic button, at the top right, of [[#alarmsSt|the full-format frame of presenting the violations history]]. The dialog provides the text of the report document and a button at the bottom right to close it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=userManager /&amp;gt;&lt;br /&gt;
| {{Anch|userManager|&amp;lt;h3&amp;gt;Users manager ([[Special:MyLanguage/Libs/Main_graphical_elements#userManager|userManager]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.7 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=userManager /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -2 ms (disabled)&lt;br /&gt;
|}&lt;br /&gt;
The element-frame, shown in Figure 3.7, serves to control users from the user interface itself. That is, typically this feature is provided to the SCADA programmer at [[Special:MyLanguage/Documents/Program_manual#CfgSecurity|the Security subsystem configuration]], but sometimes there is a need to provide this capability from the user interface and with a few restrictions on controlled users and their groups that this frame performs and generally provides:&lt;br /&gt;
* forming a list of controlled users;&lt;br /&gt;
* the ability to view and change user information for: name, full name, description, password and groups;&lt;br /&gt;
* adding new and deleting existing users;&lt;br /&gt;
* the possibility to edit the unprivileged user own information and password.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' Vinnica Poultry Farm&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_userManagerD.png|center|frame|Fig.3.7a. The &amp;quot;Users manager&amp;quot; frame in the development mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
The widget is designed to perform the role of a page, and should therefore be placed directly in the project's tree. Additionally, into the panels folder of the project, you need to place [[#accept|the acception dialog frame]] and some attribute configuration is required, below, where no links are provided.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode, a list is formed with available users and, at their selection, on the right displayed their information that can be changed. The user can be added and removed by the appropriate interface commands under the list of users.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_userManagerR.png|center|frame|Fig.3.7b. The &amp;quot;Users manager&amp;quot; frame in the runtime mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| owner || Owner || String || Owner and group of the frame that have access to it, typically &amp;quot;root:Security&amp;quot; — to allow the frame to be accessed, the user must be included in the &amp;quot;Security&amp;quot; group.&lt;br /&gt;
|-&lt;br /&gt;
| perm || Access || Integer numbers selection || Frame access rules, typically &amp;quot;RWRW__&amp;quot; — the frame is viewable and controllable only for &amp;quot;root&amp;quot; and users in the &amp;quot;Security&amp;quot; group.&lt;br /&gt;
|-&lt;br /&gt;
| denyUsers || Deny to control: users, separated by ';' || String || A list of do not controlled users, typically &amp;quot;root;&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| denyGroups || Deny to control: groups, separated by ';' || String || A list of do not controlled groups, typically &amp;quot;root;users;Archive;BD;DAQ;ModSched;Protocol;Security;Special;Transport;UI;&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| newUseGrps || Groups of new created user || String || Groups to which the user is automatically included, after creation, are typically &amp;quot;UI;Guest&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| storeDB || DB of saving new users || String || Database of storage of newly created users, by default — the work one.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=storeHouse /&amp;gt;&lt;br /&gt;
| {{Anch|storeHouse|&amp;lt;h3&amp;gt;Storehouse ([[Special:MyLanguage/Libs/Main_graphical_elements#storeHouse|storeHouse]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 2.3 || GPLv2 || * || en, uk&lt;br /&gt;
&amp;lt;section end=storeHouse /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element-frame, shown in Figure 3.8, serves to manage of storehouses on different classes-categories of the storing-managing things. Initially that was developed and tested on the class &amp;quot;Library&amp;quot;. The frame means of the direct accessing the DB by SQL and currently supports only MySQL/MariaDB.&lt;br /&gt;
&lt;br /&gt;
During the frame implementing, the view &amp;quot;Table&amp;quot; of [[Special:MyLanguage/Modules/VCAEngine|the primitive &amp;quot;FormEl&amp;quot;]] significantly expanded on both visualizers, also as other OpenSCADA parts:&lt;br /&gt;
{{#lst:Documents/Release_0.9/Update4/en|FormElTable}}&lt;br /&gt;
::* VCAEngine: Appending of the not processed events sending to a page who opened the source page.&lt;br /&gt;
::* JavaLikeCalc: Implementing the &amp;quot;var&amp;quot; statement for true scope processing, that is defining new variables in functions with the statement and using global ones without.&lt;br /&gt;
&lt;br /&gt;
The frame provides currently and in future for next features:&lt;br /&gt;
* '''Class edition mode''': observing, creation and edition the storehouse classes with a function of storing data at the field type change.&lt;br /&gt;
* '''Main data observing and edition mode''':&lt;br /&gt;
** observing main data of the selected or fixed storehouse classes in a big table with possibility of sorting and filtering by up to five columns;&lt;br /&gt;
** editing of content of the table cells in the edition mode;&lt;br /&gt;
** adding, copying and removing of records-rows of the table in the edition mode;&lt;br /&gt;
** generation of the report document of the selected item, which is ready to print and convenient in complete observing;&lt;br /&gt;
** generation of the report document of the main table with accounting the filter settings and natural show the specific fields;&lt;br /&gt;
** detailed control panel-form of the selected item with the specific fields;&lt;br /&gt;
** fast control and accessing data of the complex fields through the dynamic Control Panel based on the [[#terminator|Terminator frame]].&lt;br /&gt;
&lt;br /&gt;
The storehouse classes are stored in the table &amp;quot;classes&amp;quot; with the fixed table structure &amp;quot;&amp;lt;u&amp;gt;'''CLASS'''&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;'''ID'''&amp;lt;/u&amp;gt;, '''NAME''', '''TP''' , '''TBL''', '''FILTER''', '''PROC'''&amp;quot;, where:&lt;br /&gt;
* ''CLASS'' [varchar(20)] — class ID;&lt;br /&gt;
* ''ID'' [varchar(20)] — specific field ID of the class;&lt;br /&gt;
* ''NAME'' [text] — specific field localised name of the class, where the first line for the default value and the next lines form in the view '''{2SymbolLang}:{LocalizedText}''';&lt;br /&gt;
* ''TP'' [varchar(100)] — specific field type of the class, which correspond directly to the MySQL data types and some specific ones:&lt;br /&gt;
:* &amp;quot;'''file[:{max}[:{storage}[:{MIME}[:{OverViewSz}]]]]'''&amp;quot; — attaching files with the parameters:&lt;br /&gt;
::* ''max'' — maximum files allowed to attach;&lt;br /&gt;
::* ''storage'' — storage of the files on the File System with the specified path, and empty to store directly in the DB field of the type LONGTEXT;&lt;br /&gt;
::* ''MIME'' — files type, allowed to attach-load, where empty for any and like to &amp;quot;image/*&amp;quot; for only images;&lt;br /&gt;
::* ''OverViewSz'' — enable a field of the image files overview on the item form with the specified size in pixels.&lt;br /&gt;
* ''TBL'' [varchar(100)] — specific field properties of representing data in the table, has the format '''{align}:{width}:{pos}''', where:&lt;br /&gt;
:* ''align'' — column alignment, supports the values: &amp;quot;left&amp;quot;, &amp;quot;center&amp;quot;, &amp;quot;right&amp;quot;; where the &amp;quot;left&amp;quot; value is default one for strings and &amp;quot;center&amp;quot; for other;&lt;br /&gt;
:* ''width'' — forced width for the column, in percents at symbol &amp;quot;%&amp;quot; in the end or in pixels;&lt;br /&gt;
:* ''pos'' — the column position in the string view, so you can write that like to &amp;quot;005&amp;quot; for true sort.&lt;br /&gt;
* ''FILTER'' [text] — specific field properties of filtering and indexing lists preparing for the filter selection, for the variants: '''index''' and '''list{SepSymb}''', where:&lt;br /&gt;
:* ''index'' — the column value means as whole one for indexing;&lt;br /&gt;
:* ''list{SepSymb}'' — the column value means as a list of items for indexing, separated by symbol ''SepSymb''.&lt;br /&gt;
: From the second line you can specify rules of the highlighting in the form &amp;quot;'''{ID}:{FLGS}:{color}:{font}'''&amp;quot;, where:&lt;br /&gt;
:* ''ID'' — indexed or listed value in the cell;&lt;br /&gt;
:* ''FLGS'' — flags list in values [0|1], currently that is only &amp;quot;Highlight [Cell|Row]&amp;quot;;&lt;br /&gt;
:* ''color'' — the background color;&lt;br /&gt;
:* ''font'' — the text font.&lt;br /&gt;
* ''PROC'' [text] — a procedure of calculation the cell value on the internal language [[Special:MyLanguage/Modules/JavaLikeCalc|JavaLikeCalc.JavaScript]] of OpenSCADA, the column is become the logical one; cells of the logical columns aren't accessible for the manual edition; all cells of the record-row are accessed in the procedure as them IDs, including the calculated one which you have to assign in some value; you can use that feature also as a temporary one, that is install a procedure for calculation and next clean up that;&lt;br /&gt;
: [[file:at.png]] Setting here a procedure will clean up (set to NULL) all the column cells!&lt;br /&gt;
&lt;br /&gt;
Data of storehouse of the corresponded class stores in different table with name &amp;quot;sh_{CLASS}&amp;quot; and the structure &amp;quot;&amp;lt;u&amp;gt;'''ID'''&amp;lt;/u&amp;gt;, '''NAME''', '''DSCR''', '''SP_{ID}1''', ..., '''SP_{ID}N'''&amp;quot;, where:&lt;br /&gt;
* ''ID'' [INT] — automatic index of the table, allowed for change the visibility;&lt;br /&gt;
* ''NAME'' [varchar(200)] — name of the item, allowed for change the type;&lt;br /&gt;
* ''DSCR'' [text] — description of the item;&lt;br /&gt;
* ''SP_{ID}X'' — specific field of the class corresponding to ''ID'' in the class table.&lt;br /&gt;
&lt;br /&gt;
For the special means there in the table &amp;quot;classes&amp;quot; reserved and forcibly created fields &amp;quot;*TITLE&amp;quot; for the whole storehouse localised name and &amp;quot;*NAME&amp;quot;, &amp;quot;*DSCR&amp;quot; which control the corresponded fixed fields.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_storeHouseD.png|center|frame|Fig.3.8a. The &amp;quot;Storehouse&amp;quot; frame in the development mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
The widget is designed to perform the role of a page, and should therefore be placed directly in the project's tree. Additionally, into the panels folder of the project, you need to place [[#accept|the accepting dialog frame]] and some attribute configuration is required, below, where no links are provided.&lt;br /&gt;
&lt;br /&gt;
To enable the reporting, you have to place [[#alarmsStReport|the frame of alarms reporting]] in the logical container of panels of the project tree.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode you will see a single big table for class (Fig.3.8b) and data (Fig.3.8c) representing with edition right in the table, on the control panel or in the item edition form (Fig.3.8d).&lt;br /&gt;
&lt;br /&gt;
In the main class data representing mode the users can observe the table, filter and sort the representing data at the specified fields.&lt;br /&gt;
&lt;br /&gt;
In the main class data edition mode the users, allowed to edit, can add, copy, remove the rows/records and edit the fields.&lt;br /&gt;
&lt;br /&gt;
In the class edition mode, the users, allowed to edit, can add new and remove present (after removing the last item) classes; and add, remove the specific class fields and edit properties of that fields.&lt;br /&gt;
&lt;br /&gt;
For user access limitation there provided now only a mechanism of including the allowed for the class and data edition users to the group &amp;quot;ITW&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To generate a separate report, the user can click a characteristic button in the top right corner.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The frame supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to from parent (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_storeHouseClassR.png|center|frame|Fig.3.8b. The &amp;quot;Storehouse&amp;quot; frame in the runtime mode at the class representing.]]&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_storeHouseDataR.png|center|frame|Fig.3.8c. The &amp;quot;Storehouse&amp;quot; frame in the runtime mode at the data representing with the control panel.]]&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_storeHouseDataRf.png|center|frame|Fig.3.8d. The &amp;quot;Storehouse&amp;quot; frame in the runtime mode at the item edition form.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| class || Class: initial || String || Forced/initial class for first opening.&lt;br /&gt;
|-&lt;br /&gt;
| classEditable (Constant) || Class: editable || Boolean || Flag of allowing for the class edition.&lt;br /&gt;
|-&lt;br /&gt;
| classFix (Constant) || Class: fixed || String || The fixed class for which the frame performed only, denying access for other classes.&lt;br /&gt;
|-&lt;br /&gt;
| dataEditable (Constant) || Data: editable || Boolean || Flag of allowing for the main data edition.&lt;br /&gt;
|-&lt;br /&gt;
| db (Constant) || DB: Data base || String || Database of the classes and data in the view '''{Type}.{DB}'''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=dynFrame /&amp;gt;&lt;br /&gt;
| {{Anch|dynFrame|&amp;lt;h3&amp;gt;Dynamic frame ([[Special:MyLanguage/Libs/Main_graphical_elements#dynFrame|dynFrame]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk&lt;br /&gt;
&amp;lt;section end=dynFrame /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element-frame, shown in Figure 3.9, serves to form frames in runtime whether by the user or automatically, and it is initially created to represent data of the [[Special:MyLanguage/Documents/DAQ#PassiveAndInitiative|initiative connections]].&lt;br /&gt;
&lt;br /&gt;
During the frame implementing there significantly expanded some OpenSCADA parts:&lt;br /&gt;
* VCAEngine, Vision, WebVision: allowing of frame's geometry tracing and adjusting-expanding the content to its real size;&lt;br /&gt;
* Vision: fixing in processing small scale and unexpected apply events in LineEdit.&lt;br /&gt;
&lt;br /&gt;
The frame provides currently and in future for next features:&lt;br /&gt;
* specifying sources as fixed or selectable; also as relinking changed sources of the same type and tracing their appearance/disappearance with automatic placing;&lt;br /&gt;
* specifying visual items in a XML-Tree with the possibility to configure all interface here or manually from the running interface;&lt;br /&gt;
* providing a hiding table of the sources and the dynamically formed control panel for adding/removing visual items per source with control their parameters: position, geometry, constants;&lt;br /&gt;
* providing visual items without sources, as constants-static, and setting attributes directly;&lt;br /&gt;
* enabling the archiving locally and remotely for DAQGate.&lt;br /&gt;
&lt;br /&gt;
XML-Tree of the visual elements allowed to place in the root node, placed visual items in the visual elements and sources with constants in the visual items.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;vEls&amp;gt;&lt;br /&gt;
  &amp;lt;el id='Main.anShow' wId=&amp;quot;aShw&amp;quot; geom=&amp;quot;100-1:40-1&amp;quot;&lt;br /&gt;
      lnkAttrs='pVal-var'&lt;br /&gt;
      constAttrs='pName-;pPrec-;pErr-;pDscr-;pModeA-;pModeC-;spName;redEVAL'&amp;gt;&lt;br /&gt;
    &amp;lt;it id='aShw_1' geom=&amp;quot;100:40&amp;quot; pos=&amp;quot;0:0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;src id=&amp;quot;LogicLev.gen.prm_F3&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;const id=&amp;quot;pName&amp;quot; isLnk=&amp;quot;1&amp;quot; lnk=&amp;quot;prm:/LogicLev/gen/F3/NAME (+)&amp;quot;&amp;gt;Test&amp;lt;/const&amp;gt;&lt;br /&gt;
    &amp;lt;/it&amp;gt;&lt;br /&gt;
  &amp;lt;/el&amp;gt;&lt;br /&gt;
  &amp;lt;el id=&amp;quot;Main.TextLab&amp;quot; wId=&amp;quot;txtLb&amp;quot; geom=&amp;quot;60-1:22-1&amp;quot;&lt;br /&gt;
      lnkAttrs=&amp;quot;st_open;st_close;st_text;com;close;com_text&amp;quot;&lt;br /&gt;
      constAttrs=&amp;quot;digStts-;digComs-;NAME-;err-;DESCR-&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;it id=&amp;quot;txtLb_1&amp;quot; geom=&amp;quot;100:22&amp;quot; pos=&amp;quot;10:10&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;src id=&amp;quot;LogicLev.gen.prm_BC6close&amp;quot; sAttr=&amp;quot;a_st_open&amp;quot; vAttr=&amp;quot;st_open&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;src id=&amp;quot;LogicLev.gen.prm_BC6close&amp;quot; sAttr=&amp;quot;a_st_close&amp;quot; vAttr=&amp;quot;st_close&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/it&amp;gt;&lt;br /&gt;
  &amp;lt;/el&amp;gt;&lt;br /&gt;
  &amp;lt;el id=&amp;quot;originals.Text&amp;quot; wId=&amp;quot;txt&amp;quot; geom=&amp;quot;100:20&amp;quot; preset=&amp;quot;color=red;&amp;quot; resize=&amp;quot;1&amp;quot;&lt;br /&gt;
      constAttrs=&amp;quot;*text;*alignment;*font;*color;*orient&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;it id=&amp;quot;txt_2&amp;quot; geom=&amp;quot;100:20&amp;quot; pos=&amp;quot;0:50&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;const id=&amp;quot;*text&amp;quot; isLnk=&amp;quot;0&amp;quot;&amp;gt;Text label&amp;lt;/const&amp;gt;&lt;br /&gt;
      &amp;lt;const id=&amp;quot;*color&amp;quot; isLnk=&amp;quot;0&amp;quot;&amp;gt;blue&amp;lt;/const&amp;gt;&lt;br /&gt;
    &amp;lt;/it&amp;gt;&lt;br /&gt;
  &amp;lt;/el&amp;gt;&lt;br /&gt;
&amp;lt;/vEls&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
* ''id'' — identifier;&lt;br /&gt;
* ''wId'' — widget identifier base;&lt;br /&gt;
* ''geom'' — typical geometry with scale or for concrete visual item;&lt;br /&gt;
* ''lnkAttrs'' — list of the generic attributes through ';' for linking as data source in the form &amp;quot;{vis}[-{src}]&amp;quot;:&lt;br /&gt;
** ''vis'' — ID of the visual attribute;&lt;br /&gt;
** ''src'' — ID of the source attribute, it is the same as visual one at missing;&lt;br /&gt;
* ''constAttrs'' — list of the additional attributes through ';' for specifying manually in the form &amp;quot;{vis}[-[{src}]]&amp;quot;;&lt;br /&gt;
** ''src'' — ID of the source attribute, it is the same as visual one at missing and that is a constant at missing even the symbol ''-'', it is spare here and pointed only for its storing for ''lnkAttrs''.&lt;br /&gt;
* ''pos'' — position of the visual item;&lt;br /&gt;
* ''isLnk'' — the link sign;&lt;br /&gt;
* ''lnk'' — link value for restoring;&lt;br /&gt;
* ''sAttr'', ''vAttr'' — source and visual attributes of linking.&lt;br /&gt;
&lt;br /&gt;
The default XML-Tree stored in the &amp;quot;visualEls&amp;quot; attribute and can be appended by the user for needed elements or restricted only needed by removing unnecessary ones.&lt;br /&gt;
&lt;br /&gt;
After edition during running the &amp;quot;visualEls&amp;quot; attribute appended and stored in the session for using at next start.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_dynFrameD.png|center|frame|Fig.3.9a. The &amp;quot;Dynamic frame&amp;quot; in the development mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
The widget is designed to perform the role of a page, and should therefore be placed directly in the project's tree.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode you will see content dependent from the mode:&lt;br /&gt;
* at default &amp;quot;Visual elements (visualEls)&amp;quot; and first start you'll see nothing except title, combobox of selection the source and the button of call the sources table;&lt;br /&gt;
* at &amp;quot;Visual elements (visualEls)&amp;quot; with preset items and correct sources you'll see those items.&lt;br /&gt;
&lt;br /&gt;
And both of the modes can be configured to show title, combobox of selection the source, the source table and the correspond control panel (Fig.3.9b), where you can add/remove items linked to a source and set parameters for them.&lt;br /&gt;
&lt;br /&gt;
For user access limitation there provided now only a mechanism of including the allowed for edition users to the group &amp;quot;ITW&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_dynFrameR.png|center|frame|Fig.3.9b. The &amp;quot;Dynamic frame&amp;quot; in the runtime mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| srcDAQ || Source DAQ&lt;br /&gt;
In the format &amp;quot;{type}.{cntr}[;{type}.{cntr}]&amp;quot;, where:&amp;lt;br/&amp;gt;&lt;br /&gt;
- type: DAQ type, as LogicLev, DAQGate, ...;&amp;lt;br/&amp;gt;&lt;br /&gt;
- cntr: controller ID strictly or by RE as &amp;quot;/{RE}/&amp;quot;.&lt;br /&gt;
| String || Sources for representing on this frame with their selection for not fixed mode.&lt;br /&gt;
|-&lt;br /&gt;
| srcFIX || Fixed source(s) || Boolean || The fixed sources are appended all to the sources table and without a possibility to select ones by the user.&lt;br /&gt;
|-&lt;br /&gt;
| titleFIX || Fixed title || String || The fixed title without changing with changing the source.&lt;br /&gt;
|-&lt;br /&gt;
| visualEls || Visual elements || Text || XML-Tree of the visual elements and their preset items, which are saved in the session after edition in runtime.&lt;br /&gt;
|-&lt;br /&gt;
| btEdit &amp;gt; en || Enabled || Boolean || Enabling(default)/disabling a button of call the source table for editing.&lt;br /&gt;
|-&lt;br /&gt;
| srcTitle &amp;gt; en || Enabled || Boolean || Enabling(default)/disabling the source title.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== {{Anch|Panels|Control panels and simple dialogs}} ==&lt;br /&gt;
Contains elements-frames of control panels and simple dialogues, that are difficult or unnecessary to be implemented as panels. These frames are intended to be placed in the respective panels directory of the project tree, built on [[#RootPgSo|the concept of the signal objects of the root page &amp;quot;RootPgSo&amp;quot;]]. The frames are generally not intended to be used separately, as they often represent the specifics of the data to which their provide control elements or expanded information, and should therefore be used with them, except in the case of unification, generalization and extended control of the primitives!&lt;br /&gt;
&lt;br /&gt;
These elements are mostly opened dynamically upon call from the primary view element-widget, performing in that [[Special:MyLanguage/Sub-projects/VCA#LinkingDyn|the dynamic linking of links in the group &amp;quot;&amp;lt;page&amp;gt;&amp;quot; of the panel]] with the widget (often page) that called this panel. Further work, until closing, is done with the data of the calling widget.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=terminator /&amp;gt;&lt;br /&gt;
| {{Anch|terminator|&amp;lt;h3&amp;gt;Terminator panel ([[Special:MyLanguage/Libs/Main_graphical_elements#terminator|terminator]])&amp;lt;/h3&amp;gt;}} || 1.1 || GPLv2 || * || en, uk, ru &amp;lt;section end=terminator /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
The panel element shown in Figure 4.1 serves to fill the panel container space when no active visual control element is selected in the main frame, since closing or clearing frames in the container area is not provided, only the replacement.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_terminatorD.png|center|frame|Fig.4.1. The panel element &amp;quot;Terminator panel&amp;quot;.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
This element should be placed in the logical container of the project's tree.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
Calling the panel is made from [[#RootPgSo|the root page &amp;quot;RootPgSo&amp;quot;]] by changing the signal object or the type of view.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ElCadr /&amp;gt;&lt;br /&gt;
| {{Anch|ElCadr|&amp;lt;h3&amp;gt;Element cadre ([[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|ElCadr]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.4 || GPLv2 || * || en, uk, ru &amp;lt;section end=ElCadr /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element shown in Figures 4.2 is in fact a universal panel of generic and extended control by different devices for all known and defined representative structures of the basic data of the control systems at the DAQ-templates:&lt;br /&gt;
* analog: [[Special:MyLanguage/Libs/Main#anUnif|analog signal]], [[Special:MyLanguage/Libs/Main#manInUnif|manual input of the analog signal]], PID-regulator ([[Special:MyLanguage/Libs/Main#pidUnif|analog]] and [[Special:MyLanguage/Libs/Main#pidUnifImp|pulse]]);&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main#digitBlockUnif|discrete blocks]]: valves, automatic shut off valves, motors, fans and switches;&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main#codeState|arbitrary discrete states]].&lt;br /&gt;
&lt;br /&gt;
In the primary function of the pannel — advanced and common control, this item is called from:&lt;br /&gt;
* [[#Widgets|the primary data representing widgets]] of this library: &amp;quot;[[#anShow|Analog show]]&amp;quot;, &amp;quot;[[#anShow|Analog show 1]]&amp;quot;, &amp;quot;[[#TextLab|Text label]]&amp;quot;, &amp;quot;[[#ImgLab|Image label]]&amp;quot;;&lt;br /&gt;
* [[#MainFrames|the main frames]]: &amp;quot;[[#grpGraph|Graphics group]]&amp;quot;, &amp;quot;[[#ViewCadr|Overview frames panel]]&amp;quot;, &amp;quot;[[#cntrRegul|Regulator's control panel]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If this element using as a control panel is not required, it is firstly in the primary data representing widgets and by their specializing in particular types of data to what a separate panel can be created. Therefore, due to its high universality, due to the support of all known representative structures of DAQ-templates, it is obligatory to use in main frames, as is done in the frame &amp;quot;[[#grpCadr|Contours group]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ElCadrD.png|center|frame|Fig.4.2a. The &amp;quot;Element cadre&amp;quot; widget in the development mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
The panel does not require any special configuration by the user, it should only be located in the panels folder of the project tree of [[#RootPgSo|the concept of the signal objects of the root page &amp;quot;RootPgSo&amp;quot;]], which will allow it to be dynamically invoked and opened in the control panels container of the root page.&lt;br /&gt;
&lt;br /&gt;
The panel Identifier, when placed, should be saved and its line of call, upon receiving focus, in the events processing attribute &amp;quot;evProc&amp;quot; of the primary widget will look &amp;quot;ws_FocusIn::open:/pg_control/pg_ElCadr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
''Indications of the analog parameter'' — in this mode, there is no any control, and there are only units displaying, the value's histogram and the name of the parameter.&lt;br /&gt;
&lt;br /&gt;
''Manual input of the analog parameter'' — in addition to displaying indications of analog parameters the buttons to enter a new value are displayed. Enter of the value is displayed in the field at the top, in the backlight rectangle. To validate the input, press the left mouse button in the area of the backlight rectangle, without that the typed value will be reset after a few seconds.&lt;br /&gt;
&lt;br /&gt;
''PID-regulator's mode'' — to the value of a variable and its histogram are added values and histograms of set-point and out of the PID-regulator, the buttons to enter a new value of the set-point or out, as well as the mode adjustment buttons and the field to display the current mode. Also, for the user with appropriate privileges (&amp;quot;root:ITW&amp;quot;), it is available the button to go to a frame to set the coefficients of the PID-regulator. In the case of pulse PID instead of histogram of the analog output it is displayed the status of pulse output with the help of triangles &amp;quot;Up&amp;quot; and &amp;quot;Down&amp;quot; and the manual entry of output leads to direct formation of pulse, respectively down or up.&lt;br /&gt;
&lt;br /&gt;
''Mode of the discrete device'' — in this mode the name and the field of discrete assemble of the parameter are displayed. The field of the discrete assemble contains the current state of discrete device, on the left, and the buttons of commands, on the right. There are two states of the device: &amp;quot;Open&amp;quot;, &amp;quot;Closed&amp;quot; and the three commands: &amp;quot;Open&amp;quot;, &amp;quot;Close&amp;quot;, &amp;quot;Stop&amp;quot;. The names of the states and commands can be adjusted during set up. Changing the state of the discrete device is determined by pressing the corresponding command. In direct discrete mode, a combo box is formed with a list of elements from ''digComs'', the current state from ''st_text'' and sending commands to ''com_text''.&lt;br /&gt;
&lt;br /&gt;
Every action on this panel (change of PID-regulator set-point, state of the discrete parameter, ...) is recorded in the actions log by the generation of appropriate messages according to [[Special:MyLanguage/Documents/Program_manual#ArchMess|the message structure of the operator actions]].&lt;br /&gt;
&lt;br /&gt;
For any displayed or controlled parameter the [[#Passport|passport]] can be obtained by clicking the right mouse button on the contour field. The passport will present all the properties of the parameter.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The frame supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_elcadr.png|center|frame|Fig.4.2b. The &amp;quot;Element cadre&amp;quot; widget in the runtime mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| prmId || Parameter: identifier || String || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;SHIFR || Identifier of the parameter, used only to detect the appropriate PID-control pages.&lt;br /&gt;
|-&lt;br /&gt;
| prmShifr || Parameter: code || String (translate) || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;NAME || Short name of the parameter — code, to be placed below the frame and in actions of the user-operator.&lt;br /&gt;
|-&lt;br /&gt;
| prmDescr || Parameter: description || String (translate) || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;DESCR || Description of the parameter to be placed in actions of the user-operator.&lt;br /&gt;
|-&lt;br /&gt;
| prmColor || Parameter: border color || String || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;color || Sets the border color of the contour. &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Properties of the Analog Devices''&lt;br /&gt;
|-&lt;br /&gt;
| prmDemention || Parameter: dimension || String (translate) || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;ed || &lt;br /&gt;
|-&lt;br /&gt;
| prmPrec || Parameter: precision (signs) || Integer || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;prec || Number of digits after the dot in the parameter value and the step of changing the manual input of the value, as well as the set-point and output of the PID-regulator.&lt;br /&gt;
|-&lt;br /&gt;
| prmVar || Parameter: variable || Real || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;var || Directly the value of the analog parameter.&lt;br /&gt;
|-&lt;br /&gt;
| max || Parameter: maximum || Real || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;max || Maximum limit of the parameter value.&lt;br /&gt;
|-&lt;br /&gt;
| min || Parameter: minimum || Real || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;min || Minimum limit of the parameter value.&lt;br /&gt;
|-&lt;br /&gt;
| prmAMax || Parameter: border up alarm || Real || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;aMax ||&lt;br /&gt;
|-&lt;br /&gt;
| prmAMin || Parameter: border down alarm || Real || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;aMin ||&lt;br /&gt;
|-&lt;br /&gt;
| prmWMax || Parameter: border up warning || Real || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;wMax ||&lt;br /&gt;
|-&lt;br /&gt;
| prmWMin || Parameter: border down warning || Real || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;wMin ||&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Manual Analog Input''&lt;br /&gt;
|-&lt;br /&gt;
| prmVarIn || Parameter: variable input || Real || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;varIn || Output for manual input of analog parameter value. The presence of this parameter is an indication that the parameter is defined as &amp;quot;Manual Analog Input&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''PID-regulator''&lt;br /&gt;
|-&lt;br /&gt;
| prmAnalog || Parameter: analog regulator || Boolean || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;analog || The indication of the analog regulator, in the absence of which the regulator is considered as impulse.&lt;br /&gt;
|-&lt;br /&gt;
| prmAuto || Parameter: automate || Boolean || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;auto || The regulator mode &amp;quot;Automatic&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| prmCasc || Parameter: cascade || Boolean || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;casc || The regulator mode &amp;quot;Cascade&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| prmSp || Parameter: set-point || Real || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;sp || The PID-regulator set-point, which can be set by the user.&lt;br /&gt;
|-&lt;br /&gt;
| prmImpQdwnTm || Parameter: imp. out down || Boolean || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;impQdwn || The output &amp;quot;Down&amp;quot; of the impulse (PWM) regulator.&lt;br /&gt;
|-&lt;br /&gt;
| prmImpQupTm || Parameter: imp. out up || Boolean || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;impQup || The output &amp;quot;Up&amp;quot; of the impulse (PWM) regulator.&lt;br /&gt;
|-&lt;br /&gt;
| prmOut || Parameter: output || Real || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;out || Output of the analog PID-regulator to display and manual input of the output value of PID in the manual mode.&lt;br /&gt;
|-&lt;br /&gt;
| prmManIn || Parameter: manual input || Real || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;manIn || Manual input of the new output value of the PID-regulator in the manual mode.&lt;br /&gt;
|-&lt;br /&gt;
| prmNotPID || Parameter: Force disable PID || Boolean || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;notPID || Use when you want to disable PID representing for parameters with SP.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Properties of the discrete devices''&lt;br /&gt;
|-&lt;br /&gt;
| prmCom || Parameter: command - &amp;quot;Open&amp;quot; || Boolean || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;com ||&lt;br /&gt;
|-&lt;br /&gt;
| prmClose || Parameter: command - &amp;quot;Close&amp;quot; || Boolean || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;close ||&lt;br /&gt;
|-&lt;br /&gt;
| prmStop || Parameter: command - &amp;quot;Stop&amp;quot; || Boolean || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;stop ||&lt;br /&gt;
|-&lt;br /&gt;
| prmComText || Parameter: text of command || String || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;com_text || The command text directly, taken from ''digComs'' at building the selection combobox.&lt;br /&gt;
|-&lt;br /&gt;
| digComs || Parameter: discrete commands || String (translate) || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;digComs || Configuration of the parameter commands with the structure '''{openLabel}-{color};{closeLabel}-{color}''', for the discrete block, and '''{com1Label}-{color};{com2Label}-{color};...;{comNLabel}-{color}''', for the code status. Default colours for the discrete block are: &amp;quot;green&amp;quot;, &amp;quot;red&amp;quot;  and &amp;quot;yellow&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| prmOpenSt || Parameter: state - &amp;quot;Opened&amp;quot; || Boolean || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;st_open ||&lt;br /&gt;
|-&lt;br /&gt;
| prmCloseSt || Parameter: state - &amp;quot;Closed&amp;quot; || Boolean || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;st_close ||&lt;br /&gt;
|-&lt;br /&gt;
| prmStText || Parameter: status text || String || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;st_text || The status text directly.&lt;br /&gt;
|-&lt;br /&gt;
| digStts || Parameter: discrete stats || String (translate) || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;digStts || Configuration of the parameter statuses with the structure '''{openedLabel}-{color};{closedLabel}-{color}''', for the discrete block. Default colours are: &amp;quot;green&amp;quot; and &amp;quot;red&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=cntrPaspExt /&amp;gt;&lt;br /&gt;
| {{Anch|cntrPaspExt|&amp;lt;h3&amp;gt;Passport, extended ([[Special:MyLanguage/Libs/Main_graphical_elements#cntrPaspExt|cntrPaspExt]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=cntrPaspExt /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element shown in Figure 4.3 is an information-control dialog around the data source parameter — an expanded parameter passport. Unlike [[#cntrPasp|the simple passport]], the expanded one, in addition to information, provides the ability to control the parameter attributes and display the history of the standard attributes in both a trend and a data table.&lt;br /&gt;
&lt;br /&gt;
''Information and control'' for parameter attributes remains the primary function provided in the &amp;quot;View&amp;quot; tab, where the attribute table is formed as their are, with the &amp;quot;Name&amp;quot; and &amp;quot;Value&amp;quot; columns. The table is active and if you select an entry of the accessible to write attribute and at corresponding permissions (root:op), a field for entering new values will be provided at the bottom.&lt;br /&gt;
&lt;br /&gt;
''The history'' is provided in the following two tabs &amp;quot;Trends&amp;quot; and &amp;quot;Data&amp;quot;, which may not be available in the absence of the history-archives at standard attributes. The &amp;quot;Trends&amp;quot; tab contains a graphics area, of [[Special:MyLanguage/Sub-projects/VCA#Diagram|the primitive &amp;quot;Diagram&amp;quot;]], on most of the window, and a table at the bottom with the names, colours, and graph scales. The graphs are updated periodically and built with a period of 1 second and a fixed depth of 1 hour. The &amp;quot;Data&amp;quot; tab contains only [[Special:MyLanguage/Sub-projects/VCA#Document|the &amp;quot;Document&amp;quot; primitive]] field with a table with attribute values in columns that is updated with a period of 1 second for the history data period and to a depth of 100 records. The following items of [[Special:MyLanguage/Libs/Main|the representative parameter structures]] are considered standard attributes with history:&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main#anUnif|Analog signal]]:&lt;br /&gt;
** '''var''' — variable.&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main#pidUnif|PID-regulator]]:&lt;br /&gt;
** '''sp''' — setpoint;&lt;br /&gt;
** '''out''' — output;&lt;br /&gt;
** '''auto''' — mode: automate.&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main#codeState|Discrete assembles]]:&lt;br /&gt;
** '''com''' — command &amp;quot;Open&amp;quot;;&lt;br /&gt;
** '''close''' — command &amp;quot;Close&amp;quot;;&lt;br /&gt;
** '''stop''' — command &amp;quot;Stop&amp;quot;;&lt;br /&gt;
** '''st_open''' — state &amp;quot;Opened&amp;quot;;&lt;br /&gt;
** '''st_close''' — state &amp;quot;closed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In the trends of the analog parameters building the attributes are separately processed for alarm ['''aMin'''...'''aMax'''] and warning scales ['''wMin'''...'''wMax'''], which are also displayed in the graph.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] This dialogue is currently the main one and has replaced [[#cntrPasp|the simple passport dialogue]].&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' PAC HARTRON&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_cntrPaspExt.png|center|frame|Fig.4.3. The &amp;quot;Passport, extended&amp;quot; dialogue in the runtime mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
The dialogue does not require any special configuration by the user, it should only be located in the panels folder of the project tree of [[#RootPgSo|the concept of the signal objects of the root page &amp;quot;RootPgSo&amp;quot;]], which will allow it to be dynamically invoked and opened as an external dialogue window.&lt;br /&gt;
&lt;br /&gt;
The dialogue Identifier, when placed, should be changed to &amp;quot;cntrPasp&amp;quot; and its line of call, upon pressing right mouse button, in the events processing attribute &amp;quot;evProc&amp;quot; of the primary widget will look &amp;quot;key_mousePresRight::open:/pg_control/pg_cntrPasp&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
The dialogue provides the user in the tab &amp;quot;View&amp;quot; with information about the data source parameter in the list and the values of all the properties-attributes of the parameter in the table. Where writable attributes may be edited at the permissions &amp;quot;root:op&amp;quot; in the appeared at the bottom field for entering new values, at selecting the attribute.&lt;br /&gt;
&lt;br /&gt;
For the history the user may observe the trends in the tab &amp;quot;Trends&amp;quot; and the data in the tab &amp;quot;Data&amp;quot;. For the trends the user may also highlight some one, selecting it in the bottom table, and correct the scales if it is wrong.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| pName || Parameter name || Address || Input link || Parameter&amp;amp;#124;NAME || Address to the parameter's name to refer to the parameter entirely and get all of its properties.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=cntrPasp /&amp;gt;&lt;br /&gt;
| {{Anch|cntrPasp|&amp;lt;h3&amp;gt;Passport ([[Special:MyLanguage/Libs/Main_graphical_elements#cntrPasp|cntrPasp]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.0 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=cntrPasp /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element shown in Figure 4.4 is an information dialog around the parameter of the data source — the parameter passport, accordingly it allows to receive such information as: cipher, name, description, unit of measure, emergency boundaries and other, corresponding to [[Special:MyLanguage/Libs/Main|the parameter representative structure]] — parameter attributes. The dialogue is based on [[Special:MyLanguage/Sub-projects/VCA#Document|the primitive &amp;quot;Document&amp;quot;]], whose content is generated dynamically and updated periodically.&lt;br /&gt;
&lt;br /&gt;
In building the passport the attributes are separately processed for alarm ['''aMin'''...'''aMax'''] and warning scales ['''wMin'''...'''wMax'''], which combined in a single entry, and can be hidden when turned off.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Currently, this dialogue has actually been replaced by [[#cntrPaspExt|the more functional and expanded passport dialogue]] and is largely disabled in all template and demonstration projects, though no one interferes with its use if only information is required.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_cntrPasp.png|center|frame|Fig.4.4. The &amp;quot;Passport&amp;quot; dialogue in the runtime mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
The dialogue does not require any special configuration by the user, it should only be located in the panels folder of the project tree of [[#RootPgSo|the concept of the signal objects of the root page &amp;quot;RootPgSo&amp;quot;]], which will allow it to be dynamically invoked and opened as an external dialogue window.&lt;br /&gt;
&lt;br /&gt;
The dialogue Identifier, when placed, should be saved and its line of call, upon pressing right mouse button, in the events processing attribute &amp;quot;evProc&amp;quot; of the primary widget will look &amp;quot;key_mousePresRight::open:/pg_control/pg_cntrPasp&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
The dialogue only provides the user with information about the data source parameter in the list and the values of all the properties-attributes of the parameter in the table.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| pName || Parameter name || Address || Input link || Parameter&amp;amp;#124;NAME || Address to the parameter's name to refer to the parameter entirely and get all of its properties.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=grph_panel /&amp;gt;&lt;br /&gt;
| {{Anch|grph_panel|&amp;lt;h3&amp;gt;Panel of the graphs ([[Special:MyLanguage/Libs/Main_graphical_elements#grph_panel|grph_panel]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.6 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=grph_panel /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element shown in Figure 4.5 is a specialised panel for dynamic control of basic user properties of [[Special:MyLanguage/Sub-projects/VCA#Diagram|the primitive &amp;quot;Diagram&amp;quot;]]. So, the panel allows you to view graphs of the history for the required period of time and the desired resolution, supports: the scale, the selection of archiver for display and the graphs presentation in a spectrum of present frequencies or XY.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_grph_panel.png|center|frame|Fig.4.5. The panel of the graphs in the development and runtime modes (left to right).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
The panel does not require any special configuration by the user, it should only be located in the panels folder of the project tree of [[#RootPgSo|the concept of the signal objects of the root page &amp;quot;RootPgSo&amp;quot;]], which will allow it to be dynamically invoked and opened in the control panels container of the root page.&lt;br /&gt;
&lt;br /&gt;
The panel Identifier, when placed, should be saved and its line of call, upon receiving focus, in the events processing attribute &amp;quot;evProc&amp;quot; of the primary widget will look &amp;quot;ws_FocusIn::open:/pg_control/pg_grph_panel&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
The panel allows the user to:&lt;br /&gt;
* select the diagram graphics mode: &amp;quot;Graph&amp;quot;, &amp;quot;Spectrum of frequencies&amp;quot;, &amp;quot;XY&amp;quot;;&lt;br /&gt;
* select of the diagram formation time;&lt;br /&gt;
* perform of navigation through the diagram for the half or five sizes of the graph area and setting of the diagram generation time to the current time or in the cursor time;&lt;br /&gt;
* get information about the time or frequency in the current cursor's position;&lt;br /&gt;
* select of the trend's formation size (depth) or set the begin time, also to the cursor time;&lt;br /&gt;
* select of the archive, used for the trend building, at the access rule &amp;quot;root:ITW&amp;quot;;&lt;br /&gt;
* control the vertical and horizontal scale of the presentation: zoom in and out the scale, shift the scale up and down, the scale returns to its original value;&lt;br /&gt;
* switch of the scale mode by the window drawn by the mouse.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| tSek || Trend time || DateTime || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;tSek ||&lt;br /&gt;
|-&lt;br /&gt;
| tSize || Trend size || Real || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;tSize || Time size-interval of the graph in the history from the trend time.&lt;br /&gt;
|-&lt;br /&gt;
| trcPer || Trace period || Integer || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;trcPer || Period of the trend updating-tracing.&lt;br /&gt;
|-&lt;br /&gt;
| type || Type || Integer || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;type || Graph's type: &amp;quot;Trend&amp;quot;, &amp;quot;Spectrum of frequencies&amp;quot;, &amp;quot;XY&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| valArch || Archiver || String || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;valArch ||&lt;br /&gt;
|-&lt;br /&gt;
| curSek || Cursor || DateTime || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;curSek || Time of the cursor setting.&lt;br /&gt;
|-&lt;br /&gt;
| curUSek || Cursor, microseconds || Integer || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;curUSek || Time of the cursor setting, microseconds.&lt;br /&gt;
|-&lt;br /&gt;
| sclVer || Vertical scale || Real || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;sclVerScl || Percentage of the vertical scale.&lt;br /&gt;
|-&lt;br /&gt;
| sclVerOff || Vertical scale offset || Real || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;sclVerSclOff || Percentage of the offset on the vertical scale.&lt;br /&gt;
|-&lt;br /&gt;
| sclHor || Horizontal scale || Real || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;sclHorScl || Percentage of the horizontal scale.&lt;br /&gt;
|-&lt;br /&gt;
| sclHorOff || Horizontal scale offset || Real || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;sclHorSclOff || Percentage of the offset on the horizontal scale.&lt;br /&gt;
|-&lt;br /&gt;
| sclWin || Scale by window || Boolean || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;sclWin || Switching the window scaling mode.&lt;br /&gt;
|-&lt;br /&gt;
| sclWinCtx || Scale: by window save context || Object || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;sclWinCtx || Context of storing of the original scale parameters for return.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=doc_panel /&amp;gt;&lt;br /&gt;
| {{Anch|doc_panel|&amp;lt;h3&amp;gt;Panel of documents ([[Special:MyLanguage/Libs/Main_graphical_elements#doc_panel|doc_panel]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=doc_panel /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element shown in Figure 4.6 is a specialized panel for dynamic control of basic user properties of [[Special:MyLanguage/Sub-projects/VCA#Document|the primitive &amp;quot;Document&amp;quot;]]. So, the panel allows you to manage documents and navigate through their histories; supported dynamic and archival documents.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_doc_panel.png|center|frame|Fig.4.6. The panel of the documents in the development and runtime (dynamic and archival) modes, left to right.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
The panel does not require any special configuration by the user, it should only be located in the panels folder of the project tree of [[#RootPgSo|the concept of the signal objects of the root page &amp;quot;RootPgSo&amp;quot;]], which will allow it to be dynamically invoked and opened in the control panels container of the root page.&lt;br /&gt;
&lt;br /&gt;
The panel Identifier, when placed, should be saved and its line of call, upon receiving focus, in the events processing attribute &amp;quot;evProc&amp;quot; of the primary widget will look &amp;quot;ws_FocusIn::open:/pg_control/pg_doc_panel&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
The panel provides tools that are somewhat different for the dynamic and archival modes.&lt;br /&gt;
&lt;br /&gt;
''The dynamic document'' provides:&lt;br /&gt;
* selection of the document formation time;&lt;br /&gt;
* selection of the document formation size (depth) or the begin time;&lt;br /&gt;
* navigation through the document for one or five sizes-depths of the document;&lt;br /&gt;
* setting the generation time of the document to the current time.&lt;br /&gt;
&lt;br /&gt;
''The archival document'' provides only navigation through documents in the archive by listing them, and display current and overall documents.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Dynamic documents''&lt;br /&gt;
|-&lt;br /&gt;
| time || Document time || DateTime || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;time ||&lt;br /&gt;
|-&lt;br /&gt;
| bTime || Document begin || DateTime || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;bTime ||&lt;br /&gt;
|-&lt;br /&gt;
| doc || Document || String || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;doc ||&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Archive documents''&lt;br /&gt;
|-&lt;br /&gt;
| n || Archive size || Integer || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;n ||&lt;br /&gt;
|-&lt;br /&gt;
| vCur || View cursor || Integer || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;vCur ||&lt;br /&gt;
|-&lt;br /&gt;
| aCur || Archive cursor || Integer || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;aCur ||&lt;br /&gt;
|-&lt;br /&gt;
| aSize || Archive size || Integer || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;aSize ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=accept /&amp;gt;&lt;br /&gt;
| {{Anch|accept|&amp;lt;h3&amp;gt;Accept ([[Special:MyLanguage/Libs/Main_graphical_elements#accept|accept]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.0 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=accept /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element on Figure 4.7 implements a simple operations' acception dialog. The dialog contains a message with a question and two buttons &amp;quot;Apply&amp;quot; and &amp;quot;Cancel&amp;quot;. The dialogue, for example, is used in the frame [[#userManager|Users manager]] to accept the deleting operation.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' Vassily Grigoriev, [http://e-beam.ru the Laboratory of Vacuum Technologies]&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_accept.png|center|frame|Fig.4.7. The &amp;quot;Accept&amp;quot; dialog in the development and runtime mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
The dialogue does not require any special configuration by the user, it should only be located in the panels folder of the project tree of [[#RootPgSo|the concept of the signal objects of the root page &amp;quot;RootPgSo&amp;quot;]], which will allow it to be dynamically invoked and opened as an external dialogue window.&lt;br /&gt;
&lt;br /&gt;
The dialogue Identifier, when placed, should be stored and its line of call, upon pressing the button &amp;quot;progDel&amp;quot;, in the events processing attribute &amp;quot;evProc&amp;quot; of the primary widget will look &amp;quot;ws_BtPress:/progDel:open:/pg_control/pg_accept&amp;quot;. The question message is taken from the &amp;quot;mess&amp;quot; attribute and the &amp;quot;dlg_Apply&amp;quot; signal is transmitted to the &amp;quot;event&amp;quot; at acception.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
Calling the dialogue is made from the frame-initiator, and closing is made by pressing any button of the dialog. If you click the &amp;quot;Apply&amp;quot; button the &amp;quot;dlg_Apply&amp;quot; signal will be sent to the frame-initiator, by which it can perform the desired actions.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| elEvent || Element: event || String || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;event || It is used to send the &amp;quot;dlg_Apply&amp;quot; event if accepted.&lt;br /&gt;
|-&lt;br /&gt;
| elMess || Element: message || String || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;mess || Source of the question message in the dialogue.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=treeSelect /&amp;gt;&lt;br /&gt;
| {{Anch|treeSelect|&amp;lt;h3&amp;gt;Select item into tree ([[Special:MyLanguage/Libs/Main_graphical_elements#treeSelect|treeSelect]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.0 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=treeSelect /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element in Figure 4.8 implements a simple dialog for selecting an item in a tree. The dialog contains the tree itself and the two buttons &amp;quot;Accept&amp;quot; and &amp;quot;Cancel&amp;quot;. This dialog, for example, was used and originally designed for it in the frame &amp;quot;[[Special:MyLanguage/Libs/Prescriptions#prescrRunSimple|Prescription: run (simple)]]&amp;quot; for hierarchical selection of an element in a tree.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' Vassily Grigoriev, [http://e-beam.ru the Laboratory of Vacuum Technologies]&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_treeSelect.png|center|frame|Fig.4.8. The &amp;quot;Select item into tree&amp;quot; dialog in the development and runtime mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
The dialogue does not require any special configuration by the user, it should only be located in the panels folder of the project tree of [[#RootPgSo|the concept of the signal objects of the root page &amp;quot;RootPgSo&amp;quot;]], which will allow it to be dynamically invoked and opened as an external dialogue window.&lt;br /&gt;
&lt;br /&gt;
The dialogue Identifier, when placed, should be stored and its line of call, upon pressing the button &amp;quot;lib&amp;quot;, in the events processing attribute &amp;quot;evProc&amp;quot; of the primary widget will look &amp;quot;ws_BtPress:/lib:open:/pg_control/pg_treeSelect&amp;quot;. The items list is taken from the &amp;quot;items&amp;quot; attribute, the selected value from &amp;quot;selValue&amp;quot; and the &amp;quot;dlg_Apply&amp;quot; signal is transmitted to the &amp;quot;event&amp;quot; at acception.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
Calling the dialogue is made from the frame-initiator, and closing is made by pressing any button of the dialog. If you click the &amp;quot;Apply&amp;quot; button the &amp;quot;dlg_Apply&amp;quot; signal will be sent to the frame-initiator, by which it will apply the selected item.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| elEvent || Element: event || String || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;event || It is used to send the &amp;quot;dlg_Apply&amp;quot; event if accepted.&lt;br /&gt;
|-&lt;br /&gt;
| elItems || Element: items list || Text || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;items || Source of the items list in the dialogue.&lt;br /&gt;
|-&lt;br /&gt;
| selValue || Element: selected value || String || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;selValue || Source of the selected item in the dialogue.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Libs/Main_graphical_elements/ru&amp;diff=93968</id>
		<title>Libs/Main graphical elements/ru</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Libs/Main_graphical_elements/ru&amp;diff=93968"/>
				<updated>2026-05-10T04:51:15Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Название !! Версия !! Лицензия !! Источник !! Языки !! Автор !! Иконка&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Libs/Main_graphical_elements|Библиотека основных элементов интерфейса пользователя]]&lt;br /&gt;
| 2.3 || GPLv2&lt;br /&gt;
| vcaBase.db ([http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/vcaBase.sql SQL], [[:File:vcaBase.db.gz|GZip]]) &amp;gt; VCA.wlb_Main&lt;br /&gt;
| en, uk, ru&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || [[File:LibMainGraphElements.png]]&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; | Описание&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | Предоставляет библиотеку основных элементов пользовательского интерфейса общей и промышленной автоматизации.&lt;br /&gt;
* '''Основано:''' Сентябрь 2007&lt;br /&gt;
* '''Изначально создано:''' в [http://wiki.oscada.org/Using/GraphicElementsLibraries/MainElements старой Wiki]&lt;br /&gt;
* '''Использовано:''' [[Special:MyLanguage/Using|большинство проектов на OpenSCADA]]&lt;br /&gt;
* '''[[Special:MyLanguage/Works/To_do|Задачи (To Do)]]:'''&lt;br /&gt;
&amp;lt;section begin=ToDo /&amp;gt;&lt;br /&gt;
&amp;lt;section end=ToDo /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Библиотека создаётся для предоставления основных элементов пользовательского интерфейса и содержит графические элементы, которые часто востребованы при формировании пользовательского интерфейса автоматизации технологических и общих процессом. Строится библиотека на основе [[Special:MyLanguage/Modules/VCAEngine#WidgetPrimitives|примитивов виджетов]] и языка внутреннего программирования [[Special:MyLanguage/Modules/JavaLikeCalc|JavaLikeCalc]].&lt;br /&gt;
&lt;br /&gt;
Названия элементов и их параметров доступны на языках: Английский, Украинский и mRussian. Их исходный код написан в языко(человеческий)-независимом режиме с вызовом функции перевода ''tr()'' и перевод этих сообщений также доступен Английским, Украинским и mRussian.&lt;br /&gt;
&lt;br /&gt;
Для подключения библиотеки к проекту станции OpenSCADA Вы можете получить файл БД как:&lt;br /&gt;
* такой что поставляется с готовым и соответствующим пакетом дистрибутива Linux вроде &amp;quot;openscada-libdb-vca&amp;quot;, &amp;quot;openscada-LibDB.VCA&amp;quot;;&lt;br /&gt;
* наиболее актуальный и непосредственно полученный из [http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/vcaBase.sql репозиторию subversion], преобразованный в файл БД SQLite путём:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;BASH&amp;quot; style=&amp;quot;margin-left: 15px&amp;quot;&amp;gt;&lt;br /&gt;
wget http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/vcaBase.sql&lt;br /&gt;
sqlite3 -init vcaBase.sql vcaBase.db .exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* загрузка [[:File:vcaBase.db.gz|прикреплённого тут]].&lt;br /&gt;
&lt;br /&gt;
Этот полученный файл Вы далее можете разместить в каталоге проекта станции и создать объект базы данных модуля БД &amp;quot;SQLite&amp;quot;, зарегистрировав файл базы данных в конфигурации.&lt;br /&gt;
&lt;br /&gt;
== {{Anch|Widgets|Виджеты — графические элементы}} ==&lt;br /&gt;
Содержит элементы-виджеты общего применения, которые предназначены для размещения на [[#MainFrames|основных кадрах]]. Этими основными кадрами могут быть и кадры за этой [[#RootPgSo|концепцией объектов сигнализации корневой страницы &amp;quot;RootPgSo&amp;quot;]], но нужно учитывать, что они часто ссылаются и вызывают те или иные [[#Panels|панели управления]]!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=anShow /&amp;gt;&lt;br /&gt;
| {{Anch|anShow|&amp;lt;h3&amp;gt;Отображение аналогового ([[Special:MyLanguage/Libs/Main_graphical_elements#anShow|anShow]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=anShow /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Элемент на рисунке 1.1 служит для отображения текущего значения аналогового параметра и режима регулятора, если параметр является таковым. Также этот элемент генерирует уведомления про нарушения по соответствующим уставкам параметра. Элемент в целом использует и представляет представительскую структуру [[Special:MyLanguage/Libs/Main#anUnif|DAQ-шаблона &amp;quot;Аналоговый сигнал&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_AnShow_ru.png|center|frame|Рис.1.1. Элемент &amp;quot;Отображение аналогового&amp;quot; в режиме разработки и исполнения (слева направо).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Этот виджет может быть использован разработчиком при создании мнемосхем с отображением значений аналоговых параметров и ПИД-регуляторов. Для использования нужно добавить данный виджет на мнемосхему, подстроить горизонтальный, вертикальный размер масштабом и связать с параметром источника данных.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
В режиме исполнения, в основном поле элемента, отображается название параметра, режим регулятора (только для регулятора) и текущее значение-переменная этого параметра; которые, в зависимости от наличия нарушения, отображаются цветом стиля: ''labColorGood'', ''labColorWarning'', ''labColorAlarm''; и которым изображение несквитированного параметра может мигать. При аппаратных ошибках и недостоверности данных, последнее значение отображается серым цветом и перечёркивается. В подсказке пользователь может получить описание связанного параметра и его ошибки.&lt;br /&gt;
&lt;br /&gt;
В активном режиме элемента можно получить [[#Passport|паспорт]] путём нажатия правой клавиши мыши на поле виджета. В паспорте будут представлены все свойства параметра. При нажатии левой клавишей мыши в области панелей появится [[#ElCadr|панель управления параметром]], а выбор данного виджета будет отображаться мигающей рамкой.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The widget supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent widget/page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| pErr || Parameter: error || String || Input link || Parameter&amp;amp;#124;err || Code and text of the parameter error. It is used to generate alarm. The following error codes are processed:&lt;br /&gt;
* 1,2 — failure, parameter is not valid, be shown in gray and cross out besides the case with ''redEVAL'';&lt;br /&gt;
* 3,4 — above and below the alarm limit, be shown in the styled color ''labColorAlarm'';&lt;br /&gt;
* 5,6 — above and below the warning limit, be shown in the styled color ''labColorWarning'';&lt;br /&gt;
* 10,11 — the user alarm codes of the statuses warning and alarm, be sown accordingly in the styled color ''labColorWarning'' and ''labColorAlarm''.&lt;br /&gt;
|-&lt;br /&gt;
| pModeA || Parameter: regulator mode: auto || Boolean || Input link || Parameter&amp;amp;#124;auto || The large letter &amp;quot;A&amp;quot; is displayed on the left when the value checked. &lt;br /&gt;
|-&lt;br /&gt;
| pModeC || Parameter: regulator mode: cascade || Boolean || Input link || Parameter&amp;amp;#124;casc || The large letter &amp;quot;C&amp;quot; is displayed on the left when the value checked.&lt;br /&gt;
|-&lt;br /&gt;
| pName || Parameter: name || String (translate) || Input link || Parameter&amp;amp;#124;NAME || Short name of the parameter displayed over the value and inserted to the alarm messages.&lt;br /&gt;
|-&lt;br /&gt;
| pPrec || Parameter: precision || Integer || Input link || Parameter&amp;amp;#124;prec || Number signs after the dot, for positive values, and precision (signs in whole), for negative, to display the real end variable on the screen.&lt;br /&gt;
|-&lt;br /&gt;
| pVal || Parameter: value || Real || Input link || Parameter&amp;amp;#124;var || Engineeric real value of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| redEVAL || Red parameter name in case of failure || Boolean || Constant || || By default, the color of the parameter's name for the &amp;quot;failure&amp;quot; state (EVAL value) is gray. But some critical for the process parameters must have the &amp;quot;failure&amp;quot; state displayed with the red parameter's name.&lt;br /&gt;
|-&lt;br /&gt;
| spName || Speech name || String (translate) || Constant || || The parameter name for speech synthesis during the formation of alarm messages taking into account accents of words, pauses, etc. Empty value disables the speech notification!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=anShow1 /&amp;gt;&lt;br /&gt;
| {{Anch|anShow1|&amp;lt;h3&amp;gt;Отображение аналогового 1 ([[Special:MyLanguage/Libs/Main_graphical_elements#anShow1|anShow1]]); Отображение аналогового 1, короткий ([[Special:MyLanguage/Libs/Main_graphical_elements#anShow1|anShow1s]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.4 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=anShow1 /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Элемент на рисунке 1.2 служит для отображения текущего значения аналогового параметра и краткого префиксу измеренного значения. Также этот элемент генерирует уведомления про нарушения по соответствующим уставкам параметра. Элемент в целом использует и представляет представительскую структуру [[Special:MyLanguage/Libs/Main#anUnif|DAQ-шаблона &amp;quot;Аналоговый сигнал&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
Эти два элемента отличаются один от одного только начальным горизонтальным размером, т.е. второй &amp;quot;Отображение аналогового 1, короткий&amp;quot; является коротким вариантом для очень коротких случаев и он прямо наследуется от первого.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_anShow1.png|center|frame|Рис.1.2. Элемент &amp;quot;Отображение аналогового 1&amp;quot; в режиме разработки и исполнения (слева направо).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Этот виджет может быть использован разработчиком при создании мнемосхем с отображением значений аналоговых параметров с префиксом и/или как элемент статической экранной таблицы. Для использования нужно добавить данный виджет на мнемосхему, подстроить горизонтальный, вертикальный размер масштабом и связать с параметром источника данных.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
В режиме исполнения, в основном поле элемента, отображается короткий префикс и текущее значение-переменная этого параметра; которые, в зависимости от наличия нарушения, отображаются цветом стиля: ''labColorGood'', ''labColorWarning'', ''labColorAlarm''; и которым изображение несквитированного параметра может мигать. При аппаратных ошибках и недостоверности данных, последнее значение отображается серым цветом и перечёркивается. В подсказке пользователь может получить описание связанного параметра и его ошибки.&lt;br /&gt;
&lt;br /&gt;
В активном режиме элемента можно получить [[#Passport|паспорт]] путём нажатия правой клавиши мыши на поле виджета. В паспорте будут представлены все свойства параметра. При нажатии левой клавишей мыши в области панелей появится [[#ElCadr|панель управления параметром]], а выбор данного виджета будет отображаться мигающей рамкой.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The widget supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent widget/page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| pErr || Parameter: error || String || Input link || Parameter&amp;amp;#124;err || Code and text of the parameter error. It is used to generate alarm. The following error codes are processed:&lt;br /&gt;
* 1,2 — failure, parameter is not valid, be shown in gray and cross out;&lt;br /&gt;
* 3,4 — above and below the alarm limit, be shown in the styled color ''labColorAlarm'';&lt;br /&gt;
* 5,6 — above and below the warning limit, be shown in the styled color ''labColorWarning'';&lt;br /&gt;
* 10,11 — the user alarm codes of the statuses warning and alarm, be sown accordingly in the styled color ''labColorWarning'' and ''labColorAlarm''.&lt;br /&gt;
|-&lt;br /&gt;
| pNAME || Parameter: name || String (translate) || Input link || Parameter&amp;amp;#124;NAME || Short name of the parameter inserted to the alarm messages.&lt;br /&gt;
|-&lt;br /&gt;
| prec || Parameter: precision || Integer || Input link || Parameter&amp;amp;#124;prec || Number signs after the dot, for positive values, and precision (signs in whole), for negative, to display the real end variable on the screen.&lt;br /&gt;
|-&lt;br /&gt;
| pVal || Parameter: value || Real || Input link || Parameter&amp;amp;#124;var || Engineeric real value of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| spName || Speech name || String (translate) || Constant || || The parameter name for speech synthesis during the formation of alarm messages taking into account accents of words, pauses, etc. Empty value disables the speech notification!&lt;br /&gt;
|-&lt;br /&gt;
| pName || Short name || String || Constant || || Short name-prefix value.&lt;br /&gt;
|-&lt;br /&gt;
| pNameSz || Short name size || Integer || Constant || || Size of the short name-prefix in pixels, use the zero value to disable the field.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=TextLab /&amp;gt;&lt;br /&gt;
| {{Anch|TextLab|&amp;lt;h3&amp;gt;Текстовая метка ([[Special:MyLanguage/Libs/Main_graphical_elements#TextLab|TextLab]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=TextLab /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element on Figure 1.3 is used to display the dynamic text labels, which form on basis of the discrete signals. Also this element generates notifications of violations on the locally defined condition, the attribute '''ntf''', additionally it cans generate alarms from the attribute &amp;quot;Error (err)&amp;quot;. The element commonly uses and represents the representative structure of DAQ-templates of [[Special:MyLanguage/Libs/Main#digitBlockUnif|the discrete block]] and [[Special:MyLanguage/Libs/Main#codeState|the code state]].&lt;br /&gt;
&lt;br /&gt;
* '''Спонсирование:''' Василий Григорьев, [http://e-beam.ru Лаборатория Вакуумных Технологий]&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_TextLab.png|center|frame|Рис.1.3. Элемент &amp;quot;Текстовая метка&amp;quot; в режиме разработки и выполнения (слева направо)]].&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Этот виджет может быть использован разработчиком при создании мнемосхем с отображением текстовых меток и/или как элемент статической экранной таблицы. Для использования нужно добавить данный виджет на мнемосхему, подстроить горизонтальный, вертикальный размер и связать с параметром источника данных.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
В режиме исполнения, в основном поле элемента, отображается текстовая метка и на фоне, которые соответствуют значениям дискретных сигналов параметра и конфигурации состояний в атрибуте '''digStts'''; где фон, зависимо от наличия нарушения соответствующего условию атрибута '''ntf''', устанавливается в цвет нарушения; и которым изображение несквитированного параметра может мигать. При аппаратных ошибках и недостоверности данных, фон отображается серым цветом.&lt;br /&gt;
&lt;br /&gt;
В активном режиме элемента можно получить [[#Passport|паспорт]] дважды нажав левую клавиши мыши на поле виджета. В паспорте будут представлены все свойства параметра. При нажатии левой клавишей мыши в области панелей появится [[#ElCadr|панель управления параметром]], а выбор данного виджета будет отображаться мигающей рамкой. Команды дублируются в контекстном меню, которое появляется при нажатии правой клавиши мыши в области виджета.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The widget supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent widget/page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| err || Parameter: error || Address || Input link || Parameter&amp;amp;#124;err || Used as the address for accessing the DAQ-Parameter object of messages sending and the value also used for alarms generation.&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Parameter: name || String (translate) || Input link || Parameter&amp;amp;#124;NAME || Short name of the parameter to be inserted in the notification of violations and actions of the user-operator.&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Parameter: description || String (translate) || Input link || Parameter&amp;amp;#124;DESCR || Description or long name of the parameter to be inserted in the notification of violations and actions of the user-operator.&lt;br /&gt;
|-&lt;br /&gt;
| st_open || Parameter: status-open || Boolean || Input link || Parameter&amp;amp;#124;st_open || The state &amp;quot;Opened&amp;quot; of the parameter or the common state of the switch at missing the state signal &amp;quot;Closed&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| st_close || Parameter: status-close || Boolean || Input link || Parameter&amp;amp;#124;st_close || The state &amp;quot;Closed&amp;quot; of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| st_text || Parameter: status (text) || String (translate) || Input link || Parameter&amp;amp;#124;st_text || Text of the parameter state, at the mode &amp;quot;Code state&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| digStts || Parameter: statuses || String (translate) || Input link || Parameter&amp;amp;#124;digStts || Configuration of the parameter statuses with the structure '''{openedLabel}-{color};{closedLabel}-{color};{noOpenedClosedLabel}-{color};{OpenedClosedLabel}-{color};{errLabel}-{color}''', for the discrete block.&lt;br /&gt;
|-&lt;br /&gt;
| com || Parameter: command || Boolean || Full link || Parameter&amp;amp;#124;com || The command &amp;quot;Open&amp;quot; of the parameter or the common command of the switch at missing the command signal &amp;quot;Close&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| close || Parameter: close || Boolean || Full link || Parameter&amp;amp;#124;close || The command &amp;quot;Close&amp;quot; of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| stop || Parameter: stop || Boolean || Full link || Parameter&amp;amp;#124;stop || The command &amp;quot;Stop&amp;quot; of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| com_text || Parameter: command text (from digComs) || String || Full link || Parameter&amp;amp;#124;com_text || Text of the parameter command, at the mode &amp;quot;Code state&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| digComs || Parameter: commands || String (translate) || Input link || Parameter&amp;amp;#124;digComs || Configuration of the parameter commands with the structure '''{openLabel}-{color};{closeLabel}-{color}''', for the discrete block, and '''{com1Label}-{color};{com2Label}-{color};...;{comNLabel}-{color}''', for the code status.&lt;br /&gt;
|-&lt;br /&gt;
| ntf || Notification &amp;quot;{st}:{modes}:{Speech text}&amp;quot; || String (translate) || Constant || || Configuration of the notification forming at the status (st) [0&amp;amp;#124;1&amp;amp;#124;2(both)&amp;amp;#124;3(err)] and [[Special:MyLanguage/Modules/VCAEngine#Alarms|the notification modes-methods (modes)]], as a string of the digital methods, and by the speech, if pointed such method. The speech message for &amp;quot;3(err)&amp;quot; is taken from the &amp;quot;Error (err)&amp;quot; attribute.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ImgLab /&amp;gt;&lt;br /&gt;
| {{Anch|ImgLab|&amp;lt;h3&amp;gt;Метка изображением ([[Special:MyLanguage/Libs/Main_graphical_elements#ImgLab|ImgLab]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=ImgLab /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element on Figure 1.4 is used to display the dynamic image labels, which form on basis of the discrete signals. Also this element generates notifications of violations on the locally defined condition, the attribute '''ntf''', additionally it cans generate alarms from the attribute &amp;quot;Error (err)&amp;quot;. The element commonly uses and represents the representative structure of DAQ-templates of [[Special:MyLanguage/Libs/Main#digitBlockUnif|the discrete block]] and [[Special:MyLanguage/Libs/Main#codeState|the code state]].&lt;br /&gt;
&lt;br /&gt;
* '''Спонсирование:''' Винницкая Птицефабрика&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ImgLab.png|center|frame|Рис.1.4. Элемент &amp;quot;Метка изображением&amp;quot; в режиме разработки и выполнения (слева направо)]].&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Этот виджет может быть использован разработчиком при создании мнемосхем с отображением меток изображением и/или как элемент статической экранной таблицы. Для использования нужно добавить данный виджет на мнемосхему, подстроить горизонтальный, вертикальный размер и связать с параметром источника данных.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
В режиме исполнения, в основном поле элемента, отображается изображение метки на фоне, которые соответствуют значениям дискретных сигналов параметра и конфигурации состояний в атрибуте '''imgs'''; где фон, зависимо от наличия нарушения соответствующего условию атрибута '''ntf''', устанавливается в цвет нарушения; и которым изображение несквитированного параметра может мигать. При аппаратных ошибках и недостоверности данных, фон отображается серым цветом.&lt;br /&gt;
&lt;br /&gt;
В активном режиме элемента можно получить [[#Passport|паспорт]], двойным кликом левой клавиши мыши на поле виджета. В паспорте будут представлены все свойства параметра. При нажатии левой клавиши мыши в области виджета появится [[#ElCadr|панель управления]] параметром, и выбор данного виджета будет отображаться мигающей рамкой. Команды дублируются в контекстном меню, которое появляется при нажатии правой клавиши мыши в области виджета.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The widget supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent widget/page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| err || Parameter: error || Address || Input link || Parameter&amp;amp;#124;err || Used as the address for accessing the DAQ-Parameter object of messages sending and the value also used for alarms generation.&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Parameter: name || String (translate) || Input link || Parameter&amp;amp;#124;NAME || Short name of the parameter to be inserted in the notification of violations and actions of the user-operator.&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Parameter: description || String (translate) || Input link || Parameter&amp;amp;#124;DESCR || Description or long name of the parameter to be inserted in the notification of violations and actions of the user-operator.&lt;br /&gt;
|-&lt;br /&gt;
| st_open || Parameter: status-open || Boolean || Input link || Parameter&amp;amp;#124;st_open || The state &amp;quot;Opened&amp;quot; of the parameter or the common state of the switch at missing the state signal &amp;quot;Closed&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| st_close || Parameter: status-close || Boolean || Input link || Parameter&amp;amp;#124;st_close || The state &amp;quot;Closed&amp;quot; of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| st_img || Parameter: status &amp;quot;{img}:{bCol}:{blink}&amp;quot; || String || Input link || Parameter&amp;amp;#124;st_text || Image of the parameter state, at the mode &amp;quot;Code state&amp;quot;, where:&lt;br /&gt;
* ''img'' — image name, see [[Special:MyLanguage/Modules/VCAEngine#Media|the image attributes]];&lt;br /&gt;
* ''bCol'' — background color;&lt;br /&gt;
* ''blink'' — blink sign [0&amp;amp;#124;1] of the background.&lt;br /&gt;
|-&lt;br /&gt;
| imgs || Images, for &amp;quot;{openedImage}-{bCol}:{closedImage}-{bCol}:{noOpenedClosedImage}-{bCol}:{OpenedClosedImage}-{bCol}:{errImage}-{bCol}&amp;quot; || String || Constant || || Configuration of the parameter statuses with the structure '''{openedImage}-{bCol}:{closedImage}-{bCol}:{noOpenedClosedImage}-{bCol};{OpenedClosedImage}-{bCol};{errImage}-{bCol}''', for the discrete block.&lt;br /&gt;
|-&lt;br /&gt;
| digStts || Parameter: statuses || String (translate) || Input link || Parameter&amp;amp;#124;digStts || Standard configuration of the parameter statuses with the structure '''{notUsed}-{openedColor};{notUsed}-{closedColor};{notUsed}-{noOpenedClosedColor};{notUsed}-{OpenedClosedColor};{notUsed}-{errColor}''', for the discrete block and missing of the attribute '''imgs''.&lt;br /&gt;
|-&lt;br /&gt;
| com || Parameter: command || Boolean || Full link || Parameter&amp;amp;#124;com || The command &amp;quot;Open&amp;quot; of the parameter or the common command of the switch at missing the command signal &amp;quot;Close&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| close || Parameter: close || Boolean || Full link || Parameter&amp;amp;#124;close || The command &amp;quot;Close&amp;quot; of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| stop || Parameter: stop || Boolean || Full link || Parameter&amp;amp;#124;stop || The command &amp;quot;Stop&amp;quot; of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| com_text || Parameter: command text (from digComs) || String || Full link || Parameter&amp;amp;#124;com_text || Text of the parameter command, at the mode &amp;quot;Code state&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| digComs || Parameter: commands || String (translate) || Input link || Parameter&amp;amp;#124;digComs || Configuration of the parameter commands with the structure '''{openLabel}-{color};{closeLabel}-{color};{stopLabel}-{color}''', for the discrete block, and '''{com1Label}-{color};{com2Label}-{color};...;{comNLabel}-{color}''', for the code status.&lt;br /&gt;
|-&lt;br /&gt;
| ntf || Notification &amp;quot;{st}:{modes}:{Speech text}&amp;quot; || String (translate) || Constant || || Configuration of the notification forming at the status (st) [0&amp;amp;#124;1&amp;amp;#124;2(both)&amp;amp;#124;3(err)] and [[Special:MyLanguage/Modules/VCAEngine#Alarms|the notification modes-methods (modes)]], as a string of the digital methods, and by the speech, if pointed such method. The speech message for &amp;quot;3(err)&amp;quot; is taken from the &amp;quot;Error (err)&amp;quot; attribute.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=alarmsAct /&amp;gt;&lt;br /&gt;
| {{Anch|alarmsAct|&amp;lt;h3&amp;gt;Нарушения — активное ([[Special:MyLanguage/Libs/Main_graphical_elements#alarmsAct|alarmsAct]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.4 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=alarmsAct /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
Элемент на рисунке 1.5 служит для динамического отображения активных нарушений в табличном виде и с выделением их цветом и текстом. Нарушения получаются из [[Special:MyLanguage/Documents/Program_manual#ArchMess|буфера текущих-активных нарушений OpenSCADA]]. Фактически элемент реализует функции примитива &amp;quot;[[Special:MyLanguage/Sub-projects/VCA#ImplProtocol|Протокол]]&amp;quot; для нарушений и с расширением возможностей.&lt;br /&gt;
&lt;br /&gt;
Сортирование сообщений зафиксировано по правилу &amp;quot;активные + наибольший уровень + последние&amp;quot; для сообщений вверху, что можно изменить только редактированием исходного текста елемента.&lt;br /&gt;
&lt;br /&gt;
Для детального изучения актуальных нарушений элементом предусмотрено функцию увеличения высоты вверх или вниз при получении фокуса.&lt;br /&gt;
&lt;br /&gt;
Элемент создан, и он обычно используется, в паре с [[#alarmsSt|кадром полноформатного представления истории нарушений]], который наделён большинством функций этого элемента, но и для истории нарушений.&lt;br /&gt;
&lt;br /&gt;
Основным пользовательским расширением является возможность определения видимых полей таблицы из перечня вариантов:&lt;br /&gt;
* ''atm'' — время возникновения нарушения;&lt;br /&gt;
* ''qttm'' — время подтверждения (квитации) нарушения, для подтверждённых нарушений;&lt;br /&gt;
* ''lev'' — уровень нарушения;&lt;br /&gt;
* ''type'' — тип-название нарушения из уровня ''lev'' и атрибута &amp;quot;types&amp;quot;;&lt;br /&gt;
* ''cat'' — категория нарушения;&lt;br /&gt;
* ''mess'' — полный и неразобранный текст сообщения нарушения;&lt;br /&gt;
* ''prm'' — адрес DAQ-параметра источника нарушения;&lt;br /&gt;
* ''dscr'' — описание нарушения из DAQ-параметра источника;&lt;br /&gt;
* ''dscrCust{N}'' — описание пользовательского поля ''N'';&lt;br /&gt;
* ''alrm'' — текст нарушения;&lt;br /&gt;
* ''cmnt'' — комментарий к нарушению.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Этот элемент и его поля в целом представляют структуру сообщения нарушения, которая детально описана в [[Special:MyLanguage/Documents/Program_manual#ArchMess|руководстве пользователя]].&lt;br /&gt;
&lt;br /&gt;
Как можно видеть из перечня возможных полей таблицы, этот элемент поддерживает механизм подтверждения (квитации), комментирования и пользовательские поля.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсирование:''' Устьянцев Михаил&lt;br /&gt;
* '''Спонсировано, добавление нового пользовательского поля &amp;quot;Тип&amp;quot; на 0.2 {{CtxDetails|ЧД|человеко-дней, 1ЧД — 10 часов}}:''' INSERTEC LTDA&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_alarmsAct_ru.png|center|frame|Рис.1.5. Элемент &amp;quot;Нарушения — активное&amp;quot; в режиме разработки и исполнения (сверху вниз).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Этот виджет может быть использован разработчиком при создании мнемосхем с постоянным отображением активных нарушений или для общего их отображения на [[#RootPgSo|корневой странице]]. Для использования необходимо добавить этот виджет на мнемосхему или корневую страницу, подстроить горизонтальный, вертикальный размер, настроить вертикальное расширение и откорректировать другие свойства вроде перечня и последовательности отображаемых полей таблицы.&lt;br /&gt;
&lt;br /&gt;
Если нужно выключить функцию подтверждения то вы должны исключить время подтверждения &amp;quot;qttm&amp;quot; из перечня полей и установить элемент неактивным.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
В режиме использования строится таблица из перечня активных нарушений, для определённых полей, правила сортирования и выделения; содержимое которой периодически и динамически обновляется. При выборе  таблицы, получение фокуса, её высота может расширяться, отобразив больше сообщений, если эта функцию включена и есть соответствие условию из определённого количества нарушений.&lt;br /&gt;
&lt;br /&gt;
Пользователю предоставляется возможность подтвердить нарушение, изменив значение поля времени подтверждения или с помощью панели управления, которая выплывет при выборе элемента и строки нарушения.&lt;br /&gt;
&lt;br /&gt;
Ещё пользователь может оставить комментарий к нарушению, откорректировав соответствующее поле таблицы.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| active || Active || Boolean || Turn off if there disabled confirmation, focus gaining and editing in general — purely displaying.&lt;br /&gt;
|-&lt;br /&gt;
| hHdrVis || Show header: horizontal || Boolean ||&lt;br /&gt;
|-&lt;br /&gt;
| vHdrVis || Show header: vertical || Boolean ||&lt;br /&gt;
|-&lt;br /&gt;
| formDtTm || Data and time format (%Y-%m-%d %H.%M.%S[.%MS,%US]) || String || Format of displaying the time of violation and confirmation.&lt;br /&gt;
|-&lt;br /&gt;
| expOnItems || Expand on focus: items (&amp;lt;=0-disabled) || Integer || Maximum number of messages to trigger the element expansion, height increasing, at focus gaining.&lt;br /&gt;
|-&lt;br /&gt;
| expOnFocus || Expand on focus: pixels (0-disabled,&amp;gt;-down,&amp;lt;-up) || Integer || Set to the desired value of the element extension, height increasing, at focus gaining.&lt;br /&gt;
|-&lt;br /&gt;
| colms || Columns&lt;br /&gt;
List separated by ',' from the variants: atm, qttm, lev, type, cat, mess, prm, dscr, dscrCust{N}, alrm, cmnt.&lt;br /&gt;
| String || Determine in the desired sequence and the fields filling.&lt;br /&gt;
|-&lt;br /&gt;
| highLght || Highlight rules&lt;br /&gt;
Rows in the form &amp;quot;{lev}[{slev}]{quitt}:{color}:{font}:{fontColor}&amp;quot;.&lt;br /&gt;
| Text || Highlight rules, where:&lt;br /&gt;
* ''lev'' — main level of the message [0...7];&lt;br /&gt;
* ''slev'' — sub-level of the message [0...9], optional;&lt;br /&gt;
* ''quitt'' — sign of the message confirmation (quietation) [0|1];&lt;br /&gt;
* ''color'' — background color of the message row;&lt;br /&gt;
* ''font'' — text font of the message row;&lt;br /&gt;
* ''fontColor'' — text color of the message row.&lt;br /&gt;
To example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;BASH&amp;quot;&amp;gt;&lt;br /&gt;
#&amp;lt;SnthHgl font=&amp;quot;monospace&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;rule expr=&amp;quot;^#[^\n]*&amp;quot; color=&amp;quot;gray&amp;quot; font_italic=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
# &amp;lt;rule expr=&amp;quot;^[0-9]*&amp;quot; color=&amp;quot;blue&amp;quot;&amp;gt;&lt;br /&gt;
#  &amp;lt;rule expr=&amp;quot;[01]$&amp;quot; color=&amp;quot;red&amp;quot;/&amp;gt;&lt;br /&gt;
# &amp;lt;/rule&amp;gt;&lt;br /&gt;
# &amp;lt;rule expr=&amp;quot;(?&amp;lt;=:).*&amp;quot; font_weight=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
#&amp;lt;/SnthHgl&amp;gt;&lt;br /&gt;
50:gray&lt;br /&gt;
40:red&lt;br /&gt;
150:yellow&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colDscrCustNames || Перечень наименований пользовательских полей, поделённых ';' || Строка (перевод) || При поддержке пользовательских полей, и их видимости, тут приводятся их наименования.&lt;br /&gt;
|-&lt;br /&gt;
| types || Перечень типов по уровню от 0, разделены ';' || Строка (перевод) || Типы-названия нарушений за их уровнем, типично &amp;quot;Отладка;Информ.;Отметка;Предупр.;Ошибка;Критически;Тревога;Авария&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| messCat || Категория сообщений || Строка || Категория обрабатываемых сообщений нарушений, типично пусто для всей нарушений.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=objProps /&amp;gt;&lt;br /&gt;
| {{Anch|objProps|&amp;lt;h3&amp;gt;Свойства объекта ([[Special:MyLanguage/Libs/Main_graphical_elements#objProps|objProps]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru&lt;br /&gt;
 &amp;lt;section end=objProps /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
Элемент на рисунке 1.6 служит для отображения свойств источника данных в табличном виде и с выделением их цветом, как объект, и предоставления возможности изменения значения свойств с правом записи. Также этот элемент генерирует сообщения про нарушения согласно особенностям объекта. Элемент в целом использует и предоставляет представительскую структуру DAQ-шаблонов &amp;quot;[[Special:MyLanguage/Libs/Main#ComplexObject|Комплексный объект]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсировано:''' ПАТ ХАРТРОН&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_objProps_ru.png|center|frame|Рис.1.6. Элемент &amp;quot;Свойства объекта&amp;quot; в режиме разработки и выполнения (слева направо).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Этот виджет может быть использован разработчиком при создании мнемосхем с консолидированным отображением объекта как целое и сущности со свойствами. Для использования необходимо добавить этот виджет на мнемосхему, подстроить горизонтальный, вертикальный размер масштабом и связать с параметром источника данных от DAQ-шаблона &amp;quot;[[Special:MyLanguage/Libs/Main#ComplexObject|Комплексный объект]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
В режиме исполнения отображается таблица со свойствами в строках, где первая колонка это название свойства, а вторая её значение. Строка может подсвечиваться фоном аварийного цвета, в случае нарушения по этому свойству. Особенное значение имеет и заголовок виджета где отображается название объекта, фон цвета которого может приобретать аварийные цвета, при наличии нарушений у объекта.&lt;br /&gt;
&lt;br /&gt;
Таблица свойств является активной и при выборе строки свойства, которое предусматривает запись, снизу появится поле установки значения свойства.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Свойства связывания и конфигурации}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Идентификатор !! Имя !! Тип !! Конфигурация !! Конфигурационный шаблон !! Описание&lt;br /&gt;
|-&lt;br /&gt;
| objName || Объект: имя || Строка || Входная связь || Object&amp;amp;#124;NAME || Имя объекта для заголовка.&lt;br /&gt;
|-&lt;br /&gt;
| objDescr || Объект: описание || Текст || Входная связь || Object&amp;amp;#124;DESCR || Описание объекта для подсказки к заголовку.&lt;br /&gt;
|-&lt;br /&gt;
| objErr || Объект: ошибка || Строка || Входная связь || Object&amp;amp;#124;err || Ошибка объекта для формирования сообщения и подсвечивания заголовка, обрабатываются коды концепции.&lt;br /&gt;
|-&lt;br /&gt;
| objItems || Объект: элементы || Объект || Входная связь || Object&amp;amp;#124;items || Описательный объект свойств физического объекта, согласно концепции.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=calendar /&amp;gt;&lt;br /&gt;
| {{Anch|calendar|&amp;lt;h3&amp;gt;Календарь ([[Special:MyLanguage/Libs/Main_graphical_elements#calendar|calendar]])&amp;lt;/h3&amp;gt;}} || 1.0 || GPLv2 || * || en, uk, ru &amp;lt;section end=calendar /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
Элемент на рисунке 1.7 служит для отображения месяца календаря по неделям, который предусматривает возможность выбора года, месяца и отдельного дня, а также переход к текущему дню.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсировано:''' ООО &amp;quot;СВІТоВИР&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_calendar_ru.png|center|frame|Рис.1.7. Элемент &amp;quot;Календарь&amp;quot; в режиме разработки и выполнения (слева направо).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Этот виджет может быть использован разработчиком при создании мнемосхем с отображением календаря. Для использования необходимо добавить этот виджет на мнемосхему, подстроить горизонтальный, вертикальный размер масштабом и использовать атрибут &amp;quot;selTime&amp;quot; этого виджета для получения и установки даты.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
В режиме исполнения отображается соответствующий выбранному год, месяц и подсвечен день, согласно значению атрибута &amp;quot;selTime&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Пользователь имеет возможность выбрать год и месяц из перечня, а также день в изображении недель. Для быстрого возврата к текущим суткам предусмотрено соответствующую кнопку.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Свойства связывания и конфигурации}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Идентификатор !! Имя !! Тип !! Описание&lt;br /&gt;
|-&lt;br /&gt;
| selTime || Выбранное время || Целое || Время календаря в секундах от UNIX-эпохи.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=weather /&amp;gt;&lt;br /&gt;
| {{Anch|weather|&amp;lt;h3&amp;gt;Weather ([[Special:MyLanguage/Libs/Main_graphical_elements#weather|weather]])&amp;lt;/h3&amp;gt;}} || 1.0 || GPLv2 || * || en, uk &amp;lt;section end=weather /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
The element on Figure 1.8 is used to display weather data from parameters on the DAQ-template &amp;quot;[[Special:MyLanguage/Libs/Main#weather|Weather]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_weather.png|center|frame|Fig.1.8. The element &amp;quot;Weather&amp;quot; in the development and runtime modes (left to right).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
This widget can be used the developer to create mnemonic schemes with displaying the weather. To use it you need to add this widget to a mnemonic scheme, adjust for the horizontal, vertical size, by scaling, and link to the data source parameter at the DAQ-template &amp;quot;[[Special:MyLanguage/Libs/Main#weather|Weather]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode, the current weather is displayed in the top and forecast displayed in the bottom with details on the images' tooltip.&lt;br /&gt;
&lt;br /&gt;
[[File:at.png]] Images for some weather conditions can be missed yet due to the images are still appended!&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| current || Weather: Current || Object || Input link || Parameter&amp;amp;#124;current || The object with current data.&lt;br /&gt;
|-&lt;br /&gt;
| forecast || Weather: Forecast || Object || Input link || Parameter&amp;amp;#124;forecast || The object with forecast data.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=RootPgSo /&amp;gt;&lt;br /&gt;
| {{Anch|RootPgSo|&amp;lt;h2&amp;gt;Корневая страница (СО) ([[Special:MyLanguage/Libs/Main_graphical_elements#RootPgSo|RootPgSo]])&amp;lt;/h2&amp;gt;}}&lt;br /&gt;
| 2.7 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=RootPgSo /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || 1000 мс&lt;br /&gt;
|}&lt;br /&gt;
Элемент-кадр, представленный на рисунке 2, служит базой для создания пользовательских интерфейсов, начально для управления технологическими процессами, основанными на объектах сигнализации (СО).&lt;br /&gt;
&lt;br /&gt;
Корневая страница содержит четыре области:&lt;br /&gt;
* область кнопок-индикаторов объектов сигнализации (вверху);&lt;br /&gt;
* область навигации по видами отображения (справа-вверху);&lt;br /&gt;
* контейнер основных кадров пользовательского интерфейса (в центре);&lt;br /&gt;
* контейнер панелей управления (справа-внизу).&lt;br /&gt;
&lt;br /&gt;
''Область кнопок-индикаторов объектов сигнализации'' служит для предоставления информации о наличии нарушений в объекте сигнализации, а также для переключения между ними.&lt;br /&gt;
&lt;br /&gt;
Для отображения выбранного объекта сигнализации используется цвет фона, согласно стилям: ''backColorButton'' и ''backColorButtonSel''. А нарушения отображаются цветом текста, согласно стилям: ''labColorGood'', ''labColorWarning'', ''labColorAlarm''; и которыми текст несквитированного объекта сигнализации может мигать.&lt;br /&gt;
&lt;br /&gt;
Buttons are currently generated dynamically by copying the first and only, according to the virtual pages of the signal objects in the project tree, with the serial digital identification from 1 (one). The limitation on the number of buttons or signal objects is only the total length of the names of the signal objects that can be placed in two rows of these buttons. That is, for short names we can get up to near 100 signal objects. If the signal object is one, even this single base button is hidden.&lt;br /&gt;
&lt;br /&gt;
''Область навигации по видами отображения'' — индикация выбора и выбор вида отображения как, например: &amp;quot;Мнемосхемы&amp;quot;, &amp;quot;Группы графиков&amp;quot;, &amp;quot;Группы контуров&amp;quot;, &amp;quot;Документы&amp;quot; и другое; и кнопки перелистывания или комбобокс прямого выбора кадров в объекте сигнализации.&lt;br /&gt;
&lt;br /&gt;
Пространство кнопок видов отображения является динамическим, в смысле занимания пространства отсутствующих, и значение самих видов отображения настраивается на другое от типичного значение, т.е. предусмотрено два основных вида отображения (view1 и view2), три дополнительных (view3, view4 и view5), а также один общий на весь интерфейс (view6).&lt;br /&gt;
&lt;br /&gt;
Ниже также содержаться кнопки квитации, которые появляются при возникновении нарушений, а сверху изображение логотипа, которое настраивается.&lt;br /&gt;
&lt;br /&gt;
''Контейнер основных кадров пользовательского интерфейса'' — область контейнера для включения в неё основных кадров при выборе их кнопками режимов отображения или смене объекта сигнализации.&lt;br /&gt;
&lt;br /&gt;
''[[#alarmsAct|Общая таблица активных нарушений]]'' — содержит цветные строки актуальных нарушений, которые упорядочены по их важности с наиболее важными наверху. Изначально виджет выключен.&lt;br /&gt;
&lt;br /&gt;
''Контейнер панелей управления'' — область контейнера для включения в неё панелей управления различными объектами в области контейнера основных кадров, например — панель параметра, документа, графика и т.д.&lt;br /&gt;
&lt;br /&gt;
Под контейнером панелей управления располагается кнопка запуска демонстрационного режима — режима при котором осуществляется периодическое переключение показательных кадров, изменение режимов и других операций согласно сценарию.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсирование динамизации:''' Винницкая Птицефабрика&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_RootPgSoD_ru.png|center|frame|Рис.2a. Кадр &amp;quot;Корневая страница (СО)&amp;quot; в режиме разработки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Данный виджет может использоваться только в режиме корневой страницы, которая должна помещаться в дерево проекта как элемент &amp;quot;so&amp;quot;. Кроме этого, вокруг главной страницы должна быть развёрнута следующая древовидная иерархия:&lt;br /&gt;
: /'''control'''/* — логический контейнер, содержит различные панели управления;&lt;br /&gt;
: /'''so'''/ — этот кадр как контейнер, содержит логические контейнеры объектов сигнализации:&lt;br /&gt;
:: '''{n}'''/ — логический контейнер объекта сигнализации ''n'' (1...), содержит логические контейнера и шаблоны видов отображения:&lt;br /&gt;
::: ['''view1'''|'''mn''']/* — вид отображения 1 (обычно и ранее это мнемосхемы), содержит множество страниц конечных кадров;&lt;br /&gt;
::: ['''view2'''|'''ggraph''']/* — вид отображения 2 (обычно и ранее это шаблон [[#grpGraph|группы графиков]]), содержит множество страниц конечных кадров;&lt;br /&gt;
::: ['''view3'''|'''gcadr''']/* — вид отображения 3 (обычно и ранее это шаблон [[#grpCadr|группы контуров]]), содержит множество страниц конечных кадров;&lt;br /&gt;
::: ['''view4'''|'''gview''']/* — вид отображения 4 (обычно и ранее это шаблон [[#ViewCadr|группы обзорных кадров]]), содержит множество страниц конечных кадров;&lt;br /&gt;
::: ['''view5'''|'''doc''']/* — вид отображения 5 (обычно и ранее это логический контейнер документов), содержит множество страниц конечных кадров;&lt;br /&gt;
::: '''greg'''/* — специфический шаблон страницы [[#cntrRegul|настройки ПИД-регулятора]], содержит множество страниц конечной конфигурации ПИД-регуляторов, подключенных статически и которые вызываются только кнопкой &amp;quot;ПИД&amp;quot; [[#ElCadr|элемента кадра]].&lt;br /&gt;
:: ['''view6'''|'''rg''']/ — логический контейнер глобального вида отображения 6 (обычно и ранее это [[#ResultGrph|сводные графики]] — общие графики для всего интерфейса):&lt;br /&gt;
::: ['''view6'''|'''rg''']/* — вид отображения 6 (обычно и ранее это шаблон [[#ResultGrph|сводных графиков]]), содержит множество страниц конечных кадров.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Identifiers of the pages of the types of view, specified as ['''view1'''|'''mn'''], must be specified in the tree either in the new scheme &amp;quot;view1&amp;quot; or in the old scheme &amp;quot;mn&amp;quot;. Mixing is not supported and the view items must not be empty, that is contain at least one active page!&lt;br /&gt;
&lt;br /&gt;
В качестве текста кнопок объектов сигнализации используется название логического контейнера с соответствующим идентификатором ''n''. Из описания этого контейнера также берётся и текст всплывающей подсказки к этой кнопке, если он не пуст.&lt;br /&gt;
&lt;br /&gt;
Все дальнейшие настройки и редактирования около этого кадра нужно осуществлять для его копии-ссылки в дереве проекта, и настойчиво не рекомендуется редактировать его в библиотеке, иначе Вы потеряете возможность обновления библиотеки или эти изменения, при её обновлении!&lt;br /&gt;
&lt;br /&gt;
Текст и подсказка кнопок видов отображения изменяется непосредственно в соответствующих свойствах этих виджетов. Быстрые клавиши вида отображения берутся из скобок всплывающей подсказки, вроде &amp;quot;Графики (CtrlAlt+G)&amp;quot;, и соответственно обрабатываются. Для изменения изображения вида отображения достаточно переопределить иконку соответствующего вида, вроде &amp;quot;view1&amp;quot;, путём загрузки изображения с соответствующим именем в Mime-данные проекта.&lt;br /&gt;
&lt;br /&gt;
Для включения [[#alarmsAct|общей таблицы активных нарушений]] просто установить '''1 (один)''' в конфигурации связей кадра для &amp;quot;alarms &amp;gt; en&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Для включения и конфигурации возврата к некоторому непривилегированному пользователю после некоторого времени неактивности, просто установить '''{минуты)-{пользователь}''' в конфигурации связей кадра для &amp;quot;defUser&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Изображение логотипа можно изменить также само, как и изображение вида отображения, т.е. загрузить в Mime-данные проекта новое изображение с названием &amp;quot;logo&amp;quot;, после чего можно откорректировать геометрию виджета логотипа под нужные пропорции. Виджет изображения можно перенести влево, подвинув предварительно кнопку объекта сигнализации вправо на размер логотипа. Если логотип вообще не нужен то обнулить ширину его виджета, но не удаляйте его!&lt;br /&gt;
&lt;br /&gt;
Панель навигации и контейнер панелей управления потенциально также можно перенести влево, подвинув контейнер основных кадров, а может и кнопку объекта сигнализации вправо.&lt;br /&gt;
&lt;br /&gt;
При необходимости, корневую страницу можно дополнить дополнительными элементами, которые не нуждаются в особенной обработке, т.е. — изменение исходной процедуры кадра, что уже является не использованием, а редактированием. [[file:at.png]] Тут нужно отметить, что уменьшение размеров этого контейнера, как и любого другого, приведёт к появлению полос прокрутки и-или будет требовать корректировки кадров размещения в контейнер, но этого может быть не нужно совершать, учитывая расширение контейнера на неиспользованные строки кнопок объектов сигнализации.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
При запуске кадра в режиме исполнения, сначала осуществляется построение кнопок объектов сигнализации, которые формируются в два ряда, после чего контейнер основных кадров расширяется вверх на ряд, если достаточно было одного, или на два, если объект сигнализации один. Далее формируются кнопки видов отображения, присутствующие из которых активируются и расширяются для заполнения места отсутствующих.&lt;br /&gt;
&lt;br /&gt;
После динамического формирования, кадр осуществляет периодический контроль за сменой кадра в контейнере основных кадров, что отображается соответствующим цветом фона в кнопке объекта сигнализации и вида отображения, к которым кадр принадлежит. Между кнопками листания обновляется информация про общее количество кадров и позицию актуального, а также сами кнопки активируются согласно возможностям листания в актуальной позиции кадра. Для комбобокса прямого выбора кадра из списка, соответственно осуществляется формирование актуального перечня кадров и установка названия текущего. Также осуществляется контроль состояния нарушения-уведомления по объектам сигнализации, который соответственно отображается цветом текста кнопок объекта сигнализации и его миганием, а также активируются или дизактивируются кнопки квитации.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The frame supports now of working with very big &amp;quot;Periodic processing&amp;quot; value or disabling the periodic processing in whole (the value -2) and that value also propagated to the child pages and widgets if they want such behaviour (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
Смена кадра в контейнере панелей управления не отслеживается и они в целом вызываются из интерфейса основных кадров, разве-что он очищается со сменой основного кадру путём открытия панели-заглушки.&lt;br /&gt;
&lt;br /&gt;
Из основных действий, кадром предоставляется возможность пользователю выбрать объект сигнализации, вид отображения и соответствующий кадр. Нажав кнопку объекта сигнализации, вида отображения, прямо выбрав в комбобоксе или полистав; результатом чего является вызов соответствующего кадра в контейнере основных кадров. Из дополнительных действий, пользователь может сквитировать нарушение-уведомление и запустить Демо-режим, если он предусмотрен. Типовая настройка кадра предусматривает обслуживание ряда горячих клавиш, таких как '''CtrlAlt+[1...0]''' для вызова объектов сигнализации от 1 до 10, и '''CtrlAlt+[MGCVDR]''' для вызова соответствующих видов отображения.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_RootPgSoR_ru.png|center|frame|Рис.2b. Кадр &amp;quot;Корневая страница (СО)&amp;quot; в режиме исполнения.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Свойства связывания и конфигурации}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Идентификатор !! Имя !! Тип !! Описание&lt;br /&gt;
|-&lt;br /&gt;
| alarms &amp;gt; en (конфигурация) || Сигналы &amp;gt; Включено || Логический || Включение [[#alarmsAct|общей таблицы активных нарушений]]&lt;br /&gt;
|-&lt;br /&gt;
| defUser (конфигурация) || Типичное для возврата, {минут)-{пользователь} || Строка || Включение и конфигурация возврата к некоторому непривилегированному пользователю после некоторого времени неактивности, строкой '''{минуты)-{пользователь}'''.&lt;br /&gt;
|-&lt;br /&gt;
| demoPlayProc || Проц. проигрывания демо || Текст || Процедура на [[Special:MyLanguage/Modules/JavaLikeCalc|языке JavaLikeCalc]] для проигрывания некоторой демонстрации. Включает кнопку Демо-режима в режиме исполнения. Для примера такой процедуры смотрите демонстрационные-проекты [[Special:MyLanguage/Using/Model_AGLKS|АГЛКС]] и [[Special:MyLanguage/Using/Model_Boiler|Котел]]!&lt;br /&gt;
|-&lt;br /&gt;
| colspan=4 | ''Специфические для визуализатора атрибуты для [[Special:MyLanguage/Modules/Vision|UI.Vision]] ([[Special:MyLanguage/Modules/Vision#SpecAttrs|больше]]) и [[Special:MyLanguage/Modules/WebVision|UI.WebVision]] ([[Special:MyLanguage/Modules/WebVision#SpecAttrs|больше]])''&lt;br /&gt;
|-&lt;br /&gt;
| keepAspectRatio || Сохранять пропорцию при масштабировании || Логический || Сохранять пропорцию страниц при масштабировании.&lt;br /&gt;
|-&lt;br /&gt;
| stBarNoShow || Не показывать строку статуса || Логический || Скрыть строку статуса главного окна.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=4 | ''Специфические для визуализатора атрибуты для [[Special:MyLanguage/Modules/Vision|UI.Vision]] ([[Special:MyLanguage/Modules/Vision#SpecAttrs|больше]])''&lt;br /&gt;
|-&lt;br /&gt;
| runWin || Окно исполнения || Выбор целых чисел || Установка режима исполнения главного окна:&lt;br /&gt;
* &amp;quot;Оригинальный размер (0)&amp;quot;.&lt;br /&gt;
* &amp;quot;Максимизировать (1)&amp;quot;.&lt;br /&gt;
* &amp;quot;На весь экран (2)&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| statLine || Элементы строки статуса || Текст || Текстовое поле с описанием элементов строки статуса пользователя.&lt;br /&gt;
|-&lt;br /&gt;
| winPosCntrSave || Управление и сохранение положений окон || Логический || Включение управления и сохранения положения окон исполнения.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=4 | ''Основные процедуры [[Special:MyLanguage/Modules/VCAEngine#Alarms|механизма уведомлений]]''&lt;br /&gt;
|-&lt;br /&gt;
| notify0 || Уведомление: тип 0 (Свет) || Текст ||&lt;br /&gt;
|-&lt;br /&gt;
| notify1 || Уведомление: тип 1 (Гудок) || Текст ||&lt;br /&gt;
|-&lt;br /&gt;
| notify2 || Уведомление: тип 2 (СинтезРечи) || Текст || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== {{Anch|MainFrames|Основные кадры}} ==&lt;br /&gt;
Содержит элементы-кадры шаблонного и конечного типов, а также элементы-виджеты и панели из которых они строятся и которые имеют отношение к их использованию. Эти кадры предназначены для размещения в дереве страниц проекта, построенного по [[#RootPgSo|концепции объектов сигнализации корневой страницы &amp;quot;RootPgSo&amp;quot;]]. Однако они могут быть размещены как отдельные сущности или в составе собственной концепции управления страницами, но тут нужно учитывать, что кадры часто ссылаются и вызывают те или иные [[#Panels|панели управления]] общего применения и связанные элементы!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=grpGraph /&amp;gt;&lt;br /&gt;
| {{Anch|grpGraph|&amp;lt;h3&amp;gt;Graphics group ([[Special:MyLanguage/Libs/Main_graphical_elements#grpGraph|grpGraph]]); Graphics group 10 ([[Special:MyLanguage/Libs/Main_graphical_elements#grpGraph|grpGraph10]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.6 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=grpGraph /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element-frame shown in Figure 3.1 is provided for simultaneous observation of trends and control the parameters in the signal object, includes both instances of the widget &amp;quot;[[#ElViewGraph|Graphics group element]]&amp;quot; of each parameter (up to 8 or 10) and [[Special:MyLanguage/Sub-projects/VCA#Diagram|the primitive &amp;quot;Diagram&amp;quot;]] to monitor the parameters' trends and browsing history, and also the scroll bar for fast navigation on allowed history of selected parameters for show. The variant in 10 trends is inherited from the base variant in 8 trends and you can create your own variants by inherit the base and append more graphics group elements.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_grpGraphD_ru.png|center|frame|Рис.3.1a. Кадр &amp;quot;Группа графиков&amp;quot; в режиме разработки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Кадр предназначен для выполнения роли страницы-шаблона, а, следовательно, он должен непосредственно помещаться в дерево проекта. В проекте-шаблоне &amp;quot;[[#RootPgSo|Группы сигнализаций]]&amp;quot;, для каждого объекта сигнализации, этот кадр включен в роли шаблона, что позволяет создавать на его основе множество страниц групп графиков. К каждому кадру могут подключаться до восьми-десяти параметров, путём установки связей. Графики, для которых не будут установлены связи, будут скрыты при исполнении или доступны для пользовательского выбора в случае наличия списка выборных параметров в атрибуте &amp;quot;Выбор: параметры доступные для выбора&amp;quot; (формат списка описан в [[#graphSelPrm|диалоге выбора параметров]]).&lt;br /&gt;
&lt;br /&gt;
Типичная глубина трендов в прошлое установлена в 10 минут — для текущего оперативного контроля, что, при необходимости, можно изменить непосредственно отредактировав соответствующее поле виджета диаграммы, например, для шаблонной страницы проекта, чтобы оно распространилось на все конечные страницы.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
В режиме исполнения отображаются графики, для которых установлены связи. Управление параметрами с элементов группы графиков детально описано в разделе виджета &amp;quot;[[#ElViewGraph|Элемент группы графиков (ElViewGraph)]]&amp;quot;. Дополнительно можно управлять свойствами отображения графиков, для чего автоматически с этой страницей открывается [[#grph_panel|панель управления графиком]], или необходимо левой клавишей мыши нажать в области графика.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The frame supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_grpGraphR_ru.png|center|frame|Рис.3.1b. Кадр &amp;quot;Группа графиков&amp;quot; в режиме исполнения.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| name || Name || String (translate) || Constant ||  || Group name&lt;br /&gt;
|-&lt;br /&gt;
| allowSelLst || Select: parameters accessible to select || Text || No || || Place here the parameters for selection by the user in a list of the DAQ-paths to them (for more details see the &amp;quot;[[#graphSelPrm|Graph parameter selection]]&amp;quot; dialog):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:&amp;quot;&amp;gt;&lt;br /&gt;
/LogicLev/proc/prm_CPU/prm_load&lt;br /&gt;
/LogicLev/proc/prm_MEM/prm_use&lt;br /&gt;
/LogicLev/proc/prm_CPU/prm_T &amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| perUserSel || Select: save the selection per user || Boolean || No || || Set to save the user selection separately&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Element {n} from 1 to 8(10)''&lt;br /&gt;
|-&lt;br /&gt;
| el{n} || colspan=&amp;quot;5&amp;quot; | ''List of the linking parameters corresponds to the list of the &amp;quot;Graphics group element (ElViewGraph)&amp;quot; widget''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ElViewGraph /&amp;gt;&lt;br /&gt;
| {{Anch|ElViewGraph|&amp;lt;h4&amp;gt;Graphics group element ([[Special:MyLanguage/Libs/Main_graphical_elements#ElViewGraph|ElViewGraph]])&amp;lt;/h4&amp;gt;}}&lt;br /&gt;
| 1.5 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=ElViewGraph /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || 2000 ms&lt;br /&gt;
|}&lt;br /&gt;
The element-widget shown in Figure 3.1.1 is provided to create [[#grpGraph|graphics groups]]. The widget contains information about parameter, the regulator mode, if the parameter is such, the units of analog parameter, as well as the color corresponding to the parameter's trend. The widget commonly uses and represents the representative structure of the DAQ-templates &amp;quot;[[Special:MyLanguage/Libs/Main#anUnif|Analog signal]]&amp;quot; and &amp;quot;[[Special:MyLanguage/Libs/Main#digitBlockUnif|Discrete block]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ElViewGraphD_ru.png|center|frame|Рис.3.1.1a. Виджет &amp;quot;Элемент группы графиков&amp;quot; в режиме разработки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
Though this widget is not intended for independent use in isolation from [[#grpGraph|the graphics groups]], it can be used, for example, placing it to the mnemonic scheme and linking with the data source parameter.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
В режиме исполнения, в основном поле элемента, отображается название параметра, режим регулятора (только для регулятора), текущее значение-переменная и единица измерения этого параметра; которые, в зависимости от наличия нарушения, отображаются цветом стиля: ''labColorGood'', ''labColorWarning'', ''labColorAlarm''. При аппаратных ошибках и недостоверности данных, последнее значение отображается серым цветом.&lt;br /&gt;
&lt;br /&gt;
Except the available visual data, a number of control elements are provided:&lt;br /&gt;
* &amp;quot;Selection&amp;quot; — at pressing the left mouse button in the widget area, in the right side will appear [[#ElCadr|the control panel]], and the widget selection will be displayed by the border flashing.&lt;br /&gt;
* &amp;quot;Hide/Show&amp;quot; — double-clicking in the widget area toggles the show-hiding of the item's graph.&lt;br /&gt;
* &amp;quot;Context menu functions&amp;quot; — a number of functions are provided through the context menu:&lt;br /&gt;
** &amp;quot;Passport&amp;quot; — getting [[#Passport|the passport]] of the parameter, which will present all it properties.&lt;br /&gt;
** &amp;quot;Hide/Show&amp;quot; — toggling the display or hiding of a graph of this element, similar to a double click.&lt;br /&gt;
** &amp;quot;Show one&amp;quot; — single graph display of the selected parameter in its native scale by hiding the rest of the items in the group.&lt;br /&gt;
** &amp;quot;Show all&amp;quot; — display all parameter graphs in the group.&lt;br /&gt;
** &amp;quot;Calculating&amp;quot; — calling the [[#graphCalc|calculating dialog]] above the visible data of the selected parameter.&lt;br /&gt;
** &amp;quot;Select&amp;quot; — calling the [[#graphSelPrm|selection dialog]] of the parameter from the list of ones available for selection — the attribute &amp;quot;Select: parameters accessible to select&amp;quot; of the owner cadre. This item is only available if a selection list is available. From the dialog the user can clear the parameter also and what for statically preset parameters means of return to the static parameter.&lt;br /&gt;
&lt;br /&gt;
Виджет сохраняет выбранный пользователем параметр в таблице сеанса проекта и загружает параметр при следующем запуске, включая цвет тренда, типовое значение которого обычно берется из стиля.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The widget supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent widget/page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ElViewGraphR_ru.png|center|frame|Рис.3.1.1b. Виджет &amp;quot;Элемент группы графиков&amp;quot; в режиме исполнения.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| name || Name || String (translate) || Input link || Parameter&amp;amp;#124;NAME || Parameter name-code, to display in the name field.&lt;br /&gt;
|-&lt;br /&gt;
| dscr || Description || Text (translate) || Input link || Parameter&amp;amp;#124;DESCR || Parameter description, to place in the tooltip and statusbar.&lt;br /&gt;
|-&lt;br /&gt;
| addr || Address || Address || Input link || Parameter&amp;amp;#124;var || Address to the parameter attribute for the trend building.&lt;br /&gt;
|-&lt;br /&gt;
| color || Graphic color || String || No || || Working color of the trend&lt;br /&gt;
|-&lt;br /&gt;
| colorDef || Default color from the style || String || No || || Default color of the trend on the cadre level&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Analog parameters''&lt;br /&gt;
|-&lt;br /&gt;
| ed || Dimension || String (translate) || Input link || Parameter&amp;amp;#124;ed ||&lt;br /&gt;
|-&lt;br /&gt;
| prec ||  Precision || Integer || Input link || Parameter&amp;amp;#124;prec || Number signs after the dot, for positive values, and precision (signs in whole), for negative, to display the real end variable on the screen.&lt;br /&gt;
|-&lt;br /&gt;
| log || Logarithmic scale || Boolean || Input link || Parameter&amp;amp;#124;log ||&lt;br /&gt;
|-&lt;br /&gt;
| max || Maximum || Real || Input link || Parameter&amp;amp;#124;max || Upper limit value of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| min || Minimum || Real || Input link || Parameter&amp;amp;#124;min || Minimum limit values of the parameter.&lt;br /&gt;
|-&lt;br /&gt;
| aMax || Border up alarm || Real || Input link || Parameter&amp;amp;#124;aMax ||&lt;br /&gt;
|-&lt;br /&gt;
| aMin || Border down alarm || Real || Input link || Parameter&amp;amp;#124;aMin ||&lt;br /&gt;
|-&lt;br /&gt;
| wMax || Border up warning || Real || Input link || Parameter&amp;amp;#124;wMax ||&lt;br /&gt;
|-&lt;br /&gt;
| wMin || Border down warning || Real || Input link || Parameter&amp;amp;#124;wMin || &lt;br /&gt;
|-&lt;br /&gt;
| pModeA || Regulator mode: auto || Boolean || Input link || Parameter&amp;amp;#124;auto || The regulator mode &amp;quot;Automatic&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| pModeC || Regulator mode: cascade || Boolean || Input link || Parameter&amp;amp;#124;casc || The regulator mode &amp;quot;Cascade&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Discrete parameters''&lt;br /&gt;
|-&lt;br /&gt;
| digComs || Digital: commands || String (translate) || Constant || || Names and colors of the buttons of the commands are in the format '''{On}[-color]:{Off}[-color][:{Stop}[-color]]'''. Default colors are: green, red and yellow. &lt;br /&gt;
|-&lt;br /&gt;
| digStts || Digital: states || String (translate) || Constant || || Names and colors of the labels of the states are in the format '''{On}[-color]:{Off}[-color]'''. Default colors are: green and red. &lt;br /&gt;
|-&lt;br /&gt;
| digRevers || Digital: reversion || Boolean || Constant ||  || Discrete signal reverse. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=graphSelPrm /&amp;gt;&lt;br /&gt;
| {{Anch|graphSelPrm|&amp;lt;h4&amp;gt;Выбор параметра графика ([[Special:MyLanguage/Libs/Main_graphical_elements#graphSelPrm|graphSelPrm]])&amp;lt;/h4&amp;gt;}}&lt;br /&gt;
| 1.5 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=graphSelPrm /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Элемент, представленный на рисунке 3.1.2, реализует диалог пользовательского выбора источников данных, часто архивных, для формирования графика в кадре &amp;quot;[[#grpGraph|Группа графиков]]&amp;quot;. Выбор предоставляется из перечня указанного в атрибуте &amp;quot;Выбор: параметры доступные для выбора (allowSelLst)&amp;quot;, кадра-инициатора. Для выбранного источника можно указать имя, шкалу, логарифмичность, единицу измерения и цвет графика.&lt;br /&gt;
&lt;br /&gt;
В атрибуте &amp;quot;Выбор: параметры доступные для выбора (allowSelLst)&amp;quot; должны помещаться источники данных в виде:&lt;br /&gt;
* '''{DAQ_Arh_addr}[:Name[:min:max[:dim]]''', где:&lt;br /&gt;
** &amp;quot;DAQ_Arh_addr&amp;quot; — адрес параметра, при групповом связывании, или атрибута с данными из подсистемы &amp;quot;Сбор данных (DAQ)&amp;quot;, а также адрес архива значений, например:&lt;br /&gt;
*** '''/LogicLev/gen/prm_F3''' — адрес параметра &amp;quot;F3&amp;quot;;&lt;br /&gt;
*** '''/DAQ/System/AutoDA/prm_CPULoad/load''' — адрес атрибута &amp;quot;load&amp;quot;, параметра &amp;quot;CPULoad&amp;quot;;&lt;br /&gt;
*** '''/Archive/va_LC21_1_var''' — адрес архива &amp;quot;LC21_1_var&amp;quot;.&lt;br /&gt;
** &amp;quot;Name&amp;quot; — имя источника, для отображения. При групповом связывании имя будет браться из атрибута &amp;quot;NAME&amp;quot;.&lt;br /&gt;
** &amp;quot;min&amp;quot;, &amp;quot;max&amp;quot; — шкала отображения. При групповом связывании шкала будет браться из атрибута &amp;quot;min&amp;quot; и &amp;quot;max&amp;quot;, соответственно. В случае отсутствия шкалы (min &amp;gt;= max) включится автоматический выбор шкалы.&lt;br /&gt;
** &amp;quot;dim&amp;quot; — единица измерения параметра, для отображения. При групповом связывании будет браться из атрибута &amp;quot;ed&amp;quot;.&lt;br /&gt;
* '''&amp;lt;varhs&amp;gt;''' — шаблон группового выбора, при указании которого в список выбора попадут все доступные в системе архивы.&lt;br /&gt;
&lt;br /&gt;
Примеры содержимого атрибута &amp;quot;Выбор: параметры доступные для выбора (allowSelLst)&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/System/AutoDA/prm_CPULoad/load:CPU Load:0:100:%&lt;br /&gt;
/LogicLev/gen/prm_F3&lt;br /&gt;
&amp;lt;varhs&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_graphSelPrm_ru.png|center|frame|Рис.3.1.2. Кадр &amp;quot;Выбор параметра графика&amp;quot; в режиме разработки и исполнения.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Данный кадр должен быть помещен в логический контейнер панелей дерева проекта. В &amp;quot;[[#grpGraph|Группах графиков]]&amp;quot;, которые должны предоставлять возможность пользовательского выбора источника, должен быть определён атрибут &amp;quot;Выбор: параметры доступные для выбора (allowSelLst)&amp;quot;, перечнем источников согласно правилам указанным выше. Как результат, в контекстном меню [[#ElViewGraph|элемента графика]] появится пункт &amp;quot;Выбор&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
Вызов диалога осуществляется посредством пункта &amp;quot;Выбор&amp;quot;, контекстного меню [[#ElViewGraph|элемента графика]]. Диалогом пользователю предоставляется выбор источника данных из списка, а так-же указание основных его параметров: имя, шкала, логарифмичность, единица измерения и цвет графика, который вы также можете выбрать типичным/стилевым через очистку. При подтверждении, выбранные параметры применяются к элементу графика, заменяя ссылки. Выбор и подтверждение пункта &amp;quot;&amp;lt;Очистить&amp;gt;&amp;quot; приведёт к очистке всех ссылок и элемента графика. В текстовом поле под списком можно быстро найти нужный параметр.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=graphCalc /&amp;gt;&lt;br /&gt;
| {{Anch|graphCalc|&amp;lt;h4&amp;gt;Вычисление параметра графика ([[Special:MyLanguage/Libs/Main_graphical_elements#graphCalc|graphCalc]])&amp;lt;/h4&amp;gt;}} || 1.0 || GPLv2 || * || en, uk, ru &amp;lt;section end=graphCalc /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
Элемент, представленный на рисунке 3.1.3, реализует диалог пользовательского вычисления параметра выбранного графика для видимых на графике данных. Пользователю предоставляется возможность выбрать вычисление из встроенной библиотеки, привилегированный пользователь (&amp;quot;root&amp;quot; или в группе &amp;quot;ITW&amp;quot;) имеет возможность отредактировать или написать собственную процедуру вычисления.&lt;br /&gt;
&lt;br /&gt;
В целом, встроенная библиотека, на данное врем, содержит следующие функции пользовательского вычисления:&lt;br /&gt;
* Сумма, на час.&lt;br /&gt;
* Среднее и диапазон.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_graphCalc_ru.png|center|frame|Рис.3.1.3. Кадр &amp;quot;Вычисление параметра графика&amp;quot; в режиме разработки и исполнения.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Этот кадр должен быть размещён в логическом контейнере панелей дерева проекта.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
Вызов диалога осуществляется посредством пункта &amp;quot;Вычисление&amp;quot;, контекстного меню [[#ElViewGraph|элемента графика]]. Диалогом пользователю предоставляется выбор функции вычисления видимых данных выбранного параметра и возможность отредактировать-написать собственную функцию, для привилегированного пользователя. Результат вычисления помещается в соответствующем текстовом поле.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=grpCadr /&amp;gt;&lt;br /&gt;
| {{Anch|grpCadr|&amp;lt;h3&amp;gt;Группа контуров ([[Special:MyLanguage/Libs/Main_graphical_elements#grpCadr|grpCadr]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=grpCadr /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Элемент-кадр, представленный на рисунке 3.2, служит для одновременного наблюдения и управления контурами нескольких параметров, до восьми, включает в себя как экземпляры виджета &amp;quot;[[#ElCadr|Элемент кадр]]&amp;quot; для каждого контура, так и [[Special:MyLanguage/Sub-projects/VCA#Diagram|примитив &amp;quot;Диаграмма&amp;quot;]] для наблюдения за трендами контуров и просмотра истории.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_grpCadrD_ru.png|center|frame|Рис.3.2a. Кадр &amp;quot;Группа контуров&amp;quot; в режиме разработки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Кадр предназначен для выполнения роли страницы-шаблона, а, следовательно, он должен непосредственно помещаться в дерево проекта. В проекте-шаблоне &amp;quot;[[#RootPgSo|Группы сигнализаций]]&amp;quot;, для первого объекта сигнализации, этот кадр включен в роли шаблона, что позволяет создавать на его основе множество страниц групп контуров. К каждому кадру могут подключаться до восьми параметров, путём установки связей. Контура и графики, для которых не будут установлены связи, будут скрыты при исполнении.&lt;br /&gt;
&lt;br /&gt;
Типичная глубина трендов в прошлое установлена в 10 минут — для текущего оперативного контроля, что, при необходимости, можно изменить непосредственно отредактировав соответствующее поле виджета диаграммы, например, для шаблонной страницы проекта, чтобы оно распространилось на все конечные страницы.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
В режиме исполнения отображаются контура и графики, для которых установлены связи. Управление параметрами с контуров детально описано в разделе панели &amp;quot;[[#ElCadr|Элемент кадр]]&amp;quot;. В дополнении к этому можно управлять свойствами отображения графиков, для чего необходимо левой клавишей мыши нажать в область графика и с помощью появившейся [[#grph_panel|панели управления графиком]] осуществить необходимые действия.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The frame supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_grpCadrR_ru.png|center|frame|Рис.3.2b. Кадр &amp;quot;Группа контуров&amp;quot; в режиме исполнения.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Свойства связывания и конфигурации}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Идентификатор !! Имя !! Тип !! Конфигурация !! Конфигурационный шаблон !! Описание&lt;br /&gt;
|-&lt;br /&gt;
| grpName || Имя группы || Строка || Постоянная ||  || Имя группы&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Элемент {n} от 1 до 8.''&lt;br /&gt;
|-&lt;br /&gt;
| el{n} || colspan=&amp;quot;5&amp;quot; | ''Перечень связываемых атрибутов соответствует перечню панели &amp;quot;Элемент кадр (ElCadr)&amp;quot;''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ViewCadr /&amp;gt;&lt;br /&gt;
| {{Anch|ViewCadr|&amp;lt;h3&amp;gt;Группа обзорных кадров ([[Special:MyLanguage/Libs/Main_graphical_elements#ViewCadr|ViewCadr]])&amp;lt;/h3&amp;gt;}} || 1.1 || GPLv2 || * || en, uk, ru &amp;lt;section end=ViewCadr /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Элемент-кадр, представленный на рисунке 3.3, служит для отображения текущих трендов параметров в отдельных кадрах-виджетах количеством до 24 единиц (6x4), относительно которых поддерживается масштабирование в зависимости от их конфигурируемого количества. Кадры-виджеты трендов параметров реализуются сопутствующим виджетом &amp;quot;[[#ElViewCadr|Кадр обзорной группы]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ViewCadrD_ru.png|center|frame|Рис.3.3a. Кадр &amp;quot;Группа обзорных кадров&amp;quot; в режиме разработки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Кадр предназначен для выполнения роли страницы-шаблона, а, следовательно, он должен непосредственно помещаться в дерево проекта. В проекте-шаблоне &amp;quot;[[#RootPgSo|Группы сигнализаций]]&amp;quot;, для первого объекта сигнализации, этот кадр включен в роли шаблона, что позволяет создавать на его основе множество страниц обзорных групп. К каждому кадру могут подключаться до 24 параметров, путём установки связей. Кадры-виджеты, для которых не будут установлены связи, будут скрыты при исполнении, и осуществлено пропорциональное масштабирование на отсутствующие полные строки и колонки с целью заполнения всего кадра.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
В режиме исполнения отображаются кадры-виджеты, для которых установлены связи. Управление параметрами с кадров-виджетов детально описано в разделе виджета &amp;quot;[[#ElViewCadr|Кадр обзорной группы]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ViewCadrR_ru.png|center|frame|Рис.3.3b. Кадр &amp;quot;Группа обзорных кадров&amp;quot; в режиме исполнения.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Свойства связывания и конфигурации}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Идентификатор !! Имя !! Тип !! Конфигурация !! Конфигурационный шаблон !! Описание&lt;br /&gt;
|-&lt;br /&gt;
| name || Имя || Строка || Постоянная ||  || Имя кадра &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Кадр-виджет {r}_{c}, где строки {r} от 1 до 4 и колонки {c} от 1 до 6.'' &lt;br /&gt;
|-&lt;br /&gt;
| el{r}_{c} || colspan=&amp;quot;5&amp;quot; | ''Перечень связываемых атрибутов соответствует перечню виджета &amp;quot;Кадр обзорной группы (ElViewCadr)&amp;quot;''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ElViewCadr /&amp;gt;&lt;br /&gt;
| {{Anch|ElViewCadr|&amp;lt;h4&amp;gt;Кадр группы обзора ([[Special:MyLanguage/Libs/Main_graphical_elements#ElViewCadr|ElViewCadr]])&amp;lt;/h4&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=ElViewCadr /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Элемент-виджет, представленный на рисунке 3.3.1, служит основой [[#ViewCadr|группы обзорных кадров]] и обычно не используется самостоятельно. Виджет отображает текстовую информацию о параметре в виде наименования и значения, а также тренд параметра за небольшой промежуток времени (2 минуты) для наблюдения за текущей тенденцией поведения параметра с авто-масштабированием по шкале значения. Виджет в целом использует и представляет представительскую структуру DAQ-шаблона &amp;quot;[[Special:MyLanguage/Libs/Main#anUnif|Аналоговый сигнал]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ElViewCadr_ru.png|center|frame|Рис.3.3.1. Виджет &amp;quot;Кадр группы обзора&amp;quot; в режиме разработки и исполнения (слева направо).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Хотя данный виджет не предназначен для самостоятельного использования, в отрыве от [[#ViewCadr|группы обзора]], использовать его всё-же можно, например, поместив на мнемосхему и установив связь с параметром источника данных.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
В режиме исполнения, в основном поле елемента, отображается название параметра, текущее значение-переменная и тренд параметра; которые всегда отображаются цветом стиля: ''labColorGood''.&lt;br /&gt;
&lt;br /&gt;
В активном режиме элемента можно получить [[#Passport|паспорт]] путём нажатия правой клавиши мыши на поле виджета. В паспорте будут представлены все свойства параметра. При нажатии левой клавишей мыши в области панелей появится [[#ElCadr|панель управления параметром]], а выбор данного виджета будет отображаться мигающей рамкой.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The widget supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent widget/page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Свойства связывания и конфигурации}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Идентификатор !! Имя !! Тип !! Конфигурация !! Конфигурационный шаблон !! Описание&lt;br /&gt;
|-&lt;br /&gt;
| name || Имя || Строка || Входная связь || Parameter&amp;amp;#124;NAME || Имя параметра (шифр) для отображения в поле имени.&lt;br /&gt;
|-&lt;br /&gt;
| addr || Адрес || Адрес || Входная связь || Parameter&amp;amp;#124;var || Адрес к атрибуту значения параметра для построения тренда.&lt;br /&gt;
|-&lt;br /&gt;
| var || Переменная || Вещественный || Входная связь || Parameter&amp;amp;#124;var || Непосредственно значение параметра для отображения в поле значения.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ResultGraph /&amp;gt;&lt;br /&gt;
| {{Anch|ResultGraph|&amp;lt;h3&amp;gt;Сводные графики ([[Special:MyLanguage/Libs/Main_graphical_elements#ResultGraph|ResultGraph]])&amp;lt;/h3&amp;gt;}} || 1.1 || GPLv2 || * || en, uk, ru &amp;lt;section end=ResultGraph /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Элемент-кадр, представленный на рисунке 3.4, служит для отображения группы текущих трендов параметров (до 5) в отдельных кадрах-виджетах количеством до 16 единиц (4x4), относительно которых поддерживается масштабирование в зависимости от их конфигурируемого количества. Кадры-виджеты трендов параметров реализуются сопутствующим виджетом &amp;quot;[[#ResultGraphEl|Кадр сводных графиков]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Суммарно общее количество отображаемых графиков на одном кадре достигает 80 и он предназначен для формирования отдельного вида отображения, который применяется за [[#RootPgSo|объектами сигнализации]] — глобально по всему проекту визуализации.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Кадр не поддерживает никакого управления.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ResultGraphD_ru.png|center|frame|Рис.3.4a. Кадр &amp;quot;Сводные графики&amp;quot; в режиме разработки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Кадр предназначен для выполнения роли страницы-шаблона, а, следовательно, он должен непосредственно помещаться в дерево проекта. В проекте-шаблоне &amp;quot;[[#RootPgSo|Группы сигнализаций]]&amp;quot;, на уровне корневой страницы для него предусмотрено специальную виртуальную страницу &amp;quot;Сводные графики&amp;quot; с шаблоном сводных графиков, что позволяет создавать на его основе множество страниц сводных графиков. К каждому кадру могут подключаться до 80 параметров, путём установки связей. Кадры-виджеты, для которых не будет установлено ни одной связи, будут скрыты при исполнении, и осуществлено пропорциональное масштабирование на отсутствующие полные строки и колонки с целью заполнения всего кадра.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
В режиме исполнения отображаются кадры-виджеты, для которых установлены связи.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ResultGraphR_ru.png|center|frame|frame|Рис.3.4b. Кадр &amp;quot;Сводные графики&amp;quot; в режиме исполнения.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Свойства связывания и конфигурации}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Идентификатор !! Имя !! Тип !! Конфигурация !! Конфигурационный шаблон !! Описание&lt;br /&gt;
|-&lt;br /&gt;
| grpName || Имя группы || Строка || Постоянная ||  || Имя группы &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Кадр-виджет {n} от 1 до 16.''&lt;br /&gt;
|-&lt;br /&gt;
| el{n} || colspan=&amp;quot;5&amp;quot; | ''Перечень связываемых атрибутов соответствует виджету &amp;quot;Кадр сводных графиков (ResultGraphEl)&amp;quot;.''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ResultGraphEl /&amp;gt;&lt;br /&gt;
| {{Anch|ResultGraphEl|&amp;lt;h4&amp;gt;Кадр сводных графиков ([[Special:MyLanguage/Libs/Main_graphical_elements#ResultGraphEl|ResultGraphEl]])&amp;lt;/h4&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=ResultGraphEl /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Элемент-виджет, представленный на рисунке 3.4.1, служит основой [[#ResultGraph|сводных графиков]] и обычно не используется самостоятельно. Виджет отображает название группы и до пяти трендов, с их текстовыми метками, за фиксированный промежуток времени (10 минут) для наблюдения за текущей тенденцией поведения параметров. Виджет в целом использует и представляет представительскую структуру DAQ-шаблона &amp;quot;[[Special:MyLanguage/Libs/Main#anUnif|Аналоговый сигнал]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ResultGraphEl_ru.png|center|frame|Рис.3.4.1. Виджет &amp;quot;Кадр сводных графиков&amp;quot; в режиме разработки и исполнения (слева направо).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Хотя данный виджет не предназначен для самостоятельного использования, в отрыве от [[#ResultGrph|сводных графиков]], использовать его всё-же можно, например, поместив на мнемосхему и установив связь с параметром источника данных.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
В режиме исполнения, в основном поле элемента, отображается заголовок группы, заголовки и тренды параметров в определённых конфигурацией или стилем цветах.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The widget supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent widget/page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Свойства связывания и конфигурации}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Идентификатор !! Имя !! Тип !! Конфигурация !! Конфигурационный шаблон !! Описание&lt;br /&gt;
|-&lt;br /&gt;
| title || Заголовок || Строка || Постоянная || || Отображается сверху графика, при отсутствии поле графика расширится вверх.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Параметр {n} от 1 до 5.''&lt;br /&gt;
|-&lt;br /&gt;
| p1_addr || Параметр{n}: адрес || Адрес || Входная связь || Parameter {n}&amp;amp;#124;var || Адрес к атрибуту значения параметра для построения графика {n}.&lt;br /&gt;
|-&lt;br /&gt;
| p{n}_clr || Параметр{n}: цвет || Цвет || Из стиля || labColorGrph{n} ||&lt;br /&gt;
|-&lt;br /&gt;
| p{n}_max || Параметр{n}: максимум || Вещественный || Входная связь || Parameter {n}&amp;amp;#124;max || Максимальная граница графика.&lt;br /&gt;
|-&lt;br /&gt;
| p{n}_min || Параметр{n}: минимум || Вещественный || Входная связь || Parameter {n}&amp;amp;#124;min || Минимальная граница графика.&lt;br /&gt;
|-&lt;br /&gt;
| p{n}_name || Параметр{n}: имя || Строка || Входная связь || Parameter {n}&amp;amp;#124;NAME || Короткое имя параметра для отображения в поле слева.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=cntrRegul /&amp;gt;&lt;br /&gt;
| {{Anch|cntrRegul|&amp;lt;h3&amp;gt;Панель настройки регулятора ([[Special:MyLanguage/Libs/Main_graphical_elements#cntrRegul|cntrRegul]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=cntrRegul /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
Элемент-кадр, представленный на рисунке 3.5, служит для настройки ПИД-регулятора, включает в себя информацию о параметре-регуляторе, поля настроек регулятора и [[Special:MyLanguage/Sub-projects/VCA#Diagram|примитив &amp;quot;Диаграмма&amp;quot;]], для наблюдения за трендами регулятора и просмотра истории. Кадр в целом использует и представляет представительскую структуру DAQ-шаблона [[Special:MyLanguage/Libs/Main#pidUnif|аналогового]] и [[Special:MyLanguage/Libs/Main#pidUnifImp|импульсного]] ПИД-регуляторов.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсировано:''' [http://diyaorg.dp.ua ООО &amp;quot;ДІЯ&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_cntrRegulD_ru.png|center|frame|Рис.3.5a. Кадр &amp;quot;Панель настройки регулятора&amp;quot; в режиме разработки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Кадр может использоваться как в роли панели, вызываемой из [[#ElCadr|панели управления параметрами]], так и в роли страницы-шаблона. Кадр должен непосредственно помещаться в дерево проекта, а именно в [[#RootPgSo|контейнер панелей]], где будет осуществляться динамическое связывание на параметр регулятора. Для создания статического перечня контуров настроек регуляторов, с возможностью последующего листания по ним, необходимо поместить их в контейнер контуров регуляторов &amp;quot;greg&amp;quot; каждого [[#RootPgSo|объекта сигнализации]] и статически связать с соответствующим параметром, а также обеспечить равенство идентификатора панели и связанного параметра.&lt;br /&gt;
&lt;br /&gt;
Типичная глубина трендов в прошлое установлена в 20 минут — для текущего оперативного контроля, что, при необходимости, можно изменить непосредственно отредактировав соответствующее поле виджета диаграммы.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
В режиме исполнения отображается:&lt;br /&gt;
* имя параметра регулятора;&lt;br /&gt;
* поле со свойствами регулятора в составе: идентификатор, имя, описание, единица измерения, задание, переменная, выход, шкала и режим;&lt;br /&gt;
* коэффициенты настройки регулятора: Кп, Ки, Ти, Кд, Тд, Тзд, Зн, Н1, Н2, К1, К2, К3, К4, ТпИ, ТмИ и Rфкт;&lt;br /&gt;
* область графика с отображением графиков: переменной (зелёный, стиль &amp;quot;labColorGrph4&amp;quot;), задания (синий, стиль &amp;quot;labColorGrph3&amp;quot;), выход аналоговый (голубой, стиль &amp;quot;labColorGrph5&amp;quot;), режим регулятора &amp;quot;Автомат&amp;quot; (магента, стиль &amp;quot;labColorGrph7&amp;quot;) и дискретные выходы импульсного регулятора (оранжевый, стиль &amp;quot;labColorGrph2&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Пользователь имеет возможность изменить коэффициенты ПИД-регулятора, режим, задание, выход и сразу-же увидеть реакцию на графике. Кроме этого, пользователь может изучить историю работы регулятора, для чего необходимо левой клавишей мыши нажать в область графика и, с помощью появившейся [[#grph_panel|панели управления графиком]], осуществить необходимые действия навигации. Для возврата [[#ElCadr|панели параметра регулятора]] необходимо левой клавишей мыши нажать в свободную область данного кадра.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_cntrRegulR_ru.png|center|frame|Рис.3.5b. Кадр &amp;quot;Панель настройки регулятора&amp;quot; в режиме исполнения.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Свойства связывания и конфигурации}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Идентификатор !! Имя !! Тип !! Конфигурация !! Конфигурационный шаблон !! Описание&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Параметр: шифр || Строка || Входная связь || Parameter&amp;amp;#124;SHIFR ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Параметр: шифр || Строка || Входная связь || Parameter&amp;amp;#124;NAME ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Параметр: описание || Строка || Входная связь || Parameter&amp;amp;#124;DESCR ||&lt;br /&gt;
|-&lt;br /&gt;
| max || Параметр: максимум шкалы || Вещественный || Входная связь || Parameter&amp;amp;#124;max ||&lt;br /&gt;
|-&lt;br /&gt;
| min || Параметр: минимум шкалы || Вещественный || Входная связь || Parameter&amp;amp;#124;min ||&lt;br /&gt;
|-&lt;br /&gt;
| ed || Параметр: единица измерения || Строка || Входная связь || Parameter&amp;amp;#124;ed ||&lt;br /&gt;
|-&lt;br /&gt;
| prec || Параметр: точность || Целый || Входная связь || Parameter&amp;amp;#124;prec || Количество знаков после запятой в значении и задании параметра ПИД.&lt;br /&gt;
|-&lt;br /&gt;
| var || Параметр: переменная || Вещественный || Входная связь || Parameter&amp;amp;#124;var ||&lt;br /&gt;
|-&lt;br /&gt;
| var_addr || Параметр: адрес переменной || Адрес || Входная связь || Parameter&amp;amp;#124;var || Адрес для построения графика переменной.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''ПИД-регулятор''&lt;br /&gt;
|-&lt;br /&gt;
| auto_addr || Параметр: автомат || Адрес || Входная связь || Parameter&amp;amp;#124;auto || Адрес для построения графика режима &amp;quot;Автомат&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| sp || Параметр: задание || Вещественный || Входная связь || Parameter&amp;amp;#124;sp ||&lt;br /&gt;
|-&lt;br /&gt;
| sp_addr || Параметр: адрес задания || Адрес || Входная связь || Parameter&amp;amp;#124;sp || Адрес для построения графика задания.&lt;br /&gt;
|-&lt;br /&gt;
| out || Параметр: выход || Вещественный || Входная связь || Parameter&amp;amp;#124;out ||&lt;br /&gt;
|-&lt;br /&gt;
| out_addr || Параметр: адрес выхода || Адрес || Входная связь || Parameter&amp;amp;#124;out || Адрес для построения графика аналогового выхода.&lt;br /&gt;
|-&lt;br /&gt;
| Hdwn || Параметр: нижняя граница выхода || Вещественный || Полная связь || Parameter&amp;amp;#124;Hdwn || Ограничение значения аналогового выхода по низу.&lt;br /&gt;
|-&lt;br /&gt;
| Hup || Параметр: верхняя граница выхода || Вещественный || Полная связь || Parameter&amp;amp;#124;Hup || Ограничение значения аналогового выхода по верху.&lt;br /&gt;
|-&lt;br /&gt;
| Kp || Параметр: коэф. пропорциональности || Вещественный || Полная связь || Parameter&amp;amp;#124;Kp ||&lt;br /&gt;
|-&lt;br /&gt;
| Ki || Параметр: коэф. пропорциональности интеграла || Вещественный || Полная связь || Parameter&amp;amp;#124;Ki ||&lt;br /&gt;
|-&lt;br /&gt;
| Ti || Параметр: время интегрирования || Вещественный || Полная связь || Parameter&amp;amp;#124;Ti ||&lt;br /&gt;
|-&lt;br /&gt;
| Kd || Параметр: коэф. пропорциональности производной || Вещественный || Полная связь || Parameter&amp;amp;#124;Kd ||&lt;br /&gt;
|-&lt;br /&gt;
| Td || Параметр: время дифференцирования || Вещественный || Полная связь || Parameter&amp;amp;#124;Td ||&lt;br /&gt;
|-&lt;br /&gt;
| Tzd || Параметр: время задержки дифференциальной части || Вещественный || Полная связь || Parameter&amp;amp;#124;Tzd ||&lt;br /&gt;
|-&lt;br /&gt;
| Zi || Параметр: зона нечувствительности || Вещественный || Полная связь || Parameter&amp;amp;#124;Zi ||&lt;br /&gt;
|-&lt;br /&gt;
| K1 || Параметр: коэф. входа 1 || Вещественный || Полная связь || Parameter&amp;amp;#124;K1 ||&lt;br /&gt;
|-&lt;br /&gt;
| K2 || Параметр: коэф. входа 2 || Вещественный || Полная связь || Parameter&amp;amp;#124;K2 ||&lt;br /&gt;
|-&lt;br /&gt;
| K3 || Параметр: коэф. входа 3 || Вещественный || Полная связь || Parameter&amp;amp;#124;K3 ||&lt;br /&gt;
|-&lt;br /&gt;
| K4 || Параметр: коэф. входа 4 || Вещественный || Полная связь || Parameter&amp;amp;#124;K4 ||&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Импульсный ПИД-регулятор''&lt;br /&gt;
|-&lt;br /&gt;
| impQdwn_addr || Параметр: адрес выхода импульса вниз || Адрес || Входная связь || Parameter&amp;amp;#124;impQdwn || Адрес для построения графика импульсного выхода &amp;quot;Вниз&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| impQup_addr || Параметр: адрес выхода импульса вверх || Адрес || Входная связь || Parameter&amp;amp;#124;impQup || Адрес для построения графика импульсного выхода &amp;quot;Вверх&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| KImpRfact || Параметр: рейтинг фактор || Вещественный || Полная связь || Parameter&amp;amp;#124;KImpRfact || Асимметрия в генерации ширины импульса вверх и вниз.&lt;br /&gt;
|-&lt;br /&gt;
| TImpMin || Параметр: минимальное время импульса || Целый || Полная связь || Parameter&amp;amp;#124;TImpMin || Генерируются импульсы начиная с указанной ширины.&lt;br /&gt;
|-&lt;br /&gt;
| TImpPer || Параметр: период повторения импульсов || Целый || Полная связь || Parameter&amp;amp;#124;TImpPer || Периодичность повторения генерации импульса.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=alarmsSt /&amp;gt;&lt;br /&gt;
| {{Anch|alarmsSt|&amp;lt;h3&amp;gt;Нарушение — состояние ([[Special:MyLanguage/Libs/Main_graphical_elements#alarmsSt|alarmsSt]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.5 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=alarmsSt /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
Элемент-кадр на рисунке 3.6 служит для отображения истории нарушений и динамического их обновление для текущего времени в полноформатном табличном виде, с выделением их цветом и текстом и возможностью многоуровневого фильтрования. Нарушения получаются из [[Special:MyLanguage/Documents/Program_manual#ArchMess|буфера текущих-активных сообщений OpenSCADA]] и архива(ов), определённого конфигурационным полем &amp;quot;'''alArch'''&amp;quot;. Фактически элемент реализует функции примитива &amp;quot;[[Special:MyLanguage/Sub-projects/VCA#ImplProtocol|Протокол]]&amp;quot; для нарушений и с расширением возможностей.&lt;br /&gt;
&lt;br /&gt;
В целом кадр содержит элементы:&lt;br /&gt;
* таблица сообщений — основное поле;&lt;br /&gt;
* кнопка массового подтверждения — вверху слева;&lt;br /&gt;
* комбобокс выбора правила сортирования уровня модели данных, предусматривает сортировку по выбранной колонке из перечня определённых в '''colms''' и по умолчанию это время, как второй критерий, (последнее вверху) — следующий вверху слева;&lt;br /&gt;
* панель навигации по истории-архиву сообщений — вверху в центре и справа, в составе:&lt;br /&gt;
** времени вершины данных;&lt;br /&gt;
** размера — глубины запроса данных;&lt;br /&gt;
** кнопок быстрого перелистывания — на один или пять интервалов-глубин вперед и назад и в текущее время;&lt;br /&gt;
** кнопка быстрого перехода к следующей части большого интервала запроса, разделённого по лимиту на количество сообщений в таблице — для очень плотной-активной генерации сообщений;&lt;br /&gt;
** кнопка вызова-формирования отчётного документа для текущих данных таблицы.&lt;br /&gt;
* элементы пятиуровневого фильтра с отображением элементов следующего уровня по активации последнего, путём выбора колонки из перечня определённых в '''colms''' — вверху после предыдущего.&lt;br /&gt;
&lt;br /&gt;
Согласно объявленному перечню элементов контроля, сортировка сообщений может меняться пользователем, как путём встроенного механизма сортировки колонок отдельно взятого визуализатора, так и на уровне модели данных, если визуализатором такой функции не предусмотрено. Учитывая основное назначение кадра — состояние нарушений (т.е. история), типовым правилом сортировки является &amp;quot;последние&amp;quot; для сообщений сверху.&lt;br /&gt;
&lt;br /&gt;
Кадр создан, и он обычно используется, в паре с [[#alarmsAct|виджетом динамического отображения активных нарушений]], который наделён основными функциями этого кадра, но только для активных нарушений и в малом виджете.&lt;br /&gt;
&lt;br /&gt;
Основным пользовательским расширением является возможность определения видимых полей таблицы из перечня вариантов:&lt;br /&gt;
* ''atm'' — время возникновения нарушения;&lt;br /&gt;
* ''qttm'' — время подтверждения нарушения;&lt;br /&gt;
* ''nrmtm'' — время перехода-возврата нарушения в состояние &amp;quot;НОРМА&amp;quot;;&lt;br /&gt;
* ''lev'' — уровень нарушения;&lt;br /&gt;
* ''type'' — тип-название нарушения из уровня ''lev'' и атрибута &amp;quot;types&amp;quot;;&lt;br /&gt;
* ''cat'' — категория нарушения;&lt;br /&gt;
* ''mess'' — полный и неразобранный текст сообщения нарушения;&lt;br /&gt;
* ''prm'' — адрес DAQ-параметра источника нарушения;&lt;br /&gt;
* ''dscr'' — описание нарушения из DAQ-параметра источника;&lt;br /&gt;
* ''dscrCust{N}'' — описание пользовательского поля ''N'';&lt;br /&gt;
* ''alrm'' — текст нарушения;&lt;br /&gt;
* ''cmnt'' — комментарий к нарушению.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Этот кадр и его поля в целом представляют структуру сообщения нарушения, которая детально описана в [[Special:MyLanguage/Documents/Program_manual#ArchMess|руководстве пользователя]].&lt;br /&gt;
&lt;br /&gt;
Как можно видеть из перечня возможных полей таблицы, этот элемент поддерживает механизм подтверждения, комментирования и пользовательские поля.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсирование:''' Устьянцев Михаил&lt;br /&gt;
* '''Спонсировано, добавление нового пользовательского поля &amp;quot;Тип&amp;quot; на 0.2 {{CtxDetails|ЧД|человеко-дней, 1ЧД — 10 часов}}:''' INSERTEC LTDA&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_alarmsStD_ru.png|center|frame|Рис.3.6a. Кадр &amp;quot;Нарушение — состояние&amp;quot; в режиме разработки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Виджет предназначен для выполнения роли страницы, а, соответственно, он должен непосредственно располагаться в дереве проекта. После добавления, для кадра нужно отредактировать свойства вроде перечня и последовательности отображаемых полей таблицы.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Поскольку кадр предусматривает отображение состояния и истории нарушений, то создание и использование [[Special:MyLanguage/Documents/Program_manual#ArchMess|архиватора сообщений]] является обязательным. Поэтому создайте или используйте шаблонный архиватор стартового проекта &amp;quot;Нарушения (alarms)&amp;quot; с опциями исключения дублирования, и укажите его (FSArch.alarms) в свойстве кадра &amp;quot;'''alArch'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Комбобокс выбора правила сортировки по умолчанию выключен из соображений использования встроенной функции сортирования по колонке таблицы соответствующего визуализатора. Если такая функция визуализатором не предоставляется то включите этот комбобокс.&lt;br /&gt;
&lt;br /&gt;
Если нужно выключить функцию подтверждения то вы должны исключить время подтверждения &amp;quot;qttm&amp;quot; из перечня полей и установить элемент таблицы неактивным.&lt;br /&gt;
&lt;br /&gt;
Построение отчёта от текущих данных в таблице также, по умолчанию, выключено. Для включения вы должны разместить [[#alarmsStReport|кадр отчёта нарушений]] в логическом контейнере панелей дерева проекта, а затем включить характерную кнопку генерации отчётов в правом верхнем углу этого кадра.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
В режиме исполнения строится таблица из перечня активных нарушений, для текущего времени, и нарушений из истории по определённым полям, с контролем и отметкой активности и правилом выделения; содержимое которой периодически и динамически обновляется для текущего времени.&lt;br /&gt;
&lt;br /&gt;
Определить промежуток времени данных в таблице пользователь может с помощью панели навигации, указав вершину и глубину необходимых данных. В процессе запроса очень плотных промежутков данных читаться будет только указанное в свойстве '''messLim''' количество сообщений и для перехода к следующему куску пользователь может воспользоваться кнопкой за панелью навигации, которая появится в таком случае.&lt;br /&gt;
&lt;br /&gt;
Полученные в таблице данные можно отфильтровать по содержимому соответственно выбранной колонки, что можно осуществить на до пяти уровнях, элементы фильтрования которых будут появляться при выборе последнего уровня фильтрования.&lt;br /&gt;
&lt;br /&gt;
Пользователю предоставляется возможность подтвердить нарушения, изменив значение поля времени подтверждения или с помощью панели управления, которая выплывет при выборе элемента таблицы и строки нарушения. Также пользователь может подтвердить все активные нарушения, нажав кнопку массового подтверждения.&lt;br /&gt;
&lt;br /&gt;
В случае присутствия у визуализатора функции сортировки по колонкам, или включения сортировки на уровне модели данных, пользователь может выбрать колонку по содержимому которой сортировать строки таблицы.&lt;br /&gt;
&lt;br /&gt;
Ещё пользователь может оставить комментарий к нарушению, откорректировав соответствующее поле таблицы.&lt;br /&gt;
&lt;br /&gt;
Для генерации отдельного отчёта пользователь может нажать характерную кнопку в правом верхнем углу, если такая функцию включена.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_alarmsStR_ru.png|center|frame|Рис.3.6b. Кадр &amp;quot;Нарушение — состояние&amp;quot; в режиме исполнения.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| messCat || Message category || String || Category of the processing messages, typically it is &amp;quot;al*:*&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| messLim || Messages limit, quantity || Integer || Maximum quantity of the messages in the table, typically it is 1000.&lt;br /&gt;
|-&lt;br /&gt;
| alArch || Alarms archiver, &amp;quot;{ArhMod}.{Arh}&amp;quot; || String || An archiver from which the violations will be taken, empty for all ones.&lt;br /&gt;
|-&lt;br /&gt;
| alarms.active || Active || Boolean || Turn off if there disabled confirmation, focus gaining and editing in general — purely displaying.&lt;br /&gt;
|-&lt;br /&gt;
| hHdrVis || Show header: horizontal || Boolean ||&lt;br /&gt;
|-&lt;br /&gt;
| vHdrVis || Show header: vertical || Boolean ||&lt;br /&gt;
|-&lt;br /&gt;
| formDtTm || Data and time format (%Y-%m-%d %H.%M.%S[.%MS,%US]) || String || Format of displaying the time of violation and confirmation.&lt;br /&gt;
|-&lt;br /&gt;
| colms || Columns&lt;br /&gt;
List separated by ',' from the variants: atm, qttm, nrmtm, lev, type, cat, mess, prm, dscr, dscrCust{N}, alrm, cmnt.&lt;br /&gt;
| String || Determine in the desired sequence and the fields filling.&lt;br /&gt;
|-&lt;br /&gt;
| highLght || Highlight rules&lt;br /&gt;
Rows in the form &amp;quot;{lev}[{slev}]{quitt}{act}:{color}:{font}:{fontColor}&amp;quot;.&lt;br /&gt;
| Text || Highlight rules, where:&lt;br /&gt;
* ''lev'' — main level of the message [0...7];&lt;br /&gt;
* ''slev'' — sub-level of the message [0...9], optional;&lt;br /&gt;
* ''quitt'' — sign of the message confirmation [0|1];&lt;br /&gt;
* ''act'' — sign of the message activity [0|1];&lt;br /&gt;
* ''color'' — background color of the message row;&lt;br /&gt;
* ''font'' — text font of the message row;&lt;br /&gt;
* ''fontColor'' — text color of the message row.&lt;br /&gt;
To example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;BASH&amp;quot;&amp;gt;&lt;br /&gt;
#&amp;lt;SnthHgl font=&amp;quot;monospace&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;rule expr=&amp;quot;^#[^\n]*&amp;quot; color=&amp;quot;gray&amp;quot; font_italic=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
# &amp;lt;rule expr=&amp;quot;^[0-9]*&amp;quot; color=&amp;quot;blue&amp;quot;&amp;gt;&lt;br /&gt;
#  &amp;lt;rule expr=&amp;quot;[01]{2}$&amp;quot; color=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
#   &amp;lt;rule expr=&amp;quot;[01]$&amp;quot; color=&amp;quot;darkorange&amp;quot;/&amp;gt;&lt;br /&gt;
#  &amp;lt;/rule&amp;gt;&lt;br /&gt;
# &amp;lt;/rule&amp;gt;&lt;br /&gt;
# &amp;lt;rule expr=&amp;quot;(?&amp;lt;=:).*&amp;quot;&amp;gt;&lt;br /&gt;
#  &amp;lt;rule expr=&amp;quot;[^:]*&amp;quot; font_weight=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
#  &amp;lt;rule expr=&amp;quot;(?&amp;lt;=:).*&amp;quot; font_italic=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
# &amp;lt;/rule&amp;gt;&lt;br /&gt;
#&amp;lt;/SnthHgl&amp;gt;&lt;br /&gt;
501:gray&lt;br /&gt;
401:red&lt;br /&gt;
1501:yellow&lt;br /&gt;
511:gray:Arial 11 0 1&lt;br /&gt;
411:red:Arial 11 0 1&lt;br /&gt;
1511:yellow:Arial 11 0 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colDscrCustNames || Перечень наименований пользовательских полей, поделённых ';' || Строка (перевод) || При поддержке пользовательских полей, и их видимости, тут приводятся их наименования.&lt;br /&gt;
|-&lt;br /&gt;
| types || Перечень типов по уровню от 0, разделены ';' || Строка (перевод) || Типы-названия нарушений за их уровнем, типично &amp;quot;Отладка;Информ.;Отметка;Предупр.;Ошибка;Критически;Тревога;Авария&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=alarmsStReport /&amp;gt;&lt;br /&gt;
| {{Anch|alarmsStReport|&amp;lt;h4&amp;gt;Report ([[Special:MyLanguage/Libs/Main_graphical_elements#alarmsStReport|alarmsStReport]])&amp;lt;/h4&amp;gt;}} || 1.0 || GPLv2 || * || en, uk, ru &amp;lt;section end=alarmsStReport /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
The element-frame, shown in Figure 3.6.1, implements a dialog to display a report document based on a list of violations received from [[#alarmsSt|the full-format frame of presenting the violations history]].&lt;br /&gt;
&lt;br /&gt;
Основным назначением и функцией этого кадра является предоставление возможности распечатать таблицу истории нарушений и экспортировать из неё данные.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсирование:''' Устьянцев Михаил&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_alarmsStReport_ru.png|center|frame|Рис.3.6.1. Кадр &amp;quot;Нарушения — отчёт&amp;quot;.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Этот кадр должен быть размещён в логическом контейнере панелей дерева проекта.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
Вызов диалога осуществляется посредством характерной кнопки, вверху справа, [[#alarmsSt|кадра полноформатного представления истории нарушений]]. Диалогом предоставляется текст отчётного документа и кнопка, внизу справа, для его закрытия.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=userManager /&amp;gt;&lt;br /&gt;
| {{Anch|userManager|&amp;lt;h3&amp;gt;Менеджер пользователей ([[Special:MyLanguage/Libs/Main_graphical_elements#userManager|userManager]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.7 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=userManager /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -2 ms (disabled)&lt;br /&gt;
|}&lt;br /&gt;
The element-frame, shown in Figure 3.7, serves to control users from the user interface itself. That is, typically this feature is provided to the SCADA programmer at [[Special:MyLanguage/Documents/Program_manual#CfgSecurity|the Security subsystem configuration]], but sometimes there is a need to provide this capability from the user interface and with a few restrictions on controlled users and their groups that this frame performs and generally provides:&lt;br /&gt;
* forming a list of controlled users;&lt;br /&gt;
* the ability to view and change user information for: name, full name, description, password and groups;&lt;br /&gt;
* adding new and deleting existing users;&lt;br /&gt;
* the possibility to edit the unprivileged user own information and password.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсирование:''' Винницкая Птицефабрика&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_userManagerD_ru.png|center|frame|Рис.3.7a. Кадр &amp;quot;Менеджер пользователей&amp;quot; в режиме разработки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Виджет предназначен для выполнения роли страницы, а, следовательно, он должен непосредственно помещаться в дерево проекта. Дополнительно, Вы должны поместить [[#accept|диалог приёмки]] в директорию панелей проекта и необходимо осуществить некоторую конфигурацию атрибутов, ниже, где никаких связей не предусмотрено.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
В режиме исполнения формируется перечень с доступными пользователями, при выборе которых справа предоставляется информация про них, и которую можно изменить. Пользователя можно добавить и удалить соответствующими командами интерфейса под перечнем пользователей.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_userManagerR_ru.png|center|frame|Рис.3.7b. Кадр &amp;quot;Менеджер пользователей&amp;quot; в режиме исполнения.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Свойства связывания и конфигурации}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Идентификатор !! Имя !! Тип !! Описание&lt;br /&gt;
|-&lt;br /&gt;
| owner || Владелец || Строка || Владелец и группа кадра, которые имеют к нему доступ, типично &amp;quot;root:Security&amp;quot; — для предоставления доступа к кадру нужно пользователя включить в группу &amp;quot;Security&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| perm || Доступ || Выбор целых чисел || Правила доступа к кадру, типично &amp;quot;RWRW__&amp;quot; — кадр видимый и контролируемый только для пользователя &amp;quot;root&amp;quot; и пользователей в группе &amp;quot;Security&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| denyUsers || Запрещённые для редактирования: пользователи, разделённые ';'	Строка || Перечень запрещённых для контроля пользователей, типично &amp;quot;root;&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| denyGroups || Запрещённые для редактирования: группы, разделённые ';' || Строка || Перечень запрещённых для контроля групп, типично &amp;quot;root;users;Archive;BD;DAQ;ModSched;Protocol;Security;Special;Transport;UI;&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| newUseGrps || Группы новосозданного пользователя || Строка || Группы в которые включать пользователя автоматически после создания, типично &amp;quot;UI;Guest&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| storeDB || БД хранения новых пользователей || Строка || БД хранения новосозданных пользователей, типично — рабочая.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=storeHouse /&amp;gt;&lt;br /&gt;
| {{Anch|storeHouse|&amp;lt;h3&amp;gt;Storehouse ([[Special:MyLanguage/Libs/Main_graphical_elements#storeHouse|storeHouse]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 2.3 || GPLv2 || * || en, uk&lt;br /&gt;
&amp;lt;section end=storeHouse /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element-frame, shown in Figure 3.8, serves to manage of storehouses on different classes-categories of the storing-managing things. Initially that was developed and tested on the class &amp;quot;Library&amp;quot;. The frame means of the direct accessing the DB by SQL and currently supports only MySQL/MariaDB.&lt;br /&gt;
&lt;br /&gt;
During the frame implementing, the view &amp;quot;Table&amp;quot; of [[Special:MyLanguage/Modules/VCAEngine|the primitive &amp;quot;FormEl&amp;quot;]] significantly expanded on both visualizers, also as other OpenSCADA parts:&lt;br /&gt;
{{#lst:Documents/Release_0.9/Update4/en|FormElTable}}&lt;br /&gt;
::* VCAEngine: Appending of the not processed events sending to a page who opened the source page.&lt;br /&gt;
::* JavaLikeCalc: Implementing the &amp;quot;var&amp;quot; statement for true scope processing, that is defining new variables in functions with the statement and using global ones without.&lt;br /&gt;
&lt;br /&gt;
The frame provides currently and in future for next features:&lt;br /&gt;
* '''Class edition mode''': observing, creation and edition the storehouse classes with a function of storing data at the field type change.&lt;br /&gt;
* '''Main data observing and edition mode''':&lt;br /&gt;
** observing main data of the selected or fixed storehouse classes in a big table with possibility of sorting and filtering by up to five columns;&lt;br /&gt;
** editing of content of the table cells in the edition mode;&lt;br /&gt;
** adding, copying and removing of records-rows of the table in the edition mode;&lt;br /&gt;
** generation of the report document of the selected item, which is ready to print and convenient in complete observing;&lt;br /&gt;
** generation of the report document of the main table with accounting the filter settings and natural show the specific fields;&lt;br /&gt;
** detailed control panel-form of the selected item with the specific fields;&lt;br /&gt;
** fast control and accessing data of the complex fields through the dynamic Control Panel based on the [[#terminator|Terminator frame]].&lt;br /&gt;
&lt;br /&gt;
The storehouse classes are stored in the table &amp;quot;classes&amp;quot; with the fixed table structure &amp;quot;&amp;lt;u&amp;gt;'''CLASS'''&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;'''ID'''&amp;lt;/u&amp;gt;, '''NAME''', '''TP''' , '''TBL''', '''FILTER''', '''PROC'''&amp;quot;, where:&lt;br /&gt;
* ''CLASS'' [varchar(20)] — class ID;&lt;br /&gt;
* ''ID'' [varchar(20)] — specific field ID of the class;&lt;br /&gt;
* ''NAME'' [text] — specific field localised name of the class, where the first line for the default value and the next lines form in the view '''{2SymbolLang}:{LocalizedText}''';&lt;br /&gt;
* ''TP'' [varchar(100)] — specific field type of the class, which correspond directly to the MySQL data types and some specific ones:&lt;br /&gt;
:* &amp;quot;'''file[:{max}[:{storage}[:{MIME}[:{OverViewSz}]]]]'''&amp;quot; — attaching files with the parameters:&lt;br /&gt;
::* ''max'' — maximum files allowed to attach;&lt;br /&gt;
::* ''storage'' — storage of the files on the File System with the specified path, and empty to store directly in the DB field of the type LONGTEXT;&lt;br /&gt;
::* ''MIME'' — files type, allowed to attach-load, where empty for any and like to &amp;quot;image/*&amp;quot; for only images;&lt;br /&gt;
::* ''OverViewSz'' — enable a field of the image files overview on the item form with the specified size in pixels.&lt;br /&gt;
* ''TBL'' [varchar(100)] — specific field properties of representing data in the table, has the format '''{align}:{width}:{pos}''', where:&lt;br /&gt;
:* ''align'' — column alignment, supports the values: &amp;quot;left&amp;quot;, &amp;quot;center&amp;quot;, &amp;quot;right&amp;quot;; where the &amp;quot;left&amp;quot; value is default one for strings and &amp;quot;center&amp;quot; for other;&lt;br /&gt;
:* ''width'' — forced width for the column, in percents at symbol &amp;quot;%&amp;quot; in the end or in pixels;&lt;br /&gt;
:* ''pos'' — the column position in the string view, so you can write that like to &amp;quot;005&amp;quot; for true sort.&lt;br /&gt;
* ''FILTER'' [text] — specific field properties of filtering and indexing lists preparing for the filter selection, for the variants: '''index''' and '''list{SepSymb}''', where:&lt;br /&gt;
:* ''index'' — the column value means as whole one for indexing;&lt;br /&gt;
:* ''list{SepSymb}'' — the column value means as a list of items for indexing, separated by symbol ''SepSymb''.&lt;br /&gt;
: From the second line you can specify rules of the highlighting in the form &amp;quot;'''{ID}:{FLGS}:{color}:{font}'''&amp;quot;, where:&lt;br /&gt;
:* ''ID'' — indexed or listed value in the cell;&lt;br /&gt;
:* ''FLGS'' — flags list in values [0|1], currently that is only &amp;quot;Highlight [Cell|Row]&amp;quot;;&lt;br /&gt;
:* ''color'' — the background color;&lt;br /&gt;
:* ''font'' — the text font.&lt;br /&gt;
* ''PROC'' [text] — a procedure of calculation the cell value on the internal language [[Special:MyLanguage/Modules/JavaLikeCalc|JavaLikeCalc.JavaScript]] of OpenSCADA, the column is become the logical one; cells of the logical columns aren't accessible for the manual edition; all cells of the record-row are accessed in the procedure as them IDs, including the calculated one which you have to assign in some value; you can use that feature also as a temporary one, that is install a procedure for calculation and next clean up that;&lt;br /&gt;
: [[file:at.png]] Setting here a procedure will clean up (set to NULL) all the column cells!&lt;br /&gt;
&lt;br /&gt;
Data of storehouse of the corresponded class stores in different table with name &amp;quot;sh_{CLASS}&amp;quot; and the structure &amp;quot;&amp;lt;u&amp;gt;'''ID'''&amp;lt;/u&amp;gt;, '''NAME''', '''DSCR''', '''SP_{ID}1''', ..., '''SP_{ID}N'''&amp;quot;, where:&lt;br /&gt;
* ''ID'' [INT] — automatic index of the table, allowed for change the visibility;&lt;br /&gt;
* ''NAME'' [varchar(200)] — name of the item, allowed for change the type;&lt;br /&gt;
* ''DSCR'' [text] — description of the item;&lt;br /&gt;
* ''SP_{ID}X'' — specific field of the class corresponding to ''ID'' in the class table.&lt;br /&gt;
&lt;br /&gt;
For the special means there in the table &amp;quot;classes&amp;quot; reserved and forcibly created fields &amp;quot;*TITLE&amp;quot; for the whole storehouse localised name and &amp;quot;*NAME&amp;quot;, &amp;quot;*DSCR&amp;quot; which control the corresponded fixed fields.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_storeHouseD.png|center|frame|Fig.3.8a. The &amp;quot;Storehouse&amp;quot; frame in the development mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
The widget is designed to perform the role of a page, and should therefore be placed directly in the project's tree. Additionally, into the panels folder of the project, you need to place [[#accept|the accepting dialog frame]] and some attribute configuration is required, below, where no links are provided.&lt;br /&gt;
&lt;br /&gt;
To enable the reporting, you have to place [[#alarmsStReport|the frame of alarms reporting]] in the logical container of panels of the project tree.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode you will see a single big table for class (Fig.3.8b) and data (Fig.3.8c) representing with edition right in the table, on the control panel or in the item edition form (Fig.3.8d).&lt;br /&gt;
&lt;br /&gt;
In the main class data representing mode the users can observe the table, filter and sort the representing data at the specified fields.&lt;br /&gt;
&lt;br /&gt;
In the main class data edition mode the users, allowed to edit, can add, copy, remove the rows/records and edit the fields.&lt;br /&gt;
&lt;br /&gt;
In the class edition mode, the users, allowed to edit, can add new and remove present (after removing the last item) classes; and add, remove the specific class fields and edit properties of that fields.&lt;br /&gt;
&lt;br /&gt;
For user access limitation there provided now only a mechanism of including the allowed for the class and data edition users to the group &amp;quot;ITW&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To generate a separate report, the user can click a characteristic button in the top right corner.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The frame supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to from parent (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_storeHouseClassR.png|center|frame|Fig.3.8b. The &amp;quot;Storehouse&amp;quot; frame in the runtime mode at the class representing.]]&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_storeHouseDataR.png|center|frame|Fig.3.8c. The &amp;quot;Storehouse&amp;quot; frame in the runtime mode at the data representing with the control panel.]]&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_storeHouseDataRf.png|center|frame|Fig.3.8d. The &amp;quot;Storehouse&amp;quot; frame in the runtime mode at the item edition form.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| class || Class: initial || String || Forced/initial class for first opening.&lt;br /&gt;
|-&lt;br /&gt;
| classEditable (Constant) || Class: editable || Boolean || Flag of allowing for the class edition.&lt;br /&gt;
|-&lt;br /&gt;
| classFix (Constant) || Class: fixed || String || The fixed class for which the frame performed only, denying access for other classes.&lt;br /&gt;
|-&lt;br /&gt;
| dataEditable (Constant) || Data: editable || Boolean || Flag of allowing for the main data edition.&lt;br /&gt;
|-&lt;br /&gt;
| db (Constant) || DB: Data base || String || Database of the classes and data in the view '''{Type}.{DB}'''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=dynFrame /&amp;gt;&lt;br /&gt;
| {{Anch|dynFrame|&amp;lt;h3&amp;gt;Dynamic frame ([[Special:MyLanguage/Libs/Main_graphical_elements#dynFrame|dynFrame]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk&lt;br /&gt;
&amp;lt;section end=dynFrame /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element-frame, shown in Figure 3.9, serves to form frames in runtime whether by the user or automatically, and it is initially created to represent data of the [[Special:MyLanguage/Documents/DAQ#PassiveAndInitiative|initiative connections]].&lt;br /&gt;
&lt;br /&gt;
During the frame implementing there significantly expanded some OpenSCADA parts:&lt;br /&gt;
* VCAEngine, Vision, WebVision: allowing of frame's geometry tracing and adjusting-expanding the content to its real size;&lt;br /&gt;
* Vision: fixing in processing small scale and unexpected apply events in LineEdit.&lt;br /&gt;
&lt;br /&gt;
The frame provides currently and in future for next features:&lt;br /&gt;
* specifying sources as fixed or selectable; also as relinking changed sources of the same type and tracing their appearance/disappearance with automatic placing;&lt;br /&gt;
* specifying visual items in a XML-Tree with the possibility to configure all interface here or manually from the running interface;&lt;br /&gt;
* providing a hiding table of the sources and the dynamically formed control panel for adding/removing visual items per source with control their parameters: position, geometry, constants;&lt;br /&gt;
* providing visual items without sources, as constants-static, and setting attributes directly;&lt;br /&gt;
* enabling the archiving locally and remotely for DAQGate.&lt;br /&gt;
&lt;br /&gt;
XML-Tree of the visual elements allowed to place in the root node, placed visual items in the visual elements and sources with constants in the visual items.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;vEls&amp;gt;&lt;br /&gt;
  &amp;lt;el id='Main.anShow' wId=&amp;quot;aShw&amp;quot; geom=&amp;quot;100-1:40-1&amp;quot;&lt;br /&gt;
      lnkAttrs='pVal-var'&lt;br /&gt;
      constAttrs='pName-;pPrec-;pErr-;pDscr-;pModeA-;pModeC-;spName;redEVAL'&amp;gt;&lt;br /&gt;
    &amp;lt;it id='aShw_1' geom=&amp;quot;100:40&amp;quot; pos=&amp;quot;0:0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;src id=&amp;quot;LogicLev.gen.prm_F3&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;const id=&amp;quot;pName&amp;quot; isLnk=&amp;quot;1&amp;quot; lnk=&amp;quot;prm:/LogicLev/gen/F3/NAME (+)&amp;quot;&amp;gt;Test&amp;lt;/const&amp;gt;&lt;br /&gt;
    &amp;lt;/it&amp;gt;&lt;br /&gt;
  &amp;lt;/el&amp;gt;&lt;br /&gt;
  &amp;lt;el id=&amp;quot;Main.TextLab&amp;quot; wId=&amp;quot;txtLb&amp;quot; geom=&amp;quot;60-1:22-1&amp;quot;&lt;br /&gt;
      lnkAttrs=&amp;quot;st_open;st_close;st_text;com;close;com_text&amp;quot;&lt;br /&gt;
      constAttrs=&amp;quot;digStts-;digComs-;NAME-;err-;DESCR-&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;it id=&amp;quot;txtLb_1&amp;quot; geom=&amp;quot;100:22&amp;quot; pos=&amp;quot;10:10&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;src id=&amp;quot;LogicLev.gen.prm_BC6close&amp;quot; sAttr=&amp;quot;a_st_open&amp;quot; vAttr=&amp;quot;st_open&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;src id=&amp;quot;LogicLev.gen.prm_BC6close&amp;quot; sAttr=&amp;quot;a_st_close&amp;quot; vAttr=&amp;quot;st_close&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/it&amp;gt;&lt;br /&gt;
  &amp;lt;/el&amp;gt;&lt;br /&gt;
  &amp;lt;el id=&amp;quot;originals.Text&amp;quot; wId=&amp;quot;txt&amp;quot; geom=&amp;quot;100:20&amp;quot; preset=&amp;quot;color=red;&amp;quot; resize=&amp;quot;1&amp;quot;&lt;br /&gt;
      constAttrs=&amp;quot;*text;*alignment;*font;*color;*orient&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;it id=&amp;quot;txt_2&amp;quot; geom=&amp;quot;100:20&amp;quot; pos=&amp;quot;0:50&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;const id=&amp;quot;*text&amp;quot; isLnk=&amp;quot;0&amp;quot;&amp;gt;Text label&amp;lt;/const&amp;gt;&lt;br /&gt;
      &amp;lt;const id=&amp;quot;*color&amp;quot; isLnk=&amp;quot;0&amp;quot;&amp;gt;blue&amp;lt;/const&amp;gt;&lt;br /&gt;
    &amp;lt;/it&amp;gt;&lt;br /&gt;
  &amp;lt;/el&amp;gt;&lt;br /&gt;
&amp;lt;/vEls&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
* ''id'' — identifier;&lt;br /&gt;
* ''wId'' — widget identifier base;&lt;br /&gt;
* ''geom'' — typical geometry with scale or for concrete visual item;&lt;br /&gt;
* ''lnkAttrs'' — list of the generic attributes through ';' for linking as data source in the form &amp;quot;{vis}[-{src}]&amp;quot;:&lt;br /&gt;
** ''vis'' — ID of the visual attribute;&lt;br /&gt;
** ''src'' — ID of the source attribute, it is the same as visual one at missing;&lt;br /&gt;
* ''constAttrs'' — list of the additional attributes through ';' for specifying manually in the form &amp;quot;{vis}[-[{src}]]&amp;quot;;&lt;br /&gt;
** ''src'' — ID of the source attribute, it is the same as visual one at missing and that is a constant at missing even the symbol ''-'', it is spare here and pointed only for its storing for ''lnkAttrs''.&lt;br /&gt;
* ''pos'' — position of the visual item;&lt;br /&gt;
* ''isLnk'' — the link sign;&lt;br /&gt;
* ''lnk'' — link value for restoring;&lt;br /&gt;
* ''sAttr'', ''vAttr'' — source and visual attributes of linking.&lt;br /&gt;
&lt;br /&gt;
The default XML-Tree stored in the &amp;quot;visualEls&amp;quot; attribute and can be appended by the user for needed elements or restricted only needed by removing unnecessary ones.&lt;br /&gt;
&lt;br /&gt;
After edition during running the &amp;quot;visualEls&amp;quot; attribute appended and stored in the session for using at next start.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_dynFrameD.png|center|frame|Fig.3.9a. The &amp;quot;Dynamic frame&amp;quot; in the development mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
The widget is designed to perform the role of a page, and should therefore be placed directly in the project's tree.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode you will see content dependent from the mode:&lt;br /&gt;
* at default &amp;quot;Visual elements (visualEls)&amp;quot; and first start you'll see nothing except title, combobox of selection the source and the button of call the sources table;&lt;br /&gt;
* at &amp;quot;Visual elements (visualEls)&amp;quot; with preset items and correct sources you'll see those items.&lt;br /&gt;
&lt;br /&gt;
And both of the modes can be configured to show title, combobox of selection the source, the source table and the correspond control panel (Fig.3.9b), where you can add/remove items linked to a source and set parameters for them.&lt;br /&gt;
&lt;br /&gt;
For user access limitation there provided now only a mechanism of including the allowed for edition users to the group &amp;quot;ITW&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_dynFrameR.png|center|frame|Fig.3.9b. The &amp;quot;Dynamic frame&amp;quot; in the runtime mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| srcDAQ || Source DAQ&lt;br /&gt;
In the format &amp;quot;{type}.{cntr}[;{type}.{cntr}]&amp;quot;, where:&amp;lt;br/&amp;gt;&lt;br /&gt;
- type: DAQ type, as LogicLev, DAQGate, ...;&amp;lt;br/&amp;gt;&lt;br /&gt;
- cntr: controller ID strictly or by RE as &amp;quot;/{RE}/&amp;quot;.&lt;br /&gt;
| String || Sources for representing on this frame with their selection for not fixed mode.&lt;br /&gt;
|-&lt;br /&gt;
| srcFIX || Fixed source(s) || Boolean || The fixed sources are appended all to the sources table and without a possibility to select ones by the user.&lt;br /&gt;
|-&lt;br /&gt;
| titleFIX || Fixed title || String || The fixed title without changing with changing the source.&lt;br /&gt;
|-&lt;br /&gt;
| visualEls || Visual elements || Text || XML-Tree of the visual elements and their preset items, which are saved in the session after edition in runtime.&lt;br /&gt;
|-&lt;br /&gt;
| btEdit &amp;gt; en || Enabled || Boolean || Enabling(default)/disabling a button of call the source table for editing.&lt;br /&gt;
|-&lt;br /&gt;
| srcTitle &amp;gt; en || Enabled || Boolean || Enabling(default)/disabling the source title.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== {{Anch|Panels|Панели управления и простые диалоги}} ==&lt;br /&gt;
Содержит элементы-кадры панелей управления и простых диалогов, которые сложно или не нужно реализовывать в виде панелей. Эти кадры предназначены для размещения в соответствующей директории панелей дерева проекта, построенного согласно [[#RootPgSo|концепции объектов сигнализации корневой страницы &amp;quot;RootPgSo&amp;quot;]]. Кадры в основном не предназначены для использования отдельно, поскольку часто репрезентуют специфику данных к которым предоставляют элементы управления или расширенную информацию, а соответственно должны использоваться вместе с ними, кроме случаев унификации, обобщения и расширения контроля примитивами!&lt;br /&gt;
&lt;br /&gt;
Эти элементы в основном открываются динамически, при вызове из элемента-виджета первичного представления, осуществляя при этом [[Special:MyLanguage/Sub-projects/VCA#LinkingDyn|динамическое связывание связей панели в группе &amp;quot;&amp;lt;page&amp;gt;&amp;quot;]] с виджетом (часто страницей), который вызывает эту панель. Дальнейшая работа, до закрытия, осуществляется с данными виджета, который вызывал.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=terminator /&amp;gt;&lt;br /&gt;
| {{Anch|terminator|&amp;lt;h3&amp;gt;Терминальная панель ([[Special:MyLanguage/Libs/Main_graphical_elements#terminator|terminator]])&amp;lt;/h3&amp;gt;}} || 1.1 || GPLv2 || * || en, uk, ru &amp;lt;section end=terminator /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
Элемент панели, представленный на рисунке 4.1, служит для заполнения пространства контейнера панели, когда не выбран активный визуальный элемент для управления на основном кадре, поскольку закрытия или очистки кадров в области контейнера не предусматривается, только замена.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_terminatorD_ru.png|center|frame|Рис.4.1. Элемент панели &amp;quot;Терминальная панель&amp;quot;.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Данный элемент должен быть размещён в логическом контейнере панелей дерева проекта.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
Вызов панели осуществляется из [[#RootPgSo|главной страницы &amp;quot;RootPgSo&amp;quot;]] при смене объекта сигнализации или вида отображения.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ElCadr /&amp;gt;&lt;br /&gt;
| {{Anch|ElCadr|&amp;lt;h3&amp;gt;Элемент кадр ([[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|ElCadr]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.4 || GPLv2 || * || en, uk, ru &amp;lt;section end=ElCadr /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Элемент, представленный на рисунках 4.2, фактически является универсальной панелью управления и расширенного контроля различными устройствами по всем известным и определённым представительским структурам базовых данных систем управления по DAQ-шаблонам:&lt;br /&gt;
* аналоговые: [[Special:MyLanguage/Libs/Main#anUnif|аналоговый сигнал]], [[Special:MyLanguage/Libs/Main#manInUnif|ручной ввод аналогового сигнала]], ПИД-регулятор ([[Special:MyLanguage/Libs/Main#pidUnif|аналоговый]] и [[Special:MyLanguage/Libs/Main#pidUnifImp|импульсный]]);&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main#digitBlockUnif|дискретные сборки]]: клапаны, отсекатели, задвижки, двигатели, вентиляторы и различные переключатели;&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main#codeState|произвольные дискретные состояния]].&lt;br /&gt;
&lt;br /&gt;
В первичной функции панели — расширенное и общее управление, этот элемент вызывается из:&lt;br /&gt;
* [[#Widgets|виджетов первичного представления данных]] этой библиотеки: &amp;quot;[[#anShow|Отображение аналогового]]&amp;quot;, &amp;quot;[[#anShow|Отображение аналогового 1]]&amp;quot;, &amp;quot;[[#TextLab|Текстовая метка]]&amp;quot;, &amp;quot;[[#ImgLab|Метка изображением]]&amp;quot;;&lt;br /&gt;
* [[#MainFrames|основных кадров]]: &amp;quot;[[#grpGraph|Группа графиков]]&amp;quot;, &amp;quot;[[#ViewCadr|Группа обзорных кадров]]&amp;quot;, &amp;quot;[[#cntrRegul|Панель настройки регулятора]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Если использование этого элемента в качестве панели управления не является обязательным, в первую очередь в виджетах первичного представления и через их специализацию на отдельных типах данных, для которых можно создать отдельную панель. То благодаря высокой универсальности, через поддержку всех известных репрезентативных структур DAQ-шаблонов, её обязательно использовать в основных кадрах, как это сделано в кадре &amp;quot;[[#grpCadr|Группа контуров]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ElCadrD_ru.png|center|frame|Рис.4.2a. Виджет &amp;quot;Элемент кадр&amp;quot; в режиме разработки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Панель не предусматривает специальной конфигурации пользователем, она должна лишь быть размещена в каталоге панелей дерева проекта [[#RootPgSo|концепции объектов сигнализации корневой страницы &amp;quot;RootPgSo&amp;quot;]], что будет предусматривать её динамический вызов и открытие в контейнере панелей управлений корневой страницы.&lt;br /&gt;
&lt;br /&gt;
Идентификатор панели, при размещении, должен сохраняться и строка её вызова, при получении фокуса, в атрибуте обработки событий &amp;quot;evProc&amp;quot; первичного виджета приобретёт вид &amp;quot;ws_FocusIn::open:/pg_control/pg_ElCadr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
''Показания аналогового параметра'' — в этом режиме нет никакого управления, а осуществляется только отображение единицы измерения, значения, гистограммы значения и наименования параметра.&lt;br /&gt;
&lt;br /&gt;
''Ручной ввод аналогового параметра'' — кроме отображения показаний аналогового параметра отображаются кнопки ввода нового значения. Ввод значения отображается в поле значения сверху, в подсвеченном прямоугольнике. Для подтверждения правильности ввода необходимо нажать левой клавишей мыши в область подсвеченного прямоугольника, без чего набранное значение будет сброшено через несколько секунд.&lt;br /&gt;
&lt;br /&gt;
''Режим ПИД-регулятора'' — к значению переменной и её гистограмме добавляются значения и гистограммы задания и выхода ПИД-регулятора, кнопки для ввода нового значения, задания или выхода, а также кнопки установки режима регулятора и поле отображения текущего режима. Также, для пользователя с соответствующими правами (&amp;quot;root:ITW&amp;quot;), доступна кнопка перехода к кадру настройки коэффициентов ПИД-регулятора. В случае с импульсным ПИД-регулятором вместо гистограммы аналогового выхода отображаются треугольники состояния импульсного выхода &amp;quot;Вверх&amp;quot; и &amp;quot;Вниз&amp;quot;, а ручной ввод выхода приводит к прямому формированию импульса, соответственно вниз или вверх.&lt;br /&gt;
&lt;br /&gt;
''Режим дискретного устройства'' — в этом режиме осуществляется отображение наименования и поле дискретной сборки параметра. Поле дискретной сборки содержит текущее состояние дискретного устройства, слева, и кнопки возможных команд устройству, справа. Предусмотрено два состояния устройства: &amp;quot;Открыт&amp;quot;, &amp;quot;Закрыт&amp;quot; и три команды: &amp;quot;Открыть&amp;quot;, &amp;quot;Закрыть&amp;quot;, &amp;quot;Стоп&amp;quot;. Наименования состояний и команд могут быть установлены при настройке. Смена состояния дискретного устройства определяется нажатием на кнопку соответствующей команды. В режиме прямых дискретных состояний формируется комбобокс из перечня элементов из ''digComs'', текущим состоянием из ''st_text'' и отправкой команд в ''com_text''.&lt;br /&gt;
&lt;br /&gt;
Каждое действие на этой панели управления (смена задания ПИД-регулятора, изменение состояния дискретного параметра, ...) регистрируется в журнале (протоколе) вмешательств, посредством генерации соответствующих сообщений согласно [[Special:MyLanguage/Documents/Program_manual#ArchMess|структуре сообщений действий оператора]].&lt;br /&gt;
&lt;br /&gt;
Для каждого отображаемого или управляемого параметра можно получить [[#Passport|паспорт]], путём нажатия правой клавиши мыши на поле контура. В паспорте будут представлены все свойства параметра.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] The frame supports now of working with very big &amp;quot;Periodic processing&amp;quot; value and that value is set now to inherit from parent page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_elcadr_ru.png|center|frame|Рис.4.2b. Виджет &amp;quot;Элемент кадр&amp;quot; в режиме исполнения.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Configuration !! Configuration template !! Description&lt;br /&gt;
|-&lt;br /&gt;
| prmId || Parameter: identifier || String || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;SHIFR || Identifier of the parameter, used only to detect the appropriate PID-control pages.&lt;br /&gt;
|-&lt;br /&gt;
| prmShifr || Parameter: code || String (translate) || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;NAME || Short name of the parameter — code, to be placed below the frame and in actions of the user-operator.&lt;br /&gt;
|-&lt;br /&gt;
| prmDescr || Parameter: description || String (translate) || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;DESCR || Description of the parameter to be placed in actions of the user-operator.&lt;br /&gt;
|-&lt;br /&gt;
| prmColor || Parameter: border color || String || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;color || Sets the border color of the contour. &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Properties of the Analog Devices''&lt;br /&gt;
|-&lt;br /&gt;
| prmDemention || Parameter: dimension || String (translate) || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;ed || &lt;br /&gt;
|-&lt;br /&gt;
| prmPrec || Parameter: precision (signs) || Integer || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;prec || Number of digits after the dot in the parameter value and the step of changing the manual input of the value, as well as the set-point and output of the PID-regulator.&lt;br /&gt;
|-&lt;br /&gt;
| prmVar || Parameter: variable || Real || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;var || Directly the value of the analog parameter.&lt;br /&gt;
|-&lt;br /&gt;
| max || Parameter: maximum || Real || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;max || Maximum limit of the parameter value.&lt;br /&gt;
|-&lt;br /&gt;
| min || Parameter: minimum || Real || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;min || Minimum limit of the parameter value.&lt;br /&gt;
|-&lt;br /&gt;
| prmAMax || Parameter: border up alarm || Real || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;aMax ||&lt;br /&gt;
|-&lt;br /&gt;
| prmAMin || Parameter: border down alarm || Real || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;aMin ||&lt;br /&gt;
|-&lt;br /&gt;
| prmWMax || Parameter: border up warning || Real || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;wMax ||&lt;br /&gt;
|-&lt;br /&gt;
| prmWMin || Parameter: border down warning || Real || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;wMin ||&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Manual Analog Input''&lt;br /&gt;
|-&lt;br /&gt;
| prmVarIn || Parameter: variable input || Real || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;varIn || Output for manual input of analog parameter value. The presence of this parameter is an indication that the parameter is defined as &amp;quot;Manual Analog Input&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''PID-regulator''&lt;br /&gt;
|-&lt;br /&gt;
| prmAnalog || Parameter: analog regulator || Boolean || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;analog || The indication of the analog regulator, in the absence of which the regulator is considered as impulse.&lt;br /&gt;
|-&lt;br /&gt;
| prmAuto || Parameter: automate || Boolean || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;auto || The regulator mode &amp;quot;Automatic&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| prmCasc || Parameter: cascade || Boolean || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;casc || The regulator mode &amp;quot;Cascade&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| prmSp || Parameter: set-point || Real || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;sp || The PID-regulator set-point, which can be set by the user.&lt;br /&gt;
|-&lt;br /&gt;
| prmImpQdwnTm || Parameter: imp. out down || Boolean || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;impQdwn || The output &amp;quot;Down&amp;quot; of the impulse (PWM) regulator.&lt;br /&gt;
|-&lt;br /&gt;
| prmImpQupTm || Parameter: imp. out up || Boolean || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;impQup || The output &amp;quot;Up&amp;quot; of the impulse (PWM) regulator.&lt;br /&gt;
|-&lt;br /&gt;
| prmOut || Parameter: output || Real || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;out || Output of the analog PID-regulator to display and manual input of the output value of PID in the manual mode.&lt;br /&gt;
|-&lt;br /&gt;
| prmManIn || Parameter: manual input || Real || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;manIn || Manual input of the new output value of the PID-regulator in the manual mode.&lt;br /&gt;
|-&lt;br /&gt;
| prmNotPID || Parameter: Force disable PID || Boolean || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;notPID || Use when you want to disable PID representing for parameters with SP.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Properties of the discrete devices''&lt;br /&gt;
|-&lt;br /&gt;
| prmCom || Parameter: command - &amp;quot;Open&amp;quot; || Boolean || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;com ||&lt;br /&gt;
|-&lt;br /&gt;
| prmClose || Parameter: command - &amp;quot;Close&amp;quot; || Boolean || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;close ||&lt;br /&gt;
|-&lt;br /&gt;
| prmStop || Parameter: command - &amp;quot;Stop&amp;quot; || Boolean || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;stop ||&lt;br /&gt;
|-&lt;br /&gt;
| prmComText || Parameter: text of command || String || Full link || &amp;lt;page&amp;gt;&amp;amp;#124;com_text || The command text directly, taken from ''digComs'' at building the selection combobox.&lt;br /&gt;
|-&lt;br /&gt;
| digComs || Parameter: discrete commands || String (translate) || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;digComs || Configuration of the parameter commands with the structure '''{openLabel}-{color};{closeLabel}-{color}''', for the discrete block, and '''{com1Label}-{color};{com2Label}-{color};...;{comNLabel}-{color}''', for the code status. Default colours for the discrete block are: &amp;quot;green&amp;quot;, &amp;quot;red&amp;quot;  and &amp;quot;yellow&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| prmOpenSt || Parameter: state - &amp;quot;Opened&amp;quot; || Boolean || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;st_open ||&lt;br /&gt;
|-&lt;br /&gt;
| prmCloseSt || Parameter: state - &amp;quot;Closed&amp;quot; || Boolean || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;st_close ||&lt;br /&gt;
|-&lt;br /&gt;
| prmStText || Parameter: status text || String || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;st_text || The status text directly.&lt;br /&gt;
|-&lt;br /&gt;
| digStts || Parameter: discrete stats || String (translate) || Input link || &amp;lt;page&amp;gt;&amp;amp;#124;digStts || Configuration of the parameter statuses with the structure '''{openedLabel}-{color};{closedLabel}-{color}''', for the discrete block. Default colours are: &amp;quot;green&amp;quot; and &amp;quot;red&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=cntrPaspExt /&amp;gt;&lt;br /&gt;
| {{Anch|cntrPaspExt|&amp;lt;h3&amp;gt;Паспорт, расширенный ([[Special:MyLanguage/Libs/Main_graphical_elements#cntrPaspExt|cntrPaspExt]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=cntrPaspExt /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Элемент, представленный на рисунке 4.3, является информационно-контрольным диалогом около параметра источника данных — расширенный паспорт параметра. В отличии от [[#cntrPasp|простого паспорта]], расширенный, кроме информации, предоставляет возможность контроля атрибутов параметра и отображения истории стандартных атрибутов как в виде тренда, так и таблицы данных.&lt;br /&gt;
&lt;br /&gt;
''Информация и контроль'' атрибутов параметра остаётся основной функцией, которая предоставляется во вкладке &amp;quot;Обзор&amp;quot;, где формируется таблица атрибутов как они есть, со столбцами &amp;quot;Имя&amp;quot; и &amp;quot;Значение&amp;quot;. Таблица активная и при выборе доступных для записи атрибутов, и соответствующих прав (root:op), внизу предоставляется поле ввода новых значений.&lt;br /&gt;
&lt;br /&gt;
''История'' предоставляется в следующих двух вкладках &amp;quot;Тренды&amp;quot; и &amp;quot;Данные&amp;quot;, которые могут и отсутствовать при отсутствии истории-архивов по стандартным атрибутам. Вкладка &amp;quot;Тренды&amp;quot; содержит область графиков, [[Special:MyLanguage/Sub-projects/VCA#Diagram|примитив &amp;quot;Диаграмма&amp;quot;]], на большей части окна, и таблицу внизу с названиями, цветом и шкалами графиков. Графики периодически обновляются и строятся с периодом 1 секунда, и на фиксированную глубину в 1 час. Вкладка &amp;quot;Данные&amp;quot; содержит только поле [[Special:MyLanguage/Sub-projects/VCA#Document|примитива &amp;quot;Документ&amp;quot;]] с таблицей со значениями атрибута в столбцах, которая обновляется с периодом 1 секунда для периода данных истории и на глубину в 100 записей. Стандартными атрибутами с историей считаются следующие элементы [[Special:MyLanguage/Libs/Main|представительских структур параметра]]:&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main#anUnif|Аналоговый сигнал]]:&lt;br /&gt;
** '''var''' — переменная.&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main#pidUnif|ПИД-регулятор]]:&lt;br /&gt;
** '''sp''' — задание;&lt;br /&gt;
** '''out''' — выход;&lt;br /&gt;
** '''auto''' — режим: автомат.&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main#codeState|Дискретные сборки]]:&lt;br /&gt;
** '''com''' — команда &amp;quot;Открыть&amp;quot;;&lt;br /&gt;
** '''close''' — команда &amp;quot;Закрыть&amp;quot;;&lt;br /&gt;
** '''stop''' — команда &amp;quot;Остановить&amp;quot;;&lt;br /&gt;
** '''st_open''' — состояние &amp;quot;Открыто&amp;quot;;&lt;br /&gt;
** '''st_close''' — состояние &amp;quot;Закрыто&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Для построения трендов аналоговых параметров отдельно обрабатываются атрибуты общей шкалы ['''min'''...'''max'''], а также аварийные ['''aMin'''...'''aMax'''] и предупредительные шкалы ['''wMin'''...'''wMax'''], которые, кроме всего, отображаются и на графике.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] На данный момент этот диалог является основным и он заменил [[#cntrPasp|простой диалог паспорта]].&lt;br /&gt;
&lt;br /&gt;
* '''Спонсировано:''' ПАТ ХАРТРОН&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_cntrPaspExt_ru.png|center|frame|Рис.4.3. Диалог &amp;quot;Паспорт, расширенный&amp;quot; в режиме исполнения.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Диалог не предусматривает специальной конфигурации пользователем, он должен лишь быть размещён в каталоге панелей дерева проекта [[#RootPgSo|концепции объектов сигнализации корневой страницы &amp;quot;RootPgSo&amp;quot;]], что будет предусматривать его динамический вызов и открытие, как внешнее диалоговое окно.&lt;br /&gt;
&lt;br /&gt;
Идентификатор диалога, при размещении, должен быть изменён в &amp;quot;cntrPasp&amp;quot; и строка его вызова, при нажатии правой клавиши мыши, в атрибуте обработки сообщений &amp;quot;evProc&amp;quot; первичного виджета приобретёт вид &amp;quot;key_mousePresRight::open:/pg_control/pg_cntrPasp&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
Диалог предоставляет пользователю, во вкладке &amp;quot;Обзор&amp;quot;, информацию про параметр источника данных в виде перечня и значений всех свойств-атрибутов параметра в таблицы. Где атрибуты, доступные для записи, могут редактироваться согласно прав доступа &amp;quot;root:op&amp;quot; в поле редактирования, которое появляется внизу при выборе такого атрибута.&lt;br /&gt;
&lt;br /&gt;
Что касается истории, пользователь может наблюдать тренды во вкладке &amp;quot;Тренды&amp;quot; и данные во вкладке &amp;quot;Данные&amp;quot;. Для трендов, пользователь может также подсветить какой-то из них, выбрав его в таблице внизу, и отредактировать шкалу если она ошибочна.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Свойства связывания и конфигурации}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Идентификатор !! Имя !! Тип !! Конфигурация !! Конфигурационный шаблон !! Описание&lt;br /&gt;
|-&lt;br /&gt;
| pName || Имя параметра || Адрес || Входная связь || Parameter&amp;amp;#124;NAME || Адрес к имени параметра для обращения к параметру целиком и изъятия всех его свойств.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=cntrPasp /&amp;gt;&lt;br /&gt;
| {{Anch|cntrPasp|&amp;lt;h3&amp;gt;Паспорт ([[Special:MyLanguage/Libs/Main_graphical_elements#cntrPasp|cntrPasp]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.0 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=cntrPasp /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Элемент, представленный на рисунке 4.4, является информационным диалогом около параметра источника данных — паспорт параметра, соответственно он позволяет получить такого рода информацию как: шифр, имя, описание, единица измерения, аварийные границы и другое, согласно [[Special:MyLanguage/Libs/Main|представительской структуре параметра]] — атрибуты параметра. Диалог построен на основе [[Special:MyLanguage/Sub-projects/VCA#Document|примитива &amp;quot;Документ&amp;quot;]], содержимое которого формируется динамически и периодически обновляется.&lt;br /&gt;
&lt;br /&gt;
При построении паспорта отдельно обрабатываются атрибуты аварийных ['''aMin'''...'''aMax'''] и предупредительных шкал ['''wMin'''...'''wMax'''], которые объединяются в одной записи и в целом могут скрываться при условии их отключения.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] На данный момент этот диалог фактически заменён [[#cntrPaspExt|более функциональным и расширенным диалогом паспорта]] и он в основном отключен во всех шаблонных и демонстрационных проектах, хотя никто не препятствует его использованию, если необходима только информацию.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_cntrPasp_ru.png|center|frame|Рис.4.4. Диалог &amp;quot;Паспорт&amp;quot; в режиме исполнения.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Диалог не предусматривает специальной конфигурации пользователем, он должен лишь быть размещён в каталоге панелей дерева проекта [[#RootPgSo|концепции объектов сигнализации корневой страницы &amp;quot;RootPgSo&amp;quot;]], что будет предусматривать его динамический вызов и открытие, как внешнее диалоговое окно.&lt;br /&gt;
&lt;br /&gt;
Идентификатор диалога, при размещении, должен сохраняться и строка его вызова, при нажатии правой клавиши мыши, в атрибуте обработки сообщений &amp;quot;evProc&amp;quot; первичного виджета приобретёт вид &amp;quot;key_mousePresRight::open:/pg_control/pg_cntrPasp&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
Диалог только предоставляет пользователю информацию про параметр источника данных в виде перечня и значений всех свойств-атрибутов параметра в таблице.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Свойства связывания и конфигурации}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Идентификатор !! Имя !! Тип !! Конфигурация !! Конфигурационный шаблон !! Описание&lt;br /&gt;
|-&lt;br /&gt;
| pName || Имя параметра || Адрес || Входная связь || Parameter&amp;amp;#124;NAME || Адрес к имени параметра для обращения к параметру целиком и изъятия всех его свойств.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=grph_panel /&amp;gt;&lt;br /&gt;
| {{Anch|grph_panel|&amp;lt;h3&amp;gt;Панель графиков ([[Special:MyLanguage/Libs/Main_graphical_elements#grph_panel|grph_panel]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.6 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=grph_panel /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Элемент, представленный на рисунке 4.5, является специализированной панелью динамического управления основными пользовательскими свойствами [[Special:MyLanguage/Sub-projects/VCA#Diagram|примитива &amp;quot;Диаграмма&amp;quot;]]. Так, панель позволяет просмотреть графики истории за необходимый период времени и в нужном разрешении, поддерживается: масштабирование шкалы, выбор архиваторов для отображения, а также представление графиков в виде спектра присутствующих частот или XY.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_grph_panel.png|center|frame|Рис.4.5. Панель графиков в режиме разработки и исполнения (слева направо).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Панель не предусматривает специальной конфигурации пользователем, она должна лишь быть размещена в каталоге панелей дерева проекта [[#RootPgSo|концепции объектов сигнализации корневой страницы &amp;quot;RootPgSo&amp;quot;]], что будет предусматривать её динамический вызов и открытие в контейнере панелей управлений корневой страницы.&lt;br /&gt;
&lt;br /&gt;
Идентификатор панели, при размещении, должен сохраняться и строка её вызова, при получении фокуса, в атрибуте обработки событий &amp;quot;evProc&amp;quot; первичного виджета приобретёт вид &amp;quot;ws_FocusIn::open:/pg_control/pg_grph_panel&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
The panel allows the user to:&lt;br /&gt;
* select the diagram graphics mode: &amp;quot;Graph&amp;quot;, &amp;quot;Spectrum of frequencies&amp;quot;, &amp;quot;XY&amp;quot;;&lt;br /&gt;
* select of the diagram formation time;&lt;br /&gt;
* perform of navigation through the diagram for the half or five sizes of the graph area and setting of the diagram generation time to the current time or in the cursor time;&lt;br /&gt;
* get information about the time or frequency in the current cursor's position;&lt;br /&gt;
* select of the trend's formation size (depth) or set the begin time, also to the cursor time;&lt;br /&gt;
* select of the archive, used for the trend building, at the access rule &amp;quot;root:ITW&amp;quot;;&lt;br /&gt;
* control the vertical and horizontal scale of the presentation: zoom in and out the scale, shift the scale up and down, the scale returns to its original value;&lt;br /&gt;
* switch of the scale mode by the window drawn by the mouse.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Свойства связывания и конфигурации}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Идентификатор !! Имя !! Тип !! Конфигурация !! Конфигурационный шаблон !! Описание&lt;br /&gt;
|-&lt;br /&gt;
| tSek || Время тренда || ДатаВремя || Полная связь || &amp;lt;page&amp;gt;&amp;amp;#124;tSek || &lt;br /&gt;
|-&lt;br /&gt;
| tSize || Размер тренда || Вещественный || Полная связь || &amp;lt;page&amp;gt;&amp;amp;#124;tSize || Временной размер-интервал графика в историю от времени тренда.&lt;br /&gt;
|-&lt;br /&gt;
| trcPer || Период слежения || Целый || Полная связь || &amp;lt;page&amp;gt;&amp;amp;#124;trcPer || Период обновления-слежения графика.&lt;br /&gt;
|-&lt;br /&gt;
| type || Тип || Целый || Полная связь || &amp;lt;page&amp;gt;&amp;amp;#124;type || Тип графика: &amp;quot;Тренд&amp;quot;, &amp;quot;Спектр частот&amp;quot;, &amp;quot;XY&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| valArch || Архиватор || Строка || Полная связь || &amp;lt;page&amp;gt;&amp;amp;#124;valArch ||&lt;br /&gt;
|-&lt;br /&gt;
| curSek || Курсор || ДатаВремя || Полная связь || &amp;lt;page&amp;gt;&amp;amp;#124;curSek || Время установки курсора.&lt;br /&gt;
|-&lt;br /&gt;
| curUSek || Курсор, микросекунды || Целый || Полная связь || &amp;lt;page&amp;gt;&amp;amp;#124;curUSek || Время установки курсора, микросекунды.&lt;br /&gt;
|-&lt;br /&gt;
| sclVer || Вертикальный масштаб || Вещественный || Полная связь || &amp;lt;page&amp;gt;&amp;amp;#124;sclVerScl || Процент вертикального масштаба.&lt;br /&gt;
|-&lt;br /&gt;
| sclVerOff || Смещение вертикального масштаба || Вещественный || Полная связь || &amp;lt;page&amp;gt;&amp;amp;#124;sclVerSclOff || Процент смещения по вертикальной шкале.&lt;br /&gt;
|-&lt;br /&gt;
| sclHor || Горизонтальная шкала || Вещественный || Полная связь || &amp;lt;page&amp;gt;&amp;amp;#124;sclHorScl || Процент горизонтального масштаба.&lt;br /&gt;
|-&lt;br /&gt;
| sclHorOff || Смещение горизонтальной шкалы || Вещественный || Полная связь || &amp;lt;page&amp;gt;&amp;amp;#124;sclHorSclOff || Процент смещения по горизонтальной шкале.&lt;br /&gt;
|-&lt;br /&gt;
| sclWin || Масштаб окном || Логический || Полная связь || &amp;lt;page&amp;gt;&amp;amp;#124;sclWin || Переключение режима масштабирования окном.&lt;br /&gt;
|-&lt;br /&gt;
| sclWinCtx || Масштаб: контекст окном || Объект || Входная связь || &amp;lt;page&amp;gt;&amp;amp;#124;sclWinCtx || Контекст сохранения исходных параметров масштабирования окном, для возврата.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=doc_panel /&amp;gt;&lt;br /&gt;
| {{Anch|doc_panel|&amp;lt;h3&amp;gt;Панель документов ([[Special:MyLanguage/Libs/Main_graphical_elements#doc_panel|doc_panel]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=doc_panel /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Элемент, представленный на рисунке 4.6, является специализированной панелью динамического управления основными пользовательскими свойствами [[Special:MyLanguage/Sub-projects/VCA#Document|примитива &amp;quot;Документ&amp;quot;]]. Так, панель позволяет управлять документами и осуществлять навигацию по их истории; поддерживаются динамические и архивные документы.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_doc_panel.png|center|frame|Рис.4.6. Панель документов в режиме разработки и исполнения (динамический и архивный), слева направа.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Панель не предусматривает специальной конфигурации пользователем, она должна лишь быть размещена в каталоге панелей дерева проекта [[#RootPgSo|концепции объектов сигнализации корневой страницы &amp;quot;RootPgSo&amp;quot;]], что будет предусматривать её динамический вызов и открытие в контейнере панелей управлений корневой страницы.&lt;br /&gt;
&lt;br /&gt;
Идентификатор панели, при размещении, должен сохраняться и строка её вызова, при получении фокуса, в атрибуте обработки событий &amp;quot;evProc&amp;quot; первичного виджета приобретёт вид &amp;quot;ws_FocusIn::open:/pg_control/pg_doc_panel&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
Панелью предоставляются инструменты, которые несколько отличаются для динамического и архивного режимов.&lt;br /&gt;
&lt;br /&gt;
''Динамическим документом'' предусматривается:&lt;br /&gt;
* выбор времени формирования документа;&lt;br /&gt;
* выбор размера (глубины) формирования документа или времени начала;&lt;br /&gt;
* навигация по документу на один или пять размеров-глубины документа;&lt;br /&gt;
* установка времени генерации документа в текущее время.&lt;br /&gt;
&lt;br /&gt;
''Архивным документом'' предусматривается только навигация по документам в архиве путём их перелистывания, а также информация о текущем и общем количестве документов в архиве.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Свойства связывания и конфигурации}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Идентификатор !! Имя !! Тип !! Конфигурация !! Конфигурационный шаблон !! Описание&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Динамические документы''&lt;br /&gt;
|-&lt;br /&gt;
| time || Время документа || ДатаВремя || Полная связь || &amp;lt;page&amp;gt;&amp;amp;#124;time ||&lt;br /&gt;
|-&lt;br /&gt;
| bTime || Начало документа || ДатаВремя || Полная связь || &amp;lt;page&amp;gt;&amp;amp;#124;bTime ||&lt;br /&gt;
|-&lt;br /&gt;
| doc || Документ || Строка || Полная связь || &amp;lt;page&amp;gt;&amp;amp;#124;doc ||&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Архивные документы''&lt;br /&gt;
|-&lt;br /&gt;
| n || Размер архива || Целый || Входная связь || &amp;lt;page&amp;gt;&amp;amp;#124;n ||&lt;br /&gt;
|-&lt;br /&gt;
| vCur || Курсор отображения || Целый || Полная связь || &amp;lt;page&amp;gt;&amp;amp;#124;vCur ||&lt;br /&gt;
|-&lt;br /&gt;
| aCur || Курсор архива || Целый || Входная связь || &amp;lt;page&amp;gt;&amp;amp;#124;aCur ||&lt;br /&gt;
|-&lt;br /&gt;
| aSize || Размер архива || Целый || Входная связь || &amp;lt;page&amp;gt;&amp;amp;#124;aSize ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=accept /&amp;gt;&lt;br /&gt;
| {{Anch|accept|&amp;lt;h3&amp;gt;Подтверждение ([[Special:MyLanguage/Libs/Main_graphical_elements#accept|accept]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.0 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=accept /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Элемент на рисунке 4.7 реализует простейший диалог подтверждения операций. Диалог содержит сообщение с вопросом и две кнопки &amp;quot;Принять&amp;quot; и &amp;quot;Отмена&amp;quot;. Данный диалог, например, использован в кадре [[#userManager|Менеджер пользователей]] для подтверждения операции удаления.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсирование:''' Василий Григорьев, [http://e-beam.ru Лаборатория Вакуумных Технологий]&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_accept_ru.png|center|frame|Рис.4.7. Диалог &amp;quot;Подтверждение&amp;quot; в режиме разработки и исполнения.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Диалог не предусматривает специальной конфигурации пользователем, он должен лишь быть размещён в каталоге панелей дерева проекта [[#RootPgSo|концепции объектов сигнализации корневой страницы &amp;quot;RootPgSo&amp;quot;]], что будет предусматривать его динамический вызов и открытие, как внешнее диалоговое окно.&lt;br /&gt;
&lt;br /&gt;
Идентификатор диалога, при размещении, должен сохраняться и строка его вызова, при нажатии кнопки &amp;quot;progDel&amp;quot;, в атрибуте обработки сообщений &amp;quot;evProc&amp;quot; первичного виджета приобретёт вид &amp;quot;ws_BtPress:/progDel:open:/pg_control/pg_accept&amp;quot;. Из атрибута &amp;quot;mess&amp;quot; берётся сообщение вопроса, а в &amp;quot;event&amp;quot; передаётся сигнал &amp;quot;dlg_Apply&amp;quot;, при подтверждении.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
Вызов диалога осуществляется из кадра-инициатора, а закрытие происходит по нажатию любой кнопки диалога. В случае нажатия кнопки &amp;quot;Применить&amp;quot; кадра-инициатора будет отправлен сигнал &amp;quot;dlg_Apply&amp;quot;, по которому он может выполнить нужные действия.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Свойства связывания и конфигурации}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Идентификатор !! Имя !! Тип !! Конфигурация !! Конфигурационный шаблон !! Описание&lt;br /&gt;
|-&lt;br /&gt;
| elEvent || Элемент: событие || Строка || Полная связь || &amp;lt;page&amp;gt;&amp;amp;#124;event || Используется для отправки события &amp;quot;dlg_Apply&amp;quot; в случае подтверждения.&lt;br /&gt;
|-&lt;br /&gt;
| elMess || Элемент: сообщение || Строка || Входная связь || &amp;lt;page&amp;gt;&amp;amp;#124;mess || Источник сообщения вопроса в диалоге.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=treeSelect /&amp;gt;&lt;br /&gt;
| {{Anch|treeSelect|&amp;lt;h3&amp;gt;Выбор элемента в дереве ([[Special:MyLanguage/Libs/Main_graphical_elements#treeSelect|treeSelect]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.0 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=treeSelect /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Элемент на рисунке 4.8 реализует простой диалог операции выбора пункта в дереве. Диалог содержит само дерево и две кнопки &amp;quot;Принять&amp;quot; и &amp;quot;Отменить&amp;quot;. Этот диалог, например, использован, и первично для него разрабатывался, в кадре &amp;quot;[[Special:MyLanguage/Libs/Prescriptions#prescrRunSimple|Рецепт: исполнение (простой)]]&amp;quot; для иерархического выбора элемента в дереве.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсирование:''' Василий Григорьев, [http://e-beam.ru Лаборатория Вакуумных Технологий]&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_treeSelect_ru.png|center|frame|Рис.4.8. Диалог &amp;quot;Выбор элемента в дереве&amp;quot; в режиме разработки и исполнения.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — разработка}}&lt;br /&gt;
Диалог не предусматривает специальной конфигурации пользователем, он должен лишь быть размещён в каталоге панелей дерева проекта [[#RootPgSo|концепции объектов сигнализации корневой страницы &amp;quot;RootPgSo&amp;quot;]], что будет предусматривать его динамический вызов и открытие, как внешнее диалоговое окно.&lt;br /&gt;
&lt;br /&gt;
Идентификатор диалога, при размещении, должен сохраняться и строка его вызова, при нажатии кнопки &amp;quot;lib&amp;quot;, в атрибуте обработки сообщений &amp;quot;evProc&amp;quot; первичного виджета приобретёт вид &amp;quot;ws_BtPress:/lib:open:/pg_control/pg_treeSelect&amp;quot;. Из атрибута &amp;quot;items&amp;quot; берётся перечень элементов, из &amp;quot;selValue&amp;quot; выбранное значение, а в &amp;quot;event&amp;quot; передаётся сигнал &amp;quot;dlg_Apply&amp;quot;, при подтверждении.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Использование — исполнение}}&lt;br /&gt;
Вызов диалога осуществляется из кадра-инициатора, а закрытие происходит по нажатию любой кнопки диалога. В случае нажатия кнопки &amp;quot;Применить&amp;quot; кадра-инициатора будет отправлен сигнал &amp;quot;dlg_Apply&amp;quot;, по которому он применит выбранный елемент.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Свойства связывания и конфигурации}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Идентификатор !! Имя !! Тип !! Конфигурация !! Конфигурационный шаблон !! Описание&lt;br /&gt;
|-&lt;br /&gt;
| elEvent || Элемент: событие || Строка || Полная связь || &amp;lt;page&amp;gt;&amp;amp;#124;event || Используется для отправки события &amp;quot;dlg_Apply&amp;quot; в случае подтверждения.&lt;br /&gt;
|-&lt;br /&gt;
| elItems || Элемент: список элементов || Текст || Входная связь || &amp;lt;page&amp;gt;&amp;amp;#124;items || Источник перечня элементов в диалоге.&lt;br /&gt;
|-&lt;br /&gt;
| selValue || Элемент: выбранное значение || Строка || Полная связь || &amp;lt;page&amp;gt;&amp;amp;#124;selValue || Источник выбранного элемента в диалоге.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Libs/Main_graphical_elements/uk&amp;diff=93967</id>
		<title>Libs/Main graphical elements/uk</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Libs/Main_graphical_elements/uk&amp;diff=93967"/>
				<updated>2026-05-10T04:51:09Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Назва !! Версія !! Ліцензія !! Джерело !! Мови !! Автор !! Іконка&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Libs/Main_graphical_elements|Бібліотека основних елементів інтерфейсу користувача]]&lt;br /&gt;
| 2.3 || GPLv2&lt;br /&gt;
| vcaBase.db ([http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/vcaBase.sql SQL], [[:File:vcaBase.db.gz|GZip]]) &amp;gt; VCA.wlb_Main&lt;br /&gt;
| en, uk, ru&lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || [[File:LibMainGraphElements.png]]&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;9&amp;quot; | Опис&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;9&amp;quot; | Надає бібліотеку основних елементів користувацького інтерфейсу загальної та промислової автоматизації.&lt;br /&gt;
* '''Засновано:''' Вересень 2007&lt;br /&gt;
* '''Початково створено:''' у [http://wiki.oscada.org/HomePageEn/Using/GraphicElementsLibraries/MainElements старій Wiki]&lt;br /&gt;
* '''Використано:''' [[Special:MyLanguage/Using|більшість проектів на OpenSCADA]]&lt;br /&gt;
* '''[[Special:MyLanguage/Works/To_do|Завдання (To Do)]]:'''&lt;br /&gt;
&amp;lt;section begin=ToDo /&amp;gt;&lt;br /&gt;
&amp;lt;section end=ToDo /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Бібліотека створюється для надання основних елементів користувацького інтерфейсу та містить графічні елементи, які часто затребувано при формуванні користувацького інтерфейсу автоматизації технологічних та загальних процесів. Будується бібліотека на основі [[Special:MyLanguage/Modules/VCAEngine#WidgetPrimitives|примітивів віджетів]] та мови внутрішнього програмування [[Special:MyLanguage/Modules/JavaLikeCalc|JavaLikeCalc]].&lt;br /&gt;
&lt;br /&gt;
Назви елементів та їх параметрів доступні на мовах: Англійська, Українська та mRussian. Їх вихідний код написано у мово(людська)-незалежному режимі з викликом функції перекладу ''tr()'' та переклад цих повідомлень також доступний Англійською, Українською та mRussian.&lt;br /&gt;
&lt;br /&gt;
Для підключення бібліотеки до проекту станції OpenSCADA Ви можете отримати файл БД як:&lt;br /&gt;
* такий що постачається з готовим та відповідним пакетом дистрибутиву Linux на кшталт &amp;quot;openscada-libdb-vca&amp;quot;, &amp;quot;openscada-LibDB.VCA&amp;quot;;&lt;br /&gt;
* найбільш актуальний та безпосередньо отриманий з [http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/vcaBase.sql репозиторію subversion], перетворений у файл БД SQLite шляхом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;BASH&amp;quot; style=&amp;quot;margin-left: 15px&amp;quot;&amp;gt;&lt;br /&gt;
wget http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/vcaBase.sql&lt;br /&gt;
sqlite3 -init vcaBase.sql vcaBase.db .exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* завантаження [[:File:vcaBase.db.gz|прикріпленого тут]].&lt;br /&gt;
&lt;br /&gt;
Цей отриманий файл Ви надалі можете розмістити у теці проекту станції та створити об'єкт бази даних модуля БД &amp;quot;SQLite&amp;quot;, зареєструвавши файл бази даних у конфігурації.&lt;br /&gt;
&lt;br /&gt;
== {{Anch|Widgets|Віджети — графічні елементи}} ==&lt;br /&gt;
Містить елементи-віджети загального застосування, які призначено для розташування на [[#MainFrames|основних кадрах]]. Цима основними кадрами можуть бути й кадри поза цією [[#RootPgSo|концепцією об'єктів сигналізації кореневої сторінки &amp;quot;RootPgSo&amp;quot;]], але треба враховувати, що вони часто посилаються та викликають ті або інші [[#Panels|панелі керування]]!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=anShow /&amp;gt;&lt;br /&gt;
| {{Anch|anShow|&amp;lt;h3&amp;gt;Відображення аналогового ([[Special:MyLanguage/Libs/Main_graphical_elements#anShow|anShow]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=anShow /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Елемент на рисунку 1.1 слугує для відображення поточного значення аналогового параметру та режиму регулятору, якщо параметр є таким. Також цей елемент генерує повідомлення про порушення за відповідними уставками параметру. Елемент загалом використовує та представляє представницьку структуру [[Special:MyLanguage/Libs/Main#anUnif|DAQ-шаблону &amp;quot;Аналоговий сигнал&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_AnShow_uk.png|center|frame|Рис.1.1. Елемент &amp;quot;Відображення аналогового&amp;quot; у режимі розробки та виконання (зліва праворуч).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Цей віджет може бути використано розробником при створені мнемосхем з відображенням значень аналогових параметрів та ПІД-регуляторів. Для використання потрібно додати цей віджет на мнемосхему, підлаштувати горизонтальний, вертикальний розмір масштабом та зв'язати з параметром джерела даних.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
У режимі виконання, у основному полі елементу, відображається назва параметру, режим регулятору (тільки для регулятору) та поточне значення-змінна цього параметру; які, залежно від наявності порушення, відображаються кольором стилю: ''labColorGood'', ''labColorWarning'', ''labColorAlarm''; та яким зображення незквітованого параметру може блимати. За апаратних помилок та недостовірності даних, останнє значення відображається сірим кольором та перекреслюється. У підказці користувач може отримати опис пов'язаного параметра та його помилки.&lt;br /&gt;
&lt;br /&gt;
У активному режимі елементу можна отримати [[#Passport|паспорт]], натиснувши праву клавішу миші на полі віджету. У паспорті будуть представлені всі властивості параметру. За натиском лівої клавіші миші у області панелей з'явиться [[#ElCadr|панель управління]] параметром, та вибір даного віджету буде відображатися блимаючою рамкою.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Віджет наразі підтримує функціювання із дуже великим значенням &amp;quot;Період опрацювання&amp;quot; та це значення наразі встановлено для спадкування від батьківського віджету/сторінки/сеансу (значення -1). Це можливе завдяки механізму раннього опрацювання подій та можливості контролю періодичності опрацювання із процедури.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| pErr || Параметр: помилка || Рядок || Вхідний зв'язок || Parameter&amp;amp;#124;err || Код та текст помилки за параметром. Використовується для формування сигналізації про порушення. Коди помилок, що обробляються:&lt;br /&gt;
* 1,2 — відмова, параметр недостовірний, відображається сірим та перекресленим окрім випадку з ''redEVAL'';&lt;br /&gt;
* 3,4 — вище та нижче аварійної границі, відображається кольором стилю ''labColorAlarm'';&lt;br /&gt;
* 5,6 — вище та нижче попереджувальної границі, відображається кольором стилю ''labColorWarning'';&lt;br /&gt;
* 10,11 — коди користувацьких порушень статусу попередження та аварія, відповідно відображається кольором стилю ''labColorWarning'' та ''labColorAlarm''.&lt;br /&gt;
|-&lt;br /&gt;
| pModeA || Параметр: режим регулятору: автомат || Логічний || Вхідний зв'язок || Parameter&amp;amp;#124;auto || Відображається велика літера &amp;quot;А&amp;quot; ліворуч від значення, при встановленні.&lt;br /&gt;
|-&lt;br /&gt;
| pModeC || Параметр: режим регулятору: каскад || Логічний || Вхідний зв'язок || Parameter&amp;amp;#124;casc || Відображається велика літера &amp;quot;К&amp;quot; ліворуч від значення, при встановленні.&lt;br /&gt;
|-&lt;br /&gt;
| pName || Параметр: ім'я || Рядок (переклад) || Вхідний зв'язок || Parameter&amp;amp;#124;NAME || Коротке найменування параметру, що відображається над значенням та вставляється у повідомлення про порушення.&lt;br /&gt;
|-&lt;br /&gt;
| pPrec || Параметр: точність || Цілий || Вхідний зв'язок || Parameter&amp;amp;#124;prec || Кількість знаків після точки, для позитивних значень, та точність (знаків загалом), для негативних, для відображення кінцевого реального значення на екрані.&lt;br /&gt;
|-&lt;br /&gt;
| pVal || Параметр: значення || Реальний || Вхідний зв'язок || Parameter&amp;amp;#124;var || Інженерне реальне значення параметру.&lt;br /&gt;
|-&lt;br /&gt;
| redEVAL || Червоне ім'я параметру у випадку відмови || Логічний ||Стала ||  || По замовченню, колір ім'я при &amp;quot;відмові&amp;quot; (значення EVAL) параметру сірий. Для деяких критичних для технологічного процесу параметрів стан відмови має бути яскраво виражено на мнемосхемі червоним кольором.&lt;br /&gt;
|-&lt;br /&gt;
| spName || Ім'я для синтезу || Рядок (переклад) || Стала || || Ім'я параметру для синтезу мови при формуванні аварійних повідомлень з урахуванням наголосу слів, пауз та інше. Порожнє значення вимикає повідомлення мовою!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=anShow1 /&amp;gt;&lt;br /&gt;
| {{Anch|anShow1|&amp;lt;h3&amp;gt;Відображення аналогового 1 ([[Special:MyLanguage/Libs/Main_graphical_elements#anShow1|anShow1]]); Відображення аналогового 1, короткий ([[Special:MyLanguage/Libs/Main_graphical_elements#anShow1|anShow1s]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.4 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=anShow1 /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Елемент на рисунку 1.2 слугує для відображення поточного значення аналогового параметру та короткого префіксу виміряного значення. Також цей елемент генерує повідомлення про порушення за відповідними уставками параметру. Елемент загалом використовує та представляє представницьку структуру [[Special:MyLanguage/Libs/Main#anUnif|DAQ-шаблону &amp;quot;Аналоговий сигнал&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
Ці два елементи відрізняються один від одного лише початковим горизонтальним розміром, тобто другий &amp;quot;Відображення аналогового 1, короткий&amp;quot; є коротким варіантом для дуже коротких випадків та він прямо успадковується від першого.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_anShow1.png|center|frame|Рис.1.2. Елемент &amp;quot;Відображення аналогового 1&amp;quot; у режимі розробки та виконання (зліва праворуч).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Цей віджет може бути використано розробником при створені мнемосхем з відображенням значень аналогових параметрів із префіксом та/або як елемент статичної екранної таблиці. Для використання потрібно додати цей віджет на мнемосхему, підлаштувати горизонтальний, вертикальний розмір масштабом та зв'язати з параметром джерела даних.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
У режимі виконання, у основному полі елементу, відображається короткий префікс та поточне значення-змінна цього параметру; які, залежно від наявності порушення, відображаються кольором стилю: ''labColorGood'', ''labColorWarning'', ''labColorAlarm''; та яким зображення незквітованого параметру може блимати. За апаратних помилок та недостовірності даних, останнє значення відображається сірим кольором та перекреслюється. У підказці користувач може отримати опис пов'язаного параметра та його помилки.&lt;br /&gt;
&lt;br /&gt;
У активному режимі елементу можна отримати [[#Passport|паспорт]], натиснувши праву клавішу миші на полі віджету. У паспорті будуть представлені всі властивості параметру. За натиском лівої клавіші миші у області панелей з'явиться [[#ElCadr|панель управління]] параметром, та вибір даного віджету буде відображатися блимаючою рамкою.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Віджет наразі підтримує функціювання із дуже великим значенням &amp;quot;Період опрацювання&amp;quot; та це значення наразі встановлено для спадкування від батьківського віджету/сторінки/сеансу (значення -1). Це можливе завдяки механізму раннього опрацювання подій та можливості контролю періодичності опрацювання із процедури.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| pErr || Параметр: помилка || Рядок || Вхідний зв'язок || Parameter&amp;amp;#124;err || Код та текст помилки за параметром. Використовується для формування сигналізації про порушення. Коди помилок, що обробляються:&lt;br /&gt;
* 1,2 — відмова, параметр недостовірний, відображається сірим та перекресленим;&lt;br /&gt;
* 3,4 — вище та нижче аварійної границі, відображається кольором стилю ''labColorAlarm'';&lt;br /&gt;
* 5,6 — вище та нижче попереджувальної границі, відображається кольором стилю ''labColorWarning'';&lt;br /&gt;
* 10,11 — коди користувацьких порушень статусу попередження та аварія, відповідно відображається кольором стилю ''labColorWarning'' та ''labColorAlarm''.&lt;br /&gt;
|-&lt;br /&gt;
| pNAME || Параметр: ім'я || Рядок (переклад) || Вхідний зв'язок || Parameter&amp;amp;#124;NAME || Коротке найменування параметру, що вставляється у повідомлення про порушення.&lt;br /&gt;
|-&lt;br /&gt;
| prec || Параметр: точність || Цілий || Вхідний зв'язок || Parameter&amp;amp;#124;prec || Кількість знаків після точки, для позитивних значень, та точність (знаків загалом), для негативних, для відображення кінцевого реального значення на екрані.&lt;br /&gt;
|-&lt;br /&gt;
| pVal || Параметр: значення || Реальний || Вхідний зв'язок || Parameter&amp;amp;#124;var || Інженерне реальне значення параметру.&lt;br /&gt;
|-&lt;br /&gt;
| spName || Ім'я для синтезу || Рядок (переклад) || Стала || || Ім'я параметру для синтезу мови при формуванні аварійних повідомлень з урахуванням наголосу слів, пауз та інше. Порожнє значення вимикає повідомлення мовою!&lt;br /&gt;
|-&lt;br /&gt;
| pName || Коротка назва || Рядок || Стала || || Значення короткої назви-префіксу.&lt;br /&gt;
|-&lt;br /&gt;
| pNameSz || Розмір короткої назви || Ціле || Стала || || Розмір короткої назви-префіксу, використовуйте 0 для вимкнення поля.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=TextLab /&amp;gt;&lt;br /&gt;
| {{Anch|TextLab|&amp;lt;h3&amp;gt;Текстова мітка ([[Special:MyLanguage/Libs/Main_graphical_elements#TextLab|TextLab]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=TextLab /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Елемент на рисунку 1.3 слугує для відображення динамічних текстових міток, що формується на основі дискретних сигналів. Також цей елемент генерує повідомлення про порушення за локально визначеною умовою, атрибут '''ntf''', додатково він може генерувати сигнали із атрибуту &amp;quot;Помилка (err)&amp;quot;. Елемент загалом використовує та представляє представницьку структуру DAQ-шаблонів [[Special:MyLanguage/Libs/Main#digitBlockUnif|дискретного блоку]] та [[Special:MyLanguage/Libs/Main#codeState|стану за кодом]].&lt;br /&gt;
&lt;br /&gt;
* '''Спонсорування:''' Василь Григор'єв, [http://e-beam.ru Лабораторія Вакуумних Технологій]&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_TextLab.png|center|frame|Рис.1.3. Елемент &amp;quot;Текстова мітка&amp;quot; у режимі розробки та виконання (зліва праворуч).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Цей віджет може бути використано розробником при створені мнемосхем з відображенням текстових міток та/або як елемент статичної екранної таблиці. Для використання потрібно додати цей віджет на мнемосхему, підлаштувати горизонтальний, вертикальний розмір та зв'язати з параметром джерела даних.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
У режимі виконання, у основному полі елементу, відображається текстова мітка та на фоні, що відповідає значенням дискретних сигналів параметру та конфігурації станів у атрибуті '''digStts'''; де фон, залежно від наявності порушення відповідного до умов атрибуту '''ntf''', встановлюється у колір порушення; та яким зображення незквітованого параметру може блимати. За апаратних помилок та недостовірності даних, фон відображається сірим кольором.&lt;br /&gt;
&lt;br /&gt;
У активному режимі елементу можна отримати [[#Passport|паспорт]], двічі натиснувши ліву клавішу миші на полі віджету. У паспорті будуть представлені всі властивості параметру. За натиском лівої клавіші миші у області панелей з'явиться [[#ElCadr|панель управління]] параметром, та вибір даного віджету буде відображатися блимаючою рамкою. Команди дублюються у контекстному меню, яке з'являється за натиском правої клавіші миші у області віджету.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Віджет наразі підтримує функціювання із дуже великим значенням &amp;quot;Період опрацювання&amp;quot; та це значення наразі встановлено для спадкування від батьківського віджету/сторінки/сеансу (значення -1). Це можливе завдяки механізму раннього опрацювання подій та можливості контролю періодичності опрацювання із процедури.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| err || Параметр: помилка || Адреса || Вхідний зв'язок || Parameter&amp;amp;#124;err || Використовується у якості адреси для доступу до об'єкту DAQ-Параметру із надсилання повідомлень і значення також використовується для генерації сигналів.&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Параметр: ім'я || Рядок (переклад) || Вхідний зв'язок || Parameter&amp;amp;#124;NAME || Коротке найменування параметру, що вставляється у повідомлення про порушення та дії оператору-користувача.&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Параметр: опис || Рядок (переклад) || Вхідний зв'язок || Parameter&amp;amp;#124;DESCR || Опис або розгорнута назва параметру, що вставляється у повідомлення про порушення та дії оператору-користувача.&lt;br /&gt;
|-&lt;br /&gt;
| st_open || Параметр: статус-відкрито || Логічний || Вхідний зв'язок || Parameter&amp;amp;#124;st_open || Статус параметру &amp;quot;Відкрито&amp;quot; або загальний статус перемикача за відсутності сигналу стану &amp;quot;Закрито&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| st_close || Параметр: статус-закрито || Логічний || Вхідний зв'язок || Parameter&amp;amp;#124;st_close || Статус параметру &amp;quot;Закрито&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| st_text || Параметр: статус (текст) || Рядок (переклад) || Вхідний зв'язок || Parameter&amp;amp;#124;st_text || Текст стану параметру, за режимом &amp;quot;Стан за кодом&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| digStts || Параметр: статуси || Рядок (переклад) || Вхідний зв'язок || Parameter&amp;amp;#124;digStts || Конфігурація статусів параметру зі структурою '''{openedLabel}-{color};{closedLabel}-{color};{noOpenedClosedLabel}-{color};{OpenedClosedLabel}-{color};{errLabel}-{color}''', для дискретного блоку.&lt;br /&gt;
|-&lt;br /&gt;
| com || Параметр: команда || Логічний || Повний зв'язок || Parameter&amp;amp;#124;com || Команда параметру &amp;quot;Відкрити&amp;quot; або загальна команда перемикача за відсутності сигналу команди &amp;quot;Закрити&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| close || Параметр: закрити || Логічний || Повний зв'язок || Parameter&amp;amp;#124;close || Команда параметру &amp;quot;Закрити&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| stop || Параметр: зупинка || Логічний || Повний зв'язок || Parameter&amp;amp;#124;stop || Команда параметру &amp;quot;Зупинити&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| com_text || Параметр: текст команди (з digComs) || Рядок || Повний зв'язок || Parameter&amp;amp;#124;com_text || Текст команди параметру, за режимом &amp;quot;Стан за кодом&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| digComs || Параметр: команди || Рядок (переклад) || Вхідний зв'язок || Parameter&amp;amp;#124;digComs || Конфігурація команд параметру зі структурою '''{openLabel}-{color};{closeLabel}-{color};{stopLabel}-{color}''', для дискретного блоку, та '''{com1Label}-{color};{com2Label}-{color};...;{comNLabel}-{color}''', для статусу за кодом.&lt;br /&gt;
|-&lt;br /&gt;
| ntf || Повідомлення &amp;quot;{st}:{modes}:{Текст мови}&amp;quot; || Рядок (переклад) || Стала || || Конфігурація формування повідомлення за статусом (st) [0&amp;amp;#124;1&amp;amp;#124;2(both)&amp;amp;#124;3(err)] та [[Special:MyLanguage/Modules/VCAEngine#Alarms|режимами-методами повідомлення (modes)]], як рядок чисел методів, та мовою, якщо вказано такий метод. Повідомлення мови для &amp;quot;3(err)&amp;quot; береться із атрибуту &amp;quot;Помилка (err)&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ImgLab /&amp;gt;&lt;br /&gt;
| {{Anch|ImgLab|&amp;lt;h3&amp;gt;Мітка зображенням ([[Special:MyLanguage/Libs/Main_graphical_elements#ImgLab|ImgLab]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=ImgLab /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Елемент на рисунку 1.4 слугує для відображення динамічних міток зображень, що формується на основі дискретних сигналів. Також цей елемент генерує повідомлення про порушення за локально визначеною умовою, атрибут '''ntf''', додатково він може генерувати сигнали із атрибуту &amp;quot;Помилка (err)&amp;quot;. Елемент загалом використовує та представляє представницьку структуру DAQ-шаблонів [[Special:MyLanguage/Libs/Main#digitBlockUnif|дискретного блоку]] та [[Special:MyLanguage/Libs/Main#codeState|стану за кодом]].&lt;br /&gt;
&lt;br /&gt;
* '''Спонсорування:''' Вінницька Птахофабрика&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ImgLab.png|center|frame|Рис.1.4. Елемент &amp;quot;Мітка зображенням&amp;quot; у режимі розробки та виконання (зліва праворуч).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Цей віджет може бути використано розробником при створені мнемосхем з відображенням міток зображення та/або як елемент статичної екранної таблиці. Для використання потрібно додати цей віджет на мнемосхему, підлаштувати горизонтальний, вертикальний розмір та зв'язати з параметром джерела даних.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
У режимі виконання, у основному полі елементу, відображається зображення мітки на фоні, що відповідає значенням дискретних сигналів параметру та конфігурації станів у атрибуті '''imgs'''; де фон, залежно від наявності порушення відповідного до умов атрибуту '''ntf''', встановлюється у колір порушення; та яким зображення незквітованого параметру може блимати. За апаратних помилок та недостовірності даних, фон відображається сірим кольором.&lt;br /&gt;
&lt;br /&gt;
У активному режимі елементу можна отримати [[#Passport|паспорт]], двічі натиснувши ліву клавішу миші на полі віджету. У паспорті будуть представлені всі властивості параметру. За натиском лівої клавіші миші у області панелей з'явиться [[#ElCadr|панель управління]] параметром, та вибір даного віджету буде відображатися блимаючою рамкою. Команди дублюються у контекстному меню, яке з'являється за натиском правої клавіші миші у області віджету.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Віджет наразі підтримує функціювання із дуже великим значенням &amp;quot;Період опрацювання&amp;quot; та це значення наразі встановлено для спадкування від батьківського віджету/сторінки/сеансу (значення -1). Це можливе завдяки механізму раннього опрацювання подій та можливості контролю періодичності опрацювання із процедури.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| err || Параметр: помилка || Адреса || Вхідний зв'язок || Parameter&amp;amp;#124;err || Використовується у якості адреси для доступу до об'єкту DAQ-Параметру із надсилання повідомлень і значення також використовується для генерації сигналів.&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Параметр: ім'я || Рядок (переклад) || Вхідний зв'язок || Parameter&amp;amp;#124;NAME || Коротке найменування параметру, що вставляється у повідомлення про порушення та дії оператору-користувача.&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Параметр: опис || Рядок (переклад) || Вхідний зв'язок || Parameter&amp;amp;#124;DESCR || Опис або розгорнута назва параметру, що вставляється у повідомлення про порушення та дії оператору-користувача.&lt;br /&gt;
|-&lt;br /&gt;
| st_open || Параметр: статус-відкрито || Логічний || Вхідний зв'язок || Parameter&amp;amp;#124;st_open || Статус параметру &amp;quot;Відкрито&amp;quot; або загальний статус перемикача за відсутності сигналу стану &amp;quot;Закрито&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| st_close || Параметр: статус-закрито || Логічний || Вхідний зв'язок || Parameter&amp;amp;#124;st_close || Статус параметру &amp;quot;Закрито&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| st_img || Параметр: статус &amp;quot;{img}:{bCol}:{blink}&amp;quot; || Рядок || Вхідний зв'язок || Parameter&amp;amp;#124;st_text || Зображення стану параметру, за режимом &amp;quot;Стан за кодом&amp;quot;, де:&lt;br /&gt;
* ''img'' — ім'я зображення, дивіться [[Special:MyLanguage/Modules/VCAEngine#Media|атрибути зображення]];&lt;br /&gt;
* ''bCol'' — фоновий колір;&lt;br /&gt;
* ''blink'' — ознака блимання [0&amp;amp;#124;1] фону.&lt;br /&gt;
|-&lt;br /&gt;
| imgs || Зображення, для &amp;quot;{openedImage}-{bCol}:{closedImage}-{bCol}:{noOpenedClosedImage}-{bCol}:{OpenedClosedImage}-{bCol}:{errImage}-{bCol}&amp;quot; || Рядок || Стала || || Конфігурація станів параметру зі структурою '''{openedLabel}-{color}:{closedLabel}-{color}:{noOpenedClosedImage}-{bCol}:{OpenedClosedImage}-{bCol}:{errImage}-{bCol}''', для дискретного блоку.&lt;br /&gt;
|-&lt;br /&gt;
| digStts || Параметр: статуси || Рядок (переклад) || Вхідний зв'язок || Parameter&amp;amp;#124;digStts || Стандартна конфігурація статусів параметру зі структурою '''{notUsed}-{openedColor};{notUsed}-{closedColor};{notUsed}-{noOpenedClosedColor};{notUsed}-{OpenedClosedColor};{notUsed}-{errColor}''', для дискретного блоку та відсутності атрибуту '''imgs''.&lt;br /&gt;
|-&lt;br /&gt;
| com || Параметр: команда || Логічний || Повний зв'язок || Parameter&amp;amp;#124;com || Команда параметру &amp;quot;Відкрити&amp;quot; або загальна команда перемикача за відсутності сигналу команди &amp;quot;Закрити&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| close || Параметр: закрити || Логічний || Повний зв'язок || Parameter&amp;amp;#124;close || Команда параметру &amp;quot;Закрити&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| stop || Параметр: зупинка || Логічний || Повний зв'язок || Parameter&amp;amp;#124;stop || Команда параметру &amp;quot;Зупинити&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| com_text || Параметр: текст команди (з digComs) || Рядок || Повний зв'язок || Parameter&amp;amp;#124;com_text || Текст команди параметру, за режимом &amp;quot;Стан за кодом&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| digComs || Параметр: команди || Рядок (переклад) || Вхідний зв'язок || Parameter&amp;amp;#124;digComs || Конфігурація команд параметру зі структурою '''{openLabel}-{color};{closeLabel}-{color};{stopLabel}-{color}''', для дискретного блоку, та '''{com1Label}-{color};{com2Label}-{color};...;{comNLabel}-{color}''', для статусу за кодом.&lt;br /&gt;
|-&lt;br /&gt;
| ntf || Повідомлення &amp;quot;{st}:{modes}:{Текст мови}&amp;quot; || Рядок (переклад) || Стала || || Конфігурація формування повідомлення за статусом (st) [0&amp;amp;#124;1&amp;amp;#124;2(both)&amp;amp;#124;3(err)] та [[Special:MyLanguage/Modules/VCAEngine#Alarms|режимами-методами повідомлення (modes)]], як рядок чисел методів, та мовою, якщо вказано такий метод. Повідомлення мови для &amp;quot;3(err)&amp;quot; береться із атрибуту &amp;quot;Помилка (err)&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=alarmsAct /&amp;gt;&lt;br /&gt;
| {{Anch|alarmsAct|&amp;lt;h3&amp;gt;Порушення — активне ([[Special:MyLanguage/Libs/Main_graphical_elements#alarmsAct|alarmsAct]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.4 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=alarmsAct /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
Елемент на рисунку 1.5 слугує для динамічного відображення активних порушень у табличному вигляді та із виділенням їх за кольором та текстом. Порушення отримуються із [[Special:MyLanguage/Documents/Program_manual#ArchMess|буферу поточних-активних порушень OpenSCADA]]. Фактично елемент реалізує функції примітиву &amp;quot;[[Special:MyLanguage/Sub-projects/VCA#ImplProtocol|Протокол]]&amp;quot; для порушень та із розширенням можливостей.&lt;br /&gt;
&lt;br /&gt;
Сортування повідомлень зафіксовано за правилом &amp;quot;активні + найбільший рівень + останні&amp;quot; для повідомлень нагорі, що можна змінити лише редагуванням вихідного тексту елементу.&lt;br /&gt;
&lt;br /&gt;
Для детального вивчення актуальних порушень елементом передбачено функцію збільшення висоти угору або униз за отриманням фокусу.&lt;br /&gt;
&lt;br /&gt;
Елемент створено, та він зазвичай використовується, у парі з [[#alarmsSt|кадром повноформатного представлення історії порушень]], який наділено більшістю функцій цього елементу, але і для історії порушень.&lt;br /&gt;
&lt;br /&gt;
Основним користувацьким розширенням є можливість визначення видимих полів таблиці із переліку варіантів:&lt;br /&gt;
* ''atm'' — час виникнення порушення;&lt;br /&gt;
* ''qttm'' — час підтвердження (квітації) порушення, для підтверджених порушень;&lt;br /&gt;
* ''lev'' — рівень порушення;&lt;br /&gt;
* ''type'' — тип-назва порушення із рівня ''lev'' та атрибуту &amp;quot;types&amp;quot;;&lt;br /&gt;
* ''cat'' — категорія порушення;&lt;br /&gt;
* ''mess'' — повний та нерозібраний текст повідомлення порушення;&lt;br /&gt;
* ''prm'' — адреса DAQ-параметру джерела порушення;&lt;br /&gt;
* ''dscr'' — опис порушення із DAQ-параметру джерела;&lt;br /&gt;
* ''dscrCust{N}'' — опис користувацького поля ''N'';&lt;br /&gt;
* ''alrm'' — текст порушення;&lt;br /&gt;
* ''cmnt'' — коментар до порушення.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Цей елемент та його поля загалом репрезентують структуру повідомлення порушення, яку детально описано у [[Special:MyLanguage/Documents/Program_manual#ArchMess|посібнику користувача]].&lt;br /&gt;
&lt;br /&gt;
Як можна бачити із переліку можливих полів таблиці, цей елемент підтримує механізм підтвердження (квітації), коментування та користувацькі поля.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсорування:''' Устьянцев Михайло&lt;br /&gt;
* '''Спонсорування, додання нового користувацького поля &amp;quot;Тип&amp;quot; на 0.2 {{CtxDetails|ЛД|людино-днів, 1ЛД — 10 годин}}:''' INSERTEC LTDA&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_alarmsAct_uk.png|center|frame|Рис.1.5. Елемент &amp;quot;Порушення — активне&amp;quot; у режимі розробки та виконання (згори додолу).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Цей віджет може бути використано розробником при створені мнемосхем з постійним відображенням активних порушень або для загального їх відображення на [[#RootPgSo|кореневій сторінці]]. Для використання потрібно додати цей віджет на мнемосхему або кореневу сторінку, підлаштувати горизонтальний, вертикальний розмір, налаштувати вертикальне розширення та відкоригувати інші властивості на кшталт переліку та послідовності відображуваних полів таблиці.&lt;br /&gt;
&lt;br /&gt;
Якщо треба виключити функцію підтвердження то ви маєте виключити час підтвердження &amp;quot;qttm&amp;quot; з переліку полів та встановити елемент неактивним.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
У режимі виконання будується таблиця із переліку активних порушень, за визначеними полями, правилом сортування та виокремлення; вміст якої періодично та динамічно оновлюється. За обранням таблиці, отримання фокусу, її висота може розширюватися, відобразивши більше повідомлень, якщо цю функцію увімкнено та є відповідність умови із визначеної кількості порушень.&lt;br /&gt;
&lt;br /&gt;
Користувачу надається можливість підтвердити порушення, змінивши значення поля часу підтвердження або за допомогою панелі керування, що спливе за обранням елементу та рядка порушення.&lt;br /&gt;
&lt;br /&gt;
Ще користувач може залишити коментар до порушення, відкоригувавши відповідне поле таблиці.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| active || Активний || Логічний || Вимкнути якщо виключено підтвердження, розширення за отримання фокусу та редагування взагалі — суто відображення.&lt;br /&gt;
|-&lt;br /&gt;
| hHdrVis || Показувати заголовок: горизонтальний ||Логічний ||&lt;br /&gt;
|-&lt;br /&gt;
| vHdrVis || Показувати заголовок: вертикальний || Логічний ||&lt;br /&gt;
|-&lt;br /&gt;
| formDtTm || Формат дати та часу (%Y-%m-%d %H.%M.%S[.%MS,%US]) || Рядок || Формат відображення часу порушення та підтвердження.&lt;br /&gt;
|-&lt;br /&gt;
| expOnItems || Розширяти при фокусі: елементів (&amp;lt;=0-відключено) || Цілий || Гранична кількість повідомлень для спрацювання функції розширення елементу, збільшення висоти, за отримання фокусу.&lt;br /&gt;
|-&lt;br /&gt;
| expOnFocus || Розширяти при фокусі: пікселів (0-відключено,&amp;gt;-донизу,&amp;lt;-догори) || Цілий || Встановити у потрібне значення розширення елементу, збільшення висоти, за набуттям фокусу.&lt;br /&gt;
|-&lt;br /&gt;
| colms || Стовпчики&lt;br /&gt;
Перелік поділений ',' з варіантів: atm, qttm, lev, type, cat, mess, prm, dscr, dscrCust{N}, alrm, cmnt.&lt;br /&gt;
| Рядок || Визначити у потрібну послідовність та наповнення полів.&lt;br /&gt;
|-&lt;br /&gt;
| highLght || Правила підсвітлення&lt;br /&gt;
Рядки у формі &amp;quot;{lev}[{slev}]{quitt}:{color}:{font}:{fontColor}&amp;quot;.&lt;br /&gt;
| Текст || Правила підсвітлення, де:&lt;br /&gt;
* ''lev'' — основний рівень повідомлення [0...7];&lt;br /&gt;
* ''slev'' — підрівень повідомлення [0...9], опціонально;&lt;br /&gt;
* ''quitt'' — ознака підтвердження (квітації) повідомлення [0|1];&lt;br /&gt;
* ''color'' — колір фону рядка з повідомленням;&lt;br /&gt;
* ''font'' — шрифт тексту рядка з повідомленням;&lt;br /&gt;
* ''fontColor'' — колір тексту рядка з повідомленням.&lt;br /&gt;
Наприклад:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;BASH&amp;quot;&amp;gt;&lt;br /&gt;
#&amp;lt;SnthHgl font=&amp;quot;monospace&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;rule expr=&amp;quot;^#[^\n]*&amp;quot; color=&amp;quot;gray&amp;quot; font_italic=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
# &amp;lt;rule expr=&amp;quot;^[0-9]*&amp;quot; color=&amp;quot;blue&amp;quot;&amp;gt;&lt;br /&gt;
#  &amp;lt;rule expr=&amp;quot;[01]$&amp;quot; color=&amp;quot;red&amp;quot;/&amp;gt;&lt;br /&gt;
# &amp;lt;/rule&amp;gt;&lt;br /&gt;
# &amp;lt;rule expr=&amp;quot;(?&amp;lt;=:).*&amp;quot; font_weight=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
#&amp;lt;/SnthHgl&amp;gt;&lt;br /&gt;
50:gray&lt;br /&gt;
40:red&lt;br /&gt;
150:yellow&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colDscrCustNames || Перелік назв користувацьких полів, поділених ';' || Рядок (переклад) || За підтримки користувацьких полів, та їх видимістю, тут наводяться їх назви.&lt;br /&gt;
|-&lt;br /&gt;
| types || Перелік типів за рівнем від 0, поділені ';' || Рядок (переклад) || Типи-назви порушень за їх рівнем, типово &amp;quot;Налагодж.;Інформ.;Зауваж.;Попередж.;Помилка;Критично;Тривога;Аварія&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| messCat || Категорія повідомлень || Рядок || Категорія опрацьовуваних повідомлень порушень, типово порожнє для всіх порушень.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=objProps /&amp;gt;&lt;br /&gt;
| {{Anch|objProps|&amp;lt;h3&amp;gt;Властивості об'єкту ([[Special:MyLanguage/Libs/Main_graphical_elements#objProps|objProps]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru&lt;br /&gt;
 &amp;lt;section end=objProps /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
Елемент на рисунку 1.6 слугує для відображення властивостей джерела даних у табличному вигляді та із виділенням їх кольором, як об'єкт, та надання можливості зміни значення властивостей із правом запису. Також цей елемент генерує повідомлення про порушення згідно до особливостей об'єкту. Елемент загалом використовує та представляє представницьку структуру DAQ-шаблонів &amp;quot;[[Special:MyLanguage/Libs/Main#ComplexObject|Комплексний об'єкт]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсоровано:''' ПАТ ХАРТРОН&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_objProps_uk.png|center|frame|Рис.1.6. Елемент &amp;quot;Властивості об'єкту&amp;quot; у режимі розробки та виконання (зліва праворуч).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Цей віджет може бути використано розробником при створені мнемосхем з консолідованим відображенням об'єкту як ціле та сутності із властивостями. Для використання потрібно додати цей віджет на мнемосхему, підлаштувати горизонтальний, вертикальний розмір масштабом та зв'язати з параметром джерела даних за DAQ-шаблоном &amp;quot;[[Special:MyLanguage/Libs/Main#ComplexObject|Комплексний об'єкт]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
У режимі виконання відображається таблиця з властивостями у рядках, де перший стовпчик це назва властивості, а другий її значення. Рядок може підсвічуватися фоном аварійного кольору, у випадку порушення за цією властивістю. Особливе значення має й заголовок віджету де відображається назва об'єкту, фон кольору якого може набувати аварійних кольорів, за наявністю порушень у об'єкта.&lt;br /&gt;
&lt;br /&gt;
Таблиця властивостей є активною та за обранням рядка властивості, що передбачає запис, знизу з'явиться поле встановлення значення властивості.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| objName || Об'єкт: ім'я || Рядок || Вхідний зв'язок || Object&amp;amp;#124;NAME || Ім'я об'єкту для заголовку.&lt;br /&gt;
|-&lt;br /&gt;
| objDescr || Об'єкт: опис || Текст || Вхідний зв'язок || Object&amp;amp;#124;DESCR || Опис об'єкту для підказки до заголовку.&lt;br /&gt;
|-&lt;br /&gt;
| objErr || Об'єкт: помилка || Рядок || Вхідний зв'язок || Object&amp;amp;#124;err || Помилка об'єкту для формування повідомлення та підсвітлення заголовку, опрацьовуються коди концепції.&lt;br /&gt;
|-&lt;br /&gt;
| objItems || Об'єкт: елементи || Об'єкт || Вхідний зв'язок || Object&amp;amp;#124;items || Описовий об'єкт властивостей фізичного об'єкту, згідно до концепції.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=calendar /&amp;gt;&lt;br /&gt;
| {{Anch|calendar|&amp;lt;h3&amp;gt;Календар ([[Special:MyLanguage/Libs/Main_graphical_elements#calendar|calendar]])&amp;lt;/h3&amp;gt;}} || 1.0 || GPLv2 || * || en, uk, ru &amp;lt;section end=calendar /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
Елемент на рисунку 1.7 слугує для відображення місяця календаря за тижнями, який передбачає можливість обрання року, місяця та окремого дня, а також перехід на поточний день.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсоровано:''' ТОВ &amp;quot;СВІТоВИР АВТоМАТИК&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_calendar_uk.png|center|frame|Рис.1.7. Елемент &amp;quot;Календар&amp;quot; у режимі розробки та виконання (зліва праворуч).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Цей віджет може бути використано розробником при створені мнемосхем з відображенням календаря. Для використання потрібно додати цей віджет на мнемосхему, підлаштувати горизонтальний, вертикальний розмір масштабом, та використовувати атрибут &amp;quot;selTime&amp;quot; цього віджету для отримання та встановлення дати.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
У режимі виконання відображається відповідний до обраного рік, місяць та підсвічено день, відповідно до значення атрибуту &amp;quot;selTime&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Користувач має можливість обрати рік та місяця з переліку, а також день у зображені тижнів. Для швидкого повернення до поточної доби передбачено відповідну кнопку.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| selTime || Обраний час || Ціле || Час календаря у секундах від UNIX-епохи.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=weather /&amp;gt;&lt;br /&gt;
| {{Anch|weather|&amp;lt;h3&amp;gt;Погода ([[Special:MyLanguage/Libs/Main_graphical_elements#weather|weather]])&amp;lt;/h3&amp;gt;}} || 1.0 || GPLv2 || * || en, uk &amp;lt;section end=weather /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
Елемент на рисунку 1.8 використовується для відображення даних погоди із параметрів на DAQ-шаблоні &amp;quot;[[Special:MyLanguage/Libs/Main#weather|Погода]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_weather_uk.png|center|frame|Рис.1.8. Елемент &amp;quot;Погода&amp;quot; у режимі розробки та виконання (зліва праворуч).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Цей віджет може бути використано розробником при створені мнемосхем з відображенням погоди. Для використання потрібно додати цей віджет на мнемосхему, підлаштувати горизонтальний, вертикальний розмір масштабом та зв'язати з параметром джерела даних за DAQ-шаблоном &amp;quot;[[Special:MyLanguage/Libs/Main#weather|Погода]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
У режимі виконання відображається поточна погода на горі і прогноз знизу з деталізацією у спливаючій підказці на зображені.&lt;br /&gt;
&lt;br /&gt;
[[File:at.png]] Все ще можуть бути відсутні зображення для деяких погодних умов оскільки вони продовжують додаватися!&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| current || Погода: поточне || Об'єкт || Вхідний зв'язок || Parameter&amp;amp;#124;current || Об'єкт із поточними даними.&lt;br /&gt;
|-&lt;br /&gt;
| forecast || Погода: прогноз || Об'єкт || Вхідний зв'язок || Parameter&amp;amp;#124;forecast || Об'єкт із прогнозованими даними.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=RootPgSo /&amp;gt;&lt;br /&gt;
| {{Anch|RootPgSo|&amp;lt;h2&amp;gt;Коренева сторінка (СО) ([[Special:MyLanguage/Libs/Main_graphical_elements#RootPgSo|RootPgSo]])&amp;lt;/h2&amp;gt;}}&lt;br /&gt;
| 2.7 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=RootPgSo /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || 1000 мс&lt;br /&gt;
|}&lt;br /&gt;
Елемент-кадр, представлений на рисунку 2, слугує базою для створення користувацьких інтерфейсів, пачатково для управління технологічними процесами, заснованими на об'єктах сигналізації (СО).&lt;br /&gt;
&lt;br /&gt;
Коренева сторінка містить чотири області:&lt;br /&gt;
* область кнопок-індикаторів об'єктів сигналізації (нагорі);&lt;br /&gt;
* область навігації за видами відображення (праворуч-нагорі);&lt;br /&gt;
* контейнер основних кадрів користувацького інтерфейсу (у центрі);&lt;br /&gt;
* контейнер панелей управління (праворуч-знизу).&lt;br /&gt;
&lt;br /&gt;
''Область кнопок-індикаторів об'єктів сигналізації'' слугує для надання інформації про наявність порушень у об'єкті сигналізації, а також для перемикання між ними.&lt;br /&gt;
&lt;br /&gt;
Для відображення обраного об'єкту сигналізації використовується колір фону, за стилями: ''backColorButton'' та ''backColorButtonSel''. А порушення відображаються кольором тексту, відповідно до стилів: ''labColorGood'', ''labColorWarning'', ''labColorAlarm''; та яким текст незквітованого об'єкту сигналізації може блимати.&lt;br /&gt;
&lt;br /&gt;
Кнопки наразі генеруються динамічно, шляхом копіювання першої та єдиної, відповідно до наявних у дереві проекту віртуальних сторінок об'єктів сигналізації з послідовною цифровою ідентифікацією від 1 (один). Обмеження на кількість кнопок, або об'єктів сигналізації, полягає лише у сумарній довжині назв об'єктів сигналізації, які можна розташувати у два ряди цих кнопок. Тобто, за коротких назв можна отримати до близька 100 об'єктів сигналізація. Якщо об'єкт сигналізації один то навіть ця єдина-базова кнопка ховається.&lt;br /&gt;
&lt;br /&gt;
''Область навігації за видами відображення'' — індикація вибору та обрання виду відображення як, наприклад: &amp;quot;Мнемосхеми&amp;quot;, &amp;quot;Групи графіків&amp;quot;, &amp;quot;Групи контурів&amp;quot;, &amp;quot;Документи&amp;quot; та інше; та кнопки гортання або комбобокс прямого обрання кадрів у об'єкті сигналізації.&lt;br /&gt;
&lt;br /&gt;
Простір кнопок видів відображення є динамічним, у сенсі зайняття простору відсутніх, та значення самих видів відображення налаштовується на інше від типового значення, тобто передбачено два основних види відображення (view1 та view2), три допоміжних (view3, view4 та view5), а також один загальний на весь інтерфейс (view6).&lt;br /&gt;
&lt;br /&gt;
Нижче також містяться кнопки квітації, які з'являються за виникнення порушень, а на горі зображення логотипу, яке налаштовується.&lt;br /&gt;
&lt;br /&gt;
''Контейнер основних кадрів користувацького інтерфейсу'' — область контейнеру для включення у нього основних кадрів за обранням їх кнопками режимів відображення або зміни об'єкту сигналізації.&lt;br /&gt;
&lt;br /&gt;
''[[#alarmsAct|Загальна таблиця активних порушень]]'' — містить кольорові рядки актуальних порушень, яких впорядковано за їх важливістю із більш важливими нагорі. Початково віджет вимкнено.&lt;br /&gt;
&lt;br /&gt;
''Контейнер панелей управління'' — область контейнеру для включення до нього панелей управління різними об'єктами у області контейнеру основних кадрів, наприклад — панель параметру, документу, графіку та інше.&lt;br /&gt;
&lt;br /&gt;
Під контейнером панелей управління розташовується кнопка запуску демонстраційного режиму — режиму за яким здійснюється періодичне перемикання показних кадрів, зміна режимів та інших операцій згідно сценарію.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсорування динамізації:''' Вінницька Птахофабрика&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_RootPgSoD_uk.png|center|frame|Рис.2a. Кадр &amp;quot;Коренева сторінка (СО)&amp;quot; у режимі розробки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Цей віджет може використовуватися лише у режимі кореневої сторінки, яка має розташовуватися у дереві проекту як елемент &amp;quot;so&amp;quot;. Крім цього, довкола головної сторінки має бути розгорнута наступна деревоподібна ієрархія:&lt;br /&gt;
: /'''control'''/* — логічний контейнер, містить різні панелі управління;&lt;br /&gt;
: /'''so'''/ — цей кадр як контейнер, містить логічні контейнери об'єктів сигналізації:&lt;br /&gt;
:: '''{n}'''/ — логічний контейнер об'єкту сигналізації ''n'' (1...), містить логічні контейнери та шаблони видів відображення:&lt;br /&gt;
::: ['''view1'''|'''mn''']/* — вид відображення 1 (зазвичай та раніш це мнемосхеми), містить багато сторінок кінцевих кадрів;&lt;br /&gt;
::: ['''view2'''|'''ggraph''']/* — вид відображення 2 (зазвичай та раніш це шаблон [[#grpGraph|групи графіків]]), містить багато сторінок кінцевих кадрів;&lt;br /&gt;
::: ['''view3'''|'''gcadr''']/* — вид відображення 3 (зазвичай та раніш це шаблон [[#grpCadr|групи контурів]]), містить багато сторінок кінцевих кадрів;&lt;br /&gt;
::: ['''view4'''|'''gview''']/* — вид відображення 4 (зазвичай та раніш це шаблон [[#ViewCadr|групи оглядових кадрів]]), містить багато сторінок кінцевих кадрів;&lt;br /&gt;
::: ['''view5'''|'''doc''']/* — вид відображення 5 (зазвичай та раніш це логічний контейнер документів), містить багато сторінок кінцевих кадрів;&lt;br /&gt;
::: '''greg'''/* — специфічний шаблон сторінки [[#cntrRegul|налаштування ПІД-регулятору]], містить багато сторінок кінцевої конфігурації ПІД-регуляторів, підключених статично та які викликаються лише кнопкою &amp;quot;ПІД&amp;quot; [[#ElCadr|елементу кадру]].&lt;br /&gt;
:: ['''view6'''|'''rg''']/ — логічний контейнер глобального виду відображення 6 (зазвичай та раніш це [[#ResultGrph|зведені графіки]] — спільні графіки для всього інтерфейсу):&lt;br /&gt;
::: ['''view6'''|'''rg''']/* — вид відображення 6 (зазвичай та раніш це шаблон [[#ResultGrph|зведених графіків]]), містить багато сторінок кінцевих кадрів.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Ідентифікатори сторінок видів відображення, вказані як ['''view1'''|'''mn'''], мають вказуватися у дереві або за новою схемою &amp;quot;view1&amp;quot;, або за старою &amp;quot;mn&amp;quot;. Їх змішування не підтримується і елементи огляду не мають бути порожніми, тобто містити принаймні одну активну сторінку!&lt;br /&gt;
&lt;br /&gt;
У якості тексту кнопок об'єктів сигналізації використовується назва логічного контейнеру з відповідним ідентифікатором ''n''. З опису цього контейнеру також береться і текст спливаючої підказки до цієї кнопки, якщо він не порожній.&lt;br /&gt;
&lt;br /&gt;
Всі подальші налаштування та редагування довкола цього кадру треба здійснювати для його копії-посилання у дереві проекту, та наполегливо не рекомендується редагувати його у бібліотеці, інакше Ви втратите можливість оновлення бібліотеки або ці зміни, при її оновленні!&lt;br /&gt;
&lt;br /&gt;
Текст та підказка кнопок видів відображення змінюються безпосередньо у відповідних властивостях цих віджетів. Швидкі клавіші виду відображення беруться з дужок спливаючої підказки, як то &amp;quot;Графіки (CtrlAlt+G)&amp;quot;, та відповідно обробляються. Для зміни зображення виду відображення достатньо перевизначити іконку відповідного виду, як то &amp;quot;view1&amp;quot;, шляхом завантаження зображення з відповідною назвою до Mime-даних проекту.&lt;br /&gt;
&lt;br /&gt;
Для увімкнення [[#alarmsAct|загальної таблиці активних порушень]] просто встановіть '''1 (один)''' у конфігурації зв'язків кадру для &amp;quot;alarms &amp;gt; en&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Для увімкнення та конфігурації повернення до деякого непривілейованого користувача після деякого часу неактивності, просто встановіть '''{хвилини)-{користувач}''' у конфігурації зв'язків кадру для &amp;quot;defUser&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Зображення логотипу можна змінити так само, як і зображення виду відображення, тобто завантажити до Mime-даних проекту нове зображення із назвою &amp;quot;logo&amp;quot;, після чого можна підкоригувати геометрію віджету логотипу під потрібні пропорції. Віджет зображення можна перенести ліворуч, посунувши попередньо кнопку об'єкту сигналізації праворуч на розмір логотипу. Якщо логотип у загалі не потрібен то онуліть ширину його віджету, але не видаляйте його!&lt;br /&gt;
&lt;br /&gt;
Панель навігації та контейнер панелей управління потенційно також можна перенести ліворуч, посунувши контейнер основних кадрів, а може й кнопку об'єкту сигналізації праворуч.&lt;br /&gt;
&lt;br /&gt;
За потреби, кореневу сторінку можна доповнити додатковими елементами, що не потребують особливої обробки, тобто — зміна початкової процедури кадру, що вже є не використанням, а редагуванням. [[file:at.png]] Тут треба зауважити, що зменшення розмірів контейнерів призведе до появи смуг гортання та-або вимагатиме коригування кадрів розташування у контейнер, але цього може бути не потрібно здійснювати, враховуючи розширення контейнеру на невикористані рядки кнопок об'єктів сигналізації.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
При запуску кадру у режимі виконання, спочатку здійснюється побудова кнопок об'єктів сигналізації, які формуються у два ряди, після чого контейнер основних кадрів розширюється у гору на ряд, якщо вистачило одного, або на два, якщо об'єкт сигналізації один. Далі формуються кнопки видів відображення, наявні з яких активуються та розширюються для заповнення місця відсутніх.&lt;br /&gt;
&lt;br /&gt;
Після динамічного формування, кадр здійснює періодичний контроль за зміною кадру у контейнері основних кадрів, що відображається відповідним кольором фону у кнопці об'єкту сигналізації та виду відображення, до яких кадр належить. Між кнопками гортання оновлюється інформація про загальну кількість кадрів та позицію актуального, а також самі кнопки активуються згідно до можливості гортання у актуальній позиції кадру. Для комбобоксу прямого обрання кадру з переліку, відповідно здійснюється формування актуального переліку кадрів та встановлення назви поточного. Також здійснюється контроль стану порушення-повідомлення за об'єктами сигналізації, який відповідно відображається кольором тексту кнопок об'єкту сигналізації та його миготінням, а також активуються або дизактивуються кнопки квітації.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Кадр наразі підтримує функціювання із дуже великим значенням &amp;quot;Період опрацювання&amp;quot; або й вимкнення періодичного опрацювання взагалі (значення -2) та це значення також розповсюджується до дочірніх сторінок та віджетів якщо вони бажають такої поведінки (значення -1). Це можливе завдяки механізму раннього опрацювання подій та можливості контролю періодичності опрацювання із процедури.&lt;br /&gt;
&lt;br /&gt;
Зміна кадру у контейнері панелей управління не відстежуються та вони загалом викликаються із інтерфейсу основних кадрів, хіба-що він очищується зі зміною основного кадру шляхом відкриття панелі-заглушки.&lt;br /&gt;
&lt;br /&gt;
З основних дій, кадром надається можливість користувачу обрати об'єкт сигналізації, вид відображення та відповідний кадр. Натиснувши кнопку об'єкту сигналізації, виду відображення, прямо обравши у комбобоксу або погортавши; результатом чого є виклик відповідного кадру у контейнері основних кадрів. Із допоміжних дій, користувач може сквітувати порушення-повідомлення та запустити Демо-режим, якщо він передбачений. Типове налаштування кадру передбачає обслуговування низки гарячих клавіш, як то '''CtrlAlt+[1...0]''' для виклику об'єктів сигналізації від 1 до 10, та '''CtrlAlt+[MGCVDR]''' для виклику відповідних видів відображення.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_RootPgSoR_uk.png|center|frame|Рис.2b. Кадр &amp;quot;Коренева сторінка (СО)&amp;quot; у режимі виконання.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| alarms &amp;gt; en (конфігурація) || Сигнали &amp;gt; Ввімкнено || Логічний || Увімкнення [[#alarmsAct|загальної таблиці активних порушень]]&lt;br /&gt;
|-&lt;br /&gt;
| defUser (конфігурація) || Типово для повернення, {хвилини)-{користувач} || Рядок || Увімкнення та конфігурація повернення до деякого непривілейованого користувача після деякого часу неактивності, рядком '''{хвилини)-{користувач}'''.&lt;br /&gt;
|-&lt;br /&gt;
| demoPlayProc || Проц. програвання демо || Текст || Процедура на [[Special:MyLanguage/Modules/JavaLikeCalc|мові JavaLikeCalc]] для програвання деякої демонстрації. Вмикає кнопку Демо-режиму у режимі виконання. Для прикладу такої процедури дивіться демонстраційні-проекти [[Special:MyLanguage/Using/Model_AGLKS|АГЛКС]] та [[Special:MyLanguage/Using/Model_Boiler|Котел]]!&lt;br /&gt;
|-&lt;br /&gt;
| colspan=4 | ''Специфічні до візуалізатору атрибути для [[Special:MyLanguage/Modules/Vision|UI.Vision]] ([[Special:MyLanguage/Modules/Vision#SpecAttrs|більше]]) та [[Special:MyLanguage/Modules/WebVision|UI.WebVision]] ([[Special:MyLanguage/Modules/WebVision#SpecAttrs|більше]])''&lt;br /&gt;
|-&lt;br /&gt;
| keepAspectRatio || Зберігати пропорцію при масштабуванні || Логічний || Зберігати пропорцію сторінок при масштабуванні.&lt;br /&gt;
|-&lt;br /&gt;
| stBarNoShow || Не показувати рядок статусу || Логічний || Приховати рядок статусу головного вікна.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=4 | ''Специфічні до візуалізатору атрибути для [[Special:MyLanguage/Modules/Vision|UI.Vision]] ([[Special:MyLanguage/Modules/Vision#SpecAttrs|більше]])''&lt;br /&gt;
|-&lt;br /&gt;
| runWin || Вікно виконання || Обрання цілих чисел || Встановлення режиму виконання головного вікна:&lt;br /&gt;
* &amp;quot;Оригінальний розмір (0)&amp;quot;.&lt;br /&gt;
* &amp;quot;Максимізувати (1)&amp;quot;.&lt;br /&gt;
* &amp;quot;На весь екран (2)&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| statLine || Елементи рядку статусу || Текст || Текстове поле з описом елементів рядка статусу користувача.&lt;br /&gt;
|-&lt;br /&gt;
| winPosCntrSave || Управління та збереження положення вікон || Логічний || Ввімкнення управління та збереження положення вікон виконання.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=4 | ''Основні процедури [[Special:MyLanguage/Modules/VCAEngine#Alarms|механізму повідомлень]]''&lt;br /&gt;
|-&lt;br /&gt;
| notify0 || Повідомлення: тип 0 (Світло) || Текст || &lt;br /&gt;
|-&lt;br /&gt;
| notify1 || Повідомлення: тип 1 (Гудок) || Текст || &lt;br /&gt;
|-&lt;br /&gt;
| notify2 || Повідомлення: тип 2 (СинтезМови) || Текст || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== {{Anch|MainFrames|Основні кадри}} ==&lt;br /&gt;
Містить елементи-кадри шаблонного та кінцевого типів, а також елементи-віджети та панелі з яких вони будуються та які дотичні до їх використання. Ці кадри призначено для розташування у дереві сторінок проекту, побудованого за [[#RootPgSo|концепцією об'єктів сигналізації кореневої сторінки &amp;quot;RootPgSo&amp;quot;]]. Однак вони можуть бути розташовані як окремі сутності або у складі власної концепції керування сторінками, але тут треба враховувати, що кадри часто посилаються та викликають ті або інші [[#Panels|панелі керування]] загального застосування та пов'язані елементи!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=grpGraph /&amp;gt;&lt;br /&gt;
| {{Anch|grpGraph|&amp;lt;h3&amp;gt;Група графіків ([[Special:MyLanguage/Libs/Main_graphical_elements#grpGraph|grpGraph]]); Група графіків 10 ([[Special:MyLanguage/Libs/Main_graphical_elements#grpGraph|grpGraph10]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.6 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=grpGraph /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Елемент-кадр представлений на рисунку 3.1 слугує для одночасного спостереження трендів та управління параметрами у об'єкті сигналізації, включає у себе екземпляри віджету &amp;quot;[[#ElViewGraph|Елемент групи графіків]]&amp;quot; кожного параметру (до 8 або 10) і віджет &amp;quot;Діаграма&amp;quot; для спостереження за графіками параметрів та перегляду історії, а також горизонтальну стрічку гортання для швидкої навігації за доступною історією обраних для відображення параметрів. Варіант у 10 трендів успадковано від базового варіанту у 8 трендів і ви можете створити власні варіанти спадкуючи базу і додати більше елементів групи графіків.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_grpGraphD_uk.png|center|frame|Рис.3.1a. Кадр &amp;quot;Група графіків&amp;quot; у режимі розробки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Кадр призначено для виконання ролі сторінки-шаблону, а, відповідно, він має безпосередньо розташовуватися у дерево проекту. У проекті-шаблоні &amp;quot;[[#RootPgSo|Групи сигналізацій]]&amp;quot;, для кожного об'єкту сигналізації, цей кадр включено у ролі шаблону, що дозволяє створювати на його основі багато сторінок груп графіків. До кожного кадру можуть підключатися до восьми-десяти параметрів, шляхом встановлення зв'язків. Графіки, для яких не буде встановлено зв'язку, будуть приховані при виконанні або доступні для користувацького обрання у випадку наявності переліку обраних параметрів у атрибуті &amp;quot;Вибір: параметри доступні для обрання&amp;quot; (формат переліку описано у [[#graphSelPrm|діалозі обрання параметрів]]).&lt;br /&gt;
&lt;br /&gt;
Типову глибину трендів у минуле встановлено у 10 хвилин — для поточного оперативного контролю, що, за потреби, можна змінити безпосередньо відредагувавши відповідне поле віджету діаграми, наприклад, для шаблонної сторінки проекту, щоб воно розповсюдилося на всі кінцеві сторінки.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
У режимі виконання відображаються графіки, для яких встановлено зв'язки. Керування параметрами з елементів групи графіків детально описано у розділі віджету &amp;quot;[[#ElViewGraph|Елемент групи графіків (ElViewGraph)]]&amp;quot;. Додатково можна керувати властивостями відображення графіків, для чого автоматично з цією сторінкою відкривається [[#grph_panel|панель управління графіком]], або необхідно лівою клавішею миші натиснути у область графіку.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Кадр наразі підтримує функціювання із дуже великим значенням &amp;quot;Період опрацювання&amp;quot; та це значення наразі встановлено для спадкування від батьківської сторінки/сеансу (значення -1). Це можливе завдяки механізму раннього опрацювання подій та можливості контролю періодичності опрацювання із процедури.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_grpGraphR_uk.png|center|frame|Рис.3.1b. Кадр &amp;quot;Група графіків&amp;quot; у режимі виконання.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| name || Ім'я || Рядок (переклад) || Постійна ||  || Ім'я групи&lt;br /&gt;
|-&lt;br /&gt;
| allowSelLst || Вибір: параметри дозволені для обрання || Текст || Немає || || Помістіть сюди параметри для обрання користувачем, переліком DAQ-шляхів до них (детальніше дивіться у діалозі &amp;quot;[[#graphSelPrm|Вибір параметру графіку]]&amp;quot;):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:&amp;quot;&amp;gt;&lt;br /&gt;
/LogicLev/proc/prm_CPU/prm_load&lt;br /&gt;
/LogicLev/proc/prm_MEM/prm_use&lt;br /&gt;
/LogicLev/proc/prm_CPU/prm_T &amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| perUserSel || Обрання: зберігати обрання за користувачем || Логічний || Немає || || Встановіть для збереження користувацького вибору окремо&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Елемент {n} від 1 до 8(10)'' &lt;br /&gt;
|-&lt;br /&gt;
| el{n} || colspan=&amp;quot;5&amp;quot; | ''Перелік пов'язаних атрибутів відповідає переліку віджету &amp;quot;Елемент групи графіків (ElViewGraph)&amp;quot;''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ElViewGraph /&amp;gt;&lt;br /&gt;
| {{Anch|ElViewGraph|&amp;lt;h4&amp;gt;Елемент групи графіків ([[Special:MyLanguage/Libs/Main_graphical_elements#ElViewGraph|ElViewGraph]])&amp;lt;/h4&amp;gt;}}&lt;br /&gt;
| 1.5 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=ElViewGraph /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || 2000 мс&lt;br /&gt;
|}&lt;br /&gt;
Елемент-віджет, представлений на рисунку 3.1.1, слугує для створення [[#grpGraph|груп графіків]]. Віджет містить інформацію про параметр, режим регулятору, якщо параметр є таким, одиницю виміру аналогового параметру, а також колір, що відповідає параметру тренда. Віджет загалом використовує та представляє представницьку структуру DAQ-шаблонів &amp;quot;[[Special:MyLanguage/Libs/Main#anUnif|Аналоговий сигнал]]&amp;quot; та &amp;quot;[[Special:MyLanguage/Libs/Main#digitBlockUnif|Дискретний блок]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ElViewGraphD_uk.png|center|frame|Рис.3.1.1a. Віджет &amp;quot;Елемент групи графіків&amp;quot; у режимі розробки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Хоча даний віджет не призначено для самостійного використання у відриві від [[#grpGraph|групи графіків]], використовувати його можна, наприклад, помістивши на мнемосхему та встановивши зв'язок з параметром джерела даних.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
У режимі виконання, у основному полі елементу, відображається назва параметру, режим регулятору (тільки для регулятору), поточне значення-змінна та одиниця виміру цього параметру; які, залежно від наявності порушення, відображаються кольором стилю: ''labColorGood'', ''labColorWarning'', ''labColorAlarm''. За апаратних помилок та недостовірності даних, останнє значення відображається сірим кольором.&lt;br /&gt;
&lt;br /&gt;
Окрім безпосередньо доступних візуальних даних, надається низка елементів контролю:&lt;br /&gt;
* &amp;quot;Виділення&amp;quot; — за натиском лівою клавішею миші у області віджету, праворуч з'явиться [[#ElCadr|панель управління параметром]], а вибір даного віджету буде відображено блимаючою рамкою.&lt;br /&gt;
* &amp;quot;Приховати/Показати&amp;quot; — за подвійним натиском у області віджету відбувається перемикання показу-приховування графіку даного елементу.&lt;br /&gt;
* &amp;quot;Функції контекстного меню&amp;quot; — за посередництвом контекстного меню надається низка функцій:&lt;br /&gt;
** &amp;quot;Паспорт&amp;quot; — отримання [[#Passport|паспорту]] параметра, у якому буде представлено всі його властивості.&lt;br /&gt;
** &amp;quot;Приховати/Показати&amp;quot; — перемикання показу або приховування графіку даного елементу, аналогічно до подвійного кліку.&lt;br /&gt;
** &amp;quot;Показати один&amp;quot; — одиночний показ графіку обраного параметру у його рідній шкалі, шляхом приховування решти елементів у групі.&lt;br /&gt;
** &amp;quot;Показати все&amp;quot; — показ всіх графіків параметрів у групі.&lt;br /&gt;
** &amp;quot;Обчислення&amp;quot; — виклик [[#graphCalc|діалогу обчислення]] над видимими даними обраного параметру.&lt;br /&gt;
** &amp;quot;Обрати&amp;quot; — виклик [[#graphSelPrm|діалогу обрання]] параметру з переліку доступних для обрання — атрибут &amp;quot;Вибір: параметри дозволені для обрання&amp;quot; кадру-власника. Цей пункт доступний тільки у випадку наявності переліку обрання. З діалогу користувач також може очистити параметр, і що для статично перед-встановлених параметрів передбачає повернення до статичного параметру.&lt;br /&gt;
&lt;br /&gt;
Віджет зберігає обраний користувачем параметр у таблиці сеансу проекту та завантажує параметр при наступному запуску, включно з кольором тренду, типове значення якого зазвичай береться зі стилю.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Віджет наразі підтримує функціювання із дуже великим значенням &amp;quot;Період опрацювання&amp;quot; та це значення наразі встановлено для спадкування від батьківського віджету/сторінки/сеансу (значення -1). Це можливе завдяки механізму раннього опрацювання подій та можливості контролю періодичності опрацювання із процедури.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ElViewGraphR_uk.png|center|frame|Рис.3.1.1b. Віджет &amp;quot;Елемент групи графіків&amp;quot; у режимі виконання.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| name || Ім'я || Рядок (переклад) || Вхідний зв'язок || Parametr&amp;amp;#124;NAME || Ім'я-шифр параметру, для відображення у полі назви.&lt;br /&gt;
|-&lt;br /&gt;
| dscr || Опис || Текст (переклад) || Вхідний зв'язок || Parameter&amp;amp;#124;DESCR || Ім'я параметру, для розташування до tooltip та statusbar.&lt;br /&gt;
|-&lt;br /&gt;
| addr || Адреса || Адреса || Вхідний зв'язок || Parameter&amp;amp;#124;var || Адреса до атрибуту значення параметру для побудови графіку.&lt;br /&gt;
|-&lt;br /&gt;
| color || Колір графіку || Рядок || Немає || || Робочій колір тренду&lt;br /&gt;
|-&lt;br /&gt;
| colorDef || Типовий колір зі стилю || Рядок || Немає || || Типовий колір тренду на рівні кадру&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Аналогові параметри''&lt;br /&gt;
|-&lt;br /&gt;
| ed || Одиниця виміру || Рядок (переклад) || Вхідний зв'язок || Parameter&amp;amp;#124;ed ||&lt;br /&gt;
|-&lt;br /&gt;
| prec || Точність || Цілий || Вхідний зв'язок || Parameter&amp;amp;#124;prec || Кількість знаків після точки, для позитивних значень, та точність (знаків загалом), для негативних, для відображення кінцевого реального значення на екрані.&lt;br /&gt;
|-&lt;br /&gt;
| log || Логарифмічна шкала || Логічний || Вхідний зв'язок || Parameter&amp;amp;#124;log ||&lt;br /&gt;
|-&lt;br /&gt;
| max || Максимум || Реальний || Вхідний зв'язок || Parameter&amp;amp;#124;max || Верхня межа значення параметру.&lt;br /&gt;
|-&lt;br /&gt;
| min || Мінімум || Реальний || Вхідний зв'язок || Parameter&amp;amp;#124;min || Нижня межа значення параметру.&lt;br /&gt;
|-&lt;br /&gt;
| aMax || Границя верхня аварійна || Реальний || Вхідний зв'язок || Parameter&amp;amp;#124;aMax ||&lt;br /&gt;
|-&lt;br /&gt;
| aMin || Границя нижня аварійна || Реальний || Вхідний зв'язок || Parameter&amp;amp;#124;aMin ||&lt;br /&gt;
|-&lt;br /&gt;
| wMax || Границя верхня попереджув. || Реальний || Вхідний зв'язок || Parameter&amp;amp;#124;wMax ||&lt;br /&gt;
|-&lt;br /&gt;
| wMin || Границя нижня попереджув. || Реальний || Вхідний зв'язок || Parameter&amp;amp;#124;wMin ||&lt;br /&gt;
|-&lt;br /&gt;
| pModeA || Режим регулятору: автомат || Логічний || Вхідний зв'язок || Parameter&amp;amp;#124;auto || Режим регулятору &amp;quot;Автомат&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| pModeC || Режим регулятору: каскад || Логічний || Вхідний зв'язок || Parameter&amp;amp;#124;casc || Режим регулятору &amp;quot;Каскад&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Дискретні параметри''&lt;br /&gt;
|-&lt;br /&gt;
| digComs || Дискретний: команди || Рядок (переклад) || Постійна || || Найменування та колір кнопок команд у форматі '''{On}[-color]:{Off}[-color][:{Stop}[-color]]'''. Кольори по замовченню: зелений, червоний та жовтий.&lt;br /&gt;
|-&lt;br /&gt;
| digStts || Дискретний: стани || Рядок (переклад) || Постійна || || Найменування та колір надписів станів у форматі '''{On}[-color]:{Off}[-color]'''. Кольори по замовченню: зелений та червоний.&lt;br /&gt;
|-&lt;br /&gt;
| digRevers || Дискретний: реверс || Логічний || Постійна || || Реверс дискретного сигналу.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=graphSelPrm /&amp;gt;&lt;br /&gt;
| {{Anch|graphSelPrm|&amp;lt;h4&amp;gt;Вибір параметру графіку ([[Special:MyLanguage/Libs/Main_graphical_elements#graphSelPrm|graphSelPrm]])&amp;lt;/h4&amp;gt;}}&lt;br /&gt;
| 1.5 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=graphSelPrm /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Елемент, представлений на рисунку 3.1.2, реалізує діалог користувацького вибору джерел даних, часто архівних, для формування графіку у кадрі &amp;quot;[[#grpGraph|Група графіків]]&amp;quot;. Вибір надається з переліку вказаного у атрибуті &amp;quot;Вибір: параметри дозволені для обрання (allowSelLst)&amp;quot;, кадру-ініціатору. Для обраного джерела можна вказати ім'я, шкалу, логарифмічність, одиницю вимірювання та колір графіку.&lt;br /&gt;
&lt;br /&gt;
У атрибуті &amp;quot;Вибір: параметри дозволені для обрання (allowSelLst)&amp;quot; мають розташовуватися джерела даних у вигляді:&lt;br /&gt;
* '''{DAQ_Arh_addr}[:Name[:min:max[:dim]]''', де:&lt;br /&gt;
** &amp;quot;DAQ_Arh_addr&amp;quot; — адреса параметру, за групового зв'язування, або атрибуту з даними з підсистеми &amp;quot;Збір даних (DAQ)&amp;quot;, а також адреса архіву значень, наприклад:&lt;br /&gt;
*** '''/LogicLev/gen/prm_F3''' — адреса параметру &amp;quot;F3&amp;quot;;&lt;br /&gt;
*** '''/DAQ/System/AutoDA/prm_CPULoad/load''' — адреса атрибуту &amp;quot;load&amp;quot;, параметру &amp;quot;CPULoad&amp;quot;;&lt;br /&gt;
*** '''/Archive/va_LC21_1_var''' — адреса архіву &amp;quot;LC21_1_var&amp;quot;.&lt;br /&gt;
** &amp;quot;Name&amp;quot; — назва джерела, для відображення. За групового зв'язування назва буде братися з атрибуту &amp;quot;NAME&amp;quot;.&lt;br /&gt;
** &amp;quot;min&amp;quot;, &amp;quot;max&amp;quot; — шкала відображення. За групового зв'язування шкала буде братися з атрибуту &amp;quot;min&amp;quot; та &amp;quot;max&amp;quot;, відповідно. У випадку відсутності шкали (min &amp;gt;= max) вмикається автоматичний вибір шкали.&lt;br /&gt;
** &amp;quot;dim&amp;quot; — одиниця виміру параметру, для відображення. За групового зв'язування буде братися з атрибуту &amp;quot;ed&amp;quot;.&lt;br /&gt;
* '''&amp;lt;varhs&amp;gt;''' — шаблон групового обрання, при визначені якого до переліку обрання потраплять усе доступні у системі архіви.&lt;br /&gt;
&lt;br /&gt;
Приклади вмісту атрибуту &amp;quot;Вибір: параметри дозволені для обрання (allowSelLst)&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space: pre-wrap;&amp;quot;&amp;gt;&lt;br /&gt;
/System/AutoDA/prm_CPULoad/load:CPU Load:0:100:%&lt;br /&gt;
/LogicLev/gen/prm_F3&lt;br /&gt;
&amp;lt;varhs&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_graphSelPrm_uk.png|center|frame|Рис.3.1.2. Кадр &amp;quot;Вибір параметру графіка&amp;quot; у режимі розробки та виконання.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Цей кадр має бути розташовано у логічному контейнері панелей дерева проекту. У &amp;quot;[[#grpGraph|Групах графіків]]&amp;quot;, які повинні надавати можливість користувацького вибору джерела, має бути визначено атрибут &amp;quot;Вибір: параметри дозволені для обрання (allowSelLst)&amp;quot;, переліком джерел згідно правил визначених вище. Як результат, у контекстному меню [[#ElViewGraph|елементу графіка]] з'явиться пункт &amp;quot;Вибір&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
Виклик діалогу здійснюється за посередництвом пункту &amp;quot;Вибір&amp;quot;, контекстного меню [[#ElViewGraph|елементу графіка]]. Діалогом користувачу надається вибір джерела даних з переліку, а також визначення основних його параметрів: назва, шкала, логарифмічність, одиниця вимірювання та колір графіку, який ви також можете обрати типовим/стильовим через очищення. За підтвердження, обрані параметри застосовуються до елементу графіка, замінюючи посилання. Обрання та підтвердження пункту &amp;quot;&amp;lt;Очистити&amp;gt;&amp;quot; призведе до очищення всіх посилань та елементу графіку. У текстовому полі, під переліком, можна швидко знайти потрібний параметр.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=graphCalc /&amp;gt;&lt;br /&gt;
| {{Anch|graphCalc|&amp;lt;h4&amp;gt;Обчислення параметру графіку ([[Special:MyLanguage/Libs/Main_graphical_elements#graphCalc|graphCalc]])&amp;lt;/h4&amp;gt;}} || 1.0 || GPLv2 || * || en, uk, ru &amp;lt;section end=graphCalc /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
Елемент, представлений на рисунку 3.1.3, реалізує діалог користувацького обчислення параметру обраного графіку для видимих на графіку даних. Користувачу надається можливість обрати обчислення із вбудованої бібліотеки, привілейований користувач (&amp;quot;root&amp;quot; або у групі &amp;quot;ITW&amp;quot;) має можливість відредагувати або написати власну процедуру обчислення.&lt;br /&gt;
&lt;br /&gt;
Загалом, вбудована бібліотека наразі містить наступні функції користувацького обчислення:&lt;br /&gt;
* Сума, на годину.&lt;br /&gt;
* Середнє та діапазон.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_graphCalc_uk.png|center|frame|Рис.3.1.3. Кадр &amp;quot;Обчислення параметру графіку&amp;quot; у режимі розробки та виконання.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Цей кадр має бути розташовано у логічному контейнері панелей дерева проекту.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
Виклик діалогу здійснюється за посередництвом пункту &amp;quot;Обчислення&amp;quot;, контекстного меню [[#ElViewGraph|елементу графіка]]. Діалогом користувачу надається вибір функції обчислення видимих даних обраного параметру та можливість відредагувати-написати власну функцію, для привілейованого користувача. Результат обчислення розташовується у відповідному текстовому полі.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=grpCadr /&amp;gt;&lt;br /&gt;
| {{Anch|grpCadr|&amp;lt;h3&amp;gt;Група контурів ([[Special:MyLanguage/Libs/Main_graphical_elements#grpCadr|grpCadr]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=grpCadr /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Елемент-кадр, представлений на рисунку 3.2, слугує для одночасного спостереження та управління контурами декількох параметрів, до восьми, включає у себе як екземпляри віджету &amp;quot;[[#ElCadr|Елемент кадр]]&amp;quot; для кожного контуру, так і [[Special:MyLanguage/Sub-projects/VCA#Diagram|примітив &amp;quot;Діаграма&amp;quot;]] для спостереження за трендами контурів та перегляду історії.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_grpCadrD_uk.png|center|frame|Рис.3.2a. Кадр &amp;quot;Група контурів&amp;quot; у режимі розробки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Кадр призначено для виконання ролі сторінки-шаблону, а, відповідно, він має безпосередньо розташовуватися у дерево проекту. У проекті-шаблоні &amp;quot;[[#RootPgSo|Групи сигналізацій]]&amp;quot;, для першого об'єкту сигналізації, цей кадр включено у ролі шаблону, що дозволяє створювати на його основі багато сторінок груп контурів. До кожного кадру можуть підключатися до восьми параметрів, шляхом встановлення зв'язків. Контури та графіки, для яких не буде встановлено зв'язку, будуть приховані при виконанні.&lt;br /&gt;
&lt;br /&gt;
Типову глибину трендів у минуле встановлено у 10 хвилин — для поточного оперативного контролю, що, за потреби, можна змінити безпосередньо відредагувавши відповідне поле віджету діаграми, наприклад, для шаблонної сторінки проекту, щоб воно розповсюдилося на всі кінцеві сторінки.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
У режимі виконання відображаються контури та графіки, для яких встановлено зв'язки. Управління параметрами з контурів детально описано у розділі панелі &amp;quot;[[#ElCadr|Елемент кадр]]&amp;quot;. На додачу до цього можна керувати властивостями відображення графіків, для чого потрібно лівою клавішею миші натиснути у області графіку та за допомогою [[#grph_panel|панелі управління графіком]], що з'явиться, здійснити потрібні дії.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Кадр наразі підтримує функціювання із дуже великим значенням &amp;quot;Період опрацювання&amp;quot; та це значення наразі встановлено для спадкування від батьківської сторінки/сеансу (значення -1). Це можливе завдяки механізму раннього опрацювання подій та можливості контролю періодичності опрацювання із процедури.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_grpCadrR_uk.png|center|frame|Рис.3.2b. Кадр &amp;quot;Група контурів&amp;quot; у режимі виконання.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| grpName || Ім'я групи || Рядок || Стала || || Ім'я групи&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Елемент {n} от 1 до 8.''&lt;br /&gt;
|-&lt;br /&gt;
| el{n} || colspan=&amp;quot;5&amp;quot; | ''Перелік зв'язуваних атрибутів відповідає переліку панелі &amp;quot;Елемент кадр (ElCadr)&amp;quot;''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ViewCadr /&amp;gt;&lt;br /&gt;
| {{Anch|ViewCadr|&amp;lt;h3&amp;gt;Група оглядових кадрів ([[Special:MyLanguage/Libs/Main_graphical_elements#ViewCadr|ViewCadr]])&amp;lt;/h3&amp;gt;}} || 1.1 || GPLv2 || * || en, uk, ru &amp;lt;section end=ViewCadr /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Елемент-кадр, представлений на рисунку 3.3, слугує для відображення поточних трендів параметрів у окремих кадрах-віджетах кількістю до 24 одиниць (6x4), стосовно яких підтримується масштабування залежно від їх конфігурованої кількості. Кадри-віджети трендів параметрів реалізуються супутнім віджетом &amp;quot;[[#ElViewCadr|Кадр оглядової групи]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ViewCadrD_uk.png|center|frame|Рис.3.3a. Кадр &amp;quot;Група оглядових кадрів&amp;quot; у режимі розробки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Кадр призначено для виконання ролі сторінки-шаблону, а, відповідно, він має безпосередньо розташовуватися у дерево проекту. У проекті-шаблоні &amp;quot;[[#RootPgSo|Групи сигналізацій]]&amp;quot;, для першого об'єкту сигналізації, цей кадр включено у ролі шаблону, що дозволяє створювати на його основі багато сторінок оглядових груп. До кожного кадру можуть підключатися до 24 параметрів, шляхом встановлення зв'язків. Кадри-віджети, для яких не буде встановлено зв'язку, будуть приховані при виконанні, та здійснено пропорційне масштабування на відсутні повні рядки та стовпчики з метою заповнення всього кадру.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
У режимі виконання відображаються кадри-віджети, для яких встановлено зв'язки. Управління параметрами з кадрів-віджетів детально описано у розділі віджету &amp;quot;[[#ElViewCadr|Кадр оглядової групи]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ViewCadrR_uk.png|center|frame|Рис.3.3b. Кадр &amp;quot;Група оглядових кадрів&amp;quot; у режимі виконання.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| name || Ім'я || Рядок || Стала || || Ім'я кадру&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Кадр-віджет {r}_{c}, де рядки {r} від 1 до 4 та стовпчики {c} від 1 до 6.''&lt;br /&gt;
|-&lt;br /&gt;
| el{r}_{c} || colspan=&amp;quot;5&amp;quot; | ''Перелік зв'язуваних атрибутів відповідає переліку віджету &amp;quot;Кадр оглядової групи (ElViewCadr)&amp;quot;''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ElViewCadr /&amp;gt;&lt;br /&gt;
| {{Anch|ElViewCadr|&amp;lt;h4&amp;gt;Кадр групи огляду ([[Special:MyLanguage/Libs/Main_graphical_elements#ElViewCadr|ElViewCadr]])&amp;lt;/h4&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=ElViewCadr /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Елемент-віджет, представлений на рисунку 3.3.1, слугує основою [[#ViewCadr|групи оглядових кадрів]] та зазвичай не використовується самостійно. Віджет відображає текстову інформацію про параметр у вигляді найменування та значення, а також тренд параметру за невеликий проміжок часу (2 хвилини) для спостереження за поточною тенденцією поведінки параметру з авто-масштабуванням за шкалою значення. Віджет загалом використовує та представляє представницьку структуру DAQ-шаблону &amp;quot;[[Special:MyLanguage/Libs/Main#anUnif|Аналоговий сигнал]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ElViewCadr_uk.png|center|frame|Рис.3.3.1. Віджет &amp;quot;Кадр групи огляду&amp;quot; у режимі розробки та виконання (зліва праворуч).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Хоча даний віджет не призначено для самостійного використання, у відриві від [[#ViewCadr|групи огляду]], використовувати його таки можна, наприклад, помістивши на мнемосхему та встановивши зв'язок з параметром джерела даних.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
У режимі виконання, у основному полі елементу, відображається назва параметру, поточне значення-змінна та тренд параметру; які завжди відображаються кольором стилю: ''labColorGood''.&lt;br /&gt;
&lt;br /&gt;
У активному режимі елементу можна отримати [[#Passport|паспорт]], натиснувши праву клавішу миші на полі віджету. У паспорті будуть представлені всі властивості параметру. За натиском лівої клавіші миші у області панелей з'явиться [[#ElCadr|панель управління]] параметром, та вибір даного віджету буде відображатися блимаючою рамкою.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Віджет наразі підтримує функціювання із дуже великим значенням &amp;quot;Період опрацювання&amp;quot; та це значення наразі встановлено для спадкування від батьківського віджету/сторінки/сеансу (значення -1). Це можливе завдяки механізму раннього опрацювання подій та можливості контролю періодичності опрацювання із процедури.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| name || Ім'я || Рядок || Вхідний зв'язок || Parameter&amp;amp;#124;NAME || Ім'я параметру (шифр) для відображення у полі назви.&lt;br /&gt;
|-&lt;br /&gt;
| addr || Адреса || Адреса || Вхідний зв'язок || Parameter&amp;amp;#124;var || Адреса до атрибуту значення параметру для побудови тренду.&lt;br /&gt;
|-&lt;br /&gt;
| var || Змінна || Реальний || Вхідний зв'язок || Parameter&amp;amp;#124;var || Безпосередньо значення параметру для відображення у полі значень.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ResultGraph /&amp;gt;&lt;br /&gt;
| {{Anch|ResultGraph|&amp;lt;h3&amp;gt;Зведені графіки ([[Special:MyLanguage/Libs/Main_graphical_elements#ResultGraph|ResultGraph]])&amp;lt;/h3&amp;gt;}} || 1.1 || GPLv2 || * || en, uk, ru &amp;lt;section end=ResultGraph /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Елемент-кадр, представлений на рисунку 3.4, слугує для відображення групи поточних трендів параметрів (до 5) у окремих кадрах-віджетах кількістю до 16 одиниць (4x4), стосовно яких підтримується масштабування залежно від їх конфігурованої кількості. Кадри-віджети трендів параметрів реалізуються супутнім віджетом &amp;quot;[[#ResultGraphEl|Кадр зведених графіків]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Разом загальна кількість відображуваних графіків на одному кадрі сягає 80 та він призначений для формування окремого виду відображення, що застосовується поза [[#RootPgSo|об'єктів сигналізації]] — глобально за всім проектом візуалізації.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Кадр не підтримує ніякого керування.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ResultGraphD_uk.png|center|frame|Рис.3.4a. Кадр &amp;quot;Зведені графіки&amp;quot; у режимі розробки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Кадр призначено для виконання ролі сторінки-шаблону, а, відповідно, він має безпосередньо розташовуватися у дерево проекту. У проекті-шаблоні &amp;quot;[[#RootPgSo|Групи сигналізацій]]&amp;quot;, на рівні кореневої сторінки для нього передбачено спеціальну віртуальну сторінку &amp;quot;Зведені графіки&amp;quot; з шаблоном зведених графіків, що дозволяє створювати на його основі багато сторінок зведених графіків. До кожного кадру можуть підключатися до 80 параметрів, шляхом встановлення зв'язків. Кадри-віджети, для яких не буде встановлено жодного зв'язку, будуть приховані при виконанні, та здійснено пропорційне масштабування на відсутні повні рядки та стовпчики з метою заповнення всього кадру.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
У режимі виконання відображаються кадри-віджети, для яких встановлено зв'язки.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ResultGraphR_uk.png|center|frame|Рис.3.4b. Кадр &amp;quot;Зведені графіки&amp;quot; у режимі виконання.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| grpName || Ім'я групи || Рядок || Стала ||  || Ім'я групи&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Кадр-віджет {n} від 1 до 16.''&lt;br /&gt;
|-&lt;br /&gt;
| el{n} || colspan=&amp;quot;5&amp;quot; | ''Перелік зв'язуваних атрибутів відповідає віджету &amp;quot;Кадр зведених графіків (ResultGraphEl)&amp;quot;.''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ResultGraphEl /&amp;gt;&lt;br /&gt;
| {{Anch|ResultGraphEl|&amp;lt;h4&amp;gt;Кадр зведених графіків ([[Special:MyLanguage/Libs/Main_graphical_elements#ResultGraphEl|ResultGraphEl]])&amp;lt;/h4&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=ResultGraphEl /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Елемент-віджет, представлений на рисунку 3.4.1, слугує основою [[#ResultGraph|зведених графіків]] та зазвичай не використовується самостійно. Віджет відображає назву групи та до п'яти трендів, з їх текстовими мітками, за фіксований проміжок часу (10 хвилин) для спостереження за поточною тенденцією поведінки параметрів. Віджет загалом використовує та представляє представницьку структуру DAQ-шаблону &amp;quot;[[Special:MyLanguage/Libs/Main#anUnif|Аналоговий сигнал]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ResultGraphEl_uk.png|center|frame|Рис.3.4.1. Віджет &amp;quot;Кадр зведених графіків&amp;quot; у режимі розробки та виконання (зліва праворуч).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Хоча даний віджет не призначено для самостійного використання, у відриві від [[#ResultGrph|зведених графіків]], використовувати його таки можна, наприклад, помістивши на мнемосхему та встановивши зв'язок з параметром джерела даних.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
У режимі виконання, у основному полі елементу, відображається заголовок групи, заголовки та тренди параметрів у визначених конфігурацією або стилем кольорах.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Віджет наразі підтримує функціювання із дуже великим значенням &amp;quot;Період опрацювання&amp;quot; та це значення наразі встановлено для спадкування від батьківського віджету/сторінки/сеансу (значення -1). Це можливе завдяки механізму раннього опрацювання подій та можливості контролю періодичності опрацювання із процедури.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| title || Заголовок || Рядок || Стала || || Відображається нагорі графіку, за відсутності поле графіку розширюється нагору.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Параметр {n} від 1 до 5.''&lt;br /&gt;
|-&lt;br /&gt;
| p1_addr || Параметр{n}: адреса || Адреса || Вхідний зв'язок || Parameter {n}&amp;amp;#124;var || Адреса до атрибуту значення параметру для побудови графіку {n}.&lt;br /&gt;
|-&lt;br /&gt;
| p{n}_clr || Параметр{n}: колір || Колір || Зі стиля || labColorGrph{n} ||&lt;br /&gt;
|-&lt;br /&gt;
| p{n}_max || Параметр{n}: максимум || Реальний || Вхідний зв'язок || Parameter {n}&amp;amp;#124;max || Максимальна границя графіку.&lt;br /&gt;
|-&lt;br /&gt;
| p{n}_min || Параметр{n}: мінімум || Реальний || Вхідний зв'язок || Parameter {n}&amp;amp;#124;min || Мінімальна границя графіку.&lt;br /&gt;
|-&lt;br /&gt;
| p{n}_name || Параметр{n}: ім'я || Рядок || Вхідний зв'язок || Parameter {n}&amp;amp;#124;NAME || Коротке ім'я параметру для відображення у полі ліворуч.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=cntrRegul /&amp;gt;&lt;br /&gt;
| {{Anch|cntrRegul|&amp;lt;h3&amp;gt;Панель налаштування регулятору ([[Special:MyLanguage/Libs/Main_graphical_elements#cntrRegul|cntrRegul]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=cntrRegul /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
Елемент-кадр, представлений на рисунку 3.5, слугує для налаштування ПІД-регулятору, включає в себе інформацію про параметр-регулятор, поля налаштувань регулятору та [[Special:MyLanguage/Sub-projects/VCA#Diagram|примітив &amp;quot;Діаграма&amp;quot;]], для спостереження за трендами регулятору та перегляду історії. Кадр загалом використовує та представляє представницьку структуру DAQ-шаблону [[Special:MyLanguage/Libs/Main#pidUnif|аналогового]] та [[Special:MyLanguage/Libs/Main#pidUnifImp|імпульсного]] ПІД-регуляторів.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсоровано:''' [http://diyaorg.dp.ua ТОВ &amp;quot;ДІЯ&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_cntrRegulD_uk.png|center|frame|Рис.3.5a. Кадр &amp;quot;Панель налаштування регулятору&amp;quot; у режимі розробки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Кадр може використовуватися як у ролі панелі, що викликається із [[#ElCadr|панелі управління параметрами]], так і у ролі сторінки-шаблону. Кадр має безпосередньо розташовуватися у дереві проекту, а саме у [[#RootPgSo|контейнері панелей]], де буде здійснюватися динамічне зв'язування на параметр регулятору. Для створення статичного переліку контурів налаштувань регуляторів, з можливістю подальшого гортання за ними, необхідно розташувати їх до контейнеру контурів регуляторів &amp;quot;greg&amp;quot; кожного [[#RootPgSo|об'єкту сигналізації]] та статично зв'язати з відповідним параметром, а також забезпечити рівність ідентифікатору панелі та пов'язаного параметру.&lt;br /&gt;
&lt;br /&gt;
Типову глибину трендів у минуле встановлено у 20 хвилин — для поточного оперативного контролю, що, за потреби, можна змінити безпосередньо відредагувавши відповідне поле віджету діаграми.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
У режимі виконання відображається:&lt;br /&gt;
* назва параметру регулятору;&lt;br /&gt;
* поле із властивостями регулятору у складі: ідентифікатор, назва, опис, одиниця виміру, завдання, змінна, вихід, шкала та режим;&lt;br /&gt;
* коефіцієнти налаштування регулятору: Кп, Кі, Ті, Кд, Тд, Тзд, Зн, Н1, Н2, К1, К2, К3, К4, ТпИ, ТмИ та Rфкт;&lt;br /&gt;
* область графіку з відображенням графіків: змінної (зелений, стиль &amp;quot;labColorGrph4&amp;quot;), завдання (синій, стиль &amp;quot;labColorGrph3&amp;quot;), вихід аналоговий (блакитний, стиль &amp;quot;labColorGrph5&amp;quot;), режим регулятору &amp;quot;Автомат&amp;quot; (магента, стиль &amp;quot;labColorGrph7&amp;quot;) та дискретні виходи імпульсного регулятору (оранжевий, стиль &amp;quot;labColorGrph2&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Користувач має можливість змінити коефіцієнти ПІД-регулятору, режим, завдання, вихід та одразу-ж побачити реакцію на графіку. Крім цього, користувач може вивчити історію роботи регулятору, для чого потрібно лівою клавішею миші натиснути у області графіку та, за допомогою [[#grph_panel|панелі управління графіком]], що з'явилася, здійснити необхідні дії навігації. Для повернення [[#ElCadr|панелі параметру регулятора]] необхідно лівою клавішею миші натиснути у вільну область даного кадру.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_cntrRegulR_uk.png|center|frame|Рис.3.5b. Кадр &amp;quot;Панель налаштування регулятору&amp;quot; у режимі виконання.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Параметр: шифр || Рядок || Вхідний зв'язок || Parameter&amp;amp;#124;SHIFR ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Параметр: шифр || Рядок || Вхідний зв'язок || Parameter&amp;amp;#124;NAME ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Параметр: опис || Рядок|| Вхідний зв'язок || Parameter&amp;amp;#124;DESCR ||&lt;br /&gt;
|-&lt;br /&gt;
| max || Параметр: максимум шкали || Реальний || Вхідний зв'язок || Parameter&amp;amp;#124;max ||&lt;br /&gt;
|-&lt;br /&gt;
| min || Параметр: мінімум шкали || Реальний || Вхідний зв'язок || Parameter&amp;amp;#124;min ||&lt;br /&gt;
|-&lt;br /&gt;
| ed || Параметр: одиниця виміру || Рядок || Вхідний зв'язок || Parameter&amp;amp;#124;ed ||&lt;br /&gt;
|-&lt;br /&gt;
| prec || Параметр: точність || Цілий || Вхідний зв'язок || Parameter&amp;amp;#124;prec || Кількість знаків після коми у значенні та завданні параметру ПІД. &lt;br /&gt;
|-&lt;br /&gt;
| var || Параметр: змінна || Реальний || Вхідний зв'язок || Parameter&amp;amp;#124;var ||&lt;br /&gt;
|-&lt;br /&gt;
| var_addr || Параметр: адреса змінної || Адреса || Вхідний зв'язок || Parameter&amp;amp;#124;var || Адреса для побудови графіку змінної.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''ПІД-регулятор''&lt;br /&gt;
|-&lt;br /&gt;
| auto_addr || Параметр: автомат || Адреса || Вхідний зв'язок || Parameter&amp;amp;#124;auto || Адреса для побудови графіку режиму &amp;quot;Автомат&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| sp || Параметр: завдання || Реальний || Вхідний зв'язок || Parameter&amp;amp;#124;sp ||&lt;br /&gt;
|-&lt;br /&gt;
| sp_addr || Параметр: адреса завдання || Адреса || Вхідний зв'язок || Parameter&amp;amp;#124;sp || Адреса для побудови графіку завдання.&lt;br /&gt;
|-&lt;br /&gt;
| out || Параметр: вихід || Реальний || Вхідний зв'язок || Parameter&amp;amp;#124;out ||&lt;br /&gt;
|-&lt;br /&gt;
| out_addr || Параметр: адреса виходу || Адреса || Вхідний зв'язок || Parameter&amp;amp;#124;out || Адреса для побудови графіку аналогового виходу.&lt;br /&gt;
|-&lt;br /&gt;
| Hdwn || Параметр: нижня границя виходу || Реальний || Повний зв'язок || Parameter&amp;amp;#124;Hdwn || Обмеження значення аналогового виходу по низу.&lt;br /&gt;
|-&lt;br /&gt;
| Hup || Параметр: верхня границя виходу || Реальний || Повний зв'язок || Parameter&amp;amp;#124;Hup || Обмеження значення аналогового виходу по верху.&lt;br /&gt;
|-&lt;br /&gt;
| Kp || Параметр: коеф. пропорційності || Реальний || Повний зв'язок || Parameter&amp;amp;#124;Kp ||&lt;br /&gt;
|-&lt;br /&gt;
| Ki || Параметр: коеф. пропорційності інтегралу || Реальний || Повний зв'язок || Parameter&amp;amp;#124;Ki ||&lt;br /&gt;
|-&lt;br /&gt;
| Ti || Параметр: час інтегрування || Реальний || Повний зв'язок || Parameter&amp;amp;#124;Ti ||&lt;br /&gt;
|-&lt;br /&gt;
| Kd || Параметр: коеф. пропорційності похідної || Реальний || Повний зв'язок || Parameter&amp;amp;#124;Kd ||&lt;br /&gt;
|-&lt;br /&gt;
| Td || Параметр: час диференцювання || Реальний || Повний зв'язок || Parameter&amp;amp;#124;Td ||&lt;br /&gt;
|-&lt;br /&gt;
| Tzd || Параметр: час затримки похідної частини || Реальний || Повний зв'язок || Parameter&amp;amp;#124;Tzd ||&lt;br /&gt;
|-&lt;br /&gt;
| Zi || Параметр: зона нечутливості || Реальний || Повний зв'язок || Parameter&amp;amp;#124;Zi ||&lt;br /&gt;
|-&lt;br /&gt;
| K1 || Параметр: коеф. входу 1 || Реальний || Повний зв'язок || Parameter&amp;amp;#124;K1 ||&lt;br /&gt;
|-&lt;br /&gt;
| K2 || Параметр: коеф. входу 2 || Реальний || Повний зв'язок || Parameter&amp;amp;#124;K2 ||&lt;br /&gt;
|-&lt;br /&gt;
| K3 || Параметр: коеф. входу 3 || Реальний || Повний зв'язок || Parameter&amp;amp;#124;K3 ||&lt;br /&gt;
|-&lt;br /&gt;
| K4 || Параметр: коеф. входу 4 || Реальний || Повний зв'язок || Parameter&amp;amp;#124;K4 ||&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Імпульсний ПІД-регулятор''&lt;br /&gt;
|-&lt;br /&gt;
| impQdwn_addr || Параметр: адреса імпульсного виходу донизу || Адреса || Вхідний зв'язок || Parameter&amp;amp;#124;impQdwn || Адреса для побудови графіку імпульсного виходу &amp;quot;Вниз&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| impQup_addr || Параметр: адреса імпульсного виходу догори || Адреса || Вхідний зв'язок || Parameter&amp;amp;#124;impQup || Адреса для побудови графіку імпульсного виходу &amp;quot;Вверх&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| KImpRfact || Параметр: рейтинг фактор || Реальний || Повний зв'язок || Parameter&amp;amp;#124;KImpRfact || Асиметрія у генерації ширини імпульсу вверх та вниз.&lt;br /&gt;
|-&lt;br /&gt;
| TImpMin || Параметр: мінімальний час імпульсу || Цілий || Повний зв'язок || Parameter&amp;amp;#124;TImpMin || Генеруються імпульси починаючи з вказаної ширини.&lt;br /&gt;
|-&lt;br /&gt;
| TImpPer || Параметр: період імпульсів || Цілий || Повний зв'язок || Parameter&amp;amp;#124;TImpPer || Періодичність повторення генерації імпульсу.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=alarmsSt /&amp;gt;&lt;br /&gt;
| {{Anch|alarmsSt|&amp;lt;h3&amp;gt;Порушення — стан ([[Special:MyLanguage/Libs/Main_graphical_elements#alarmsSt|alarmsSt]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.5 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=alarmsSt /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
Елемент-кадр на рисунку 3.6 слугує для відображення історії порушень та динамічного їх оновлення на поточний час у повноформатному табличному вигляді, із виділенням їх за кольором та текстом та можливістю багаторівневого фільтрування. Порушення отримуються із [[Special:MyLanguage/Documents/Program_manual#ArchMess|буферу поточних-активних порушень OpenSCADA]] та архіву(ів), визначеного конфігураційним полем &amp;quot;'''alArch'''&amp;quot;. Фактично елемент реалізує функції примітиву &amp;quot;[[Special:MyLanguage/Sub-projects/VCA#ImplProtocol|Протокол]]&amp;quot; для порушень та із розширенням можливостей.&lt;br /&gt;
&lt;br /&gt;
Загалом кадр містить елементи:&lt;br /&gt;
* таблиця повідомлень — основне поле;&lt;br /&gt;
* кнопка масового підтвердження — угорі ліворуч;&lt;br /&gt;
* комбобокс обрання правила сортування рівня моделі даних, передбачає сортування за обраним стовпчиком із переліку визначених у '''colms''' та по замовченню це час, як другий критерій, (останнє нагорі) — наступний нагорі ліворуч;&lt;br /&gt;
* панель навігації за історією-архівом повідомлень — нагорі у центрі та праворуч, у складі:&lt;br /&gt;
** часу вершини даних;&lt;br /&gt;
** розміру — глибини запиту даних;&lt;br /&gt;
** кнопок швидкого гортання — на один та п'ять інтервалів-глибин уперед та назад та у поточний час;&lt;br /&gt;
** кнопка швидкого переходу до наступної частини великого інтервалу запиту, поділеного за лімітом на кількість повідомлень у таблиці — для дуже щільного-активної генерації повідомлень;&lt;br /&gt;
** кнопка виклику-формування звітного документу за поточними даними таблиці.&lt;br /&gt;
* елементи п'ятирівневого фільтру із відображенням елементів наступного рівня за активацією останнього, шляхом обрання стовпчику із переліку визначених у '''colms''' — нагорі після попереднього.&lt;br /&gt;
&lt;br /&gt;
Згідно до оголошеного переліку елементів контролю, сортування повідомлень може змінюватися користувачем, як шляхом вбудованого механізму сортування стовпчиків окремо взятого візуалізатору, так і на рівні моделі даних, якщо візуалізатором такої функції не передбачено. Враховуючи основне призначення кадру — стан порушень (тобто історія), типовим правилом сортування є &amp;quot;останні&amp;quot; для повідомлень нагорі.&lt;br /&gt;
&lt;br /&gt;
Кадр створено, та він зазвичай використовується, у парі з [[#alarmsAct|віджетом динамічного відображення активних порушень]], який наділено основними функціями цього кадру, але лише для активних порушень та у малому віджеті.&lt;br /&gt;
&lt;br /&gt;
Основним користувацьким розширенням є можливість визначення видимих полів таблиці із переліку варіантів:&lt;br /&gt;
* ''atm'' — час виникнення порушення;&lt;br /&gt;
* ''qttm'' — час підтвердження порушення;&lt;br /&gt;
* ''nrmtm'' — час переходу-повернення порушення у стан &amp;quot;НОРМА&amp;quot;;&lt;br /&gt;
* ''lev'' — рівень порушення;&lt;br /&gt;
* ''type'' — тип-назва порушення із рівня ''lev'' та атрибуту &amp;quot;types&amp;quot;;&lt;br /&gt;
* ''cat'' — категорія порушення;&lt;br /&gt;
* ''mess'' — повний та нерозібраний текст повідомлення порушення;&lt;br /&gt;
* ''prm'' — адреса DAQ-параметру джерела порушення;&lt;br /&gt;
* ''dscr'' — опис порушення із DAQ-параметру джерела;&lt;br /&gt;
* ''dscrCust{N}'' — опис користувацького поля ''N'';&lt;br /&gt;
* ''alrm'' — текст порушення;&lt;br /&gt;
* ''cmnt'' — коментар до порушення.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Цей кадр та його поля загалом репрезентують структуру повідомлення порушення, яку детально описано у [[Special:MyLanguage/Documents/Program_manual#ArchMess|посібнику користувача]].&lt;br /&gt;
&lt;br /&gt;
Як можна бачити із переліку можливих полів таблиці, цей кадр підтримує механізм підтвердження, коментування та користувацькі поля.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсорування:''' Устьянцев Михайло&lt;br /&gt;
* '''Спонсорування, додання нового користувацького поля &amp;quot;Тип&amp;quot; на 0.2 {{CtxDetails|ЛД|людино-днів, 1ЛД — 10 годин}}:''' INSERTEC LTDA&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_alarmsStD_uk.png|center|frame|Рис.3.6a. Кадр &amp;quot;Порушення — стан&amp;quot; у режимі розробки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Віджет призначено для виконання ролі сторінки, відповідно він має безпосередньо розташовуватися у дерево проекту. Після додання, для кадру треба відкоригувати властивості на кшталт переліку та послідовності відображуваних полів таблиці.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Оскільки кадр передбачає відображення стану та історії порушень, то створення та використання [[Special:MyLanguage/Documents/Program_manual#ArchMess|архіватору повідомлень]] є обов'язковим. Тому створіть або використайте шаблонний архіватор стартового проекту &amp;quot;Порушення (alarms)&amp;quot; із опціями виключення дублювання, та вкажіть його (FSArch.alarms) у властивості кадру &amp;quot;'''alArch'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Комбобокс обрання правила сортування по замовченню вимкнено із міркувань використання вбудованої функції сортування за стовпчиком таблиці відповідного візуалізатору. Якщо такої функції візуалізатором не надається то увімкніть цей комбобокс.&lt;br /&gt;
&lt;br /&gt;
Якщо треба виключити функцію підтвердження то ви маєте виключити час підтвердження &amp;quot;qttm&amp;quot; з переліку полів та встановити елемент таблиці неактивним.&lt;br /&gt;
&lt;br /&gt;
Побудову звіту за поточними даними у таблиці також, по замовченню, вимкнено. Для увімкненням ви маєте розташувати [[#alarmsStReport|кадр звіту порушень]] у логічному контейнері панелей дерева проекту, а потім увімкнути характерну кнопку генерації звітів у правому верхньому куту цьому кадрі.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
У режимі виконання будується таблиця із переліку активних порушень, для поточного часу, та порушень з історії за визначеними полями, із контролем та відзначенням активності та правилом виокремлення; вміст якої періодично та динамічно оновлюється для поточного часу.&lt;br /&gt;
&lt;br /&gt;
Визначити часовий проміжок даних у таблиці користувач може за допомогою панелі навігації, вказавши вершину та глибину потрібних даних. У процесі запиту надто щільних проміжків даних читатися буде лише визначена у властивості '''messLim''' кількість повідомлень та для переходу до наступного шматка користувач може скористатися кнопкою за панеллю навігації, яка з'явиться у такому випадку.&lt;br /&gt;
&lt;br /&gt;
Отримані у таблиці дані можна відфільтрувати за вмістом відповідно обраного стовпчика, що можна здійснити на до п'яти рівнях, елементи фільтрування яких з'являтимуться за обранням останнього рівня фільтрування.&lt;br /&gt;
&lt;br /&gt;
Користувачу надається можливість підтвердити порушення, змінивши значення поля часу підтвердження або за допомогою панелі керування, що спливе за обранням елементу таблиці та рядка порушення. Також користувач може підтвердити всі активні порушення, натиснувши кнопку масового підтвердження.&lt;br /&gt;
&lt;br /&gt;
У випадку наявності у візуалізатору функції сортування за стовпчиком, або ввімкнення сортування на рівні моделі даних, користувач може обрати стовпчик за вмістом якого сортувати рядки таблиці.&lt;br /&gt;
&lt;br /&gt;
Ще користувач може залишити коментар до порушення, відкоригувавши відповідне поле таблиці.&lt;br /&gt;
&lt;br /&gt;
Для генерації окремого звіту користувач може натиснути характерну кнопку у правому верхньому куту, якщо таку функцію увімкнено.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_alarmsStR_uk.png|center|frame|Рис.3.6b. Кадр &amp;quot;Порушення — стан&amp;quot; у режимі виконання.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| messCat || Категорія повідомлень || Рядок || Категорія опрацьовуваних повідомлень, типово &amp;quot;al*:*&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| messLim || Обмеження повідомлень, кількість || Цілий || Максимальна кількість повідомлень у таблиці, типово 1000.&lt;br /&gt;
|-&lt;br /&gt;
| alArch || Архіватор сигналів, &amp;quot;{ArhMod}.{Arh}&amp;quot; || Рядок || Архіватор з якого брати порушення, порожньо для всіх.&lt;br /&gt;
|-&lt;br /&gt;
| alarms.active || Активний || Логічний || Вимкнути якщо виключено підтвердження, розширення за отримання фокусу та редагування взагалі — суто відображення.&lt;br /&gt;
|-&lt;br /&gt;
| hHdrVis || Показувати заголовок: горизонтальний ||Логічний ||&lt;br /&gt;
|-&lt;br /&gt;
| vHdrVis || Показувати заголовок: вертикальний || Логічний ||&lt;br /&gt;
|-&lt;br /&gt;
| formDtTm || Формат дати та часу (%Y-%m-%d %H.%M.%S[.%MS,%US]) || Рядок || Формат відображення часу порушення та підтвердження.&lt;br /&gt;
|-&lt;br /&gt;
| colms || Стовпчики&lt;br /&gt;
Перелік поділений ',' з варіантів: atm, qttm, nrmtm, lev, cat, mess, prm, dscr, dscrCust{N}, alrm, cmnt.&lt;br /&gt;
| Рядок || Визначити у потрібну послідовність та наповнення полів.&lt;br /&gt;
|-&lt;br /&gt;
| highLght || Правила підсвітлення&lt;br /&gt;
Рядки у формі &amp;quot;{lev}[{slev}]{quitt}{act}:{color}:{font}:{fontColor}&amp;quot;.&lt;br /&gt;
| Текст || Правила підсвітлення, де:&lt;br /&gt;
* ''lev'' — основний рівень повідомлення [0...7];&lt;br /&gt;
* ''slev'' — підрівень повідомлення [0...9], опціонально;&lt;br /&gt;
* ''quitt'' — ознака підтвердження повідомлення [0|1];&lt;br /&gt;
* ''act'' — ознака активності повідомлення [0|1];&lt;br /&gt;
* ''color'' — колір фону рядка з повідомленням;&lt;br /&gt;
* ''font'' — шрифт тексту рядка з повідомленням;&lt;br /&gt;
* ''fontColor'' — колір тексту рядка з повідомленням.&lt;br /&gt;
Наприклад:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;BASH&amp;quot;&amp;gt;&lt;br /&gt;
#&amp;lt;SnthHgl font=&amp;quot;monospace&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;rule expr=&amp;quot;^#[^\n]*&amp;quot; color=&amp;quot;gray&amp;quot; font_italic=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
# &amp;lt;rule expr=&amp;quot;^[0-9]*&amp;quot; color=&amp;quot;blue&amp;quot;&amp;gt;&lt;br /&gt;
#  &amp;lt;rule expr=&amp;quot;[01]{2}$&amp;quot; color=&amp;quot;red&amp;quot;&amp;gt;&lt;br /&gt;
#   &amp;lt;rule expr=&amp;quot;[01]$&amp;quot; color=&amp;quot;darkorange&amp;quot;/&amp;gt;&lt;br /&gt;
#  &amp;lt;/rule&amp;gt;&lt;br /&gt;
# &amp;lt;/rule&amp;gt;&lt;br /&gt;
# &amp;lt;rule expr=&amp;quot;(?&amp;lt;=:).*&amp;quot;&amp;gt;&lt;br /&gt;
#  &amp;lt;rule expr=&amp;quot;[^:]*&amp;quot; font_weight=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
#  &amp;lt;rule expr=&amp;quot;(?&amp;lt;=:).*&amp;quot; font_italic=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
# &amp;lt;/rule&amp;gt;&lt;br /&gt;
#&amp;lt;/SnthHgl&amp;gt;&lt;br /&gt;
501:gray&lt;br /&gt;
401:red&lt;br /&gt;
1501:yellow&lt;br /&gt;
511:gray:Arial 11 0 1&lt;br /&gt;
411:red:Arial 11 0 1&lt;br /&gt;
1511:yellow:Arial 11 0 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colDscrCustNames || Перелік назв користувацьких полів, поділених ';' || Рядок (переклад) || За підтримки користувацьких полів, та їх видимістю, тут наводяться їх назви.&lt;br /&gt;
|-&lt;br /&gt;
| types || Перелік типів за рівнем від 0, поділені ';' || Рядок (переклад) || Типи-назви порушень за їх рівнем, типово &amp;quot;Налагодж.;Інформ.;Зауваж.;Попередж.;Помилка;Критично;Тривога;Аварія&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=alarmsStReport /&amp;gt;&lt;br /&gt;
| {{Anch|alarmsStReport|&amp;lt;h4&amp;gt;Звіт ([[Special:MyLanguage/Libs/Main_graphical_elements#alarmsStReport|alarmsStReport]])&amp;lt;/h4&amp;gt;}} || 1.0 || GPLv2 || * || en, uk, ru &amp;lt;section end=alarmsStReport /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
Елемент-кадр, представлений на рисунку 3.6.1, реалізує діалог відображення звітного документу, побудованого із переліку отриманих порушень [[#alarmsSt|кадру повноформатного представлення історії порушень]].&lt;br /&gt;
&lt;br /&gt;
Основним призначенням та функцією цього кадру є надання можливості роздрукувати таблицю історії порушень та експортувати з неї дані.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсорування:''' Устьянцев Михайло&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_alarmsStReport_uk.png|center|frame|Рис.3.6.1. Кадр &amp;quot;Порушення — звіт&amp;quot;.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Цей кадр має бути розташовано у логічному контейнері панелей дерева проекту.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
Виклик діалогу здійснюється за посередництвом характерної кнопки, нагорі праворуч, [[#alarmsSt|кадру повноформатного представлення історії порушень]]. Діалогом надається текст звітного документу та кнопка, унизу праворуч, для його закриття.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=userManager /&amp;gt;&lt;br /&gt;
| {{Anch|userManager|&amp;lt;h3&amp;gt;Менеджер користувачів ([[Special:MyLanguage/Libs/Main_graphical_elements#userManager|userManager]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.7 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=userManager /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -2 мс (вимкнено)&lt;br /&gt;
|}&lt;br /&gt;
Елемент-кадр, представлений на рисунку 3.7, слугує для надання можливості контролю користувачів з інтерфейсу самого користувача. Тобто, типово ця функція надається програмісту SCADA на рівні [[Special:MyLanguage/Documents/Program_manual#CfgSecurity|конфігурації підсистеми &amp;quot;Безпека&amp;quot;]], але інколи виникає потреба надання такої можливості з інтерфейсу користувача та із низкою обмежень на контрольованих користувачів та їх групи, що цей кадр здійснює та загалом надає функції:&lt;br /&gt;
* формування переліку підконтрольних користувачів;&lt;br /&gt;
* можливість ознайомлення та зміни інформації користувачів, щодо: ім'я, повного ім'я, опису, паролю та груп;&lt;br /&gt;
* додання нових та видалення діючих користувачів;&lt;br /&gt;
* можливість редагування власної інформації та пароля непривілейованого користувача.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсорування:''' Вінницька Птахофабрика&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_userManagerD_uk.png|center|frame|Рис.3.7a. Кадр &amp;quot;Менеджер користувачів&amp;quot; у режимі розробки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Віджет призначено для виконання ролі сторінки, а, відповідно, він має безпосередньо розташовуватися у дерево проекту. Додатково, Ви маєте розташувати [[#accept|діалог прийняття]] до теки панелей проекту та треба здійснити деяку конфігурацію атрибутів, нижче, де жодних зв'язків не передбачено.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
У режимі виконання формується перелік із доступними користувачами, за обранням яких праворуч надається інформація щодо них, та яку можна змінити. Користувача можна додати та видалити відповідними командами інтерфейсу під переліком користувачів.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_userManagerR_uk.png|center|frame|Рис.3.7b. Кадр &amp;quot;Менеджер користувачів&amp;quot; у режимі виконання.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| owner || Власник || Рядок || Власник та група кадру, які мають до нього доступ, типово &amp;quot;root:Security&amp;quot; — для надання доступу до кадру треба користувача включити до групи &amp;quot;Security&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| perm || Доступ || Вибір цілих чисел || Правила доступу до кадру, типово &amp;quot;RWRW__&amp;quot; — кадр видимий та контрольований лише для користувача &amp;quot;root&amp;quot; та користувачів у групі &amp;quot;Security&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| denyUsers || Заборонене до контролю: користувачі, поділені ';' || Рядок || Перелік заборонених до контролю користувачів, типово &amp;quot;root;&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| denyGroups || Заборонене до контролю: групи, поділені ';' || Рядок || Перелік заборонених до контролю груп, типово &amp;quot;root;users;Archive;BD;DAQ;ModSched;Protocol;Security;Special;Transport;UI;&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| newUseGrps || Групи новоствореного користувача || Рядок || Групи до яких включати користувача автоматично після створення, типово &amp;quot;UI;Guest&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| storeDB || БД зберігання нових користувачів || Рядок || БД зберігання новостворених користувачів, типово — робоча.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=storeHouse /&amp;gt;&lt;br /&gt;
| {{Anch|storeHouse|&amp;lt;h3&amp;gt;Склад ([[Special:MyLanguage/Libs/Main_graphical_elements#storeHouse|storeHouse]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 2.3 || GPLv2 || * || en, uk&lt;br /&gt;
&amp;lt;section end=storeHouse /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Елемент-кадр, представлений на рисунку 3.8, слугує для контролю складу зі зберігання-керування речами різних класів-категорій. Початково його розроблено та перевірено на класі &amp;quot;Бібліотека&amp;quot;. Кадр передбачає прямий доступ до БД за SQL та наразі підтримує лише MySQL/MariaDB.&lt;br /&gt;
&lt;br /&gt;
Протягом реалізації кадру, вигляд &amp;quot;Таблиця&amp;quot; [[Special:MyLanguage/Modules/VCAEngine|примітиву &amp;quot;FormEl&amp;quot;]] значним чином розширено на обох візуалізаторах, як і інші частини OpenSCADA:&lt;br /&gt;
{{#lst:Documents/Release_0.9/Update4/uk|FormElTable}}&lt;br /&gt;
::* VCAEngine: Доповнення надсиланням неопрацьованих повідомлень до сторінки, яка відкрила вихідну сторінку.&lt;br /&gt;
::* JavaLikeCalc: Реалізація оператору &amp;quot;var&amp;quot; щодо обробки правильної області видимості, тобто визначення нових змінних у функціях із оператором і використання глобальних без нього.&lt;br /&gt;
&lt;br /&gt;
Кадр надає наразі, та надасть у майбутньому, наступні властивості:&lt;br /&gt;
* '''Режим редагування класів''': споглядання, створення та редагування класів складу із функцією збереження даних при зміні типу поля.&lt;br /&gt;
* '''Режим споглядання та редагування основних даних''':&lt;br /&gt;
** споглядання основних даних обраного або фіксованого класу складу у великій таблиці із можливістю сортування та фільтрування до п'ятьма стовпчиками;&lt;br /&gt;
** редагування вмісту клітинок таблиці у режимі редагування;&lt;br /&gt;
** додання, копіювання та видалення записів-рядків таблиці у режимі редагування;&lt;br /&gt;
** генерація звітної документації до обраного елементу, готової до друку та зручної для повного огляду;&lt;br /&gt;
** генерація звітної документації до основної таблиці з урахуванням налаштувань фільтру та природним відображенням специфічних полів;&lt;br /&gt;
** деталізована панель-форма керування обраним елементом зі специфічними полями.&lt;br /&gt;
** швидкий контроль і доступ до даних складних полів через динамічну Панель Керування, засновану на [[#terminator|Термінальному кадрі]].&lt;br /&gt;
&lt;br /&gt;
Класи складів зберігаються у таблиці &amp;quot;classes&amp;quot; із фіксованою структурою таблиці &amp;quot;&amp;lt;u&amp;gt;'''CLASS'''&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;'''ID'''&amp;lt;/u&amp;gt;, '''NAME''', '''TP''' , '''TBL''', '''FILTER'''&amp;quot;, де:&lt;br /&gt;
* ''CLASS'' [varchar(20)] — ІД класу;&lt;br /&gt;
* ''ID'' [varchar(20)] — ІД специфічного поля класу;&lt;br /&gt;
* ''NAME'' [text] — локалізована назва специфічного поля класу, де перший рядок для типового значення та наступні рядки формуються у вигляді '''{2СимвольнаМова}:{ЛокалізованийТекст}''';&lt;br /&gt;
* ''TP'' [varchar(100)] — тип специфічного поля класу, який прямо відповідає типам БД MySQL і деяким специфічним:&lt;br /&gt;
:* &amp;quot;'''file[:{max}[:{storage}[:{MIME}[:{OverViewSz}]]]]'''&amp;quot; — прикріплення файлів із параметрами:&lt;br /&gt;
::* ''max'' — максимум файлів дозволених до прикріплення;&lt;br /&gt;
::* ''storage'' — сховок файлів на Файловій Системі за визначеним шляхом, і порожнє для збереження прямо у полі БД типу LONGTEXT;&lt;br /&gt;
::* ''MIME'' — тип файлів, дозволених до прикріплення-завантаження, де порожньо для будь якого і на кшталт &amp;quot;image/*&amp;quot; лише для зображень;&lt;br /&gt;
::* ''OverViewSz'' — увімкнути поле перегляду файлів зображень на формі елементу із визначеним розміром у пікселях.&lt;br /&gt;
* ''TBL'' [varchar(100)] — властивості представлення даних специфічного поля у таблиці, має формат '''{вирівнювання}:{ширина}:{позиція}''', де:&lt;br /&gt;
:* ''вирівнювання'' — вирівнювання стовпчика, підтримуються значення: &amp;quot;left&amp;quot;, &amp;quot;center&amp;quot;, &amp;quot;right&amp;quot;; де значення &amp;quot;left&amp;quot; по замовченню для рядків та &amp;quot;center&amp;quot; для інших;&lt;br /&gt;
:* ''ширина'' — примусова ширина стовпчика, у відсотках за символу &amp;quot;%&amp;quot; у кінці або у пікселях;&lt;br /&gt;
:* ''позиція'' — позиція стовпчика у вигляді рядка, тож ви можете записати це на кшталт &amp;quot;005&amp;quot; для правильного сортування.&lt;br /&gt;
* ''FILTER'' [text] — властивості специфічного поля щодо приготування фільтрації та індексування списків для обрання у фільтрі, щодо варіантів: '''index''' і '''list{СимволПоділювача}''', де:&lt;br /&gt;
:* ''index'' — значення стовпчика враховується цілком при індексуванні;&lt;br /&gt;
:* ''list{СимволПоділювача}'' — значення стовпчика вважається переліком елементів для індексування, поділено символом ''СимволПоділювача''.&lt;br /&gt;
: Починаючи із другого рядка ви можете визначити правила підсвітлення у вигляді &amp;quot;'''{ID}:{FLGS}:{color}:{font}'''&amp;quot;, де:&lt;br /&gt;
:* ''ID'' — індексоване або перелічене значення у клітинці;&lt;br /&gt;
:* ''FLGS'' — перелік прапорців [0|1], наразі це лише &amp;quot;Підсвітити [Клітинка|Рядок]&amp;quot;;&lt;br /&gt;
:* ''color'' — колір тла;&lt;br /&gt;
:* ''font'' — шрифт тексту.&lt;br /&gt;
* ''PROC'' [text] — процедура обчислення значення клітинки на внутрішній мові [[Special:MyLanguage/Modules/JavaLikeCalc|JavaLikeCalc.JavaScript]] OpenSCADA, стовпчик стає логічним; клітинки логічних стовпців не доступні до редагування вручну; всі клітинки запису-рядка доступні у процедурі за їх ІД, включно із обчислювальною, яку ви маєте визначити якимось значенням; можете також використати цю властивість як тимчасову, тобто встановити процедуру для обчислення і потім її очистити;&lt;br /&gt;
: [[file:at.png]] Встановлення тут процедури очищуватиме (встановлюватиме у NULL) всі клітинки стовпця!&lt;br /&gt;
&lt;br /&gt;
Дані складу відповідного класу зберігаються у окремій таблиці із назвою &amp;quot;sh_{CLASS}&amp;quot; та структурою &amp;quot;&amp;lt;u&amp;gt;'''ID'''&amp;lt;/u&amp;gt;, '''NAME''', '''DSCR''', '''SP_{ID}1''', ..., '''SP_{ID}N'''&amp;quot;, де:&lt;br /&gt;
* ''ID'' [INT] — автоматичний індекс таблиці, дозволено до зміни видимості;&lt;br /&gt;
* ''NAME'' [varchar(200)] — назва елементу, дозволено до зміни типу;&lt;br /&gt;
* ''DSCR'' [text] — опис елементу;&lt;br /&gt;
* ''SP_{ID}X'' — специфічне поле класу відповідно до ''ID'' класу таблиці.&lt;br /&gt;
&lt;br /&gt;
Зі спеціальним сенсом у таблиці &amp;quot;classes&amp;quot; зарезервовано та примусово створювано поля &amp;quot;*TITLE&amp;quot; для загальної локалізованої назви складу та &amp;quot;*NAME&amp;quot;, &amp;quot;*DSCR&amp;quot; із контролем відповідних фіксованих полей.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_storeHouseD_uk.png|center|frame|Рис.3.8a. Кадр &amp;quot;Склад&amp;quot; у режимі розробки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Віджет призначено для виконання ролі сторінки, а, відповідно, він має безпосередньо розташовуватися у дерево проекту. Додатково, ви маєте розташувати [[#accept|діалог прийняття]] до теки панелей проекту та треба здійснити деяку конфігурацію атрибутів, нижче, де жодних зв'язків не передбачено.&lt;br /&gt;
&lt;br /&gt;
Для увімкнення звітності ви маєте розташувати [[#alarmsStReport|кадр звітності порушень]] до логічного контейнеру панелей у дереві проєкту.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
У режимі виконання ви побачити одну велику таблицю для редагування класів (Рис.3.8b) і представлення даних (Рис.3.8c) із редагуванням даних безпосередньо у таблиці, на панелі керування або у формі редагування елементу (Рис.3.8d).&lt;br /&gt;
&lt;br /&gt;
У режимі представлення основних даних класу користувачі можуть споглядати таблицю, фільтрувати та сортувати представлені дані за визначеними полями.&lt;br /&gt;
&lt;br /&gt;
У режимі редагування основних даних класу, користувачі, допущені до редагування, можуть додавати, копіювати, видаляти рядки/записи та редагувати поля.&lt;br /&gt;
&lt;br /&gt;
У режимі редагування класу, користувачі, допущені до редагування, можуть додавати нові та видаляти представлені (після видалення останнього елементу) класи; та додавати, видаляти специфічні поля класу і редагувати властивості цих полів.&lt;br /&gt;
&lt;br /&gt;
Для обмеження доступу користувачів наразі надається лише механізм включення користувачів, дозволених для редагування класу та даних, до групи &amp;quot;ITW&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Для генерації окремого звіту користувач може клацнути характерну іконку у правому верхньому куту.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Кадр наразі підтримує функціювання із дуже великим значенням &amp;quot;Період опрацювання&amp;quot; та це значення наразі встановлено для спадкування від батьківської сторінки/сеансу (значення -1). Це можливе завдяки механізму раннього опрацювання подій та можливості контролю періодичності опрацювання із процедури.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_storeHouseClassR_uk.png|center|frame|Рис.3.8b. Кадр &amp;quot;Склад&amp;quot; у режимі виконання на представлені класу.]]&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_storeHouseDataR_uk.png|center|frame|Рис.3.8c. Кадр &amp;quot;Склад&amp;quot; у режимі виконання на представлені даних із панеллю контролю.]]&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_storeHouseDataRf_uk.png|center|frame|Fig.3.8d. Кадр &amp;quot;Склад&amp;quot; у режимі виконання на формі редагування елементу.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| class || Клас: поточний || Рядок || Примусовий/ініціюючий клас першого відкриття.&lt;br /&gt;
|-&lt;br /&gt;
| classEditable (Стала) || Клас: редагований || Логічний || Прапорець дозволу редагування класу.&lt;br /&gt;
|-&lt;br /&gt;
| classFix (Стала) || Клас: фіксований || Рядок || Фіксований клас для якого кадр лише виконується, забороняючи доступ до інших класів.&lt;br /&gt;
|-&lt;br /&gt;
| dataEditable (Стала) || Дані: редаговане || Логічний || Прапорець дозволу редагування основних даних.&lt;br /&gt;
|-&lt;br /&gt;
| db || БД: База даних || Рядок || База даних класів та даних у вигляді '''{Тип}.{БД}'''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=dynFrame /&amp;gt;&lt;br /&gt;
| {{Anch|dynFrame|&amp;lt;h3&amp;gt;Dynamic frame ([[Special:MyLanguage/Libs/Main_graphical_elements#dynFrame|dynFrame]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk&lt;br /&gt;
&amp;lt;section end=dynFrame /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element-frame, shown in Figure 3.9, serves to form frames in runtime whether by the user or automatically, and it is initially created to represent data of the [[Special:MyLanguage/Documents/DAQ#PassiveAndInitiative|initiative connections]].&lt;br /&gt;
&lt;br /&gt;
During the frame implementing there significantly expanded some OpenSCADA parts:&lt;br /&gt;
* VCAEngine, Vision, WebVision: allowing of frame's geometry tracing and adjusting-expanding the content to its real size;&lt;br /&gt;
* Vision: fixing in processing small scale and unexpected apply events in LineEdit.&lt;br /&gt;
&lt;br /&gt;
The frame provides currently and in future for next features:&lt;br /&gt;
* specifying sources as fixed or selectable; also as relinking changed sources of the same type and tracing their appearance/disappearance with automatic placing;&lt;br /&gt;
* specifying visual items in a XML-Tree with the possibility to configure all interface here or manually from the running interface;&lt;br /&gt;
* providing a hiding table of the sources and the dynamically formed control panel for adding/removing visual items per source with control their parameters: position, geometry, constants;&lt;br /&gt;
* providing visual items without sources, as constants-static, and setting attributes directly;&lt;br /&gt;
* enabling the archiving locally and remotely for DAQGate.&lt;br /&gt;
&lt;br /&gt;
XML-Tree of the visual elements allowed to place in the root node, placed visual items in the visual elements and sources with constants in the visual items.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;vEls&amp;gt;&lt;br /&gt;
  &amp;lt;el id='Main.anShow' wId=&amp;quot;aShw&amp;quot; geom=&amp;quot;100-1:40-1&amp;quot;&lt;br /&gt;
      lnkAttrs='pVal-var'&lt;br /&gt;
      constAttrs='pName-;pPrec-;pErr-;pDscr-;pModeA-;pModeC-;spName;redEVAL'&amp;gt;&lt;br /&gt;
    &amp;lt;it id='aShw_1' geom=&amp;quot;100:40&amp;quot; pos=&amp;quot;0:0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;src id=&amp;quot;LogicLev.gen.prm_F3&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;const id=&amp;quot;pName&amp;quot; isLnk=&amp;quot;1&amp;quot; lnk=&amp;quot;prm:/LogicLev/gen/F3/NAME (+)&amp;quot;&amp;gt;Test&amp;lt;/const&amp;gt;&lt;br /&gt;
    &amp;lt;/it&amp;gt;&lt;br /&gt;
  &amp;lt;/el&amp;gt;&lt;br /&gt;
  &amp;lt;el id=&amp;quot;Main.TextLab&amp;quot; wId=&amp;quot;txtLb&amp;quot; geom=&amp;quot;60-1:22-1&amp;quot;&lt;br /&gt;
      lnkAttrs=&amp;quot;st_open;st_close;st_text;com;close;com_text&amp;quot;&lt;br /&gt;
      constAttrs=&amp;quot;digStts-;digComs-;NAME-;err-;DESCR-&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;it id=&amp;quot;txtLb_1&amp;quot; geom=&amp;quot;100:22&amp;quot; pos=&amp;quot;10:10&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;src id=&amp;quot;LogicLev.gen.prm_BC6close&amp;quot; sAttr=&amp;quot;a_st_open&amp;quot; vAttr=&amp;quot;st_open&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;src id=&amp;quot;LogicLev.gen.prm_BC6close&amp;quot; sAttr=&amp;quot;a_st_close&amp;quot; vAttr=&amp;quot;st_close&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/it&amp;gt;&lt;br /&gt;
  &amp;lt;/el&amp;gt;&lt;br /&gt;
  &amp;lt;el id=&amp;quot;originals.Text&amp;quot; wId=&amp;quot;txt&amp;quot; geom=&amp;quot;100:20&amp;quot; preset=&amp;quot;color=red;&amp;quot; resize=&amp;quot;1&amp;quot;&lt;br /&gt;
      constAttrs=&amp;quot;*text;*alignment;*font;*color;*orient&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;it id=&amp;quot;txt_2&amp;quot; geom=&amp;quot;100:20&amp;quot; pos=&amp;quot;0:50&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;const id=&amp;quot;*text&amp;quot; isLnk=&amp;quot;0&amp;quot;&amp;gt;Text label&amp;lt;/const&amp;gt;&lt;br /&gt;
      &amp;lt;const id=&amp;quot;*color&amp;quot; isLnk=&amp;quot;0&amp;quot;&amp;gt;blue&amp;lt;/const&amp;gt;&lt;br /&gt;
    &amp;lt;/it&amp;gt;&lt;br /&gt;
  &amp;lt;/el&amp;gt;&lt;br /&gt;
&amp;lt;/vEls&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
* ''id'' — identifier;&lt;br /&gt;
* ''wId'' — widget identifier base;&lt;br /&gt;
* ''geom'' — typical geometry with scale or for concrete visual item;&lt;br /&gt;
* ''lnkAttrs'' — list of the generic attributes through ';' for linking as data source in the form &amp;quot;{vis}[-{src}]&amp;quot;:&lt;br /&gt;
** ''vis'' — ID of the visual attribute;&lt;br /&gt;
** ''src'' — ID of the source attribute, it is the same as visual one at missing;&lt;br /&gt;
* ''constAttrs'' — list of the additional attributes through ';' for specifying manually in the form &amp;quot;{vis}[-[{src}]]&amp;quot;;&lt;br /&gt;
** ''src'' — ID of the source attribute, it is the same as visual one at missing and that is a constant at missing even the symbol ''-'', it is spare here and pointed only for its storing for ''lnkAttrs''.&lt;br /&gt;
* ''pos'' — position of the visual item;&lt;br /&gt;
* ''isLnk'' — the link sign;&lt;br /&gt;
* ''lnk'' — link value for restoring;&lt;br /&gt;
* ''sAttr'', ''vAttr'' — source and visual attributes of linking.&lt;br /&gt;
&lt;br /&gt;
The default XML-Tree stored in the &amp;quot;visualEls&amp;quot; attribute and can be appended by the user for needed elements or restricted only needed by removing unnecessary ones.&lt;br /&gt;
&lt;br /&gt;
After edition during running the &amp;quot;visualEls&amp;quot; attribute appended and stored in the session for using at next start.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_dynFrameD.png|center|frame|Fig.3.9a. The &amp;quot;Dynamic frame&amp;quot; in the development mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — development}}&lt;br /&gt;
The widget is designed to perform the role of a page, and should therefore be placed directly in the project's tree.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Using — runtime}}&lt;br /&gt;
In the runtime mode you will see content dependent from the mode:&lt;br /&gt;
* at default &amp;quot;Visual elements (visualEls)&amp;quot; and first start you'll see nothing except title, combobox of selection the source and the button of call the sources table;&lt;br /&gt;
* at &amp;quot;Visual elements (visualEls)&amp;quot; with preset items and correct sources you'll see those items.&lt;br /&gt;
&lt;br /&gt;
And both of the modes can be configured to show title, combobox of selection the source, the source table and the correspond control panel (Fig.3.9b), where you can add/remove items linked to a source and set parameters for them.&lt;br /&gt;
&lt;br /&gt;
For user access limitation there provided now only a mechanism of including the allowed for edition users to the group &amp;quot;ITW&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_dynFrameR.png|center|frame|Fig.3.9b. The &amp;quot;Dynamic frame&amp;quot; in the runtime mode.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Linking and configuring the attributes}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| srcDAQ || Source DAQ&lt;br /&gt;
In the format &amp;quot;{type}.{cntr}[;{type}.{cntr}]&amp;quot;, where:&amp;lt;br/&amp;gt;&lt;br /&gt;
- type: DAQ type, as LogicLev, DAQGate, ...;&amp;lt;br/&amp;gt;&lt;br /&gt;
- cntr: controller ID strictly or by RE as &amp;quot;/{RE}/&amp;quot;.&lt;br /&gt;
| String || Sources for representing on this frame with their selection for not fixed mode.&lt;br /&gt;
|-&lt;br /&gt;
| srcFIX || Fixed source(s) || Boolean || The fixed sources are appended all to the sources table and without a possibility to select ones by the user.&lt;br /&gt;
|-&lt;br /&gt;
| titleFIX || Fixed title || String || The fixed title without changing with changing the source.&lt;br /&gt;
|-&lt;br /&gt;
| visualEls || Visual elements || Text || XML-Tree of the visual elements and their preset items, which are saved in the session after edition in runtime.&lt;br /&gt;
|-&lt;br /&gt;
| btEdit &amp;gt; en || Enabled || Boolean || Enabling(default)/disabling a button of call the source table for editing.&lt;br /&gt;
|-&lt;br /&gt;
| srcTitle &amp;gt; en || Enabled || Boolean || Enabling(default)/disabling the source title.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== {{Anch|Panels|Панелі управління та прості діалоги}} ==&lt;br /&gt;
Містить елементи-кадри панелей управління та простих діалогів, які складно або не потрібно реалізовувати у вигляді панелей. Ці кадри призначено для розташування у відповідній теці панелей дерева проекту, побудованого за [[#RootPgSo|концепцією об'єктів сигналізації кореневої сторінки &amp;quot;RootPgSo&amp;quot;]]. Кадри переважно не призначені для використання окремо, оскільки часто репрезентують специфіку даних до яких надають елементи управління або розширену інформацію, а відтак мають використовуватися разом із ними, окрім випадків уніфікації, узагальнення та розширення контролю примітивами!&lt;br /&gt;
&lt;br /&gt;
Ці елементи переважно відкриваються динамічно, за викликом із елементу-віджету первинного представлення, здійснюючи при цьому [[Special:MyLanguage/Sub-projects/VCA#LinkingDyn|динамічне зв'язування зв'язків панелі у групі &amp;quot;&amp;lt;page&amp;gt;&amp;quot;]] з віджетом (часто сторінкою), який викликав цю панель. Подальша робота, до закриття, здійснюється із даними віджета, що викликав.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=terminator /&amp;gt;&lt;br /&gt;
| {{Anch|terminator|&amp;lt;h3&amp;gt;Термінальна панель ([[Special:MyLanguage/Libs/Main_graphical_elements#terminator|terminator]])&amp;lt;/h3&amp;gt;}} || 1.1 || GPLv2 || * || en, uk, ru &amp;lt;section end=terminator /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
Елемент панелі, представлений на рисунку 4.1, слугує для заповнення простору контейнеру панелей, коли не обрано активного візуального елементу для управління на основному кадрі, оскільки закриття або очищення кадрів у області контейнеру не передбачено, лише заміна.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_terminatorD_uk.png|center|frame|Рис.4.1. Елемент панелі &amp;quot;Термінальна панель&amp;quot;.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Цей елемент має бути розташовано у логічному контейнері панелей дерева проекту.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
Виклик панелі здійснюється із [[#RootPgSo|головної сторінки &amp;quot;RootPgSo&amp;quot;]] за зміни об'єкту сигналізації або виду відображення.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ElCadr /&amp;gt;&lt;br /&gt;
| {{Anch|ElCadr|&amp;lt;h3&amp;gt;Елемент кадр ([[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|ElCadr]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.4 || GPLv2 || * || en, uk, ru &amp;lt;section end=ElCadr /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Елемент, представлений на рисунках 4.2, фактично є універсальною панеллю управління та розширеного контролю різними пристроями за усіма відомими та визначеними представницькими структурами базових даних систем управління за DAQ-шаблонами:&lt;br /&gt;
* аналогові: [[Special:MyLanguage/Libs/Main#anUnif|аналоговий сигнал]], [[Special:MyLanguage/Libs/Main#manInUnif|ручний ввід аналогового сигналу]], ПІД-регулятор ([[Special:MyLanguage/Libs/Main#pidUnif|аналоговий]] та [[Special:MyLanguage/Libs/Main#pidUnifImp|імпульсний]]);&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main#digitBlockUnif|дискретні збірки]]: клапани, відсікачі, засувки, двигуни, вентилятори та різноманітні перемикачі;&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main#codeState|довільні дискретні стани]].&lt;br /&gt;
&lt;br /&gt;
У первинній функції панелі — розширене та загальне керування, цей елемент викликається з:&lt;br /&gt;
* [[#Widgets|віджетів первинного представлення даних]] цієї бібліотеки: &amp;quot;[[#anShow|Відображення аналогового]]&amp;quot;, &amp;quot;[[#anShow|Відображення аналогового 1]]&amp;quot;, &amp;quot;[[#TextLab|Текстова мітка]]&amp;quot;, &amp;quot;[[#ImgLab|Мітка зображенням]]&amp;quot;;&lt;br /&gt;
* [[#MainFrames|основних кадрів]]: &amp;quot;[[#grpGraph|Група графіків]]&amp;quot;, &amp;quot;[[#ViewCadr|Група оглядових кадрів]]&amp;quot;, &amp;quot;[[#cntrRegul|Панель налаштування регулятора]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Якщо використання цього елементу у якості панелі керування не є обов'язковим, у першу чергу у віджетах первинного представлення та через їх спеціалізацію на окремих типах даних, щодо яких можна створити окрему панель. То завдяки високій універсальності, через підтримку всіх відомих репрезентативних структур DAQ-шаблонів, її обов'язково використовувати у основних кадрах, як це зроблено у кадрі &amp;quot;[[#grpCadr|Група контурів]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_ElCadrD_uk.png|center|frame|Рис.4.2a. Віджет &amp;quot;Елемент кадр&amp;quot; у режимі розробки.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Панель не передбачає спеціальної конфігурації користувачем, вона має лише бути розташована у теці панелей дерева проекту [[#RootPgSo|концепції об'єктів сигналізації кореневої сторінки &amp;quot;RootPgSo&amp;quot;]], що передбачатиме її динамічний виклик та відкриття у контейнері панелей управління кореневої сторінки.&lt;br /&gt;
&lt;br /&gt;
Ідентифікатор панелі, при розміщені, має зберігатися та рядок її виклику, за отриманням фокусу, у атрибуті обробки подій &amp;quot;evProc&amp;quot; первинного віджету набуде вигляду &amp;quot;ws_FocusIn::open:/pg_control/pg_ElCadr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
''Покази аналогового параметру'' — у цьому режимі немає жодного управління, а здійснюється лише відображення одиниці виміру, значення, гістограми значення та найменування параметру.&lt;br /&gt;
&lt;br /&gt;
''Ручне введення аналогового параметру'' — крім відображення показів аналогового параметру відображаються кнопки введення нового значення. Введення значення відображається у полі значень нагорі, у підсвіченому прямокутнику. Для підтвердження правильності введення необхідно натиснути лівою клавішею миші у області підсвіченого прямокутника, без чого набране значення буде скинуто через декілька секунд.&lt;br /&gt;
&lt;br /&gt;
''Режим ПІД-регулятору'' — до значення змінної та її гістограми додається значення та гістограма завдання та виходу ПІД-регулятору, кнопки для введення нового значення, завдання або виходу, а також кнопки встановлення режиму регулятору та поле відображення поточного режиму. Також, для користувача з відповідними правами (&amp;quot;root:ITW&amp;quot;), доступно кнопку переходу до кадру налаштувань коефіцієнтів ПІД-регулятору. У випадку із імпульсним ПІД-регулятором замість гістограми аналогового виходу відображаються трикутники стану імпульсного виходу &amp;quot;Нагору&amp;quot; та &amp;quot;Додолу&amp;quot;, а ручне введення виходу призводить до прямого формування імпульсу, відповідно донизу або додолу.&lt;br /&gt;
&lt;br /&gt;
''Режим дискретного пристрою'' — у цьому режимі здійснюється відображення найменування та поля дискретної збірки параметру. Поле дискретної збірки містить поточний стан дискретного пристрою, ліворуч, та кнопки можливих команд пристрою, праворуч. Передбачено два стани пристрою: &amp;quot;Відкрито&amp;quot;, &amp;quot;Закрито&amp;quot; та три команди: &amp;quot;Відкрити&amp;quot;, &amp;quot;Закрити&amp;quot;, &amp;quot;Стоп&amp;quot;. Найменування станів та команд може бути встановлено під час налаштування. Зміна стану дискретного пристрою визначається натиском на кнопку відповідної команди. У режимі прямих дискретних станів формується комбобокс із переліком елементів з ''digComs'', поточним станом із ''st_text'' та надсиланням команд у ''com_text''.&lt;br /&gt;
&lt;br /&gt;
Кожна дія на цій панелі управління (зміна завдання ПІД-регулятору, зміна стану дискретного параметру, ...) реєструється у журналі (протоколі) втручань згідно до [[Special:MyLanguage/Documents/Program_manual#ArchMess|структури повідомлень дій оператору]].&lt;br /&gt;
&lt;br /&gt;
Для кожного відображуваного або керованого параметру можна отримати [[#Passport|паспорт]], шляхом натискання правої клавіші миші на поле контуру. У паспорті буде представлено всі властивості параметру.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Кадр наразі підтримує функціювання із дуже великим значенням &amp;quot;Період опрацювання&amp;quot; та це значення наразі встановлено для спадкування від батьківської сторінки/сеансу (значення -1). Це можливе завдяки механізму раннього опрацювання подій та можливості контролю періодичності опрацювання із процедури.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_elcadr_uk.png|center|frame|Рис.4.2b. Віджет &amp;quot;Елемент кадр&amp;quot; у режимі виконання.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| prmId || Параметр: ідентифікатор || Рядок || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;SHIFR || Ідентифікатор параметру, використовується лише для визначення відповідної сторінки контролю ПІД.&lt;br /&gt;
|-&lt;br /&gt;
| prmShifr || Параметр: шифр || Рядок (переклад) || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;NAME || Коротка назва параметру — шифр, для розміщення під фреймом та до дій користувача-оператору.&lt;br /&gt;
|-&lt;br /&gt;
| prmDescr || Параметр: опис || Рядок (переклад) || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;DESCR || Опис параметру, для розміщення до дій користувача-оператору.&lt;br /&gt;
|-&lt;br /&gt;
| prmColor || Параметр: колір границі || Рядок || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;color || Встановлює колір рамки контуру.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Властивості аналогових пристроїв''&lt;br /&gt;
|-&lt;br /&gt;
| prmDemention || Параметр: одиниця виміру || Рядок (переклад) || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;ed ||&lt;br /&gt;
|-&lt;br /&gt;
| prmPrec || Параметр: точність (знаків) || Цілий || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;prec || Кількість знаків після коми значення параметру та крок зміни ручного вводу значення, а також завдання та виходу ПІД регулятору.&lt;br /&gt;
|-&lt;br /&gt;
| prmVar || Параметр: змінна || Реальний || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;var || Безпосереднє значення аналогового параметру.&lt;br /&gt;
|-&lt;br /&gt;
| max || Параметр: максимум || Реальний || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;max || Максимальна границя значення параметру.&lt;br /&gt;
|-&lt;br /&gt;
| min || Параметр: мінімум || Реальний || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;min || Мінімальна границя значення параметру.&lt;br /&gt;
|-&lt;br /&gt;
| prmAMax || Параметр: границя верхня аварійна || Реальний || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;aMax ||&lt;br /&gt;
|-&lt;br /&gt;
| prmAMin || Параметр: границя нижня аварійна || Реальний || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;aMin ||&lt;br /&gt;
|-&lt;br /&gt;
| prmWMax || Параметр: границя верхня попереджув. || Реальний || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;wMax ||&lt;br /&gt;
|-&lt;br /&gt;
| prmWMin || Параметр: границя нижня попереджув. || Реальний || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;wMin ||&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Ручний аналоговий ввід''&lt;br /&gt;
|-&lt;br /&gt;
| prmVarIn || Параметр: ввід змінної || Реальний || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;varIn || Вихід ручного вводу значення аналогового параметру. Наявність цього параметру є ознакою того, що параметр визначається як &amp;quot;Ручний аналоговий ввід&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''ПІД-регулятор''&lt;br /&gt;
|-&lt;br /&gt;
| prmAnalog || Параметр: аналоговий регулятор || Логічний || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;analog || Ознака аналогового регулятору, за відсутності якого регулятор рахується імпульсним.&lt;br /&gt;
|-&lt;br /&gt;
| prmAuto || Параметр: автомат || Логічний || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;auto || Режим регулятору &amp;quot;Автомат&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| prmCasc || Параметр: каскад || Логічний || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;casc || Режим регулятору &amp;quot;Каскад&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| prmSp || Параметр: завдання || Реальний || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;sp || Завдання ПІД-регулятору, яке може бути встановлено користувачем.&lt;br /&gt;
|-&lt;br /&gt;
| prmImpQdwnTm || Параметр: імпульсний вихід вниз || Логічний || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;impQdwn || Вихід &amp;quot;Донизу&amp;quot; імпульсного регулятору.&lt;br /&gt;
|-&lt;br /&gt;
| prmImpQupTm || Параметр: імпульсний вихід вгору || Логічний || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;impQup || Вихід &amp;quot;Догори&amp;quot; імпульсного регулятору.&lt;br /&gt;
|-&lt;br /&gt;
| prmOut || Параметр: вихід || Реальний || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;out || Вихід аналогового ПІД-регулятору для відображення та ручного вводу значення виходу ПІД, у ручному режимі.&lt;br /&gt;
|-&lt;br /&gt;
| prmManIn || Параметр: ручний ввід || Реальний || Повний зв'язок || Parameter&amp;amp;#124;manIn || Ручний ввід нового значення виходу ПІД-регулятору у ручному режимі.&lt;br /&gt;
|-&lt;br /&gt;
| prmNotPID || Параметр: Примусово вимкнути ПІД || Логічний || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;notPID || Використати за бажання вимкнути представлення ПІД для параметрів із завданням.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Властивості дискретних пристроїв''&lt;br /&gt;
|-&lt;br /&gt;
| prmCom || Параметр: команда - &amp;quot;Відкрити&amp;quot; || Логічний || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;com ||&lt;br /&gt;
|-&lt;br /&gt;
| prmClose || Параметр: команда - &amp;quot;Закрити&amp;quot; || Логічний || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;close ||&lt;br /&gt;
|-&lt;br /&gt;
| prmStop || Параметр: команда - &amp;quot;Стоп&amp;quot; || Логічний || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;stop ||&lt;br /&gt;
|-&lt;br /&gt;
| prmComText || Параметр: текст команди || Рядок || Повний зв'язок || Parameter&amp;amp;#124;com_text || Текст команди прямо, отриманий з ''digComs'' при формуванні комбобоксу обрання.&lt;br /&gt;
|-&lt;br /&gt;
| digComs || Параметр: дискр. команди || Рядок (переклад) || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;digComs || Конфігурація команд параметру зі структурою '''{openLabel}-{color};{closeLabel}-{color};{stopLabel}-{color}''', для дискретного блоку, та '''{com1Label}-{color};{com2Label}-{color};...;{comNLabel}-{color}''', для статусу за кодом. Кольори по замовченню для дискретного блоку: &amp;quot;зелений&amp;quot;, &amp;quot;червоний&amp;quot; та &amp;quot;жовтий&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| prmOpenSt || Параметр: стан - &amp;quot;Відкрито&amp;quot; || Логічний || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;st_open ||&lt;br /&gt;
|-&lt;br /&gt;
| prmCloseSt || Параметр: стан - &amp;quot;Закрито&amp;quot; || Логічний || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;st_close ||&lt;br /&gt;
|-&lt;br /&gt;
| prmStText || Параметр: текст статусу || Рядок || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;st_text || Текст статусу прямо.&lt;br /&gt;
|-&lt;br /&gt;
| digStts || Параметр: дискр. стани || Рядок (переклад) || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;digStts || Конфігурація статусів параметру зі структурою '''{openedLabel}-{color};{closedLabel}-{color}''', для дискретного блоку. Кольори по замовченню: &amp;quot;зелений&amp;quot; та &amp;quot;червоний&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=cntrPaspExt /&amp;gt;&lt;br /&gt;
| {{Anch|cntrPaspExt|&amp;lt;h3&amp;gt;Паспорт, розширений ([[Special:MyLanguage/Libs/Main_graphical_elements#cntrPaspExt|cntrPaspExt]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=cntrPaspExt /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Елемент, представлений на рисунку 4.3, є інформаційно-контрольним діалогом довкола параметру джерела даних — розширений паспорт параметру. На відміну від [[#cntrPasp|простого паспорту]], розширений, окрім інформації, надає можливість контролю за атрибутами параметру та відображення історії стандартних атрибутів як у вигляді тренду, так і таблиці даних.&lt;br /&gt;
&lt;br /&gt;
''Інформація та контроль'' за атрибутами параметру залишається основною функцію, яка надається у вкладці &amp;quot;Огляд&amp;quot;, де формується таблиця атрибутів як вони є, із стовпчиками &amp;quot;Ім'я&amp;quot; та &amp;quot;Значення&amp;quot;. Таблиця активна та за обрання доступних до запису атрибутів, та відповідних прав (root:op), знизу надається поле введення нових значень.&lt;br /&gt;
&lt;br /&gt;
''Історія'' надається у наступних двох вкладках &amp;quot;Тренди&amp;quot; та &amp;quot;Дані&amp;quot;, які можуть бути й відсутні за відсутності історії-архівів за стандартними атрибутами. Вкладка &amp;quot;Тренди&amp;quot; містить область графіків, [[Special:MyLanguage/Sub-projects/VCA#Diagram|примітив &amp;quot;Діаграма&amp;quot;]], на більшій частині вікна, та таблицю унизу із назвами, кольором та шкалами графіків. Графіки періодично оновлюються та будуються з періодом 1 секунда, та на фіксовану глибиною у 1 годину. Вкладка &amp;quot;Дані&amp;quot; містить лише поле [[Special:MyLanguage/Sub-projects/VCA#Document|примітиву &amp;quot;Документ&amp;quot;]] із таблицею зі значеннями атрибуту у стовпчиках, яка оновлюється з періодом 1 секунда для періоду даних історії та на глибину у 100 записів. Стандартними атрибутами із історією вважаються наступні елементи [[Special:MyLanguage/Libs/Main|представницьких структур параметру]]:&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main#anUnif|Аналоговий сигнал]]:&lt;br /&gt;
** '''var''' — змінна.&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main#pidUnif|ПІД-регулятор]]:&lt;br /&gt;
** '''sp''' — завдання;&lt;br /&gt;
** '''out''' — вихід;&lt;br /&gt;
** '''auto''' — режим: автомат.&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main#codeState|Дискретні збірки]]:&lt;br /&gt;
** '''com''' — команда &amp;quot;Відкрити&amp;quot;;&lt;br /&gt;
** '''close''' — команда &amp;quot;Закрити&amp;quot;;&lt;br /&gt;
** '''stop''' — команда &amp;quot;Зупинити&amp;quot;;&lt;br /&gt;
** '''st_open''' — стан &amp;quot;Відкрито&amp;quot;;&lt;br /&gt;
** '''st_close''' — стан &amp;quot;Закрито&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Для побудови трендів аналогових параметрів окремо обробляються атрибути загальної шкали ['''min'''...'''max'''], а також аварійних ['''aMin'''...'''aMax'''] та попереджувальних шкал ['''wMin'''...'''wMax'''], які, зокрема, відображаються й на графіку.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Наразі цей діалог є основним та він замінив [[#cntrPasp|простий діалог паспорту]].&lt;br /&gt;
&lt;br /&gt;
* '''Спонсоровано:''' ПАТ ХАРТРОН&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_cntrPaspExt_uk.png|center|frame|Рис.4.3. Діалог &amp;quot;Паспорт, розширений&amp;quot; у режимі виконання.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Діалог не передбачає спеціальної конфігурації користувачем, він має лише бути розташований у теці панелей дерева проекту [[#RootPgSo|концепції об'єктів сигналізації кореневої сторінки &amp;quot;RootPgSo&amp;quot;]], що передбачатиме його динамічний виклик та відкриття, як зовнішнє діалогове вікно.&lt;br /&gt;
&lt;br /&gt;
Ідентифікатор діалогу, при розміщені, має бути змінений у &amp;quot;cntrPasp&amp;quot; та рядок його виклику, за натиском правої клавіші миші, у атрибуті обробки подій &amp;quot;evProc&amp;quot; первинного віджету набуде вигляду &amp;quot;key_mousePresRight::open:/pg_control/pg_cntrPasp&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
Діалог надає користувачу, у вкладці &amp;quot;Огляд&amp;quot;, інформацію довкола параметру джерела даних у вигляді переліку та значень всіх властивостей-атрибутів параметру у таблиці. Де атрибути, доступні до запису, можуть редагуватися відповідно до прав доступу &amp;quot;root:op&amp;quot; у полі редагування, що з'являється знизу за обранням такого атрибуту.&lt;br /&gt;
&lt;br /&gt;
Стосовно історії, користувач може спостерігати тренди у вкладці &amp;quot;Тренди&amp;quot; та дані у вкладці &amp;quot;Дані&amp;quot;. Для трендів, користувач може також підсвітити якийсь з них, обравши його у таблиці знизу, та відкоригувати шкалу якщо вона помилкова.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| pName || Ім'я параметру || Адреса || Вхідний зв'язок || Parameter&amp;amp;#124;NAME || Адреса до назви параметру для звернення до параметру цілком та вилучення всіх його властивостей.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=cntrPasp /&amp;gt;&lt;br /&gt;
| {{Anch|cntrPasp|&amp;lt;h3&amp;gt;Паспорт ([[Special:MyLanguage/Libs/Main_graphical_elements#cntrPasp|cntrPasp]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.0 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=cntrPasp /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Елемент, представлений на рисунку 4.4, є інформаційним діалогом довкола параметру джерела даних — паспорт параметру, відповідно він дозволяє отримати такого роду інформацію як: шифр, ім'я, опис, одиницю виміру, аварійні границі та інше, відповідне до [[Special:MyLanguage/Libs/Main|представницької структури параметру]] — атрибути параметру. Діалог побудовано на основі [[Special:MyLanguage/Sub-projects/VCA#Document|примітиву &amp;quot;Документ&amp;quot;]], вміст якого формується динамічно та періодично оновлюється.&lt;br /&gt;
&lt;br /&gt;
У побудові паспорту окремо обробляються атрибути аварійних ['''aMin'''...'''aMax'''] та попереджувальних шкал ['''wMin'''...'''wMax'''], які поєднуються у одному записі та взагалі можуть приховуватися за умови їх вимкнення.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Наразі цей діалог фактично замінено [[#cntrPaspExt|більш функціональним та розширеним діалогом паспорту]] та його переважно вимкнено у всіх шаблонних та демонстраційних проектах, хоча ніхто не заважає його використанню, якщо потрібно лише інформацію.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_cntrPasp_uk.png|center|frame|Рис.4.4. Діалог &amp;quot;Паспорт&amp;quot; у режимі виконання.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Діалог не передбачає спеціальної конфігурації користувачем, він має лише бути розташований у теці панелей дерева проекту [[#RootPgSo|концепції об'єктів сигналізації кореневої сторінки &amp;quot;RootPgSo&amp;quot;]], що передбачатиме його динамічний виклик та відкриття, як зовнішнє діалогове вікно.&lt;br /&gt;
&lt;br /&gt;
Ідентифікатор діалогу, при розміщені, має зберігатися та рядок його виклику, за натиском правої клавіші миші, у атрибуті обробки подій &amp;quot;evProc&amp;quot; первинного віджету набуде вигляду &amp;quot;key_mousePresRight::open:/pg_control/pg_cntrPasp&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
Діалог лише надає користувачу інформацію довкола параметру джерела даних у вигляді переліку та значень всіх властивостей-атрибутів параметру у таблиці.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| pName || Ім'я параметру || Адреса || Вхідний зв'язок || Parameter&amp;amp;#124;NAME || Адреса до назви параметру для звернення до параметру цілком та вилучення всіх його властивостей.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=grph_panel /&amp;gt;&lt;br /&gt;
| {{Anch|grph_panel|&amp;lt;h3&amp;gt;Панель графіків ([[Special:MyLanguage/Libs/Main_graphical_elements#grph_panel|grph_panel]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.6 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=grph_panel /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Елемент, представлений на рисунку 4.5, є спеціалізованою панеллю динамічного керування основними користувацькими властивостями [[Special:MyLanguage/Sub-projects/VCA#Diagram|примітиву &amp;quot;Діаграма&amp;quot;]]. Так, панель дозволяє переглянути графіки історії за потрібний проміжок часу та на потрібну роздільну здатність, підтримується: масштабування шкали, вибір архіваторів для відображення, а також надання графіків у вигляді спектру присутніх частот або XY.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_grph_panel_uk.png|center|frame|Рис.4.5. Панель графіків у режимі розробки та виконання (зліва праворуч).]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Панель не передбачає спеціальної конфігурації користувачем, вона має лише бути розташована у теці панелей дерева проекту [[#RootPgSo|концепції об'єктів сигналізації кореневої сторінки &amp;quot;RootPgSo&amp;quot;]], що передбачатиме її динамічний виклик та відкриття у контейнері панелей управління кореневої сторінки.&lt;br /&gt;
&lt;br /&gt;
Ідентифікатор панелі, при розміщені, має зберігатися та рядок її виклику, за отриманням фокусу, у атрибуті обробки подій &amp;quot;evProc&amp;quot; первинного віджету набуде вигляду &amp;quot;ws_FocusIn::open:/pg_control/pg_grph_panel&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
За допомогою панелі користувач має можливість:&lt;br /&gt;
* обрати режим відображення графіків діаграми: &amp;quot;Графік&amp;quot;, &amp;quot;Спектр частот&amp;quot;, &amp;quot;XY&amp;quot;;&lt;br /&gt;
* обрати час формування діаграми;&lt;br /&gt;
* здійснити навігацію за діаграмою на пів або п'ять розмірів області графіку або встановлення часу генерації діаграми у поточний час та час курсору;&lt;br /&gt;
* отримати інформацію про час або частоту у поточному положенні курсору;&lt;br /&gt;
* обрати розмір (глибину) формування графіку або встановити час початку, також у час курсору;&lt;br /&gt;
* обрати архів, що використовується для побудови графіків, з правами доступу &amp;quot;root:ITW&amp;quot;;&lt;br /&gt;
* керувати вертикальною та горизонтальною шкалою відображення: збільшення та зменшення масштабу, зсуву шкали нагору та додолу, повернення масштабу до початкового значення;&lt;br /&gt;
* перемикати режим масштабування шляхом обрамлення вікном, мишею.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| tSek || Час тренду || ДатаЧас || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;tSek ||&lt;br /&gt;
|-&lt;br /&gt;
| tSize || Розмір тренду || Реальний || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;tSize || Часовий розмір-інтервал графіку у історію від часу тренду.&lt;br /&gt;
|-&lt;br /&gt;
| trcPer || Період слідкування || Цілий || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;trcPer || Період оновлення-слідкування графіку.&lt;br /&gt;
|-&lt;br /&gt;
| type || Тип || Цілий || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;type || Тип графіку: &amp;quot;Тренд&amp;quot;, &amp;quot;Спектр частот&amp;quot;, &amp;quot;XY&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| valArch || Архіватор || Рядок || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;valArch ||&lt;br /&gt;
|-&lt;br /&gt;
| curSek || Курсор || ДатаЧас || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;curSek || Час встановлення курсору.&lt;br /&gt;
|-&lt;br /&gt;
| curUSek || Курсор, мікросекунди || Цілий || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;curUSek || Час встановлення курсору, мікросекунди.&lt;br /&gt;
|-&lt;br /&gt;
| sclVer || Вертикальний масштаб || Реальний || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;sclVerScl || Відсоток вертикального масштабу.&lt;br /&gt;
|-&lt;br /&gt;
| sclVerOff || Зміщення вертикального масштабу || Реальний || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;sclVerSclOff || Відсоток зміщення за вертикальною шкалою.&lt;br /&gt;
|-&lt;br /&gt;
| sclHor || Горизонтальна шкала || Реальний || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;sclHorScl || Відсоток горизонтального масштабу.&lt;br /&gt;
|-&lt;br /&gt;
| sclHorOff || Зсув горизонтальної шкали || Реальний || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;sclHorSclOff || Відсоток зміщення за горизонтальною шкалою.&lt;br /&gt;
|-&lt;br /&gt;
| sclWin || Масштаб вікном || Логічний || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;sclWin || Перемикання режиму масштабування вікном.&lt;br /&gt;
|-&lt;br /&gt;
| sclWinCtx || Масштаб: контекст вікном || Об'єкт || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;sclWinCtx || Контекст збереження початкових параметрів масштабування вікном, для повернення.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=doc_panel /&amp;gt;&lt;br /&gt;
| {{Anch|doc_panel|&amp;lt;h3&amp;gt;Панель документів ([[Special:MyLanguage/Libs/Main_graphical_elements#doc_panel|doc_panel]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=doc_panel /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Елемент, представлений на рисунку 4.6, є спеціалізованою панеллю динамічного керування основними користувацькими властивостями [[Special:MyLanguage/Sub-projects/VCA#Document|примітиву &amp;quot;Документ&amp;quot;]]. Так, панель дозволяє керувати документами та здійснювати навігації за їх історією; підтримуються динамічні та архівні документи.&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_doc_panel_uk.png|center|frame|Рис.4.6. Панель документів у режимі розробки та виконання (динамічний та архівний), зліва праворуч.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Панель не передбачає спеціальної конфігурації користувачем, вона має лише бути розташована у теці панелей дерева проекту [[#RootPgSo|концепції об'єктів сигналізації кореневої сторінки &amp;quot;RootPgSo&amp;quot;]], що передбачатиме її динамічний виклик та відкриття у контейнері панелей управління кореневої сторінки.&lt;br /&gt;
&lt;br /&gt;
Ідентифікатор панелі, при розміщені, має зберігатися та рядок її виклику, за отриманням фокусу, у атрибуті обробки подій &amp;quot;evProc&amp;quot; первинного віджету набуде вигляду &amp;quot;ws_FocusIn::open:/pg_control/pg_doc_panel&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
Панеллю надаються інструменти, які дещо відрізняються для динамічного та архівного режимів.&lt;br /&gt;
&lt;br /&gt;
''Динамічним документом'' передбачається:&lt;br /&gt;
* обрання часу формування документу;&lt;br /&gt;
* обрання розміру (глибини) формування документу або часу початку;&lt;br /&gt;
* навігація за документом на один або п'ять розмірів-глибини документу;&lt;br /&gt;
* встановлення часу генерації документу у поточний час.&lt;br /&gt;
&lt;br /&gt;
''Архівним документом'' передбачається лише навігація за документами у архіві шляхом їх гортання, а також інформація про поточний та загальну кількість документів у архіві.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Динамічні документи''&lt;br /&gt;
|-&lt;br /&gt;
| time || Час документа || ДатаЧас || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;time ||&lt;br /&gt;
|-&lt;br /&gt;
| bTime || Початок документа || ДатаЧас || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;bTime ||&lt;br /&gt;
|-&lt;br /&gt;
| doc || Документ || Рядок || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;doc ||&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; | ''Архівні документи''&lt;br /&gt;
|-&lt;br /&gt;
| n || Розмір архіву || Цілий || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;n ||&lt;br /&gt;
|-&lt;br /&gt;
| vCur || Курсор відображення || Цілий || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;vCur ||&lt;br /&gt;
|-&lt;br /&gt;
| aCur || Курсор архіву || Цілий || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;aCur ||&lt;br /&gt;
|-&lt;br /&gt;
| aSize || Розмір архіву || Цілий || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;aSize ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=accept /&amp;gt;&lt;br /&gt;
| {{Anch|accept|&amp;lt;h3&amp;gt;Підтвердження ([[Special:MyLanguage/Libs/Main_graphical_elements#accept|accept]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.0 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=accept /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Елемент на рисунку 4.7 реалізує простий діалог підтвердження операцій. Діалог містить повідомлення з питанням та дві кнопки &amp;quot;Прийняти&amp;quot; й &amp;quot;Скасувати&amp;quot;. Цей діалог, наприклад, використано у кадрі [[#userManager|Менеджер користувачів]] для підтвердження операції видалення.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсорування:''' Василь Григор'єв, [http://e-beam.ru Лабораторія Вакуумних Технологій]&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_accept_uk.png|center|frame|Рис.4.7. Діалог &amp;quot;Підтвердження&amp;quot; у режимі розробки та виконання.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Діалог не передбачає спеціальної конфігурації користувачем, він має лише бути розташований у теці панелей дерева проекту [[#RootPgSo|концепції об'єктів сигналізації кореневої сторінки &amp;quot;RootPgSo&amp;quot;]], що передбачатиме його динамічний виклик та відкриття, як зовнішнє діалогове вікно.&lt;br /&gt;
&lt;br /&gt;
Ідентифікатор діалогу, при розміщені, має зберігатися та рядок його виклику, за натиском кнопки &amp;quot;progDel&amp;quot;, у атрибуті обробки подій &amp;quot;evProc&amp;quot; первинного віджету набуде вигляду &amp;quot;ws_BtPress:/progDel:open:/pg_control/pg_accept&amp;quot;. З атрибуту &amp;quot;mess&amp;quot; береться повідомлення питання, а у &amp;quot;event&amp;quot; передається сигнал &amp;quot;dlg_Apply&amp;quot;, за підтвердження.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
Виклик діалогу здійснюється із кадру-ініціатору, а закриття відбувається за натиском будь-якої кнопки діалогу. У випадку натиску кнопки &amp;quot;Прийняти&amp;quot; кадру-ініціатору буде надіслано сигнал &amp;quot;dlg_Apply&amp;quot;, за яким він може виконати потрібні дії.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| elEvent || Елемент: подія || Рядок || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;event || Використовується для надсилання повідомлення &amp;quot;dlg_Apply&amp;quot; у випадку підтвердження.&lt;br /&gt;
|-&lt;br /&gt;
| elMess || Елемент: повідомлення || Рядок || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;mess || Джерело повідомлення питання у діалозі.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=treeSelect /&amp;gt;&lt;br /&gt;
| {{Anch|treeSelect|&amp;lt;h3&amp;gt;Вибір елементу у дереві ([[Special:MyLanguage/Libs/Main_graphical_elements#treeSelect|treeSelect]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.0 || GPLv2 || * || en, uk, ru&lt;br /&gt;
&amp;lt;section end=treeSelect /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]] || -1 мс (предок)&lt;br /&gt;
|}&lt;br /&gt;
Елемент на рисунку 4.8 реалізує простий діалог операції обрання пункту у дереві. Діалог містить саме дерево та дві кнопки &amp;quot;Прийняти&amp;quot; й &amp;quot;Скасувати&amp;quot;. Цей діалог, наприклад, використано, та первинно для нього розроблявся, у кадрі &amp;quot;[[Special:MyLanguage/Libs/Prescriptions#prescrRunSimple|Рецепт:виконання (простий)]]&amp;quot; для ієрархічного обрання елементу у дереві.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсорування:''' Василь Григор'єв, [http://e-beam.ru Лабораторія Вакуумних Технологій]&lt;br /&gt;
&lt;br /&gt;
[[file:LibMainEls_treeSelect_uk.png|center|frame|Рис.4.8. Діалог &amp;quot;Вибір елементу у дереві&amp;quot; у режимі розробки та виконання.]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — розробка}}&lt;br /&gt;
Діалог не передбачає спеціальної конфігурації користувачем, він має лише бути розташований у теці панелей дерева проекту [[#RootPgSo|концепції об'єктів сигналізації кореневої сторінки &amp;quot;RootPgSo&amp;quot;]], що передбачатиме його динамічний виклик та відкриття, як зовнішнє діалогове вікно.&lt;br /&gt;
&lt;br /&gt;
Ідентифікатор діалогу, при розміщені, має зберігатися та рядок його виклику, за натиском кнопки &amp;quot;lib&amp;quot;, у атрибуті обробки подій &amp;quot;evProc&amp;quot; первинного віджету набуде вигляду &amp;quot;ws_BtPress:/lib:open:/pg_control/pg_treeSelect&amp;quot;. З атрибуту &amp;quot;items&amp;quot; береться перелік елементів, із &amp;quot;selValue&amp;quot; обране значення, а у &amp;quot;event&amp;quot; передається сигнал &amp;quot;dlg_Apply&amp;quot;, за підтвердження.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Використання — виконання}}&lt;br /&gt;
Виклик діалогу здійснюється із кадру-ініціатору, а закриття відбувається за натиском будь-якої кнопки діалогу. У випадку натиску кнопки &amp;quot;Прийняти&amp;quot; кадру-ініціатору буде надіслано сигнал &amp;quot;dlg_Apply&amp;quot;, за яким він застосує обраний елемент.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Властивості зв'язування та конфігурації}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Конфігурація !! Конфігураційний шаблон !! Опис&lt;br /&gt;
|-&lt;br /&gt;
| elEvent || Елемент: подія || Рядок || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;event || Використовується для надсилання повідомлення &amp;quot;dlg_Apply&amp;quot; у випадку підтвердження.&lt;br /&gt;
|-&lt;br /&gt;
| elItems || Елемент: перелік елементів || Текст || Вхідний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;items || Джерело переліку елементів у діалозі.&lt;br /&gt;
|-&lt;br /&gt;
| selValue || Елемент: обране значення || Рядок || Повний зв'язок || &amp;lt;page&amp;gt;&amp;amp;#124;selValue || Джерело обраного елементу у діалозі.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Libs/Main_graphical_elements/364/en&amp;diff=93966</id>
		<title>Translations:Libs/Main graphical elements/364/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Libs/Main_graphical_elements/364/en&amp;diff=93966"/>
				<updated>2026-05-10T04:50:29Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For user access limitation there provided now only a mechanism of including the allowed for edition users to the group &amp;quot;ITW&amp;quot;.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Libs/Main_graphical_elements/355/en&amp;diff=93964</id>
		<title>Translations:Libs/Main graphical elements/355/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Libs/Main_graphical_elements/355/en&amp;diff=93964"/>
				<updated>2026-05-10T04:50:28Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;XML-Tree of the visual elements allowed to place in the root node, placed visual items in the visual elements and sources with constants in the visual items.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;vEls&amp;gt;&lt;br /&gt;
  &amp;lt;el id='Main.anShow' wId=&amp;quot;aShw&amp;quot; geom=&amp;quot;100-1:40-1&amp;quot;&lt;br /&gt;
      lnkAttrs='pVal-var'&lt;br /&gt;
      constAttrs='pName-;pPrec-;pErr-;pDscr-;pModeA-;pModeC-;spName;redEVAL'&amp;gt;&lt;br /&gt;
    &amp;lt;it id='aShw_1' geom=&amp;quot;100:40&amp;quot; pos=&amp;quot;0:0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;src id=&amp;quot;LogicLev.gen.prm_F3&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;const id=&amp;quot;pName&amp;quot; isLnk=&amp;quot;1&amp;quot; lnk=&amp;quot;prm:/LogicLev/gen/F3/NAME (+)&amp;quot;&amp;gt;Test&amp;lt;/const&amp;gt;&lt;br /&gt;
    &amp;lt;/it&amp;gt;&lt;br /&gt;
  &amp;lt;/el&amp;gt;&lt;br /&gt;
  &amp;lt;el id=&amp;quot;Main.TextLab&amp;quot; wId=&amp;quot;txtLb&amp;quot; geom=&amp;quot;60-1:22-1&amp;quot;&lt;br /&gt;
      lnkAttrs=&amp;quot;st_open;st_close;st_text;com;close;com_text&amp;quot;&lt;br /&gt;
      constAttrs=&amp;quot;digStts-;digComs-;NAME-;err-;DESCR-&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;it id=&amp;quot;txtLb_1&amp;quot; geom=&amp;quot;100:22&amp;quot; pos=&amp;quot;10:10&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;src id=&amp;quot;LogicLev.gen.prm_BC6close&amp;quot; sAttr=&amp;quot;a_st_open&amp;quot; vAttr=&amp;quot;st_open&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;src id=&amp;quot;LogicLev.gen.prm_BC6close&amp;quot; sAttr=&amp;quot;a_st_close&amp;quot; vAttr=&amp;quot;st_close&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/it&amp;gt;&lt;br /&gt;
  &amp;lt;/el&amp;gt;&lt;br /&gt;
  &amp;lt;el id=&amp;quot;originals.Text&amp;quot; wId=&amp;quot;txt&amp;quot; geom=&amp;quot;100:20&amp;quot; preset=&amp;quot;color=red;&amp;quot; resize=&amp;quot;1&amp;quot;&lt;br /&gt;
      constAttrs=&amp;quot;*text;*alignment;*font;*color;*orient&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;it id=&amp;quot;txt_2&amp;quot; geom=&amp;quot;100:20&amp;quot; pos=&amp;quot;0:50&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;const id=&amp;quot;*text&amp;quot; isLnk=&amp;quot;0&amp;quot;&amp;gt;Text label&amp;lt;/const&amp;gt;&lt;br /&gt;
      &amp;lt;const id=&amp;quot;*color&amp;quot; isLnk=&amp;quot;0&amp;quot;&amp;gt;blue&amp;lt;/const&amp;gt;&lt;br /&gt;
    &amp;lt;/it&amp;gt;&lt;br /&gt;
  &amp;lt;/el&amp;gt;&lt;br /&gt;
&amp;lt;/vEls&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Libs/Main_graphical_elements/356/en&amp;diff=93965</id>
		<title>Translations:Libs/Main graphical elements/356/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Libs/Main_graphical_elements/356/en&amp;diff=93965"/>
				<updated>2026-05-10T04:50:28Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Where:&lt;br /&gt;
* ''id'' — identifier;&lt;br /&gt;
* ''wId'' — widget identifier base;&lt;br /&gt;
* ''geom'' — typical geometry with scale or for concrete visual item;&lt;br /&gt;
* ''lnkAttrs'' — list of the generic attributes through ';' for linking as data source in the form &amp;quot;{vis}[-{src}]&amp;quot;:&lt;br /&gt;
** ''vis'' — ID of the visual attribute;&lt;br /&gt;
** ''src'' — ID of the source attribute, it is the same as visual one at missing;&lt;br /&gt;
* ''constAttrs'' — list of the additional attributes through ';' for specifying manually in the form &amp;quot;{vis}[-[{src}]]&amp;quot;;&lt;br /&gt;
** ''src'' — ID of the source attribute, it is the same as visual one at missing and that is a constant at missing even the symbol ''-'', it is spare here and pointed only for its storing for ''lnkAttrs''.&lt;br /&gt;
* ''pos'' — position of the visual item;&lt;br /&gt;
* ''isLnk'' — the link sign;&lt;br /&gt;
* ''lnk'' — link value for restoring;&lt;br /&gt;
* ''sAttr'', ''vAttr'' — source and visual attributes of linking.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Libs/Main_graphical_elements/353/en&amp;diff=93963</id>
		<title>Translations:Libs/Main graphical elements/353/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Libs/Main_graphical_elements/353/en&amp;diff=93963"/>
				<updated>2026-05-10T04:50:27Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The frame provides currently and in future for next features:&lt;br /&gt;
* specifying sources as fixed or selectable; also as relinking changed sources of the same type and tracing their appearance/disappearance with automatic placing;&lt;br /&gt;
* specifying visual items in a XML-Tree with the possibility to configure all interface here or manually from the running interface;&lt;br /&gt;
* providing a hiding table of the sources and the dynamically formed control panel for adding/removing visual items per source with control their parameters: position, geometry, constants;&lt;br /&gt;
* providing visual items without sources, as constants-static, and setting attributes directly;&lt;br /&gt;
* enabling the archiving locally and remotely for DAQGate.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Translations:Libs/Main_graphical_elements/351/en&amp;diff=93962</id>
		<title>Translations:Libs/Main graphical elements/351/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Translations:Libs/Main_graphical_elements/351/en&amp;diff=93962"/>
				<updated>2026-05-10T04:50:23Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Importing a new version from external source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;section end=dynFrame /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]] || -1 ms (parent)&lt;br /&gt;
|}&lt;br /&gt;
The element-frame, shown in Figure 3.9, serves to form frames in runtime whether by the user or automatically, and it is initially created to represent data of the [[Special:MyLanguage/Documents/DAQ#PassiveAndInitiative|initiative connections]].&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Libs/Main/uk&amp;diff=93957</id>
		<title>Libs/Main/uk</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Libs/Main/uk&amp;diff=93957"/>
				<updated>2026-05-10T04:01:08Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Назва !! Версія !! Ліцензія !! Джерело !! Мови !! Автор !! Опис&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Libs/Main|Основна бібліотека]]&lt;br /&gt;
| 2.3 || GPLv2 || OscadaLibs.db ([http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/OscadaLibs.sql SQL], [[:File:OscadaLibs.db.gz|GZip]]) &amp;gt; DAQ.tmplb_base || en, uk, ru &lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
| Бібліотека основних шаблонів опрацювання DAQ-джерел та похідних сервісів.&lt;br /&gt;
* '''Засновано:''' Січень 2006&lt;br /&gt;
* '''Спонсоровано:''' залежно від елементу ...&lt;br /&gt;
* '''Використано:''' [[Special:MyLanguage/Using|більшість проектів на OpenSCADA]]&lt;br /&gt;
* '''[[Special:MyLanguage/Works/To_do|Завдання (To Do)]]:'''&lt;br /&gt;
&amp;lt;section begin=ToDo /&amp;gt;&lt;br /&gt;
&amp;lt;section end=ToDo /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Бібліотеку створено для надання основних шаблонів опрацювання DAQ-джерел та похідних сервісів.&lt;br /&gt;
&lt;br /&gt;
Назви шаблонів та їх параметрів доступні на мовах: Англійська, Українська та mRussian. Їх вихідний код написано у мово(людська)-незалежному режимі з викликом функції перекладу ''tr()'' та переклад цих повідомлень також доступний Англійською, Українською та mRussian.&lt;br /&gt;
&lt;br /&gt;
Для підключення бібліотеки до проекту станції OpenSCADA ви можете отримати файл БД як:&lt;br /&gt;
* такий що постачається з готовим та відповідним пакетом дистрибутиву Linux на кшталт &amp;quot;openscada-libdb-main&amp;quot;, &amp;quot;openscada-LibDB.Main&amp;quot;;&lt;br /&gt;
* найбільш актуальний та безпосередньо отриманий з [http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/OscadaLibs.sql репозиторію subversion], перетворений у файл БД SQLite шляхом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;BASH&amp;quot; style=&amp;quot;margin-left: 15px&amp;quot;&amp;gt;&lt;br /&gt;
wget http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/OscadaLibs.sql&lt;br /&gt;
sqlite3 -init OscadaLibs.sql OscadaLibs.db .exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* завантаження [[:File:OscadaLibs.db.gz|прикріпленого тут]].&lt;br /&gt;
&lt;br /&gt;
Цей завантажений файл ви надалі можете розмістити у теці проекту станції та створити об'єкт бази даних модуля БД &amp;quot;SQLite&amp;quot;, зареєструвавши файл бази даних у конфігурації.&lt;br /&gt;
&lt;br /&gt;
Для DAQ-шаблонів загалом Вам треба створити представницький об'єкт пристрою у [[Special:MyLanguage/Modules/LogicLev|модулі Логічного Рівня]] та обрати відповідний шаблон з бібліотеки шаблонів. Далі, для коректної конфігурації, дотримуйтесь специфіки шаблону у особистому описі.&lt;br /&gt;
&lt;br /&gt;
== Шаблони стандартних структур DAQ-параметрів ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=anUnif /&amp;gt;&lt;br /&gt;
| {{Anch|anUnif|&amp;lt;h3&amp;gt;Аналоговий сигнал, уніфікований ([[Special:MyLanguage/Libs/Main#anUnif|anUnif]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 2.4 || GPLv2 || * || en, uk, ru &amp;lt;section end=anUnif /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainAnUnifOp_uk.png|right|Результат та оперативні налаштування.]]&lt;br /&gt;
Загальний, представницький та уніфікований шаблон обробки аналогових вхідних сигналів. Шаблон формує структуру аналогового параметру (складного тегу) який може бути легко підключений до більшості віджетів та кадрів [[Special:MyLanguage/Libs/Main_graphical_elements|бібліотеки основних елементів інтерфейсу користувача]] просто вказавши об'єкт параметру.&lt;br /&gt;
&lt;br /&gt;
Представницькою структурою аналогового параметру (складного тегу) є:&lt;br /&gt;
* &amp;quot;Змінна ('''var''')&amp;quot; — кінцева змінна параметру — інженерне реальне значення, доступне та придатне до архівації.&lt;br /&gt;
* &amp;quot;Помилка ('''err''')&amp;quot; — обов'язковий атрибут будь якого параметру, що містить комбінацію коду помилки та короткого опису, на кшталт &amp;quot;2:Немає даних або підключення до джерела&amp;quot;. Шаблон резервує наступні коди помилок:&lt;br /&gt;
** '''1, 2''' — помилки обладнання, коли дані переважно помилкові;&lt;br /&gt;
** '''3, 4''' — помилки аварійної границі;&lt;br /&gt;
** '''5, 6''' — помилки попереджувальної границі;&lt;br /&gt;
** '''7''' — помилка швидкості зміни змінної.&lt;br /&gt;
* &amp;quot;Придушення ('''alSup''') та затримка ('''alDelay''') порушень&amp;quot; — загальний контроль порушень щодо придушення та затримки.&lt;br /&gt;
* &amp;quot;Шкала: мінімум ('''min''')&amp;quot; та &amp;quot;Шкала: максимум ('''max''')&amp;quot; — головна шкала кінцевої змінної, вихід за яку призводить до помилки апаратної границі. Шкала також використовується як шкала відображення тренду змінної на графіках.&lt;br /&gt;
* &amp;quot;Логарифмічна шкала ('''log''')&amp;quot; — ознака відображення тренду змінної на графіках у логарифмічній шкалі.&lt;br /&gt;
* &amp;quot;Одиниця виміру ('''ed''')&amp;quot; — одиниця виміру змінної.&lt;br /&gt;
* &amp;quot;Точність ('''prec''')&amp;quot; — кількість знаків після крапки, для позитивних значень, та точність (знаків загалом), для негативних, для відображення реальної кінцевої змінної на екрані.&lt;br /&gt;
&lt;br /&gt;
Значні графічні образи представлення структури:&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main_graphical_elements|Бібліотека основних елементів інтерфейсу користувача]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#anShow|Відображення аналогового]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#anShow1|Відображення аналогового 1]]; [[Special:MyLanguage/Libs/Main_graphical_elements#anShow1s|Відображення аналогового 1, короткий]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElViewGraph|Елемент групи графіків]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElViewCadr|Кадр групи огляду]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ResultGraphEl|Кадр зведених графіків]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|Елемент кадр]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#cntrPaspExt|Паспорт, розширений]]&lt;br /&gt;
* [[Special:MyLanguage/Libs/Mnemo_elements|Бібліотека елементів мнемосхем інтерфейсу користувача]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Mnemo_elements#Level|Рівень]]&lt;br /&gt;
* [[Special:MyLanguage/Libs/Documents|Бібліотека звітів та документів]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Documents#docRepInstVals|Звіт миттєвих значень]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Documents#docRepDay|Добовий звіт середніх за годину значень]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Documents#docRepMonth|Місячний звіт середніх за добу значень]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Documents#docRepYear|Річний звіт місячних значень]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Documents#docRep2WorkSh|Звіт двох робочих змін]]&lt;br /&gt;
&lt;br /&gt;
* '''Спонсорування, розширення загального поля &amp;quot;DESCR&amp;quot; використанням для специфічних параметрів порушеньна на 0.1 {{CtxDetails|ЛД|людино-днів, 1ЛД — 10 годин}}:''' INSERTEC LTDA&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Функції}}&lt;br /&gt;
* Загальне опрацювання аналогового входу щодо:&lt;br /&gt;
:* проста корекція-калібрування за формулою &amp;quot;'''in''' = '''iMult'''*('''in'''+'''iAdd''')&amp;quot;;&lt;br /&gt;
:* масштабування від апаратної границі ['''plcMin'''...'''plcMax'''] у головну границю ['''min'''...'''max'''], враховуючи квадратичну шкалу '''scSqr''';&lt;br /&gt;
:: [[File:at.png]] Апаратні границі може бути інвертовано та взагалі вимкнено однаковими значеннями максимуму та мінімуму, коли використовується тільки головна шкала.&lt;br /&gt;
:* дозвіл на перевищення границі вхідним значенням на величину '''plcExcess''' відсотків;&lt;br /&gt;
:* фільтрування зміни вхідного значення на час '''Tf'''.&lt;br /&gt;
* Проста імітація аналогового входу, встановленням '''plcImit''' та підключенням джерела імітації-симуляції до '''plcImitIn'''.&lt;br /&gt;
:: [[File:at.png]] Відсутність зв'язка '''plcImitIn''' (EVAL) призводить до генерації випадкового аналогового входу&lt;br /&gt;
* Складна передобробка та повна генерація-імітація аналогового входу на внутрішній мові програмування OpenSCADA у конфігураційному ВВ '''inProc''' (із доповненням вбудованими правилами підсвітлення синтаксису), де ви можете оперувати наступними сервісними параметрами:&lt;br /&gt;
:* ''in'' [IN|OUT] — той самий сирий аналоговий ВВ;&lt;br /&gt;
:* ''var'' [IN] — ВВ кінцевої змінної;&lt;br /&gt;
:* ''min'', ''max'' [IN] — ВВ головної шкали;&lt;br /&gt;
:* ''plcMin'', ''plcMax'' [IN] — ВВ апаратної шкали;&lt;br /&gt;
:* ''plcImit'', ''plcImitIn'' [IN] — ВВ простої імітації;&lt;br /&gt;
:* ''levErr'', ''tErr'' [IN|OUT] — рівень аварії [-79...0] та текст помилки (формат атрибуту &amp;quot;err&amp;quot;);&lt;br /&gt;
:* ''f_frq'' [IN] — частота обчислення, шаблонний ВВ;&lt;br /&gt;
:* ''this'' [IN] — посилання на об'єкт параметру, що виконує шаблон;&lt;br /&gt;
:* ''ctx'' [IN] — об'єкт користувацького контексту, що зберігається між циклами виклику;&lt;br /&gt;
:* ''args'' [IN] — об'єкт аргументів процедури;&lt;br /&gt;
:* ''toSave'' [OUT] — примусово зберігати об'єкт параметру при виході.&lt;br /&gt;
* Проста підстановка значення '''subVar''' за помилкою (недостовірністю) вхідної змінної (EVAL) у режимах: &amp;quot;немає&amp;quot;, &amp;quot;останнє&amp;quot; та &amp;quot;підстановка&amp;quot;.&lt;br /&gt;
* Опрацювання кінцевої змінної '''var''' на предмет порушення деяких границь та критеріїв, генеруючи аварії та відповідно встановлюючи атрибут '''err'''. Границі аварії можуть мати деякий гістерезис '''HystBnd''', можуть бути затримані на час '''alDelay''' та можуть бути придушені встановленням '''alSup'''. Надаються наступні границі та критерії:&lt;br /&gt;
:* відсутність даних або підключення до джерела за вхідним значенням EVAL — код помилки 1 та рівень аварії 5;&lt;br /&gt;
:* перевищення апаратної границі вхідним значенням — код помилки 1,2 та рівень аварії 5;&lt;br /&gt;
:* перевищення аварійної границі кінцевою змінною ['''aMin'''...'''aMax'''] — код помилки 3,4 та рівень аварії 4;&lt;br /&gt;
:: [[File:at.png]] Вимикається встановленням однакових або інверсних значень границі&lt;br /&gt;
:* перевищення попереджувальної границі кінцевою змінною ['''wMin'''...'''wMax'''] — код помилки 5,6 та рівень аварії 2;&lt;br /&gt;
:: [[File:at.png]] Вимикається встановленням однакових або інверсних значень границі&lt;br /&gt;
:* велика швидкість зміни '''speed''' кінцевої змінної — код помилки 7 та рівень аварії 2.&lt;br /&gt;
* Перевизначення специфічних параметрів у загальному атрибуті '''DESCR''':&lt;br /&gt;
:* ''перший рядок'' — як опис повідомлень порушень;&lt;br /&gt;
:* поле ''CustomFlds'' — визначення [[Special:MyLanguage/Documents/Program_manual#ArchMess|користувацьких полів]] повідомлень порушень у формі &amp;quot;'''CustomFlds: {CustFld0} =&amp;gt; {CustFld1} =&amp;gt; ... =&amp;gt; {CustFldN}'''&amp;quot;;&lt;br /&gt;
:* поле ''CustomAlarms'' — перевизначення стандартних рівнів порушень для повідомлень порушень у формі &amp;quot;'''CustomAlarms: {ConErr};{BrdAlarm};{BrdWarn}'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|ВВ шаблону}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Режим !! Атрибут !! Конфігурація !! Значення&lt;br /&gt;
|-&lt;br /&gt;
| in || Вхід || Реальний || Вхід || Не атрибут || Зв'язок || Вхід&amp;amp;#124;var&lt;br /&gt;
|-&lt;br /&gt;
| inProc || Вхідна процедура обробки || Текст || Вхід || Не атрибут || Константа ||&lt;br /&gt;
|-&lt;br /&gt;
| var || Змінна || Реальний || Вхід || Тільки читання || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| ed || Одиниця виміру || Рядок || Вхід || Повний доступ || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| min || Шкала: мінімум || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| max || Шкала: максимум || Реальний || Вхід || Повний доступ || Змінна || 100&lt;br /&gt;
|-&lt;br /&gt;
| scSqr || Шкала: квадратична || Логічний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| subMode || Заміна: режим || Вибір цілих чисел || Вхід || Повний доступ || Змінна || 0&amp;lt;br/&amp;gt;&lt;br /&gt;
0;1;2&amp;lt;br/&amp;gt;&lt;br /&gt;
немає;останнє;підстановка&lt;br /&gt;
|-&lt;br /&gt;
| subVar || Заміна: змінна || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| alSup || Придушення порушень || Логічний || Вхід || Повний доступ || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Затримка порушень, секунди || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| aMin || Границя нижня аварійна || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| aMax || Границя верхня аварійна || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| wMin || Границя нижня попереджув. || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| wMax || Границя верхня попереджув. || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| HystBnd || Гистерезис порушення границь || Реальний || Вхід || Повний доступ || Змінна || 1&lt;br /&gt;
|-&lt;br /&gt;
| speed || Швидкість зміни, %/цикл || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| prec || Точність, знаків || Цілий || Вхід || Повний доступ || Змінна || 2&lt;br /&gt;
|-&lt;br /&gt;
| log || Логарифмічна шкала || Логічний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| Tf || Час фільтру, секунд || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| iAdd || Додаток до входу || Реальний || Вхід || Не атрибут || Константа || 0&lt;br /&gt;
|-&lt;br /&gt;
| iMult || Множник входу || Реальний || Вхід || Не атрибут || Константа || 1&lt;br /&gt;
|-&lt;br /&gt;
| plcMin || Мінімум шкали модуля || Реальний || Вхід || Не атрибут || Константа || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcMax || Максимум шкали модуля || Реальний || Вхід || Не атрибут || Константа || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcExcess || Дозволене перевищення шкали, % || Реальний || Вхід || Не атрибут || Константа || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcImit || Імітація ПЛК || Логічний || Вхід || Не атрибут || Константа || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcImitIn || Вхід імітації ПЛК || Реальний || Вхід || Не атрибут || Зв'язок || Імітація&amp;amp;#124;var&lt;br /&gt;
|-&lt;br /&gt;
| this || Об'єкт || Об'єкт || Вихід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Шифр || Рядок || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Ім'я || Рядок (переклад) || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Опис || Текст (переклад) || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Помилка функції || Рядок || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Частота обчислення функції, Гц || Реальний || Вхід || Не атрибут || Змінна || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Прапорець запуску функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Прапорець зупинки функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainAnUnifCfg_uk.png|right|Конфігурація.]]&lt;br /&gt;
{{CntHdr|Конфігурація та використання}}&lt;br /&gt;
:1. Створити та запустити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного контролеру]] або використати будь який наявний з потрібними властивостями планування.&lt;br /&gt;
:2. Створити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного параметру]] та обрати цей шаблон для нього. Ввімкнути параметр.&lt;br /&gt;
:3. У вкладці &amp;quot;Конфігурація шаблону&amp;quot; об'єкту логічного параметру ви маєте встановити:&lt;br /&gt;
:* ''Вхід'' — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|зв'язати із джерелом &amp;quot;сирого&amp;quot; сигналу]].&lt;br /&gt;
:* ''Вхідна процедура обробки'' — сформувати для складної передобробки та повної генерації-імітації аналогового входу на внутрішній мові програмування OpenSCADA. Є необов'язковою та має визначатися за складних випадків, наприклад:&lt;br /&gt;
::* проста та прозора попередня обробка з приведення відсотків навантаження ДБЖ до потужності, що можна виконати і за допомогою '''iMult''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 40pt&amp;quot;&amp;gt;&lt;br /&gt;
in = 490*in/100;	//the UPS has 480W &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
::* реалізація лічильника вхідного сигналу — спожитої електрики ДБЖ:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 40pt&amp;quot;&amp;gt;&lt;br /&gt;
//Checking for the data validity&lt;br /&gt;
if(ctx.cntr.isEVal())	ctx.cntr = this.var.get();&lt;br /&gt;
if(!in.isEVal()) {&lt;br /&gt;
	pUPS = 33;&lt;br /&gt;
	if(ctx.cntr.isEVal())	ctx.cntr = (pUPS+in)/(3600*f_frq);&lt;br /&gt;
	else ctx.cntr += (pUPS+in)/(3600*f_frq);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Checking for the next month reset&lt;br /&gt;
month = 0; SYS.localtime(SYS.time(), 0, 0, 0, 0, month);&lt;br /&gt;
if(!ctx.month.isEVal() &amp;amp;&amp;amp; month != ctx.month)	ctx.cntr = 0;&lt;br /&gt;
ctx.month = month;&lt;br /&gt;
&lt;br /&gt;
in = ctx.cntr; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
::* генерації розширених порушень — обробка зовнішніх сигналів, пов'язаних з джерелом:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 40pt&amp;quot;&amp;gt;&lt;br /&gt;
gO = this.cntr().prm_grps;&lt;br /&gt;
if(SYS.DAQ.JavaLikeCalc.lib_aviary.sensorError(gO.prm_generic.PRG_Input_Err_T_room_S.get(),levErr,tErr));&lt;br /&gt;
else if(!(tVl=gO.prm_alarms.PRG_Alarm_T_max.get()).isEVal() &amp;amp;&amp;amp; tVl)&lt;br /&gt;
	levErr = -4, tErr = &amp;quot;11:above the set limit&amp;quot;;&lt;br /&gt;
else if(!(tVl=gO.prm_alarms.PRG_Alarm_T_min.get()).isEVal() &amp;amp;&amp;amp; tVl)&lt;br /&gt;
	levErr = -4, tErr = &amp;quot;11:below the set limit&amp;quot;; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:* ''Мінімум та максимум шкали модуля'' — має вказуватися у випадку значного розходження апаратної шкали із загальною, наприклад:&lt;br /&gt;
::* вхід сирий та вимірюється значенням струму [4...20]мА, тобто тут треба вказати 4 та 20 мА;&lt;br /&gt;
::* попередній випадок де треба просто та прозоро відкалібрувати покази — зразковим приладом задаємо 4мА та 20мА та вказуємо тут реальні виміряні значення &amp;quot;сирого&amp;quot; сигналу.&lt;br /&gt;
:* ''Додаток та множник до входу'' — використати для простої лінійної корекції входу, наприклад:&lt;br /&gt;
::* калібрування показів, що менш прозоро та ці коефіцієнти мають вираховуватися за формулами:&lt;br /&gt;
::: '''iAdd = ((plcMin*precMeasMax)/plcMax - precMeasMin)*(plcMax/(plcMax-plcMin))'''&lt;br /&gt;
::: '''iMult = (plcMax - plcMin) / (precMeasMax - precMeasMin)'''&lt;br /&gt;
:* ''Дозволене перевищення шкали'' — встановити за потреби перевищення значенням загальної шкали та коли ця шкала починає виконувати рекомендавчу функцію, скажемо для початкового відображення історії у цій шкалі.&lt;br /&gt;
:* ''Імітація та вхід імітації ПЛК'' — визначити за потреби імітації входу згідно опису у функціях.&lt;br /&gt;
:4. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати оперативні дані у вкладці &amp;quot;Атрибути&amp;quot;, для: змінної, стану помилки; та генерацію порушень, якщо стан помилки ненульовий.&lt;br /&gt;
:5. У процесі роботи, через вкладку оперативних даних &amp;quot;Атрибути&amp;quot;, окрім отримання результату можна здійснювати оперативне налаштування та контроль щодо:&lt;br /&gt;
:* ''Шкала: мінімум та максимум'' — суворо [[file:at.png]] встановити у діапазон зміни даних за наявністю та відповідно до апаратної границі, інакше значення буде викривлене! За відсутності апаратної границі ця, основна границя, є довільною та дорадчою, хоча вихід значення за неї також супроводжується порушенням.&lt;br /&gt;
:* ''Шкала: квадратична'' — встановити якщо апаратна шкала квадратична.&lt;br /&gt;
:* ''Час фільтру'' — встановити у час фільтрації для зашумлених сигналів.&lt;br /&gt;
:* ''Заміна: режим та змінна'' — встановити у потрібний режим підстановки-заміни значення за недостовірною змінною.&lt;br /&gt;
:* ''Придушення порушень'' — встановити за потреби повного придушення порушень параметру — вимкнути їх генерацію взагалі.&lt;br /&gt;
:* ''Затримка порушень'' — встановити час затримки генерації порушення, для виключення частої генерації, характерної для непевних джерел даних, що відрізняються короткочасною втратою зв'язку.&lt;br /&gt;
:* ''Границя верхня/нижня аварійна/попереджувальна'' — встановити коли треба генерувати порушення за виходом за аварійну/попереджувальну границі.&lt;br /&gt;
:* ''Гистерезис порушення границь'' — встановити у гістерезис зняття порушення, тобто зняття порушення відбувається на вказаний відсоток пізніше, щоб запобігти частій генерації за коливанням значення біля границі.&lt;br /&gt;
:* ''Швидкість зміни'' — встановити якщо треба попереджати про швидку зміну значення.&lt;br /&gt;
:* ''Назва, Опис, Одиниця виміру, Точність, Логарифмічна шкала'' — встановити за потреби такої інформації при відображені, або як елементи паспорту.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=anUnifSt /&amp;gt;&lt;br /&gt;
| {{Anch|anUnifSt|&amp;lt;h3&amp;gt;Аналоговий сигнал, уніфікований, стани порушень ([[Special:MyLanguage/Libs/Main#anUnifSt|anUnifSt]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru  &amp;lt;section end=anUnifSt /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
Загальний, представницький та уніфікований шаблон обробки аналогових вхідних сигналів, розширений бінарними станами індикації порушень. Шаблон засновано на базовому шаблоні &amp;quot;[[#anUnif|Аналоговий сигнал, уніфікований]]&amp;quot; з відповідною до нього представницькою структурою та деякими відмінностями, характерними до незалежного розвитку та розширення.&lt;br /&gt;
&lt;br /&gt;
Бінарні стани передбачалося для зручного використання у алгоритмах роботи за границями порушення об'єкту параметру, переважно у [[Special:MyLanguage/Modules/BlockCalc|блокових схемах]] загальних алгоритмів керування.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Функції}}&lt;br /&gt;
Переважно відповідають базовому шаблону &amp;quot;[[#anUnif|Аналоговий сигнал, уніфікований]]&amp;quot; та додатково надаються ознаки порушень границь: &amp;quot;H&amp;quot;, &amp;quot;L&amp;quot;, &amp;quot;HH&amp;quot;, &amp;quot;LL&amp;quot;, &amp;quot;EVAL&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|ВВ шаблону}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Режим !! Атрибут !! Конфігурація !! Значення&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | ВВ шаблону &amp;quot;[[#anUnif|Аналоговий сигнал, уніфікований]]&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| H || Порушення верхньої попереджув. границі || Логічний || Вихід || Тільки читання || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| L || Порушення нижньої попереджув. границі || Логічний || Вихід || Тільки читання || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| HH || Порушення верхньої аварійної границі || Логічний || Вихід || Тільки читання || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| LL || Порушення нижньої аварійної границі || Логічний ||Вихід || Тільки читання || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| EVAL || Помилка значення || Логічний || Вихід || Тільки читання || Змінна ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Конфігурація та використання}}&lt;br /&gt;
Повністю ідентичне базовому &amp;quot;[[#anUnif|Аналоговий сигнал, уніфікований]]&amp;quot; за відмінністю використання ознак порушень границь: &amp;quot;H&amp;quot;, &amp;quot;L&amp;quot;, &amp;quot;HH&amp;quot;, &amp;quot;LL&amp;quot;, &amp;quot;EVAL&amp;quot;; на які можна під'єднуватися із зовнішніх обчислень.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=manInUnif /&amp;gt;&lt;br /&gt;
| {{Anch|manInUnif|&amp;lt;h3&amp;gt;Ручний ввід, уніфікований ([[Special:MyLanguage/Libs/Main#manInUnif|manInUnif]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru &amp;lt;section end=manInUnif /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainManInUnifOp_uk.png|right|Результат та оперативні налаштування.]]&lt;br /&gt;
Загальний, представницький та уніфікований шаблон ручного вводу та сигналу аналогового виходу. Шаблон формує структуру параметру (складного тегу) ручного вводу, який може бути легко підключений до більшості віджетів та кадрів [[Special:MyLanguage/Libs/Main_graphical_elements|бібліотеки основних елементів інтерфейсу користувача]] просто вказавши об'єкт параметру, контроль переважно можна здійснювати через панель контролю [[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|Елемент кадр]].&lt;br /&gt;
&lt;br /&gt;
Представницькою структурою параметру (складного тегу) ручного вводу є:&lt;br /&gt;
* &amp;quot;Змінна ('''var''')&amp;quot; — кінцева змінна параметру — інженерне реальне значення, доступне та придатне до архівації.&lt;br /&gt;
* &amp;quot;Введення змінної ('''varIn''')&amp;quot; — атрибут введення нового інженерного значення, який надалі потрапляє до змінної.&lt;br /&gt;
* &amp;quot;Помилка ('''err''')&amp;quot; — обов'язковий атрибут будь якого параметру, що містить комбінацію коду помилки та короткого опису, на кшталт &amp;quot;2:Немає даних або підключення до джерела&amp;quot;. Шаблон резервує наступні коди помилок:&lt;br /&gt;
** '''1, 2''' — помилки обладнання, коли дані переважно помилкові;&lt;br /&gt;
** '''3, 4''' — помилки аварійної границі;&lt;br /&gt;
** '''5, 6''' — помилки попереджувальної границі;&lt;br /&gt;
** '''7''' — помилка швидкості зміни змінної.&lt;br /&gt;
* &amp;quot;Придушення ('''alSup''') та затримка ('''alDelay''') порушень&amp;quot; — загальний контроль порушень щодо придушення та затримки.&lt;br /&gt;
* &amp;quot;Шкала: мінімум ('''min''')&amp;quot; та &amp;quot;Шкала: максимум ('''max''')&amp;quot; — головна шкала кінцевої змінної, вихід за яку призводить до помилки апаратної границі. Шкала також використовується як шкала відображення тренду змінної на графіках.&lt;br /&gt;
* &amp;quot;Логарифмічна шкала ('''log''')&amp;quot; — ознака відображення тренду змінної на графіках у логарифмічній шкалі.&lt;br /&gt;
* &amp;quot;Одиниця виміру ('''ed''')&amp;quot; — одиниця виміру змінної.&lt;br /&gt;
* &amp;quot;Точність ('''prec''')&amp;quot; — кількість знаків після крапки, для позитивних значень, та точність (знаків загалом), для негативних, для відображення реальної кінцевої змінної на екрані.&lt;br /&gt;
&lt;br /&gt;
Значні графічні образи представлення структури:&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main_graphical_elements|Бібліотека основних елементів інтерфейсу користувача]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|Елемент кадр]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Функції}}&lt;br /&gt;
* Загальне опрацювання аналогового входу щодо:&lt;br /&gt;
:* проста корекція-калібрування за формулою &amp;quot;'''in''' = '''iMult'''*('''in'''+'''iAdd''')&amp;quot;;&lt;br /&gt;
:* масштабування від апаратної границі ['''plcMin'''...'''plcMax'''] у головну границю ['''min'''...'''max'''], враховуючи квадратичну шкалу '''scSqr''';&lt;br /&gt;
:: [[File:at.png]] Апаратні границі може бути інвертовано та взагалі вимкнено однаковими значеннями максимуму та мінімуму, коли використовується тільки головна шкала.&lt;br /&gt;
:* дозвіл на перевищення границі вхідним значенням на величину '''plcExcess''' відсотків;&lt;br /&gt;
:* фільтрування зміни вхідного значення на час '''Tf'''.&lt;br /&gt;
* Опрацювання кінцевої змінної '''var''' на предмет порушення деяких границь та критеріїв, генеруючи аварії та відповідно встановлюючи атрибут '''err'''. Границі аварії можуть мати деякий гістерезис '''HystBnd''', можуть бути затримані на час '''alDelay''' та можуть бути придушені встановленням '''alSup'''. Надаються наступні границі та критерії:&lt;br /&gt;
:* відсутність даних або підключення до джерела за вхідним значенням EVAL — код помилки 1 та рівень аварії 5;&lt;br /&gt;
:* перевищення апаратної границі вхідним значенням — код помилки 1,2 та рівень аварії 5;&lt;br /&gt;
:* перевищення аварійної границі кінцевою змінною ['''aMin'''...'''aMax'''] — код помилки 3,4 та рівень аварії 4;&lt;br /&gt;
:: [[File:at.png]] Вимикається встановленням однакових або інверсних значень границі&lt;br /&gt;
:* перевищення попереджувальної границі кінцевою змінною ['''wMin'''...'''wMax'''] — код помилки 5,6 та рівень аварії 2;&lt;br /&gt;
:: [[File:at.png]] Вимикається встановленням однакових або інверсних значень границі&lt;br /&gt;
:* велика швидкість зміни '''speed''' кінцевої змінної — код помилки 7 та рівень аварії 2.&lt;br /&gt;
* Зворотне перетворення введеного інженерного значення змінної та запис у вихід.&lt;br /&gt;
: [[File:at.png]] За відсутності підключення &amp;quot;Входу/Виходу&amp;quot; запису не здійснюється та відбувається автономна робота.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|ВВ шаблону}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Режим !! Атрибут !! Конфігурація !! Значення&lt;br /&gt;
|-&lt;br /&gt;
| inout || Вхід/Вихід || Реальний || Вихід || Не атрибут || Зв'язок || Parameter&amp;amp;#124;var&lt;br /&gt;
|-&lt;br /&gt;
| var || Змінна || Реальний || Вхід || Тільки читання || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| varIn || Введення змінної || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| ed || Одиниця виміру || Рядок || Вхід || Повний доступ || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| min || Шкала: мінімум || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| max || Шкала: максимум || Реальний || Вхід || Повний доступ || Змінна || 100&lt;br /&gt;
|-&lt;br /&gt;
| scSqr || Шкала: квадратична || Логічний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| alSup || Придушення порушень || Логічний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Затримка порушень, секунди || Логічний || Вхід || Повний доступ || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| aMin || Границя нижня аварійна || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| aMax || Границя верхня аварійна || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| wMin || Границя нижня попереджув. || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| wMax || Границя верхня попереджув. || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| HystBnd || Гистерезис порушення границь || Реальний || Вхід || Повний доступ || Змінна || 1&lt;br /&gt;
|-&lt;br /&gt;
| speed || Швидкість зміни, %/цикл || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| prec || Точність, знаків || Цілий || Вхід || Повний доступ || Змінна || 2&lt;br /&gt;
|-&lt;br /&gt;
| log || Логарифмічна шкала || Логічний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| Tf || Час фільтру, секунд || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| iAdd || Додаток до входу || Реальний || Вхід || Не атрибут || Константа || 0&lt;br /&gt;
|-&lt;br /&gt;
| iMult || Множник входу || Реальний || Вхід || Не атрибут || Константа || 1&lt;br /&gt;
|-&lt;br /&gt;
| plcMin || Мінімум шкали модуля || Реальний || Вхід || Не атрибут || Константа || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcMax || Максимум шкали модуля || Реальний || Вхід || Не атрибут || Константа || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcExcess || Дозволене перевищення шкали, % || Реальний || Вхід || Не атрибут || Константа || 0&lt;br /&gt;
|-&lt;br /&gt;
| this || Об'єкт || Об'єкт || Вихід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Шифр || Рядок || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Ім'я || Рядок (переклад) || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Опис || Текст (переклад) || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Помилка функції || Рядок || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Частота обчислення функції, Гц || Реальний || Вхід || Не атрибут || Змінна || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Прапорець запуску функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Прапорець зупинки функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainManInUnifCfg_uk.png|right|Конфігурація.]]&lt;br /&gt;
{{CntHdr|Конфігурація та використання}}&lt;br /&gt;
:1. Створити та запустити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного контролеру]] або використати будь який наявний з потрібними властивостями планування.&lt;br /&gt;
:2. Створити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного параметру]] та обрати цей шаблон для нього. Ввімкнути параметр.&lt;br /&gt;
:3. У вкладці &amp;quot;Конфігурація шаблону&amp;quot; об'єкту логічного параметру ви маєте встановити:&lt;br /&gt;
:* ''Вхід/Вихід'' — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|зв'язати із джерелом &amp;quot;сирого&amp;quot; сигналу ВВ]], або не прив'язувати для автономного режиму.&lt;br /&gt;
:* ''Мінімум та максимум шкали модуля'' — має вказуватися у випадку значного розходження апаратної шкали із загальною, для прикладу дивіться шаблон &amp;quot;[[#anUnif|Аналоговий сигнал, уніфікований]]&amp;quot;.&lt;br /&gt;
:* ''Додаток та множник до входу'' — використати для простої лінійної корекції входу, для прикладу дивіться шаблон &amp;quot;[[#anUnif|Аналоговий сигнал, уніфікований]]&amp;quot;.&lt;br /&gt;
:* ''Дозволене перевищення шкали'' — встановити за потреби перевищення значенням загальної шкали та коли ця шкала починає виконувати рекомендавчу функцію, скажемо для початкового відображення історії у цій шкалі.&lt;br /&gt;
:4. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати оперативні дані у вкладці &amp;quot;Атрибути&amp;quot;, для: змінної, стану помилки; та генерацію порушень, якщо стан помилки ненульовий; та він буде доступний до встановлення нових значень.&lt;br /&gt;
:5. У процесі роботи, через вкладку оперативних даних &amp;quot;Атрибути&amp;quot;, окрім отримання результату можна здійснювати оперативне налаштування та контроль щодо:&lt;br /&gt;
:* ''Шкала: мінімум та максимум'' — суворо [[file:at.png]] встановити у діапазон зміни даних за наявністю та відповідно до апаратної границі, інакше значення буде викривлене! За відсутності апаратної границі ця, основна границя, є довільною та дорадчою, хоча вихід значення за неї також супроводжується порушенням.&lt;br /&gt;
:* ''Шкала: квадратична'' — встановити якщо апаратна шкала квадратична.&lt;br /&gt;
:* ''Час фільтру'' — встановити у час фільтрації для зашумлених сигналів.&lt;br /&gt;
:* ''Придушення порушень'' — встановити за потреби повного придушення порушень параметру — вимкнути їх генерацію взагалі.&lt;br /&gt;
:* ''Затримка порушень'' — встановити час затримки генерації порушення, для виключення частої генерації, характерної для непевних джерел даних, що відрізняються короткочасною втратою зв'язку.&lt;br /&gt;
:* ''Границя верхня/нижня аварійна/попереджувальна'' — встановити коли треба генерувати порушення за виходом за аварійну/попереджувальну границі.&lt;br /&gt;
:* ''Гистерезис порушення границь'' — встановити у гістерезис зняття порушення, тобто зняття порушення відбувається на вказаний відсоток пізніше, щоб запобігти частій генерації за коливанням значення біля границі.&lt;br /&gt;
:* ''Швидкість зміни'' — встановити якщо треба попереджати про швидку зміну значення.&lt;br /&gt;
:* ''Назва, Опис, Одиниця виміру, Точність (знаків), Логарифмічна шкала'' — встановити за потреби такої інформації при відображені, або як елементи паспорту.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=digitBlockUnif /&amp;gt;&lt;br /&gt;
| {{Anch|digitBlockUnif|&amp;lt;h3&amp;gt;Дискретний блок, уніфікований ([[Special:MyLanguage/Libs/Main#digitBlockUnif|digitBlockUnif]])&amp;lt;/h3&amp;gt;}} || 1.0 || GPLv2 || * || en, uk, ru &amp;lt;section end=digitBlockUnif /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainDigitBlockUnifOp_uk.png|right|Результат та оперативні налаштування.]]&lt;br /&gt;
Загальний, представницький та уніфікований шаблон блоку поєднання дискретних параметрів у пристрій загального контролю. Шаблон формує структуру дискретного параметру-блоку (складного тегу) який може бути легко підключений до більшості віджетів та кадрів [[Special:MyLanguage/Libs/Main_graphical_elements|бібліотеки основних елементів інтерфейсу користувача]] просто вказавши об'єкт параметру.&lt;br /&gt;
&lt;br /&gt;
Представницькою структурою дискретного параметру (складного тегу) є об'єкт засувки із характерними двома станами та трьома командами, які у кінцевому представленні можуть мати інше значення та назву:&lt;br /&gt;
* &amp;quot;Стан &amp;quot;Відкрито&amp;quot; ('''st_open''')&amp;quot; — стан засувки &amp;quot;Відкрито&amp;quot;. Є первинним сигналом стану, який може використовуватися без наступного, коли '''1 (true)''' — &amp;quot;Відкрито&amp;quot;, а '''0 (false)''' — &amp;quot;Закрито&amp;quot;.&lt;br /&gt;
* &amp;quot;Стан &amp;quot;Закрито&amp;quot; ('''st_close''')&amp;quot; — стан засувки &amp;quot;Відкрито&amp;quot;.&lt;br /&gt;
* &amp;quot;Команда &amp;quot;Відкрити&amp;quot; ('''com''')&amp;quot; — команда засувки &amp;quot;Відкрити&amp;quot;. Є первинним сигналом команди, який може використовуватися без наступного, коли '''1 (true)''' — &amp;quot;Відкрити&amp;quot;, а '''0 (false)''' — &amp;quot;Закрити&amp;quot;.&lt;br /&gt;
* &amp;quot;Команда &amp;quot;Закрити&amp;quot; ('''close''')&amp;quot; — команда засувки &amp;quot;Закрити&amp;quot;.&lt;br /&gt;
* &amp;quot;Команда &amp;quot;Зупинити&amp;quot; ('''stop''')&amp;quot; — команда засувки &amp;quot;Зупинити&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Значні графічні образи представлення структури:&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main_graphical_elements|Бібліотека основних елементів інтерфейсу користувача]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#TextLab|Текстова мітка]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ImgLab|Мітка зображенням]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElViewGraph|Елемент групи графіків]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|Елемент кадр]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#cntrPaspExt|Паспорт, розширений]]&lt;br /&gt;
* [[Special:MyLanguage/Libs/Mnemo_elements|Бібліотека елементів мнемосхем інтерфейсу користувача]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Mnemo_elements#El_Alarm|Сигналізація]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Mnemo_elements#discrApps|Дискретні апарати]]&lt;br /&gt;
* [[Special:MyLanguage/Libs/Electrical_elements|Бібліотека електричних елементів користувацького інтерфейсу]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Electrical_elements#ActualActive|Ключ, уніфікований]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Electrical_elements#ActualActive|Перемикач, уніфікований]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Electrical_elements#ActualActive|Загальний стан, уніфікований]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Electrical_elements#ActualActive|Стан області, уніфікований]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Функції}}&lt;br /&gt;
* Пряме отримання, за посиланням, двох станів (тільки читання) та трьох команд (читання та запис).&lt;br /&gt;
* Можливість утримання команди протягом визначеного часу та зняття їх.&lt;br /&gt;
* Можливість перевизначення станів та команд [[Special:MyLanguage/Libs/Main_graphical_elements|відповідним налаштуванням елементів інтерфейсу]], як то ''digStts'', для статусів, та ''digComs'', для команд.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|ВВ шаблону}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Режим !! Атрибут !! Конфігурація !! Значення&lt;br /&gt;
|-&lt;br /&gt;
| com || Команда &amp;quot;Відкрити&amp;quot; || Логічний || Вихід || Повний доступ || Зв'язок || Кран&amp;amp;#124;com&lt;br /&gt;
|-&lt;br /&gt;
| close || Команда &amp;quot;Закрити&amp;quot; || Логічний || Вихід || Повний доступ || Зв'язок || Кран&amp;amp;#124;close&lt;br /&gt;
|-&lt;br /&gt;
| stop || Команда &amp;quot;Зупинити&amp;quot; || Логічний || Вихід || Повний доступ || Зв'язок || Кран&amp;amp;#124;stop&lt;br /&gt;
|-&lt;br /&gt;
| st_open || Стан &amp;quot;Відкрито&amp;quot; || Логічний || Вхід || Тільки читання || Зв'язок || Кран&amp;amp;#124;st_open&lt;br /&gt;
|-&lt;br /&gt;
| st_close || Стан &amp;quot;Закрито&amp;quot; || Логічний || Вхід || Тільки читання || Зв'язок || Кран&amp;amp;#124;st_close&lt;br /&gt;
|-&lt;br /&gt;
| tCmd || Час утримання команди, секунди || Цілий || Вхід || Не атрибут || Константа || 5&lt;br /&gt;
|-&lt;br /&gt;
| last_cmd || Остання команда || Цілий || Вихід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| w_tm || Лічильник обробки команди || Реальний || Вихід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Помилка функції || Рядок || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Частота обчислення функції, Гц || Реальний || Вхід || Не атрибут || Змінна || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Прапорець запуску функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Прапорець зупинки функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainDigitBlockUnifCfg_uk.png|right|Конфігурація.]]&lt;br /&gt;
{{CntHdr|Конфігурація та використання}}&lt;br /&gt;
:1. Створити та запустити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного контролеру]] або використати будь який наявний з потрібними властивостями планування.&lt;br /&gt;
:2. Створити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного параметру]] та обрати цей шаблон для нього. Ввімкнути параметр.&lt;br /&gt;
:3. У вкладці &amp;quot;Конфігурація шаблону&amp;quot; об'єкту логічного параметру ви маєте встановити:&lt;br /&gt;
:* Всі стани та команди — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|зв'язати із джерелом &amp;quot;сирого&amp;quot; сигналу]].&lt;br /&gt;
:* ''Час утримання команди, секунди'' — встановити у потрібне значення утримання або у 0 для вимкнення цієї функції.&lt;br /&gt;
:4. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати оперативні дані у вкладці &amp;quot;Атрибути&amp;quot;, для: станів та команд.&lt;br /&gt;
:5. У процесі роботи, через вкладку оперативних даних &amp;quot;Атрибути&amp;quot;, окрім отримання результату можна здійснювати оперативний контроль, видачею команд.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=digAlarm /&amp;gt;&lt;br /&gt;
| {{Anch|digAlarm|&amp;lt;h3&amp;gt;Сигналізація дискретна ([[Special:MyLanguage/Libs/Main#digAlarm|digAlarm]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru &amp;lt;section end=digAlarm /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainDigAlarmOp_uk.png|right|Результат та оперативні налаштування.]]&lt;br /&gt;
Загальний, представницький шаблон обробки окремого дискретного параметру (складного тегу) із формування сигналізації за визначеним критерієм. Шаблон формує структуру дискретного параметру (складного тегу) який може бути легко підключений до більшості віджетів та кадрів [[Special:MyLanguage/Libs/Main_graphical_elements|бібліотеки основних елементів інтерфейсу користувача]] просто вказавши об'єкт параметру.&lt;br /&gt;
&lt;br /&gt;
Шаблон надає окремі поля [[#digitBlockUnif|представницької структури дискретного параметру]] та додає поле помилки:&lt;br /&gt;
* &amp;quot;Стан &amp;quot;Відкрито&amp;quot; ('''st_open''')&amp;quot; — стан &amp;quot;Відкрито&amp;quot;.&lt;br /&gt;
* &amp;quot;Стан &amp;quot;Закрито&amp;quot; ('''st_close''')&amp;quot; — стан &amp;quot;Відкрито&amp;quot;.&lt;br /&gt;
* &amp;quot;Помилка ('''err''')&amp;quot; — обов'язковий атрибут будь якого параметру, що містить комбінацію коду помилки та короткого опису, на кшталт &amp;quot;1:Немає даних або підключення до джерела&amp;quot;. Шаблон резервує наступні коди помилок:&lt;br /&gt;
** '''1''' — помилки обладнання, коли дані переважно помилкові;&lt;br /&gt;
** '''3''' — порушення за визначеної умови.&lt;br /&gt;
* &amp;quot;Придушення ('''alSup''') та затримка ('''alDelay''') порушень&amp;quot; — загальний контроль порушень щодо придушення та затримки.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Функції}}&lt;br /&gt;
* Пряме отримання, за посиланням, первинного стану та формування двох репрезентативних станів з можливістю їх інверсії '''stInv'''.&lt;br /&gt;
* Складна передобробка та повна генерація-імітація дискретного входу на внутрішній мові програмування OpenSCADA у конфігураційному ВВ '''inProc''' (із доповненням вбудованими правилами підсвітлення синтаксису), де ви можете оперувати наступними сервісними параметрами:&lt;br /&gt;
:* ''in'' [IN|OUT] — той самий сирий дискретний ВВ;&lt;br /&gt;
:* ''levErr'', ''tErr'' [IN|OUT] — рівень аварії [-79...0] та текст помилки (формат атрибуту &amp;quot;err&amp;quot;);&lt;br /&gt;
:* ''f_frq'' [IN] — частота обчислення, шаблонний ВВ;&lt;br /&gt;
:* ''this'' [IN] — посилання на об'єкт параметру, що виконує шаблон;&lt;br /&gt;
:* ''ctx'' [IN] — об'єкт користувацького контексту, що зберігається між циклами виклику;&lt;br /&gt;
:* ''args'' [IN] — об'єкт аргументів процедури.&lt;br /&gt;
* Опрацювання дискретного входу '''in''' на предмет формування порушення та відповідного встановлення атрибуту '''err''', за умови &amp;quot;'''{st}:{lev}:{mess}'''&amp;quot;, тобто генерація порушення з рівнем ''lev'' та текстом ''mess'' за стану входу ''st'' (0|1). Що може бути затримано на час '''alDelay''' та придушено встановленням '''alSup'''.&lt;br /&gt;
* Перевизначення специфічних параметрів у загальному атрибуті '''DESCR''':&lt;br /&gt;
:* ''перший рядок'' — як опис повідомлень порушень;&lt;br /&gt;
:* поле ''CustomFlds'' — визначення [[Special:MyLanguage/Documents/Program_manual#ArchMess|користувацьких полів]] повідомлень порушень у формі &amp;quot;'''CustomFlds: {CustFld0} =&amp;gt; {CustFld1} =&amp;gt; ... =&amp;gt; {CustFldN}'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|ВВ шаблону}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Режим !! Атрибут !! Конфігурація !! Значення&lt;br /&gt;
|-&lt;br /&gt;
| alrm || Сигнал &amp;quot;{st}:{lev}:{mess}&amp;quot; || Рядок || Вхід || Не атрибут || Константа ||&lt;br /&gt;
|-&lt;br /&gt;
| stInv || Інверсія стану || Логічний || Вхід || Не атрибут || Константа ||&lt;br /&gt;
|-&lt;br /&gt;
| in || Вхід || Логічний || Вхід || Тільки читання || Зв'язок || Input&amp;amp;#124;in&lt;br /&gt;
|-&lt;br /&gt;
| inProc || Вхідна процедура обробки || Текст || Вхід || Не атрибут ||Константа ||&lt;br /&gt;
|-&lt;br /&gt;
| alSup || Придушення порушень || Логічний || Вхід || Повний доступ || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Затримка порушень, секунди || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| st_open || Стан &amp;quot;Відкрито&amp;quot; || Логічний || Вхід || Тільки читання ||Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| st_close || Стан &amp;quot;Закрито&amp;quot; || Логічний || Вхід || Тільки читання ||Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Шифр || Рядок || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Ім'я || Рядок (переклад) || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Опис || Текст (переклад) || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| this || Об'єкт || Об'єкт || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Помилка функції || Рядок || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Частота обчислення функції, Гц || Реальний || Вхід || Не атрибут || Змінна || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Прапорець запуску функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Прапорець зупинки функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainDigAlarmCfg_uk.png|right|Конфігурація.]]&lt;br /&gt;
{{CntHdr|Конфігурація та використання}}&lt;br /&gt;
:1. Створити та запустити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного контролеру]] або використати будь який наявний з потрібними властивостями планування.&lt;br /&gt;
:2. Створити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного параметру]] та обрати цей шаблон для нього. Ввімкнути параметр.&lt;br /&gt;
:3. У вкладці &amp;quot;Конфігурація шаблону&amp;quot; об'єкту логічного параметру ви маєте встановити:&lt;br /&gt;
:* &amp;quot;Сигнал &amp;quot;{st}:{lev}:{mess}&amp;quot; — визначити критерій формування порушення, залишити порожнім для вимкнення генерації порушень.&lt;br /&gt;
:* &amp;quot;Інверсія стану&amp;quot; — встановити для інвертування репрезентативних атрибутів, тобто &amp;quot;st_open&amp;quot; встановити за &amp;quot;in&amp;quot; рівного '''false'''.&lt;br /&gt;
:* &amp;quot;Вхід&amp;quot; — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|зв'язати із джерелом &amp;quot;сирого&amp;quot; сигналу]].&lt;br /&gt;
:* ''Вхідна процедура обробки'' — сформувати для складної передобробки та повної генерації-імітації дискретного входу на внутрішній мові програмування OpenSCADA. Наприклад:&lt;br /&gt;
::* повне створення складного статусу:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 40pt&amp;quot;&amp;gt;&lt;br /&gt;
gO = this.cntr().prm_grps;&lt;br /&gt;
status = gO.prm_generic.PRG_Input_Err_T_Zone1_S.get();&lt;br /&gt;
in = gO.prm_generic.SET_CalcFan_UseSensor_T1.get() || !(status == 0 || status == 2 || status == 3); &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:4. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати оперативні дані у вкладці &amp;quot;Атрибути&amp;quot;, для: змінної, стану помилки; та генерацію порушень, якщо стан помилки ненульовий.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=codeState /&amp;gt;&lt;br /&gt;
| {{Anch|codeState|&amp;lt;h3&amp;gt;Стан за кодом ([[Special:MyLanguage/Libs/Main#codeState|codeState]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.4 || GPLv2 || * || en, uk, ru &amp;lt;section end=codeState /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainCodeStateOp_uk.png|right|Результат та оперативні налаштування.]]&lt;br /&gt;
Варіант [[#digitBlockUnif|загального, представницького та уніфікованого шаблону блоку поєднання дискретних параметрів]], розширений більш ніж двома станами та трьома командами які можна закодувати цілим значенням. Шаблон формує структуру параметру (складного тегу) стану за кодом який може бути легко підключений до більшості віджетів та кадрів [[Special:MyLanguage/Libs/Main_graphical_elements|бібліотеки основних елементів інтерфейсу користувача]] просто вказавши об'єкт параметру.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсорування:''' Вінницька Птахофабрика&lt;br /&gt;
&lt;br /&gt;
Представницькою структурою параметру (складного тегу) стану за кодом є:&lt;br /&gt;
* &amp;quot;Стан &amp;quot;Текст&amp;quot; ('''st_text''')&amp;quot; — текстовий опис стану.&lt;br /&gt;
* &amp;quot;Команда &amp;quot;Текст&amp;quot; ('''com_text''')&amp;quot; — текст команди.&lt;br /&gt;
* &amp;quot;Команди ('''digComs''')&amp;quot; — загальний перелік можливих команд, для формування обрання.&lt;br /&gt;
* &amp;quot;Помилка ('''err''')&amp;quot; — обов'язковий атрибут будь якого параметру, що містить комбінацію коду помилки та короткого опису, на кшталт &amp;quot;1:Немає даних або підключення до джерела&amp;quot;. Шаблон резервує наступні коди помилок:&lt;br /&gt;
** '''1''' — помилки обладнання, коли дані переважно помилкові.&lt;br /&gt;
* &amp;quot;Придушення ('''alSup''') та затримка ('''alDelay''') порушень&amp;quot; — загальний контроль порушень щодо придушення та затримки.&lt;br /&gt;
&lt;br /&gt;
Значні графічні образи представлення структури:&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main_graphical_elements|Бібліотека основних елементів інтерфейсу користувача]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#TextLab|Текстова мітка]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ImgLab|Мітка зображенням]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|Елемент кадр]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Функції}}&lt;br /&gt;
* Пряме отримання, за посиланням, коду стану та команди (тільки читання), а також встановлення тексту стану згідно до переліку станів ''stats''.&lt;br /&gt;
* Опрацювання тексту команди ''com_text'' на предмет пошуку її у загальному переліку команд ''coms'' та видача отриманого коду команди на вихід.&lt;br /&gt;
* Формування із загальному переліку команд ''coms'' переліку команд для обрання у ''digComs''.&lt;br /&gt;
* Складна обробка та повна генерація-імітація коду стану, а також обробка коду або тексту команди для цільових дій, на внутрішній мові програмування OpenSCADA у конфігураційному ВВ '''inProc''', де ви можете оперувати наступними сервісними параметрами:&lt;br /&gt;
:* ''in'' [IN|OUT] — ВВ коду статусу;&lt;br /&gt;
:* ''text'' [OUT] — пряме встановлення тексту статусу;&lt;br /&gt;
:* ''coms'' [IN] — перелік наявних команд, відповідного ВВ;&lt;br /&gt;
:* ''com_text'' [IN|OUT] — текст отриманої команди;&lt;br /&gt;
:* ''levErr'', ''tErr'' [IN|OUT] — рівень аварії [-79...0] та текст помилки (формат атрибуту &amp;quot;err&amp;quot;);&lt;br /&gt;
:* ''f_frq'' [IN] — частота обчислення, шаблонний ВВ;&lt;br /&gt;
:* ''this'' [IN] — посилання на об'єкт параметру, що виконує шаблон;&lt;br /&gt;
:* ''ctx'' [IN] — об'єкт користувацького контексту, що зберігається між циклами виклику;&lt;br /&gt;
:* ''args'' [IN] — об'єкт аргументів процедури.&lt;br /&gt;
* Формування порушення та відповідне встановлення атрибуту '''err''', за умови встановлення у процедурі обробки або відсутності зв'язку (''in'' = EVAL). Що може бути затримано на час '''alDelay''' та придушено встановленням '''alSup'''.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|ВВ шаблону}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Режим !! Атрибут !! Конфігурація !! Значення&lt;br /&gt;
|-&lt;br /&gt;
| in || Вхід || Цілий || Вхід || Тільки читання || Зв'язок || Signal&amp;amp;#124;in&lt;br /&gt;
|-&lt;br /&gt;
| out || Вихід || Цілий || Вихід || Тільки читання || Зв'язок || Signal&amp;amp;#124;out&lt;br /&gt;
|-&lt;br /&gt;
| inProc || Вхідна процедура обробки || Текст || Вхід || Не атрибут ||Константа ||&lt;br /&gt;
|-&lt;br /&gt;
| alSup || Придушення порушень || Логічний || Вхід || Повний доступ || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Затримка порушень, секунди || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| st_text || Стан &amp;quot;Текст&amp;quot; || Рядок || Вхід || Тільки читання || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| stats || Стани, рядки &amp;quot;{code}:{State}&amp;quot; || Текст || Вхід || Повний доступ || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| com_text || Команда &amp;quot;Текст&amp;quot; || Рядок || Вхід || Повний доступ ||Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| coms || Команди-стани, рядки &amp;quot;{code}:{State}&amp;quot; || Текст || Вхід || Повний доступ || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| digComs || Команди || Текст || Вхід || Тільки читання || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Код || Рядок || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Ім'я || Рядок (переклад) || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Опис || Текст (переклад) || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| this || Об'єкт || Об'єкт || Вихід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Помилка функції || Рядок || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Частота обчислення функції, Гц || Реальний || Вхід || Не атрибут || Змінна || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Прапорець запуску функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Прапорець зупинки функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainCodeStateCfg_uk.png|right|Конфігурація.]]&lt;br /&gt;
{{CntHdr|Конфігурація та використання}}&lt;br /&gt;
:1. Створити та запустити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного контролеру]] або використати будь який наявний з потрібними властивостями планування.&lt;br /&gt;
:2. Створити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного параметру]] та обрати цей шаблон для нього. Ввімкнути параметр.&lt;br /&gt;
:3. У вкладці &amp;quot;Конфігурація шаблону&amp;quot; об'єкту логічного параметру ви маєте встановити:&lt;br /&gt;
:* ''Вхід'' та ''Вихід'' — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|зв'язати із джерелом &amp;quot;сирого&amp;quot; сигналу]].&lt;br /&gt;
:* ''Вхідна процедура обробки'' — сформувати для обробки та повної генерації-імітації входу, та видачі специфічного виходу, на внутрішній мові програмування OpenSCADA. Наприклад:&lt;br /&gt;
::* повне створення коду статусу та формування порушення:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 40pt&amp;quot;&amp;gt;&lt;br /&gt;
gO = this.cntr().prm_grps;&lt;br /&gt;
if(gO.prm_fansControl.PRG_CntrFan_AutoMode_G1.get().isEVal())	in = 4;&lt;br /&gt;
else {&lt;br /&gt;
  if(!(tVl=gO.prm_fansControl.PRG_CntrFan_Alarm_ThermalRelay.get()).isEVal() &amp;amp;&amp;amp; tVl)&lt;br /&gt;
    levErr = -4, tErr = &amp;quot;11:alarm&amp;quot;;&lt;br /&gt;
  if(gO.prm_fansControl.PRG_CntrFan_AutoMode_G1.get())&lt;br /&gt;
    in = gO.prm_fansControl.PRG_CntrFan_On_G1.get() ? 1 : 2;&lt;br /&gt;
  else in = 3;&lt;br /&gt;
} &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
::* формування тексту часу годинника та виклик синхронізації часу — пряме встановлення тексту статусу та виконання специфічних команд:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 40pt&amp;quot;&amp;gt;&lt;br /&gt;
curTm = SYS.time();&lt;br /&gt;
text = SYS.strftime(curTm, &amp;quot;%H։%M %d.%m.%Y&amp;quot;);&lt;br /&gt;
gO = this.cntr().prm_grps;&lt;br /&gt;
if(!(tVl=gO.prm_other.PRG_RTC_UNIX.get()).isEVal()) {&lt;br /&gt;
  text += &amp;quot; (&amp;quot;+(tVl-curTm).toString(10,0,true)+&amp;quot;)&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if(com_text.length &amp;amp;&amp;amp; !com_text.isEVal() &amp;amp;&amp;amp; (tVl=coms.match(&amp;quot;^([^:]+):&amp;quot;+com_text,&amp;quot;m&amp;quot;)).length &amp;amp;&amp;amp; tVl[1] == 1) {&lt;br /&gt;
  gO.prm_other.SET_RTC_New_UNIX.set(curTm);&lt;br /&gt;
  gO.prm_other.KEY_RTC_set_time.set(true);&lt;br /&gt;
} &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:4. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати оперативні дані у вкладці &amp;quot;Атрибути&amp;quot;, для: входу, виходу, стану за кодом-входом, стану помилки; та генерацію порушень, якщо стан помилки ненульовий.&lt;br /&gt;
:5. У процесі роботи, через вкладку оперативних даних &amp;quot;Атрибути&amp;quot;, окрім отримання результату можна здійснювати оперативне налаштування та контроль щодо:&lt;br /&gt;
:* ''Стани'' — встановити у перелік відповідності коду стану до його тексту.&lt;br /&gt;
:* ''Команди-стани'' — встановити у перелік відповідності коду стану-команди до його тексту.&lt;br /&gt;
:* ''Команда &amp;quot;Текст&amp;quot;'' — встановити у текст команди, яку описано у переліку команд, для перетворення у код та видачі.&lt;br /&gt;
:* ''Придушення порушень'' — встановити за потреби повного придушення порушень параметру — вимкнути їх генерацію взагалі.&lt;br /&gt;
:* ''Затримка порушень'' — встановити час затримки генерації порушення, для виключення частої генерації, характерної для непевних джерел даних, що відрізняються короткочасною втратою зв'язку.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=pidUnif /&amp;gt;&lt;br /&gt;
| {{Anch|pidUnif|&amp;lt;h3&amp;gt;ПІД сигнал, уніфікований, стани порушень ([[Special:MyLanguage/Libs/Main#pidUnif|pidUnif]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru &amp;lt;section end=pidUnif /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainPidUnifOp_uk.png|right|Результат та оперативні налаштування.]]&lt;br /&gt;
Загальний, представницький та уніфікований шаблон інтерфейсу до Пропорційного Інтегрального Диференційного (ПІД) регулятору заснованому на аналоговому вхідному сигналі, розширеному бінарними станами індикації порушень. Шаблон формує структуру аналогового ПІД-регулятору, який може бути легко підключений до деяких кадрів та віджетів [[Special:MyLanguage/Libs/Main_graphical_elements|бібліотеки основних елементів інтерфейсу користувача]], просто вказавши об'єкт параметру.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсоровано:''' ТОВ &amp;quot;ДІЯ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Представницькою структурою аналогового ПІД-регулятору є:&lt;br /&gt;
* &amp;quot;Змінна ('''var''')&amp;quot; — кінцева змінна параметру — інженерне реальне значення, доступне та придатне до архівації.&lt;br /&gt;
* &amp;quot;Помилка ('''err''')&amp;quot; — обов'язковий атрибут будь якого параметру, що містить комбінацію коду помилки та короткого опису, на кшталт &amp;quot;2:Немає даних або підключення до джерела&amp;quot;. Шаблон резервує наступні коди помилок:&lt;br /&gt;
** '''1, 2''' — помилки обладнання, коли дані переважно помилкові;&lt;br /&gt;
** '''3, 4''' — помилки аварійної границі;&lt;br /&gt;
** '''5, 6''' — помилки попереджувальної границі;&lt;br /&gt;
** '''7''' — помилка швидкості зміни змінної.&lt;br /&gt;
* &amp;quot;Придушення ('''alSup''') та затримка ('''alDelay''') порушень&amp;quot; — загальний контроль порушень щодо придушення та затримки.&lt;br /&gt;
* &amp;quot;Завдання ('''sp''')&amp;quot; — завдання для досягнення значенням аналоговим сигналом у автоматичному режимі.&lt;br /&gt;
* &amp;quot;Ручний ввід ('''manIn''')&amp;quot; — атрибут введення нового значення виходу, яке надалі потрапляє до виходу у ручному режимі.&lt;br /&gt;
* &amp;quot;Вихід ('''out''')&amp;quot; — вихід (сигнал контролю) ПІД-регулятору.&lt;br /&gt;
* &amp;quot;Режим: автомат ('''auto''')&amp;quot; — режим &amp;quot;Автомат&amp;quot; ПІД-регулятору.&lt;br /&gt;
* &amp;quot;Режим: каскад ('''casc''')&amp;quot; — режим &amp;quot;Каскад&amp;quot; ПІД-регулятору.&lt;br /&gt;
* &amp;quot;Шкала: мінімум ('''min''')&amp;quot; та &amp;quot;Шкала: максимум ('''max''')&amp;quot; — головна шкала кінцевої змінної, вихід за яку призводить до помилки апаратної границі. Шкала також використовується як шкала відображення тренду змінної на графіках.&lt;br /&gt;
* &amp;quot;Логарифмічна шкала ('''log''')&amp;quot; — ознака відображення тренду змінної на графіках у логарифмічній шкалі.&lt;br /&gt;
* &amp;quot;Одиниця виміру ('''ed''')&amp;quot; — одиниця виміру змінної.&lt;br /&gt;
* &amp;quot;Точність ('''prec''')&amp;quot; — кількість знаків після крапки, для позитивних значень, та точність (знаків загалом), для негативних, для відображення реальної кінцевої змінної на екрані.&lt;br /&gt;
&lt;br /&gt;
Значні графічні образи представлення структури:&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main_graphical_elements|Бібліотека основних елементів інтерфейсу користувача]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#cntrRegul|Панель налаштування регулятору]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|Елемент кадр]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#cntrPaspExt|Паспорт, розширений]]&lt;br /&gt;
* [[Special:MyLanguage/Libs/Mnemo_elements|Бібліотека елементів мнемосхем інтерфейсу користувача]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Mnemo_elements#analogApps|Аналогові апарати]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Функції}}&lt;br /&gt;
* Загальне опрацювання аналогового входу щодо:&lt;br /&gt;
:* проста корекція-калібрування за формулою &amp;quot;'''in''' = '''iMult'''*('''in'''+'''iAdd''')&amp;quot;;&lt;br /&gt;
:* масштабування від апаратної границі ['''plcMin'''...'''plcMax'''] у головну границю ['''min'''...'''max'''], враховуючи квадратичну шкалу '''scSqr''';&lt;br /&gt;
:* дозвіл на перевищення границі вхідним значенням на величину '''plcExcess''' відсотків;&lt;br /&gt;
:* фільтрування зміни вхідного значення на час '''Tf'''.&lt;br /&gt;
* Проста імітація аналогового входу, встановленням '''plcImit''' та підключенням джерела імітації-симуляції до '''plcImitIn'''.&lt;br /&gt;
* Опрацювання кінцевої змінної '''var''' на предмет порушення деяких границь та критеріїв, генеруючи аварії та відповідно встановлюючи атрибут '''err'''. Границі аварії можуть мати деякий гістерезис '''HystBnd''', можуть бути затримані на час '''alDelay''' та можуть бути придушені встановленням '''alSup'''. Надаються наступні границі та критерії:&lt;br /&gt;
:* відсутність даних або підключення до джерела за вхідним значенням EVAL — код помилки 1 та рівень аварії 5;&lt;br /&gt;
:* перевищення апаратної границі вхідним значенням — код помилки 1,2 та рівень аварії 5;&lt;br /&gt;
:* перевищення аварійної границі кінцевою змінною ['''aMin'''...'''aMax'''] — код помилки 3,4 та рівень аварії 4;&lt;br /&gt;
:: [[File:at.png]] Вимикається встановленням однакових або інверсних значень границі&lt;br /&gt;
:* перевищення попереджувальної границі кінцевою змінною ['''wMin'''...'''wMax'''] — код помилки 5,6 та рівень аварії 2;&lt;br /&gt;
:: [[File:at.png]] Вимикається встановленням однакових або інверсних значень границі&lt;br /&gt;
:* велика швидкість зміни '''speed''' кінцевої змінної — код помилки 7 та рівень аварії 2.&lt;br /&gt;
* Передавання специфічної ПІД інформації, контролю та атрибутів коефіцієнтів до та з ПЛК або іншого джерела даних із регулюванням.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|ВВ шаблону}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Режим !! Атрибут !! Конфігурація !! Значення&lt;br /&gt;
|-&lt;br /&gt;
| in || Вхід || Реальний || Вхід || Не атрибут || Зв'язок || Signal&amp;amp;#124;in&lt;br /&gt;
|-&lt;br /&gt;
| sp || Завдання || Реальний || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;sp&lt;br /&gt;
|-&lt;br /&gt;
| var || Змінна || Реальний || Вхід || Тільки читання || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| manIn || Ручний ввід, % || Реальний || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;manIn&lt;br /&gt;
|-&lt;br /&gt;
| out || Вихід, % || Реальний || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;out&lt;br /&gt;
|-&lt;br /&gt;
| auto || Режим: автомат || Логічний || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;auto&lt;br /&gt;
|-&lt;br /&gt;
| casc || Режим: каскад || Логічний || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;casc&lt;br /&gt;
|-&lt;br /&gt;
| ed || Одиниця виміру || Рядок || Вхід || Повний доступ || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| min || Шкала: мінімум || Реальний || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;min&lt;br /&gt;
|-&lt;br /&gt;
| max || Шкала: максимум || Реальний || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;max&lt;br /&gt;
|-&lt;br /&gt;
| scSqr || Шкала: квадратична || Логічний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| alSup || Придушення порушень || Логічний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Затримка порушень, секунди || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| aMin || Границя нижня аварійна || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| aMax || Границя верхня аварійна || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| wMin || Границя нижня попереджув. || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| wMax || Границя верхня попереджув. || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| HystBnd || Гістерезис порушень границь || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| speed || Швидкість зміни, %/цикл || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| prec || Точність, знаків || Цілий || Вхід || Повний доступ || Змінна || 2&lt;br /&gt;
|-&lt;br /&gt;
| log || Логарифмічна шкала || Логічний || Вхід || Повний доступ ||Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| H || Порушення верхньої попереджув. границі || Логічний || Вихід ||Тільки читання || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| L || Порушення нижньої попереджув. границі || Логічний || Вихід ||Тільки читання || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| HH || Порушення верхньої аварійної границі || Логічний || Вихід ||Тільки читання || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| LL || Порушення нижньої аварійної границі || Логічний || Вихід || Тільки читання || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| EVAL || Значення невірогідне || Логічний || Вихід || Тільки читання || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| Tf || Час фільтру, мілісекунд || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| Kp || Kп || Реальний || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;Kp&lt;br /&gt;
|-&lt;br /&gt;
| Ti || Tі, мілісекунд || Цілий || Вхід || Повний доступ || Зв'язок ||ПІД&amp;amp;#124;Ti&lt;br /&gt;
|-&lt;br /&gt;
| Kd || Кп диференціалу || Реальний || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;Kd&lt;br /&gt;
|-&lt;br /&gt;
| Td || Tд, мілісекунд || Цілий || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;Td&lt;br /&gt;
|-&lt;br /&gt;
| Tzd || T фільтру диференціалу, мілісекунд || Цілий || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;Tzd&lt;br /&gt;
|-&lt;br /&gt;
| Zi || Нечутливість, % || Реальний || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;Zi&lt;br /&gt;
|-&lt;br /&gt;
| Hup || Верхня границя виходу, % || Реальний || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;Hup&lt;br /&gt;
|-&lt;br /&gt;
| Hdwn || Нижня границя виходу, % || Реальний || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;Hdwn&lt;br /&gt;
|-&lt;br /&gt;
| K1 || Коефіцієнт входу 1 || Реальний || Вхід || Повний доступ ||Зв'язок || ПІД&amp;amp;#124;K1&lt;br /&gt;
|-&lt;br /&gt;
| K2 || Коефіцієнт входу 2 || Реальний || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;K2&lt;br /&gt;
|-&lt;br /&gt;
| K3 || Коефіцієнт входу 3 || Реальний || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;K3&lt;br /&gt;
|-&lt;br /&gt;
| K4 || Коефіцієнт входу 4 || Реальний || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;K4&lt;br /&gt;
|-&lt;br /&gt;
| iAdd || Додаток до входу || Реальний || Вхід || Не атрибут || Константа || 0&lt;br /&gt;
|-&lt;br /&gt;
| iMult || Множник входу || Реальний || Вхід || Не атрибут || Константа || 1&lt;br /&gt;
|-&lt;br /&gt;
| plcMin || Мінімум шкали модуля || Реальний || Вхід || Не атрибут || Константа || 1&lt;br /&gt;
|-&lt;br /&gt;
| plcMax || Максимум шкали модуля || Реальний || Вхід || Не атрибут || Константа || 5&lt;br /&gt;
|-&lt;br /&gt;
| plcExcess || Дозволене перевищення шкали, % || Реальний || Вхід || Не атрибут || Константа || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcImit || Імітація ПЛК || Логічний || Вхід || Не атрибут || Константа || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcImitIn || Вхід імітації ПЛК || Реальний || Вхід || Не атрибут || Зв'язок || Імітація&amp;amp;#124;var&lt;br /&gt;
|-&lt;br /&gt;
| this || Об'єкт || Об'єкт || Вихід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Шифр || Рядок || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Ім'я || Рядок (переклад) || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Опис || Текст (переклад) || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Частота обчислення функції, Гц || Реальний || Вхід || Не атрибут || Змінна || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Помилка функції || Рядок || Вхід || Не атрибут || Змінна ||0&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Прапорець запуску функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Прапорець зупинки функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainPidUnifCfg_uk.png|right|Конфігурація.]]&lt;br /&gt;
{{CntHdr|Конфігурація та використання}}&lt;br /&gt;
:1. Створити та запустити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного контролеру]] або використати будь який наявний з потрібними властивостями планування.&lt;br /&gt;
:2. Створити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного параметру]] та обрати цей шаблон для нього. Ввімкнути параметр.&lt;br /&gt;
:3. У вкладці &amp;quot;Конфігурація шаблону&amp;quot; об'єкту логічного параметру ви маєте встановити:&lt;br /&gt;
:* ''Вхід'' — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|зв'язати із джерелом &amp;quot;сирого&amp;quot; аналогового сигналу]].&lt;br /&gt;
:* ''Завдання'', ''Ручний ввід'', ''Вихід'', ''Режим: автомат'', ''Режим: каскад'', ''Шкала: мінімум'', ''Шкала: максимум'', ''Kп'', ''Tі'', ''Кп диференціалу'', ''Tд'', ''T фільтру диференціалу, мілісекунд'', ''Нечутливість'', ''Верхня границя виходу'', ''Нижня границя виходу'', ''Коефіцієнт входу 1'', ''Коефіцієнт входу 2'', ''Коефіцієнт входу 3'', ''Коефіцієнт входу 4'' — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|зв'язати із джерелом ПІД-регулятору]].&lt;br /&gt;
:* ''Додаток та множник до входу'' — використати для простої лінійної корекції входу, для прикладу дивіться шаблон &amp;quot;[[#anUnif|Аналоговий сигнал, уніфікований]]&amp;quot;.&lt;br /&gt;
:* ''Дозволене перевищення шкали'' — встановити за потреби перевищення значенням загальної шкали та коли ця шкала починає виконувати рекомендавчу функцію, скажемо для початкового відображення історії у цій шкалі.&lt;br /&gt;
:* ''Імітація та вхід імітації ПЛК'' — визначити за потреби імітації входу згідно опису у функціях.&lt;br /&gt;
:4. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати оперативні дані у вкладці &amp;quot;Атрибути&amp;quot;, для: змінної, стану помилки; та генерацію порушень, якщо стан помилки ненульовий. Також отримаємо всі ПІД-специфічні атрибути.&lt;br /&gt;
:5. У процесі роботи, через вкладку оперативних даних &amp;quot;Атрибути&amp;quot;, окрім отримання результату можна здійснювати оперативне налаштування та контроль щодо:&lt;br /&gt;
:* ''Шкала: мінімум та максимум'' — суворо [[file:at.png]] встановити у діапазон зміни даних за наявністю та відповідно до апаратної границі, інакше значення буде викривлене! &lt;br /&gt;
:* ''Шкала: квадратична'' — встановити якщо апаратна шкала квадратична.&lt;br /&gt;
:* ''Час фільтру'' — встановити у час фільтрації для зашумлених сигналів.&lt;br /&gt;
:* ''Придушення порушень'' — встановити за потреби повного придушення порушень параметру — вимкнути їх генерацію взагалі.&lt;br /&gt;
:* ''Затримка порушень'' — встановити час затримки генерації порушення, для виключення частої генерації, характерної для непевних джерел даних, що відрізняються короткочасною втратою зв'язку.&lt;br /&gt;
:* ''Границя верхня/нижня аварійна/попереджувальна'' — встановити коли треба генерувати порушення за виходом за аварійну/попереджувальну границі.&lt;br /&gt;
:* ''Гистерезис порушення границь'' — встановити у гістерезис зняття порушення, тобто зняття порушення відбувається на вказаний відсоток пізніше, щоб запобігти частій генерації за коливанням значення біля границі.&lt;br /&gt;
:* ''Швидкість зміни'' — встановити якщо треба попереджати про швидку зміну значення.&lt;br /&gt;
:* ''Назва, Опис, Одиниця виміру, Точність, Логарифмічна шкала'' — встановити за потреби такої інформації при відображені, або як елементи паспорту.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=pidUnifImp /&amp;gt;&lt;br /&gt;
| {{Anch|pidUnifImp|&amp;lt;h3&amp;gt;Імпульсний ПІД сигнал, уніфікований, стани порушень ([[Special:MyLanguage/Libs/Main#pidUnifImp|pidUnifImp]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.1 || GPLv2 || * || en, uk, ru &amp;lt;section end=pidUnifImp /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
Загальний, представницький та уніфікований шаблон інтерфейсу до Пропорційного Інтегрального Диференційного (ПІД) регулятору заснованому на аналоговому вхідному сигналі але із ШІМ-виходом, розширеному бінарними станами індикації порушень та переважно схоже на шаблон &amp;quot;[[#pidUnif|ПІД сигнал, уніфікований, стани порушень]]&amp;quot;. Шаблон формує структуру імпульсного ПІД-регулятору, який може бути легко підключений до деяких кадрів та віджетів [[Special:MyLanguage/Libs/Main_graphical_elements|бібліотеки основних елементів інтерфейсу користувача]], просто вказавши об'єкт параметру.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсоровано:''' ТОВ &amp;quot;ДІЯ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Представницька структура імпульсних ПІД-регуляторів переважно еквівалентна шаблону &amp;quot;[[#pidUnif|ПІД сигнал, уніфікований, стани порушень]]&amp;quot; та містить низку атрибутів, специфічних до імпульсного виходу та атрибут визначення роботи цього регулятору у аналоговому режимі, тобто цей шаблон є навіть більш узагальнювальним:&lt;br /&gt;
* &amp;quot;Імпульсний вихід у гору ('''impQup''')&amp;quot; та &amp;quot;Імпульсний вихід до низу ('''impQdwn''')&amp;quot; — сигнали ШІМ-виходу.&lt;br /&gt;
* &amp;quot;Режим: аналоговий ('''analog''')&amp;quot; — ознака роботи регулятору у режимі аналогового виходу.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Функції}}&lt;br /&gt;
Переважно те саме що у базового шаблону &amp;quot;[[#pidUnif|ПІД сигнал, уніфікований, стани порушень]]&amp;quot; та додатково надаються імпульсно-специфічні атрибути: &amp;quot;Імпульсний вихід у гору&amp;quot;, &amp;quot;Імпульсний вихід до низу&amp;quot;, &amp;quot;Режим: аналоговий&amp;quot;, &amp;quot;T період імпульсів&amp;quot;, &amp;quot;Мінімальна довжина імпульсу&amp;quot;, &amp;quot;Рейтинг фактор імпульсів&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|ВВ шаблону}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Режим !! Атрибут !! Конфігурація !! Значення&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | ВВ шаблону &amp;quot;[[#anUnif|ПІД сигнал, уніфікований, стани порушень]]&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| impQup || Імпульсний вихід у гору || Логічний || Вхід || Тільки читання || Зв'язок || ПІД&amp;amp;#124;impQupTm&lt;br /&gt;
|-&lt;br /&gt;
| impQdwn || Імпульсний вихід до низу || Логічний || Вхід || Тільки читання || Зв'язок || ПІД&amp;amp;#124;impQdwnTm&lt;br /&gt;
|-&lt;br /&gt;
| analog || Режим: аналоговий || Логічний || Вхід || Тільки читання || Зв'язок || ПІД&amp;amp;#124;analog&lt;br /&gt;
|-&lt;br /&gt;
| TImpPer || T період імпульсів, мілісекунд || Цілий || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;TImpPer&lt;br /&gt;
|-&lt;br /&gt;
| TImpMin || Мінімальна довжина імпульсу, мілісекунд || Цілий || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;TImpMin&lt;br /&gt;
|-&lt;br /&gt;
| KImpRfact || Рейтинг фактор імпульсів || Реальний || Вхід || Повний доступ || Зв'язок || ПІД&amp;amp;#124;KImpRfact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Конфігурація та використання}}&lt;br /&gt;
Переважно те саме що у базового шаблону &amp;quot;[[#pidUnif|ПІД сигнал, уніфікований, стани порушень]]&amp;quot; із відмінністю використання імпульсо-специфічного виходу: &amp;quot;Імпульсний вихід у гору&amp;quot;, &amp;quot;Імпульсний вихід до низу&amp;quot;, &amp;quot;Режим: аналоговий&amp;quot;, &amp;quot;T період імпульсів&amp;quot;, &amp;quot;Мінімальна довжина імпульсу&amp;quot;, &amp;quot;Рейтинг фактор імпульсів&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== {{Anch|ComplexObject|Шаблони комплексних об'єктів}} ==&lt;br /&gt;
У окремих випадках, коли деякий об'єкт є лише частиною загальної автоматизованої системи та такий що не потребує глибокої деталізації до рівня сигналів та параметрів (складного тегу) довкола них, включно без потреби архівації, їх зручно уніфікувати у одному представницькому об'єкті джерела даних OpenSCADA із відповідним консолідованим представленням та контролем об'єкту, як набору простих атрибутів із елементами сигналізації. Така консолідація часто відбувається довкола спеціалізованих джерел даних, доступ до даних яких зазвичай й реалізуються окремим протоколом обміну, але без уніфікації передачі цих даних на рівень візуалізації та сигналізації за окремим атрибутом об'єкту.&lt;br /&gt;
&lt;br /&gt;
Загалом, представницькою структурою комплексного об'єкту є:&lt;br /&gt;
* &amp;quot;Всі елементи ('''items''')&amp;quot; — спільний атрибут об'єктного типу де атрибути фізичного об'єкту прямо описуються атрибутами об'єктного типу у '''items''' та із визначеними описовими атрибутами у кожному:&lt;br /&gt;
** ''id'' — ідентифікатор атрибуту;&lt;br /&gt;
** ''descr'' — текстовий опис атрибуту;&lt;br /&gt;
** ''wr'' — ознака можливості запису до атрибуту або перелік варіантів значень для їх обрання, через символ ';';&lt;br /&gt;
** ''alarm'' — код порушення:&lt;br /&gt;
*** 0 — відсутність порушення — &amp;quot;НОРМА&amp;quot;;&lt;br /&gt;
*** 1 — порушення рівня &amp;quot;ПОПЕРЕДЖЕННЯ&amp;quot;;&lt;br /&gt;
*** 2 — порушення рівня &amp;quot;АВАРІЯ&amp;quot;;&lt;br /&gt;
** ''val'' — значення атрибуту;&lt;br /&gt;
** ''set'' — значення атрибуту для встановлення атрибутів доступних для запису.&lt;br /&gt;
* &amp;quot;Помилка ('''err''')&amp;quot; — обов'язковий атрибут загального статусу порушення за об'єктом цілком, що містить комбінацію коду помилки та короткого опису, на кшталт &amp;quot;2:Немає даних або підключення до джерела&amp;quot;. Зарезервовано наступні коди помилок:&lt;br /&gt;
** '''1''' — порушення рівня &amp;quot;ПОПЕРЕДЖЕННЯ&amp;quot;;&lt;br /&gt;
** '''2''' — порушення рівня &amp;quot;АВАРІЯ&amp;quot;;&lt;br /&gt;
** '''3''' — недостовірність або відсутність даних.&lt;br /&gt;
* &amp;quot;Придушення ('''alSup''') та затримка ('''alDelay''') порушень&amp;quot; — загальний контроль порушень щодо придушення та затримки.&lt;br /&gt;
&lt;br /&gt;
Узагальнюючи, такий шаблон (прошарок над об'єктом фізичних джерел даних) доцільно створювати над джерелом сирих даних, яке надає ці дані у вигляді атрибутів та без обробки, та цей шаблон відтак здійснює:&lt;br /&gt;
* збірку цих атрибутів сирого джерела до '''items''';&lt;br /&gt;
* опрацювання властивостей атрибутів;&lt;br /&gt;
* перевірку та передачу команд встановлення значень;&lt;br /&gt;
* опрацювання умов порушень як за окремими атрибутами так і загалом за об'єктом, разом з яким ці порушення можуть фіксуватися у [[Special:MyLanguage/Documents/Program_manual#ArchMess|таблиці поточних порушень]], зазвичай [[Special:MyLanguage/Documents/User_API#SYS.DAQ|функцією alarmSet()]].&lt;br /&gt;
&lt;br /&gt;
Окрім шаблонів комплексного об'єкту цей механізм загально-об'єктного контролю може реалізовуватися шаблонами реалізації [[Special:MyLanguage/Documents/DAQ#LogicLev|логічного рівня доступу до даних]], як то у [[Special:MyLanguage/Libs/Devices#IEC60870|IEC60870]].&lt;br /&gt;
&lt;br /&gt;
Для представлення даних механізму загально-об'єктного контролю наразі надається відповідний [[Special:MyLanguage/Libs/Main_graphical_elements#objProps|кадр &amp;quot;Властивості об'єкту&amp;quot;]], який надає ці властивості у вигляді таблиці-переліку із підсвіченням порушень та можливістю зміни обраних та редагованих властивостей-рядків.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=UPS /&amp;gt;&lt;br /&gt;
| {{Anch|UPS|&amp;lt;h3&amp;gt;Джерело Безперебійного Живлення ([[Special:MyLanguage/Libs/Main#UPS|UPS]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 2.2 || GPLv2 || * || en, uk, ru &amp;lt;section end=UPS /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainUPSOp_uk.png|right|Результат і оперативні налаштування.]]&lt;br /&gt;
Об'єднання даних Джерела Безперебійного Живлення у комплексному об'єкті атрибуту &amp;quot;Всі елементи&amp;quot;. Шаблон первинно розроблено для використання із модулем джерела даних &amp;quot;[[Special:MyLanguage/Modules/System|Система]]&amp;quot; у частині &amp;quot;ДБЖ&amp;quot; та представлення цих даних [[Special:MyLanguage/Libs/Main_graphical_elements#objProps|кадром &amp;quot;Властивості об'єкту&amp;quot;]], як комплексний об'єкт із властивостями, сигналізацією за окремими границями та записом.&lt;br /&gt;
&lt;br /&gt;
Надалі шаблон розширено прямою реалізацією ДБЖ або Інверторів Потужності підтримка яких відсутня у [https://networkupstools.org/ NUT] (у основі частини &amp;quot;ДБЖ&amp;quot;), і таким першим пристроєм став [https://www.mustpower.com/product/ep2100-pro-series-dc12v-300-1000w/ Must EP2100 PRO]. І для цього тут також додано користувацьке визначення властивостей пристрою для розташування у якості DAQ-Атрибутів із можливістю перевизначення опису.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсоровано:''' ТОВ &amp;quot;ДІЯ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|ВВ шаблону}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Режим !! Атрибут !! Конфігурація !! Значення&lt;br /&gt;
|-&lt;br /&gt;
| srcAddr || Адреса вихідного об'єкту&lt;br /&gt;
* &amp;quot;System.slow.prm_UPS&amp;quot; - для підключення до [[Special:MyLanguage/Modules/System|DAQ.System]] параметру у частині ДБЖ;&lt;br /&gt;
* &amp;quot;Serial.ep21:/dev/ttyUSB0:9600:8N1||500:30&amp;quot; - для підключення до послідовного порту Must EP2100 PRO.&lt;br /&gt;
| Рядок || Вхід || Не атрибут || Константа || &lt;br /&gt;
|-&lt;br /&gt;
| alSup || Придушення порушень || Логічний || Вхід || Повний доступ || Змінна || &lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Затримка порушень, секунди || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| items || Всі елементи || Об'єкт || Вихід || Повний доступ || Змінна || &lt;br /&gt;
|-&lt;br /&gt;
| defs || Визначення елементів&lt;br /&gt;
У формі рядків - &amp;quot;{id}:{toAttr}:{descr}&amp;quot;&lt;br /&gt;
| Текст || Вихід || Повний доступ || Змінна || &lt;br /&gt;
|-&lt;br /&gt;
| bChL || Низький заряд батареї || Реальний || Вхід || Повний доступ || Змінна || 20&lt;br /&gt;
|-&lt;br /&gt;
| bChLL || Критичний заряд батареї || Реальний || Вхід || Повний доступ || Змінна || 5&lt;br /&gt;
|-&lt;br /&gt;
| inVL || Низька вхідна напруга || Реальний || Вхід || Повний доступ || Змінна || 210&lt;br /&gt;
|-&lt;br /&gt;
| inVH || Висока вхідна напруга || Реальний || Вхід || Повний доступ || Змінна || 250&lt;br /&gt;
|-&lt;br /&gt;
| inFLL || Дуже низька вхідна частота || Реальний || Вхід || Повний доступ || Змінна || 40&lt;br /&gt;
|-&lt;br /&gt;
| inFL || Низька вхідна частота || Реальний || Вхід || Повний доступ || Змінна || 45&lt;br /&gt;
|-&lt;br /&gt;
| inFH || Висока вхідна частота || Реальний || Вхід || Повний доступ || Змінна || 55&lt;br /&gt;
|-&lt;br /&gt;
| inFHH || Дуже висока вхідна частота || Реальний || Вхід || Повний доступ || Змінна || 60&lt;br /&gt;
|-&lt;br /&gt;
| loadH || Навантаження високе || Реальний || Вхід || Повний доступ || Змінна || 80&lt;br /&gt;
|-&lt;br /&gt;
| loadHH || Навантаження дуже високе || Реальний || Вхід || Повний доступ || Змінна || 100&lt;br /&gt;
|-&lt;br /&gt;
| tH || Висока температура || Реальний || Вхід || Повний доступ || Змінна || 50&lt;br /&gt;
|-&lt;br /&gt;
| tHH || Температура дуже висока || Реальний || Вхід || Повний доступ || Змінна || 70&lt;br /&gt;
|-&lt;br /&gt;
| hyst || Гістерезис границь, % || Реальний || Вхід || Повний доступ || Змінна || 5&lt;br /&gt;
|-&lt;br /&gt;
| this || Об'єкт || Об'єкт || Вхід || Не атрибут || Змінна || &lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Шифр || Рядок || Вхід || Не атрибут || Змінна || &lt;br /&gt;
|-&lt;br /&gt;
| NAME || Ім'я || Рядок (переклад) || Вхід || Не атрибут || Змінна || &lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Опис || Текст (переклад) || Вхід || Не атрибут || Змінна || &lt;br /&gt;
|-&lt;br /&gt;
| f_start || Прапорець запуску функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Частота обчислення функції, Гц || Реальний || Вхід || Не атрибут || Змінна || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Помилка функції || Рядок || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Прапорець зупинки функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainUPSCfg_uk.png|right|Конфігурація.]]&lt;br /&gt;
{{CntHdr|Конфігурація та використання}}&lt;br /&gt;
:1. [ [[Special:MyLanguage/Modules/System|DAQ.System]] ] Створити об'єкт контролеру джерела у модулі DAQ.System і встановити його ідентифікатор на кшталт &amp;quot;SYSData&amp;quot;.&lt;br /&gt;
:2. [ [[Special:MyLanguage/Modules/System|DAQ.System]] ] Створити об'єкт параметру джерела у попередньо створеному об'єкті контролера і встановити його ідентифікатор на кшталт &amp;quot;UPS&amp;quot;.&lt;br /&gt;
:3. Створити і запустити [[Special:MyLanguage/Modules/LogicLev|Об'єкт Логічного Контролеру]] або використати будь який наявний з потрібними властивостями планування.&lt;br /&gt;
:4. Створити [[Special:MyLanguage/Modules/LogicLev|Об'єкт Логічного Параметру]] і обрати цей шаблон для нього. Ввімкнути параметр.&lt;br /&gt;
:5. У вкладці &amp;quot;Конфігурація шаблону&amp;quot; Об'єкту Логічного Параметру маєте встановити:&lt;br /&gt;
:* ''Адреса вихідного об'єкту''&lt;br /&gt;
::* [ [[Special:MyLanguage/Modules/System|DAQ.System]] ] — у адресу об'єкту вихідного параметру ДБЖ (дивіться крок 1), на кшталт &amp;quot;System.SYSData.prm_UPS&amp;quot;;&lt;br /&gt;
::* [ Must EP2100 PRO ] — у Послідовну адресу підключення пристрою на кшталт &amp;quot;Serial.ep21:/dev/ttyUSB0:9600:8N1||500:30&amp;quot;.&lt;br /&gt;
:6. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) і якщо він не запущений, маємо отримати у атрибуті параметру ''Всі елементи (items)'' цей об'єкт з усіма атрибутами і їх властивостями. У випадку деяких порушень отримаємо відповідну інформацію у атрибуті ''Помилка (err)'', стосовно чого можете налаштувати атрибути границь відповідних порушень. Для адаптації до користувача деяких описів елементів і для розташування деяких у DAQ-Атрибутах, можете відредагувати &amp;quot;Визначення елементів (defs)&amp;quot; щодо них. Зі створених DAQ-Атрибутів можете також контролювати доступні до запису.&lt;br /&gt;
:7. У візуальному інтерфейсі розробки модуля [[Special:MyLanguage/Modules/Vision|Vision]] розташуйте кадр &amp;quot;[[Special:MyLanguage/Libs/Main_graphical_elements#objProps|Властивості об'єкту]]&amp;quot; до будь-якої сторінки і зв'яжіть його із об'єктом цього параметру, створеного на кроці 4.&lt;br /&gt;
:8. РЕЗУЛЬТАТ: При виконанні сторінки отримаєте таблицю з даними об'єкту, повідомленням про порушення у заголовку та об'єкті сигналізації і можливістю встановлення доступних до запису властивостей.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=SNMP /&amp;gt;&lt;br /&gt;
| {{Anch|SNMP|&amp;lt;h3&amp;gt;Мережеві пристрої за SNMP ([[Special:MyLanguage/Libs/Main#SNMP|SNMP]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.1 || GPLv2 || * || en, uk, ru &amp;lt;section end=SNMP /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainSNMPOp_uk.png|right|Результат та оперативні налаштування.]]&lt;br /&gt;
Об'єднання даних пристрою, доступного за протоколом SNMP, у комплексному об'єкті атрибуту &amp;quot;Всі елементи&amp;quot;. Шаблон розроблено для використання із модулем джерела даних &amp;quot;[[Special:MyLanguage/Modules/SNMP|SNMP]]&amp;quot; та представлення цих даних [[Special:MyLanguage/Libs/Main_graphical_elements#objProps|кадром &amp;quot;Властивості об'єкту&amp;quot;]] як комплексний об'єкт із властивостями, сигналізацією за окремими границями та записом. Враховуючи велику специфіку та розмаїття пристроїв доступних за протоколом SNMP, цей шаблон фактично є заготовкою та прикладом створення на його основі шаблону до відповідного пристрою із специфічною до нього обробкою вхідних властивостей, формування порушень та можливістю запису.&lt;br /&gt;
&lt;br /&gt;
* '''Спонсорувано:''' ПАС ХАРТРОН&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|ВВ шаблону}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Режим !! Атрибут !! Конфігурація !! Значення&lt;br /&gt;
|-&lt;br /&gt;
| srcAddr || Адреса вихідного об'єкту || Рядок || Вхід || Не атрибут || Константа ||&lt;br /&gt;
|-&lt;br /&gt;
| manTables || Ручні таблиці || Рядок || Вхід || Не атрибут || Константа ||&lt;br /&gt;
|-&lt;br /&gt;
| alSup || Придушення порушень || Логічний || Вхід || Повний доступ ||Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Затримка порушень, секунди || Реальний || Вхід || Повний доступ || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| items || Всі елементи || Об'єкт || Вихід || Повний доступ || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| this || Об'єкт || Об'єкт || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Шифр || Рядок || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Ім'я || Рядок (переклад) || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Опис || Текст (переклад) || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Помилка функції || Рядок || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Прапорець запуску функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Прапорець зупинки функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Частота обчислення функції, Гц || Реальний || Вхід || Не атрибут || Змінна || 1000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainSNMPCfg_uk.png|right|Конфігурація.]]&lt;br /&gt;
{{CntHdr|Конфігурація та використання}}&lt;br /&gt;
:1. Створити об'єкт контролеру джерела у модулі &amp;quot;[[Special:MyLanguage/Modules/SNMP|SNMP]]&amp;quot; та встановити його Ідентифікатор на кшталт &amp;quot;SYSData&amp;quot;.&lt;br /&gt;
:2. Створити об'єкт параметру джерела у попередньо створеному об'єкті контролера та встановити його Ідентифікатор на кшталт &amp;quot;DEV&amp;quot;.&lt;br /&gt;
:3. Створити та запустити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного контролеру]] або використати будь який наявний з потрібними властивостями планування.&lt;br /&gt;
:4. Створити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного параметру]] та обрати цей шаблон для нього. Ввімкнути параметр.&lt;br /&gt;
:5. У вкладці &amp;quot;Конфігурація шаблону&amp;quot; об'єкту логічного параметру ви маєте встановити:&lt;br /&gt;
:* ''Адреса вихідного об'єкту'' — у адресу об'єкту параметру вихідного пристрою SNMP (дивіться крок 1), на кшталт &amp;quot;SNMP.SYSData.DEV&amp;quot;;&lt;br /&gt;
:* ''Ручні таблиці'' — вручну введіть деякі статичні MIB-змінні.&lt;br /&gt;
:6. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати у атрибуті параметру ''items'' цей об'єкт з усіма атрибутами та їх властивостями. У випадку деяких порушень отримаємо відповідну інформацію у атрибуті параметру ''err'', стосовно чого ви можете налаштувати атрибути границь відповідних порушень.&lt;br /&gt;
:7. У візуальному інтерфейсі розробки модуля [[Special:MyLanguage/Modules/Vision|Vision]] розташуйте [[Special:MyLanguage/Libs/Main_graphical_elements#objProps|кадр &amp;quot;Властивості об'єкту&amp;quot;]] до будь-якої сторінки та зв'яжіть його із об'єктом цього параметру, створеного на кроці 4.&lt;br /&gt;
:8. РЕЗУЛЬТАТ: При виконанні сторінки ви отримаєте таблицю з даними об'єкту, повідомленням про порушення у заголовку та об'єкті сигналізації та можливістю встановлення властивостей доступних до запису.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=DiskSMART /&amp;gt;&lt;br /&gt;
| {{Anch|DiskSMART|&amp;lt;h3&amp;gt;Дисковий SMART ([[Special:MyLanguage/Libs/Main#DiskSMART|DiskSMART]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.1 || GPLv2 || * || en, uk &amp;lt;section end=DiskSMART /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainDiskSMARTOp_uk.png|right|Результат та оперативні налаштування.]]&lt;br /&gt;
Об'єднання даних дискового SMART у комплексному об'єкті атрибуту &amp;quot;Всі елементи&amp;quot;. Шаблон розроблено для використання із модулем джерела даних &amp;quot;[[Special:MyLanguage/Modules/System|Система]]&amp;quot; у частині &amp;quot;SMART Диску&amp;quot; та представлення цих даних [[Special:MyLanguage/Libs/Main_graphical_elements#objProps|кадром &amp;quot;Властивості об'єкту&amp;quot;]] як комплексний об'єкт із властивостями і сигналізацією за загальних помилок. Деякі атрибути SMART можуть бути невідомими або помилковими для визначеного диску через їх відсутність у БД дисків, особливо для сучасних SSD, тож шаблоном надається властивість перевизначення назв атрибутів.&lt;br /&gt;
&lt;br /&gt;
* Складна післяобробка і повна генерація-імітація полів SMART із окремими атрибутами на внутрішній мові програмування OpenSCADA у конфігураційному ВВ '''inProc''' (із доповненням вбудованими правилами підсвітлення синтаксису), де ви можете оперувати наступними сервісними параметрами:&lt;br /&gt;
:* ''alLev'', ''tErr'' [IN|OUT] — рівень аварії [-79...0] та текст помилки (формат атрибуту &amp;quot;err&amp;quot;);&lt;br /&gt;
:* ''f_frq'' [IN] — частота обчислення, шаблонний ВВ;&lt;br /&gt;
:* ''this'' [IN] — посилання на об'єкт параметру, що виконує шаблон;&lt;br /&gt;
:* ''ctx'' [IN] — об'єкт користувацького контексту, що зберігається між циклами виклику;&lt;br /&gt;
:* ''args'' [IN] — об'єкт аргументів процедури;&lt;br /&gt;
:* ''items'' [IN|OUT] — об'єкт елементів SMART.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|ВВ шаблону}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Режим !! Атрибут !! Конфігурація !! Значення&lt;br /&gt;
|-&lt;br /&gt;
| srcAddr || Адреса вихідного об'єкту || Рядок || Вхід || Не атрибут || Константа ||&lt;br /&gt;
|-&lt;br /&gt;
| inProc || Вхідна процедура обробки || Текст || Вхід || Не атрибут || Константа ||&lt;br /&gt;
|-&lt;br /&gt;
| items || Всі елементи || Об'єкт || Вихід || Повний доступ || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| defs || Визначення елементів || Текст || Вхід || Повний доступ || Змінна ||&lt;br /&gt;
&amp;lt;pre&amp;gt;160:Uncorrectable sectors count when read/write (160)&lt;br /&gt;
161:Number of Valid Spare Blocks (161)&lt;br /&gt;
162:Uncorrectable Sector Count (162)&lt;br /&gt;
163:Number of Initial Invalid Blocks (163)&lt;br /&gt;
164:Total Erase Count (164)&lt;br /&gt;
165:Block Erase Count (165)&lt;br /&gt;
166:Minimum PE Cycles TLC (166)&lt;br /&gt;
167:Max Bad Blocks per Die (167)&lt;br /&gt;
168:Maximum PE Cycles TLC (168)&lt;br /&gt;
168:Max Erase Count of Spec (168)&lt;br /&gt;
168:SATA PHY error count (168)&lt;br /&gt;
169:Total Bad Blocks (169)&lt;br /&gt;
169:Remain Life (169)&lt;br /&gt;
170:Grown Bad Blocks (170)&lt;br /&gt;
170:Bad Block Count (170)&lt;br /&gt;
171:Program Fail Count (171)&lt;br /&gt;
172:Erase Fail Count (172)&lt;br /&gt;
173:Average PE Cycles TLC (173)&lt;br /&gt;
173:Max Erase Count (173)&lt;br /&gt;
174:Unexpected Power Loss (174)&lt;br /&gt;
184:End-to-End Error (184)&lt;br /&gt;
187:Reported Uncorrect (187)&lt;br /&gt;
188:Command Timeout (188)&lt;br /&gt;
218:CRC Error Count (218)&lt;br /&gt;
230:Media Wearout Indicator (230)&lt;br /&gt;
231:SSD Life Left (231)&lt;br /&gt;
233:NAND GB Written TLC (233)&lt;br /&gt;
234:NAND GB Written SLC (234)&lt;br /&gt;
241:Host Writes GB (241)&lt;br /&gt;
242:Host Reads GiB (242)&lt;br /&gt;
244:Temp Throttle Status (244)&lt;br /&gt;
245:Flash Write Sector Count (245)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| this || Об'єкт || Об'єкт || Вхід || Не атрибут || Змінна || &lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Шифр || Рядок || Вхід || Не атрибут || Змінна || &lt;br /&gt;
|-&lt;br /&gt;
| NAME || Назва || Рядок || Вхід || Не атрибут || Змінна || &lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Опис || Рядок || Вхід || Не атрибут || Змінна || &lt;br /&gt;
|-&lt;br /&gt;
| f_err || Помилка функції || Рядок || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Прапорець запуску функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Прапорець зупинки функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Частота обчислення функції, Гц || Реальний || Вхід || Не атрибут || Змінна || 1000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainDiskSMARTCfg_uk.png|right|Конфігурація.]]&lt;br /&gt;
{{CntHdr|Конфігурація та використання}}&lt;br /&gt;
:1. Створити об'єкт контролеру джерела у модулі &amp;quot;[[Special:MyLanguage/Modules/System|Система]]&amp;quot; та встановити його Ідентифікатор на кшталт &amp;quot;SYSData&amp;quot;, встановити властивість &amp;quot;Авт. створювати активні джерела даних&amp;quot; у &amp;quot;Всі джерела&amp;quot; і запустити встановленням &amp;quot;Виконується&amp;quot;.&lt;br /&gt;
:2. Створити та запустити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного контролеру]] або використати будь який наявний з потрібними властивостями планування.&lt;br /&gt;
:3. Створити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного параметру]] та обрати цей шаблон для нього. Ввімкнути параметр.&lt;br /&gt;
:4. У вкладці &amp;quot;Конфігурація шаблону&amp;quot; об'єкту логічного параметру ви маєте встановити:&lt;br /&gt;
:* ''Адреса вихідного об'єкту'' — у адресу об'єкту вихідного параметру диску SMART на кшталт &amp;quot;System.SYSData.DiskSMARTsda&amp;quot;.&lt;br /&gt;
:* ''Вхідна процедура обробки'' — сформувати для складної передобробки і повної генерації-імітації SMART полів із окремими атрибутами на внутрішній мові програмування OpenSCADA.&lt;br /&gt;
:5. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати у атрибуті параметру ''items'' цей об'єкт з усіма атрибутами та їх властивостями. У випадку деяких порушень отримаємо відповідну інформацію у атрибуті параметру ''err''.&lt;br /&gt;
:6. У візуальному інтерфейсі розробки модуля [[Special:MyLanguage/Modules/Vision|Vision]] розташуйте кадр &amp;quot;[[Special:MyLanguage/Libs/Main_graphical_elements#objProps|Властивості об'єкту]]&amp;quot; до будь якої сторінки та зв'яжіть його із об'єктом цього параметру, створеного на кроці 3.&lt;br /&gt;
:7. РЕЗУЛЬТАТ: При виконанні сторінки ви отримаєте таблицю з даними об'єкту, повідомленням про порушення у заголовку та об'єкті сигналізації і можливістю перевизначити назви атрибутів SMART.&lt;br /&gt;
&lt;br /&gt;
== Сервіси ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ntf /&amp;gt;&lt;br /&gt;
| {{Anch|ntf|&amp;lt;h3&amp;gt;Сповіщувач за SMS, EMail-SMTP ([[Special:MyLanguage/Libs/Main#ntf|ntf]])&amp;lt;/h3&amp;gt;}} || 1.0 || GPLv2 || * =&amp;gt; [[Special:MyLanguage/Modules/UserProtocol|UserProtocol]] || en, uk, ru &amp;lt;section end=ntf /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainNtfOp_uk.png|right|Результат та оперативні налаштування.]]&lt;br /&gt;
Комплексний шаблон сповіщення містить частини диспетчеру та вихідний користувацький протокол сповіщення за EMail(SMTP) та SMS.&lt;br /&gt;
&lt;br /&gt;
* '''Загальна працемісткість:''' &amp;gt; 1.05 {{CtxDetails|ЛД|людино-днів, 1ЛД — 10 годин}}&lt;br /&gt;
* '''Спонсорування, ініціативної імплементації частини SMS-надсилання на 0.2 {{CtxDetails|ЛД|людино-днів, 1ЛД — 10 годин}}:''' [[Special:MyLanguage/Using/HouseSpirit|Олег Сидашов]]&lt;br /&gt;
* '''Спонсорування, уніфікації, додання SMTP та контролеру сповіщення на 0.65 {{CtxDetails|ЛД|людино-днів, 1ЛД — 10 годин}}:''' ТОВ &amp;quot;СВІТоВИР АВТоМАТИК&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''ДИСПЕТЧЕР''' може виконуватися для вказаних повідомлень буферу повідомлень OpenSCADA та застосовується на [[Special:MyLanguage/Documents/DAQ#LogicLev|Логічному рівні]] або об'єкті контролеру [[Special:MyLanguage/Modules/JavaLikeCalc|модуля JavaLikeCalc]].&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|ВВ шаблону}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Режим !! Атрибут !! Конфігурація !! Значення&lt;br /&gt;
|-&lt;br /&gt;
| io || UserPrt: Вихідний ВВ || Об'єкт || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| tr || UserPrt: Транспорт || Об'єкт || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| tmOut || Максимальний таймаут сповіщення, секунд || Цілий || Вхід || Не атрибут || Константа || 5&lt;br /&gt;
|-&lt;br /&gt;
| messLev || Рівень сповіщень, негативний для порушень || Цілий || Вхід || Не атрибут || Константа || 1&lt;br /&gt;
|-&lt;br /&gt;
| messCat || Категорія сповіщень, шаблон або регулярний вираз || Рядок || Вхід || Не атрибут || Константа || al*:*&lt;br /&gt;
|-&lt;br /&gt;
| messCatExcl || Категорія виключення повідомлень, у регулярному виразі || Рядок || Вхід || Не атрибут || Константа ||&lt;br /&gt;
|-&lt;br /&gt;
| emailState || Поточний стан сповіщення Ел.поштою || Рядок || Вихід || Тільки читання || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| emailTrAddr || Вихідний транспорт SMTP підключень, порожньо для вимкнення || Рядок || Вхід || Не атрибут || Константа || Sockets.out_SMTP&lt;br /&gt;
|-&lt;br /&gt;
| emailAuth || Автентифікація, порожньо для вимкнення || Рядок || Вхід || Не атрибут || Константа || user:pass&lt;br /&gt;
|-&lt;br /&gt;
| emailSender || Відправник || Рядок || Вхід || Не атрибут || Константа || noreply@oscada.org&lt;br /&gt;
|-&lt;br /&gt;
| emailReceiver || Адреса призначення одержувача || Рядок || Вхід || Не атрибут || Константа || test@oscada.org&lt;br /&gt;
|-&lt;br /&gt;
| emailTopic || Тема Ел.пошти || Рядок || Вхід || Не атрибут || Константа || Повідомлення&lt;br /&gt;
|-&lt;br /&gt;
| emailMess || Повідомлення Ел.пошти || Рядок || Вхід || Не атрибут || Константа ||&lt;br /&gt;
|-&lt;br /&gt;
| SMSState || Поточний стан повідомлення SMS || Рядок || Вихід || Тільки читання || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| SMSTrAddr || Послідовний транспорт SMS, порожньо для вимкнення || Рядок || Вхід || Не атрибут || Константа || Serial.out_SMS&lt;br /&gt;
|-&lt;br /&gt;
| SMSPin || Пін-код SMS, порожньо для вимкнення || Рядок || Вхід || Не атрибут || Константа || 1111&lt;br /&gt;
|-&lt;br /&gt;
| SMSTel || Адреса одержувача SMS, номер телефону || Рядок || Вхід || Не атрибут || Константа || +380XXXXXXXXX&lt;br /&gt;
|-&lt;br /&gt;
| SMSTextMd || SMS у текстовому режимі, інакше PDU || Логічний || Вхід || Не атрибут || Константа || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Частота обчислення функції, Гц || Реальний || Вхід || Не атрибут || Змінна || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Прапорець запуску функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Помилка функції || Рядок || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Прапорець зупинки функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainNtfCfg_uk.png|right|Конфігурація.]]&lt;br /&gt;
{{CntHdr|Конфігурація та використання}}&lt;br /&gt;
:1. Створити параметр у об'єкті контролеру [[Special:MyLanguage/Documents/DAQ#LogicLev|Логічного рівня]] або об'єкт контролеру у [[Special:MyLanguage/Modules/JavaLikeCalc|модулі DAQ.JavaLikeCalc]].&lt;br /&gt;
:2. Створити вихідний транспорт типу &amp;quot;[[Special:MyLanguage/Modules/Serial|Послідовний]]&amp;quot; та встановити його Ідентифікатор на кшталт &amp;quot;SMS&amp;quot;, один транспорт підходить для багатьох одержувачів.&lt;br /&gt;
:3. Встановити властиву адресу, тільки для [[Special:MyLanguage/Modules/Serial|Послідовного]] пристрою. Швидкість, формат асинхронних даних та таймаути послідовного порту будуть налаштовані функцією.&lt;br /&gt;
:4. Створити вихідний транспорт типу &amp;quot;[[Special:MyLanguage/Modules/Sockets|Сокети]]&amp;quot; або &amp;quot;[[Special:MyLanguage/Modules/SSL|SSL]]&amp;quot; та встановити його Ідентифікатор на кшталт &amp;quot;SMTP&amp;quot;, один транспорт підходить для багатьох одержувачів.&lt;br /&gt;
:5. Встановити властиву адресу, для Сокетів(25) або SSL(465). Таймаути транспорту будуть налаштовані функцією.&lt;br /&gt;
:6. У вкладці &amp;quot;Конфігурація шаблону&amp;quot; ви маєте встановити:&lt;br /&gt;
:* Максимальний таймаут сповіщення, секунд.&lt;br /&gt;
:* Рівень повідомлень, негативний для порушень.&lt;br /&gt;
:* Категорія повідомлень, шаблон або регулярний вираз.&lt;br /&gt;
:* Категорія виключення повідомлень, у регулярному виразі&lt;br /&gt;
:* Вихідний транспорт SMTP підключень, порожньо для вимкнення.&lt;br /&gt;
:* Автентифікація, порожньо для вимкнення.&lt;br /&gt;
:* Відправник.&lt;br /&gt;
:* Адреса призначення одержувача.&lt;br /&gt;
:* Тема Ел.пошти.&lt;br /&gt;
:* Повідомлення Ел.пошти.&lt;br /&gt;
:* Послідовний транспорт SMS, порожньо для вимкнення.&lt;br /&gt;
:* Пін-код SMS, порожньо для вимкнення.&lt;br /&gt;
:* Адреса одержувача SMS, номер телефону.&lt;br /&gt;
:* SMS у текстовому режимі, інакше PDU.&lt;br /&gt;
:7. РЕЗУЛЬТАТ: Надсилання вказаних сповіщень як SMS або EMail(SMTP).&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;SMS&amp;quot; ЧАСТИНА ВИХІДНОГО КОРИСТУВАЦЬКОГО ПРОТОКОЛУ''' надає операції із SMS за допомогою GSM-модему, підключеного як послідовний пристрій. Наразі підтримується лише відправка SMS сповіщень на номер віддаленого мобільного телефону або GSM-модему. Для надсилання підтримується: вимкнення ЛУНИ, перевірка та встановлення PIN, надсилання у PDU та текстовому режимі.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Структура XML-запиту вихідного користувацького протоколу}}&lt;br /&gt;
'''&amp;lt;cmd pin=&amp;quot;1111&amp;quot; tel=&amp;quot;+380XXXXXXXXX&amp;quot; text=&amp;quot;{0|1}&amp;quot; err=&amp;quot;1:Error&amp;quot;&amp;gt;{SMSText}&amp;lt;/cmd&amp;gt;'''&lt;br /&gt;
:''cmd'' — команда, наразі наявне лише &amp;quot;send&amp;quot;;&lt;br /&gt;
:''pin'' — PIN-код для доступу до SIM-карти;&lt;br /&gt;
:''tel'' — номер телефону одержувача (віддалений номер телефону або GSM-модем);&lt;br /&gt;
:''text{0,1}'' — SMS у текстовому режимі, лише ASCII;&lt;br /&gt;
:''SMSText'' — текст повідомлення;&lt;br /&gt;
:''err'' — встановлюється у результат запиту.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Конфігурація та використання}}&lt;br /&gt;
:1. Створити вихідний транспорт типу &amp;quot;[[Special:MyLanguage/Modules/Serial|Послідовний]]&amp;quot; та встановити його Ідентифікатор на кшталт &amp;quot;SMS&amp;quot;, один транспорт підходить для багатьох одержувачів.&lt;br /&gt;
:2. Встановити властиву адресу. Швидкість, формат асинхронних даних та таймаути послідовного порту будуть налаштовані функцією.&lt;br /&gt;
:3. Створити потрібний [[Special:MyLanguage/Modules/UserProtocol|об'єкт користувацького протоколу]] заснованого на шаблонах, із Ідентифікатором на кшталт &amp;quot;SMS&amp;quot;.&lt;br /&gt;
:4. Розмістити деякі команди запиту безпосередньо у наявній або новій внутрішній процедурі OpenSCADA на кшталт:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 30pt&amp;quot;&amp;gt;&lt;br /&gt;
req = SYS.XMLNode(&amp;quot;send&amp;quot;); req.setAttr(&amp;quot;ProtIt&amp;quot;,&amp;quot;SMS&amp;quot;).setAttr(&amp;quot;pin&amp;quot;,&amp;quot;1111&amp;quot;).setAttr(&amp;quot;tel&amp;quot;,&amp;quot;+380XXXXXXXXX&amp;quot;).setText(&amp;quot;Notify message&amp;quot;);&lt;br /&gt;
SYS.Transport.Serial.out_SMS.messIO(req, &amp;quot;UserProtocol&amp;quot;);&lt;br /&gt;
rez = req.attr(&amp;quot;err&amp;quot;).toInt() ? req.attr(&amp;quot;err&amp;quot;) : &amp;quot;OK&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:5. РЕЗУЛЬТАТ: У змінній ''rez'' ви отримаєте &amp;quot;OK&amp;quot; якщо не виникло жодної помилки та повідомлення вдало надіслано одержувачу.&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;SMTP&amp;quot; ЧАСТИНА ВИХІДНОГО КОРИСТУВАЦЬКОГО ПРОТОКОЛУ''' надає операції із SMTP-сервером щодо доставки електронної пошти відправленням через TCP-Сокет або SSL. Наразі підтримуються: TCP, SSL, AUTH, кодування теми у UTF-8.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Структура XML-запиту вихідного користувацького протоколу}}&lt;br /&gt;
'''&amp;lt;send auth=&amp;quot;{user}:{pass}&amp;quot; from=&amp;quot;{FromAddr}&amp;quot; to=&amp;quot;{ToAddr}&amp;quot; topic=&amp;quot;{My Topic}&amp;quot; err=&amp;quot;1:Error&amp;quot;&amp;gt;{MessageText}&amp;lt;/send&amp;gt;'''&lt;br /&gt;
:''topic'' — тема повідомлення;&lt;br /&gt;
:''from'' — адреса відправника;&lt;br /&gt;
:''to'' — адреса призначення отримувача;&lt;br /&gt;
:''auth'' — користувач та пароль отримувача;&lt;br /&gt;
:''MessageText'' — текст повідомлення;&lt;br /&gt;
:''err'' — встановлюється у результат запиту.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Конфігурація та використання}}&lt;br /&gt;
:1. Створити вихідний транспорт типу &amp;quot;[[Special:MyLanguage/Modules/Sockets|Сокети]]&amp;quot; або &amp;quot;[[Special:MyLanguage/Modules/SSL|SSL]]&amp;quot; та встановити його Ідентифікатор на кшталт &amp;quot;SMTP&amp;quot;, один транспорт підходить для багатьох одержувачів.&lt;br /&gt;
:2. Встановити властиву адресу, для Сокетів(25) або SSL(465). Таймаути транспорту будуть налаштовані функцією.&lt;br /&gt;
:3. Створити потрібний [[Special:MyLanguage/Modules/UserProtocol|об'єкт користувацького протоколу]] заснованого на шаблонах, із Ідентифікатором на кшталт &amp;quot;SMTP&amp;quot;.&lt;br /&gt;
:4. Розмістити деякі команди запиту безпосередньо у наявній або новій внутрішній процедурі OpenSCADA на кшталт:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 30pt&amp;quot;&amp;gt;&lt;br /&gt;
req = SYS.XMLNode(&amp;quot;send&amp;quot;);&lt;br /&gt;
req.setAttr(&amp;quot;ProtIt&amp;quot;,&amp;quot;SMTP&amp;quot;).setAttr(&amp;quot;from&amp;quot;,&amp;quot;noreply@oscada.org&amp;quot;).setAttr(&amp;quot;to&amp;quot;,&amp;quot;oscada@oscada.org&amp;quot;).setAttr(&amp;quot;topic&amp;quot;,&amp;quot;My topic&amp;quot;).setText(&amp;quot;My message&amp;quot;);&lt;br /&gt;
SYS.Transport.Sockets.out_SMTP.messIO(req, &amp;quot;UserProtocol&amp;quot;);&lt;br /&gt;
rez = req.attr(&amp;quot;err&amp;quot;).toInt() ? req.attr(&amp;quot;err&amp;quot;) : &amp;quot;OK&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:5. РЕЗУЛЬТАТ: У змінній ''rez'' ви отримаєте &amp;quot;OK&amp;quot; якщо не виникло жодної помилки та повідомлення вдало надіслано одержувачу.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=initRemCntr /&amp;gt;&lt;br /&gt;
| {{Anch|initRemCntr|&amp;lt;h3&amp;gt;Контроль віддалених ініціативних підключень ([[Special:MyLanguage/Libs/Main#initRemCntr|initRemCntr]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk &amp;lt;section end=initRemCntr /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainInitRemCntrOp_uk.png|right|Результат та оперативні налаштування.]]&lt;br /&gt;
Шаблон опрацювання вхідних ініціативних підключень розширює попередній шаблон [[#initConAssociateTrs|опрацювання ініціативних підключень щодо асоційованих вихідних транспортів]] повним представлення даних віддалених хостів OpenSCADA на деякому агрегувальному сервері, чим завершуючи [[Special:MyLanguage/Documents/DAQ#PassiveAndInitiative|концепцію збору даних у пасивному режимі та ініціативного підключення]].&lt;br /&gt;
&lt;br /&gt;
The template does in whole:&lt;br /&gt;
* detecting a new connection from remote host, which has no ID;&lt;br /&gt;
* sending an acquaintance direct request to the established connection for getting KEY of the host, when it was already connected early, and for getting information about the host for creating ID of the host;&lt;br /&gt;
* setting ID for the connection;&lt;br /&gt;
* creating a record in the [[Special:MyLanguage/Documents/Program_manual#Transports|OpenSCADA hosts table]] for the connection and sending all followed requests already through the host;&lt;br /&gt;
* creating on the remote host a representative [[Special:MyLanguage/Modules/LogicLev|Logical Controller]];&lt;br /&gt;
* creating on the remote host a representative [[Special:MyLanguage/Modules/System|DAQ.System Controller Object]] in the automatic mode, at missing any other there;&lt;br /&gt;
* processing the present DAQ.System Controller Objects to link the Logical Level parameters to them and creating some processing logical parameters, with updating for all sources at any reconnection and checking for removing ones without sources already;&lt;br /&gt;
* writing the generated key by a line &amp;quot;'''SrcKey: {KEY}'''&amp;quot; to description of the Logical Controller as a sign of finalizing the initialization;&lt;br /&gt;
* creating a Controller Object in [[Special:MyLanguage/Modules/DAQGate|DAQ.DAQGate]] with connection to the remote Logical Controller and syncing its per 10 minutes for appending new sources and removing missing ones.&lt;br /&gt;
&lt;br /&gt;
ІД віддаленого хосту формується у вигляді &amp;quot;'''{HostDomain}{StatName}{RandKey}'''&amp;quot; із обмеженням у 20ть символів, де:&lt;br /&gt;
* ''HostDomain'' — мережеве ім'я-домен хосту;&lt;br /&gt;
* ''StatName'' — ім'я станції проєкту OpenSCADA;&lt;br /&gt;
* ''RandKey'' — випадковий ключ у дві шістнадцяткові цифри.&lt;br /&gt;
&lt;br /&gt;
Модель даних представницького Логічного Контролеру може містити як згенеровані посилання із параметрами обробки, так і користувацькі параметри, якщо користувач вирішить опублікцівати додаткові дані. Згенеровані із DAQ.System елементи наразі представляють джерела:&lt;br /&gt;
* &amp;quot;CPU&amp;quot;, &amp;quot;MEM&amp;quot;, &amp;quot;sensors&amp;quot;, &amp;quot;Power&amp;quot;, &amp;quot;uptime&amp;quot; =&amp;gt; посилання у контейнері параметрів &amp;quot;Система (SYS)&amp;quot;;&lt;br /&gt;
* &amp;quot;fs&amp;quot;, &amp;quot;hddstat&amp;quot;, &amp;quot;hddsmart&amp;quot; =&amp;gt; посилання у контейнері параметрів &amp;quot;Диск (DISK)&amp;quot; із однією обробкою для &amp;quot;hddsmart&amp;quot; за шаблоном [[Special:MyLanguage/Libs/Main#DiskSMART|base.DiskSMART]];&lt;br /&gt;
* &amp;quot;netstat&amp;quot; =&amp;gt; посилання у контейнері параметрів &amp;quot;Мережа (NET)&amp;quot;;&lt;br /&gt;
* &amp;quot;ups&amp;quot; =&amp;gt; посилання у корені із однією обробкою за шаблоном [[Special:MyLanguage/Libs/Main#UPS|base.UPS]].&lt;br /&gt;
&lt;br /&gt;
Агреговані дані у [[Special:MyLanguage/Modules/DAQGate|DAQ.GAQGate]] можуть бути підняті на гору, або використані у похідних DAQ об'єктах, або прямо на користувацьких кадрах, або у майбутньому на Динамічному Кадрі, який заплановано до реалізації; та без жодних додаткових дій ви отримаєте сповіщення про порушення на хостах.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|ВВ шаблону}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Режим !! Атрибут !! Конфігурація !! Значення&lt;br /&gt;
|-&lt;br /&gt;
| inTransport || Вхідний транспорт || Рядок || Вхід || Не атрибут || Константа || Sockets.InitRemCntr&lt;br /&gt;
|-&lt;br /&gt;
| conTm || Час підключення, мс || Цілий || Вхід || Не атрибут || Константа || 5000&lt;br /&gt;
|-&lt;br /&gt;
| accessTm || Час доступу, години&lt;br /&gt;
Використовується для повтору створення представницьких об'єктів недоступних хостів і для видалення старих підключень.&amp;lt;br/&amp;gt;&lt;br /&gt;
Нуль або негативне для вимкнення контролю!&lt;br /&gt;
| Цілий || Вхід || Не атрибут || Константа || 24&lt;br /&gt;
|-&lt;br /&gt;
| cntrUser || Доступ: користувач || Рядок || Вхід || Не атрибут || Константа || root&lt;br /&gt;
|-&lt;br /&gt;
| cntrPass || Доступ: пароль || Рядок || Вхід || Не атрибут || Константа || openscada&lt;br /&gt;
|-&lt;br /&gt;
| cntrObj || Об'єкт контролю у DAQ.LogicLev і DAQ.System || Рядок || Вхід || Не атрибут || Константа || RemCntr&lt;br /&gt;
|-&lt;br /&gt;
| prcTr || Опрацьовані підключення || Текст || Вихід || Тільки читання || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| this || Об'єкт || Об'єкт || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Прапорець зупинки функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Прапорець запуску функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Помилка функції || Рядок || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Частота обчислення функції, Гц || Реальний || Вхід || Не атрибут || Змінна || 1000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainInitRemCntrCfg_uk.png|right|Конфігурація.]]&lt;br /&gt;
{{CntHdr|Конфігурація та використання}}&lt;br /&gt;
:1. Створити вхідний транспорт прийняття ініціативних підключень у модулі &amp;quot;[[Special:MyLanguage/Modules/Sockets#InTr|Сокети]]&amp;quot; або &amp;quot;[[Special:MyLanguage/Modules/Sockets#InTr|SSL]]&amp;quot; із назвою на кшталт &amp;quot;Sockets.InitRemCntr&amp;quot;.&lt;br /&gt;
:2. Для попередньо створеного транспорту встановити потрібну адресу відкриття вхідного сокету і перевести його у режим створення асоційованих вихідних транспортів, залишивши поле протоколу порожнім.&lt;br /&gt;
:3. Для цього шаблону створити і запустити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного контролеру]] або використати будь який наявний з потрібними властивостями планування.&lt;br /&gt;
:4. Створити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного параметру]] і обрати цей шаблон для нього. Ввімкнути параметр.&lt;br /&gt;
:5. У вкладці &amp;quot;Конфігурація шаблону&amp;quot; об'єкту логічного параметру маєте встановити:&lt;br /&gt;
:* ''Вхідний транспорт'' — у значення ідентифікатору вхідного транспорту, створеного у пункті 1, на кшталт &amp;quot;Sockets.InitRemCntr&amp;quot;;&lt;br /&gt;
:* ''Час підключення'' — час підключення до ініціативних хостів після якого закривати підключення;&lt;br /&gt;
:* ''Час доступу'' — використовується для повтору створення представницьких об'єктів недоступних хостів і для видалення старих підключень; нуль або негативне для вимкнення контролю;&lt;br /&gt;
:* ''Доступ: користувач і пароль'' — користувач і пароль віддаленого хосту із правами створення там Логічного Контролеру і Об'єкту Контролеру DAQ.System, тобто користувач мусить бути включеним до групи &amp;quot;DAQ&amp;quot;;&lt;br /&gt;
:* ''Об'єкт контролю у DAQ.LogicLev і DAQ.System'' — у ІД контрольованого-створюваного Об'єкту Контролеру на віддаленому хості.&lt;br /&gt;
:6. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати перевірку визначеного вхідного транспорту на предмет ініціативних підключень і їх ініціалізацію у описаний вище спосіб, та із зауваженням опрацьованих підключень у атрибуті &amp;quot;Опрацьовані підключення&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=initConAssociateTrs /&amp;gt;&lt;br /&gt;
| {{Anch|initConAssociateTrs|&amp;lt;h3&amp;gt;Опрацювання ініціативних підключень щодо асоційованих вихідних транспортів ([[Special:MyLanguage/Libs/Main#initConAssociateTrs|initConAssociateTrs]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru &amp;lt;section end=initConAssociateTrs /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainInitConsAssignTrsOp_uk.png|right|Результат та оперативні налаштування.]]&lt;br /&gt;
Шаблон служби опрацювання вхідних ініціативних підключень створено для надання останньої ланки реалізації та підтримки [[Special:MyLanguage/Documents/DAQ#PassiveAndInitiative|концепції збору даних у пасивному режимі та ініціативного підключення]], а саме — контролю асоційованих транспортів створюваних вхідним транспортом за кожного підключення.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] Після реалізації цього контролю разом із новою функцією загального-уніфікованого підключення вихідного транспорту [[Special:MyLanguage/Documents/User_API#SYSTransport|outAt()]] цей шаблон став застарілим для джерел адаптованих до використання нового механізму, але ви все ще можете використовувати шаблон для неадаптованих джерел.&lt;br /&gt;
&lt;br /&gt;
Функцію створення вихідних асоційованих транспортів за підключенням на вхідний наразі підтримує лише [[Special:MyLanguage/Modules/Sockets|модуль транспортів &amp;quot;Сокети&amp;quot;]] та для TCP-сокетів.&lt;br /&gt;
&lt;br /&gt;
* '''Загальна працемісткість:''' 0.9 {{CtxDetails|ЛД|людино-днів, 1ЛД — 10 годин}}&lt;br /&gt;
* '''Спонсоровано, загальну працемісткість:''' Еліор Турабоєв, ТОВ BLUE STAR GROUP&lt;br /&gt;
&lt;br /&gt;
Контроль асоційованих транспортів передбачає:&lt;br /&gt;
* отримання переліку асоційованих транспортів функцією вхідного транспорту ''assignTrsList()'';&lt;br /&gt;
* читання із нових транспортів (відкритих) ідентифікаційної інформації яка наразі репрезентує тільки ідентифікатор об'єкту джерела;&lt;br /&gt;
** пошук за отриманим ідентифікатором об'єкта джерела та призначення йому адреси цього транспорту;&lt;br /&gt;
** реєстрацію у атрибуті об'єктного типу &amp;quot;prcTr&amp;quot;.&lt;br /&gt;
* перевірка діючих транспортів на предмет їх закриття (від'єднання), щодо чого здійснюється дереєстрація у атрибуті об'єктного типу &amp;quot;prcTr&amp;quot; та встановлення об'єкту джерела порожнього значення; вимкнені вихідні асоціативні транспорти повторно використовуються вхідним за отриманням нового підключення після чого він вмикається.&lt;br /&gt;
&lt;br /&gt;
Шаблон може керувати контейнерами об'єктів джерел даних, побудованих як у вигляді DAQ-об'єктів контролерів, так і параметрів логічного рівня, що репрезентують джерело даних та мають поле визначення адреси транспорту та що загалом визначається конфігураційним полем &amp;quot;srcObjPath&amp;quot; із форматом '''{CntrAddr}:{TrCntrFldAddr}''', де:&lt;br /&gt;
* ''CntrAddr'' — адреса контейнеру, наприклад: &amp;quot;ModBus&amp;quot; — для DAQ-об'єктів контролерів, &amp;quot;LogicLev.CntrPLC&amp;quot; — для параметрів логічного рівня;&lt;br /&gt;
* ''TrCntrFldAddr'' — адреса поля контролю транспорту у об'єкті джерела, наприклад — &amp;quot;%2fcntr%2fcfg%2fADDR&amp;quot; для &amp;quot;ModBus&amp;quot;; що може бути отримано у конфігураторі за історією наведення на поля контролю у рядку статусу.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|ВВ шаблону}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Режим !! Атрибут !! Конфігурація !! Значення&lt;br /&gt;
|-&lt;br /&gt;
| inTransport || Вхідний транспорт || Рядок || Вхід || Не атрибут || Постійна || InitiateCons&lt;br /&gt;
|-&lt;br /&gt;
| outTrTm || Таймаути вихідних транспортів || Рядок || Вхід || Не атрибут || Постійна || 10:0.1&lt;br /&gt;
|-&lt;br /&gt;
| srcObjPath || Шлях об'єкту джерела || Рядок || Вхід || Не атрибут || Постійна || ModBus:%2fcntr%2fcfg%2fADDR&lt;br /&gt;
|-&lt;br /&gt;
| prcTr || Опрацьовані транспорти || Об'єкт || Вихід || Тільки читання || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Помилка функції || Рядок || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Прапорець запуску функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Прапорець зупинки функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Частота обчислення функції, Гц || Реальний || Вхід || Не атрибут || Змінна || 1000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainInitConsAssignTrsCfg_uk.png|right|Конфігурація.]]&lt;br /&gt;
{{CntHdr|Конфігурація та використання}}&lt;br /&gt;
:1. Створити вхідний транспорт прийняття ініціативних підключень у [[Special:MyLanguage/Modules/Sockets#InTr|модулі &amp;quot;Сокети&amp;quot;]] із назвою на кшталт &amp;quot;InitiateCons&amp;quot;.&lt;br /&gt;
:2. Для попередньо створеного транспорту встановити потрібну адресу відкриття вхідного сокету і перевести його у режим створення асоційованих вихідних транспортів, залишивши поле протоколу порожнім.&lt;br /&gt;
:3. Передбачити контейнер джерел даних до яких асоціативні транспорти мають під'єднуватися, який може бути або DAQ-модулем (як то &amp;quot;DAQ.ModBus&amp;quot;), або логічним контролером (як то &amp;quot;DAQ.LogicLev.Sources&amp;quot;), чи параметром у ньому (як то &amp;quot;DAQ.LogicLev.PLC.Sources&amp;quot;), із вмістом параметрів логічного рівня, що представляють джерело даних.&lt;br /&gt;
:4. Для цього шаблону створити і запустити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного контролеру]] або використати будь який наявний з потрібними властивостями планування.&lt;br /&gt;
:5. Створити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного параметру]] і обрати цей шаблон для нього. Ввімкнути параметр.&lt;br /&gt;
:6. У вкладці &amp;quot;Конфігурація шаблону&amp;quot; об'єкту логічного параметру маєте встановити:&lt;br /&gt;
:* ''Вхідний транспорт'' — у значення ідентифікатору вхідного транспорту, створеного у пункті 1, на кшталт &amp;quot;InitiateCons;&lt;br /&gt;
:* ''Таймаути вихідних транспортів'' — збільшити першу цифру для дуже повільних підключень та типове є нормальним для більшості ситуацій;&lt;br /&gt;
:* ''Шлях об'єктів джерела'' — встановити згідно до пункту 3, для першої частини, та у шлях до контрольного поля, для другої частини, наприклад, та типово для &amp;quot;ModBus&amp;quot;, це — &amp;quot;ModBus:%2fcntr%2fcfg%2fADDR&amp;quot;.&lt;br /&gt;
:6. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати у атрибуті параметру ''prcTr'' інформацію щодо вдало опрацьованих, а відтак і вдало пов'язаних із транспортом, джерелах даних. У випадку деяких порушень отримаємо відповідну інформацію у атрибуті параметру ''err''. Інформація про відсутність представницького об'єкту для отриманого ідентифікатору поміщається у протоколі порушень.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=weather /&amp;gt;&lt;br /&gt;
| {{Anch|weather|&amp;lt;h3&amp;gt;Погода ([[Special:MyLanguage/Libs/Main#weather|weather]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.0 || GPLv2 || * || en, uk &amp;lt;section end=weather /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainWeatherOp_uk.png|right|Результат та оперативні налаштування.]]&lt;br /&gt;
Шаблон отримання даних погоди з різних погодних служб у Інтернет і первинно лише [https://openweathermap.org/ Open Weather]. &lt;br /&gt;
&lt;br /&gt;
Погодні дані діляться на поточні і прогноз із їх розміщенням у відповідних об'єктах, де поточні атрибути розташовуються прямо у корені та прогноз на день (об'єкт &amp;quot;day&amp;quot;) і час (об'єкт &amp;quot;time&amp;quot;) всередині відповідного дня згідно до поточної часової зони. Ці дані отримуються за відповідним розкладом незалежно для поточних і прогнозу, та типово поточні запитуються щогодинно, а прогноз один раз на день. Дані можуть бути доступні користувачу як прямо, так і посередництвом спеціально-створеного віджету [[Special:MyLanguage/Libs/Main_graphical_elements#weather|основної бібліотеки]].&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|ВВ шаблону}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Режим !! Атрибут !! Конфігурація !! Значення&lt;br /&gt;
|-&lt;br /&gt;
| schedCur || Планування за CRON оновлення поточних даних || Рядок || Вхід || Не атрибут || Константа || 0 8-20 * * * &lt;br /&gt;
|-&lt;br /&gt;
| schedFC || Планування за CRON оновлення прогнозованих даних || Рядок || Вхід || Не атрибут || Константа || 0 8 * * *&lt;br /&gt;
|-&lt;br /&gt;
| city || ІД Міста || Рядок || Вхід || Повний доступ || Змінна || 709932&lt;br /&gt;
|-&lt;br /&gt;
| current || Поточне || Об'єкт || Вхід || Тільки читання || Змінна || &lt;br /&gt;
|-&lt;br /&gt;
| forecast || Прогноз || Об'єкт || Вхід || Тільки читання || Змінна || &lt;br /&gt;
|-&lt;br /&gt;
| this || Параметр || Об'єкт || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Прапорець запуску функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Частота обчислення функції, Гц || Реальний || Вхід || Не атрибут || Змінна || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Прапорець зупинки функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Помилка функції || Рядок || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainWeatherCfg_uk.png|right|Конфігурація.]]&lt;br /&gt;
{{CntHdr|Конфігурація та використання}}&lt;br /&gt;
:1. Для цього шаблону створити та запустити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного контролеру]] або використати будь який наявний з потрібними властивостями планування.&lt;br /&gt;
:2. Створити [[Special:MyLanguage/Modules/LogicLev|об'єкт логічного параметру]] та обрати цей шаблон для нього. Ввімкнути параметр.&lt;br /&gt;
:3. У вкладці &amp;quot;Конфігурація шаблону&amp;quot; об'єкту логічного параметру треба встановити:&lt;br /&gt;
:* ''Планування за CRON оновлення поточних даних'' — у значення необхідного планування для отримання поточних даних у [[Special:MyLanguage/Documents/User_API#CRON|форматі CRON]], за порожнього отримання здійснюватиметься із періодом виконання об'єкту контролеру;&lt;br /&gt;
:* ''Планування за CRON оновлення прогнозованих даних'' — у значення необхідного планування для отримання прогнозованих даних у [[Special:MyLanguage/Documents/User_API#CRON|форматі CRON]], за порожнього отримання здійснюватиметься із періодом виконання об'єкту контролеру.&lt;br /&gt;
:4. РЕЗУЛЬТАТ: Запустивши об'єкт контролеру (де створено цей параметр) та якщо він не був запущений, маємо отримати у атрибуті параметру ''Поточне (current)'' і ''Прогноз (forecast)'' та після встановлення кода вашого міста у відповідному атрибуті. Код міста ви можете отримати із [https://openweathermap.org/ офіційного сайту] у адресі (URL) після пошуку вашого міста у формі сайту.&lt;br /&gt;
&lt;br /&gt;
== [[Special:MyLanguage/Modules/WebUser|Для WebUser]] ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=fileServerHTTP /&amp;gt;&lt;br /&gt;
| {{Anch|fileServerHTTP|&amp;lt;h3&amp;gt;WebUser: HTTP Файловий Сервер ([[Special:MyLanguage/Libs/Main#fileServerHTTP|fileServerHTTP]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk &amp;lt;section end=fileServerHTTP /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
|}&lt;br /&gt;
Шаблон для реалізації Файлового Серверу HTTP безпосередньо в OpenSCADA, який корисний за відсутності повнофункціонального для функцій обслуговування файлових запитів із OpenSCADA Web-інтерфейсів.&lt;br /&gt;
&lt;br /&gt;
Наразі реалізовано лише запити файлів HTTP запитом GET. Також реалізуються шматки і запити Часток Контенту за одним діапазоном зі змушуванням до цього режиму за певного налаштованого розміру файлу.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|ВВ шаблону}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ідентифікатор !! Ім'я !! Тип !! Режим !! Атрибут !! Конфігурація !! Значення&lt;br /&gt;
|-&lt;br /&gt;
| rez || Результат || Рядок || Вхід || Не атрибут || Змінна || 200 OK&lt;br /&gt;
|-&lt;br /&gt;
| HTTPreq || HTTP запит || Рядок || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| url || URL || Рядок || Вхід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| sender || Відправник || Рядок || Вхід || Не атрибут || Змінна || &lt;br /&gt;
|-&lt;br /&gt;
| page || WWW-сторінка || Рядок || Вихід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| HTTPvars || HTTP змінні || Об'єкт || Вихід || Не атрибут || Змінна ||&lt;br /&gt;
|-&lt;br /&gt;
| baseD || Базовий каталог || Рядок || Вхід || Не атрибут || Константа || /data/share_res/local/Lib/&lt;br /&gt;
|-&lt;br /&gt;
| fSzSolidLim || Обмеження на розмір файлу для читання цілком, інакше вмикається вміст частками || Реальний || Вхід || Не атрибут || Константа || 10e6&lt;br /&gt;
|-&lt;br /&gt;
| tr || Транспорт || Об'єкт || Вихід || Не атрибут || Змінна || &lt;br /&gt;
|-&lt;br /&gt;
| prt || Протокол || Об'єкт || Вихід || Не атрибут || Змінна || &lt;br /&gt;
|-&lt;br /&gt;
| f_start || Прапорець запуску функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Частота обчислення функції, Гц || Реальний || Вхід || Не атрибут || Змінна || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Прапорець зупинки функції || Логічний || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Помилка функції || Рядок || Вхід || Не атрибут || Змінна || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainFileServerHTTPCfg.png|right|Конфігурація.]]&lt;br /&gt;
{{CntHdr|Конфігурація і використання}}&lt;br /&gt;
:1. Створити сторінку у модулі [[Special:MyLanguage/Modules/WebUser|UI.WebUser]] із певним доцільним ідентифікатором ''PageId''.&lt;br /&gt;
:2. У вкладці &amp;quot;Процедура&amp;quot; необхідно встановити:&lt;br /&gt;
:* Базовий каталог від якого сторінка буде шукати файли.&lt;br /&gt;
:* Обмеження на розмір файлу для читання цілком, інакше вмикається вміст частками.&lt;br /&gt;
:3. РЕЗУЛЬТАТ: Відкриття URL &amp;quot;&amp;lt;nowiki&amp;gt;http://{OpenSCADAHost}/WebUser/{PageId}/{MyFile}&amp;lt;/nowiki&amp;gt;&amp;quot; у Web Оглядачі відкриє та надішле вам файл на ФС &amp;quot;{baseD}/{MyFile}&amp;quot;.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Libs/Main/en&amp;diff=93956</id>
		<title>Libs/Main/en</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Libs/Main/en&amp;diff=93956"/>
				<updated>2026-05-10T04:01:06Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Version !! License !! Source !! Languages !! Author !! Description&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Libs/Main|Main library]]&lt;br /&gt;
| 2.3 || GPLv2 || OscadaLibs.db ([http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/OscadaLibs.sql SQL], [[:File:OscadaLibs.db.gz|GZip]]) &amp;gt; DAQ.tmplb_base || en, uk, ru &lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
| Library of the main templates of the DAQ-sources processing and related services.&lt;br /&gt;
* '''Founded:''' January 2006&lt;br /&gt;
* '''Sponsored by:''' depending on the item ...&lt;br /&gt;
* '''Used by:''' [[Special:MyLanguage/Using|most projects on OpenSCADA]]&lt;br /&gt;
* '''[[Special:MyLanguage/Works/To_do|To Do]]:'''&lt;br /&gt;
&amp;lt;section begin=ToDo /&amp;gt;&lt;br /&gt;
&amp;lt;section end=ToDo /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The library was created to provide main templates of the DAQ-sources processing and related services.&lt;br /&gt;
&lt;br /&gt;
The template's names and their parameters are available in languages: English, Ukrainian and mRussian. Their source code wrote in the human-language independent mode with calls for the translations by the function ''tr()'' and the message's translation also allowed for English, Ukrainian and mRussian.&lt;br /&gt;
&lt;br /&gt;
For connection the library to a project of the OpenSCADA station you can obtain the database file as:&lt;br /&gt;
* supplied with a ready and proper package of the Linux distribution like to &amp;quot;openscada-libdb-main&amp;quot;, &amp;quot;openscada-LibDB.Main&amp;quot;;&lt;br /&gt;
* directly taken for most actual one from [http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/OscadaLibs.sql the subversion repository] and converted to the DB SQLite file in the way:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;BASH&amp;quot; style=&amp;quot;margin-left: 15px&amp;quot;&amp;gt;&lt;br /&gt;
wget http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/OscadaLibs.sql&lt;br /&gt;
sqlite3 -init OscadaLibs.sql OscadaLibs.db .exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* downloaded for [[:File:OscadaLibs.db.gz|the one attached here]].&lt;br /&gt;
&lt;br /&gt;
This obtained file next you can place into the project directory of the station and create the database object for the DB module &amp;quot;SQLite&amp;quot;, registering the database file in the configuration.&lt;br /&gt;
&lt;br /&gt;
For the DAQ-templates at generic you need create a device representing object into [[Special:MyLanguage/Modules/LogicLev|the Logical Level module]] and select proper template from the templates library. Next, to correct configuration, follow to specific of the template into the individual description.&lt;br /&gt;
&lt;br /&gt;
== Templates of standard structures of the DAQ-parameters ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=anUnif /&amp;gt;&lt;br /&gt;
| {{Anch|anUnif|&amp;lt;h3&amp;gt;Analog signal, unified ([[Special:MyLanguage/Libs/Main#anUnif|anUnif]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 2.4 || GPLv2 || * || en, uk, ru &amp;lt;section end=anUnif /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainAnUnifOp.png|right|Result and the operative setup.]]&lt;br /&gt;
Common, representative and unified template of analog input signals processing. The template forms a structure of analog parameter (complex tag) which can be easily connected to most widgets and cadres of [[Special:MyLanguage/Libs/Main_graphical_elements|the main elements library of the user interface]] just pointing the parameter object.&lt;br /&gt;
&lt;br /&gt;
The representative structure of analog parameters (complex tags) is:&lt;br /&gt;
* &amp;quot;Variable ('''var''')&amp;quot; — end variable of the parameter — engineeric real value, allowed and suitable for archiving.&lt;br /&gt;
* &amp;quot;Error ('''err''')&amp;quot; — obligatory attribute of any parameter, consist of the combination of the error code and short text description, like to &amp;quot;2:No data or connection with source&amp;quot;. The template reserves next error codes:&lt;br /&gt;
** '''1, 2''' — hardware errors, when the data mostly wrong;&lt;br /&gt;
** '''3, 4''' — alarm border errors;&lt;br /&gt;
** '''5, 6''' — warning border errors;&lt;br /&gt;
** '''7''' — the speed error of the variable changing.&lt;br /&gt;
* &amp;quot;Violations suppress ('''alSup''') and delay ('''alDelay''')&amp;quot; — violations generic control for suppressing and delaying.&lt;br /&gt;
* &amp;quot;Scale: minimum ('''min''')&amp;quot; and &amp;quot;Scale: maximum ('''max''')&amp;quot; — main scale of the end variable, the output of which causes a hardware border error. The scale is also used as a scale of the variable trend display on the graphs.&lt;br /&gt;
* &amp;quot;Logarithmic scale ('''log''')&amp;quot; — the scale sign of the variable trend display on the graphs in the logarithmic scale.&lt;br /&gt;
* &amp;quot;Dimension ('''ed''')&amp;quot; — dimension (unit of measurement) of the variable.&lt;br /&gt;
* &amp;quot;Precision ('''prec''')&amp;quot; — number signs after the dot, for positive values, and precision (signs in whole), for negative ones, to display the real end variable on the screen.&lt;br /&gt;
&lt;br /&gt;
Significant graphical shapes representing the structure:&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main_graphical_elements|Main elements library of the user interface]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#anShow|Analog show]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#anShow1|Analog show 1]]; [[Special:MyLanguage/Libs/Main_graphical_elements#anShow1s|Analog show 1, short]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElViewGraph|Graphics group element]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElViewCadr|Frame of the group of overview]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ResultGraphEl|Frame of the result graphics]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|Element cadre]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#cntrPaspExt|Passport, extended]]&lt;br /&gt;
* [[Special:MyLanguage/Libs/Mnemo_elements|Mnemonic elements library of the user interface]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Mnemo_elements#Level|Level]]&lt;br /&gt;
* [[Special:MyLanguage/Libs/Documents|Reports' and documents' library]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Documents#docRepInstVals|Instantaneous values report]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Documents#docRepDay|Day report of the hour-averaged values]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Documents#docRepMonth|Month report of the day-averaged values]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Documents#docRepYear|Year report of the month values]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Documents#docRep2WorkSh|Report of two working shifts]]&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by, for expanding the common field DESCR using in the specific alarm parameters on 0.1 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' INSERTEC LTDA&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Functions}}&lt;br /&gt;
* Generic processing of the raw analog input for:&lt;br /&gt;
:* simple correction-calibration at the formula &amp;quot;'''in''' = '''iMult'''*('''in'''+'''iAdd''')&amp;quot;;&lt;br /&gt;
:* scaling from the hardware border ['''plcMin'''...'''plcMax'''] to the main border ['''min'''...'''max'''], applying the square scale '''scSqr''';&lt;br /&gt;
:: [[File:at.png]] The hardware borders can be inverted ones and disabled in whole for equal values of the maximum and minimum, when the main border only used.&lt;br /&gt;
:* permission to exceed the border for the input value on the value of '''plcExcess''' percent;&lt;br /&gt;
:* filtering the input value changing in the time '''Tf'''.&lt;br /&gt;
* Simple imitation of the analog input, setting '''plcImit''' and linking the imitation-simulation source in '''plcImitIn'''.&lt;br /&gt;
:: [[File:at.png]] Missing the link '''plcImitIn''' (EVAL) causes to generating random analog input&lt;br /&gt;
* Complex preprocessing and complete generation-imitation of the analog input on the internal programming language of OpenSCADA into the configuration IO '''inProc''' (with appending the builtin syntax highlight rules), where you can operate next service parameters:&lt;br /&gt;
:* ''in'' [IN|OUT] — the same raw analog input IO;&lt;br /&gt;
:* ''var'' [IN] — the end variable IO;&lt;br /&gt;
:* ''min'', ''max'' [IN] — the main border IOs;&lt;br /&gt;
:* ''plcMin'', ''plcMax'' [IN] — the hardware border IOs;&lt;br /&gt;
:* ''plcImit'', ''plcImitIn'' [IN] — IOs of the simple imitation;&lt;br /&gt;
:* ''levErr'', ''tErr'' [IN|OUT] — alarm level [-79...0] and text of the error (the attribute &amp;quot;err&amp;quot; format);&lt;br /&gt;
:* ''f_frq'' [IN] — frequency of calculation, the template IO;&lt;br /&gt;
:* ''this'' [IN] — reference to the parameter object, what executing the template;&lt;br /&gt;
:* ''ctx'' [IN] — object of the user context, what saved between the execution cycles;&lt;br /&gt;
:* ''args'' [IN] — object of arguments of the procedure;&lt;br /&gt;
:* ''toSave'' [OUT] — to force save the parameter object at exit.&lt;br /&gt;
* Simple substitution for the variable '''subVar''' at the error (not valid) input variable (EVAL) in the modes: &amp;quot;no&amp;quot;, &amp;quot;last&amp;quot; and &amp;quot;substitute&amp;quot;.&lt;br /&gt;
* Processing the result variable '''var''' for violation some borders and criteria, generating the alarms and proper setting the attribute '''err'''. The alarm borders can have some hysteresis '''HystBnd''', can be delayed on the time '''alDelay''' and can be suppressed setting '''alSup'''. Next borders and criteria are provided:&lt;br /&gt;
:* missing for data or connection with source at the EVAL input value — error code 1 and alarm level 5;&lt;br /&gt;
:* exceeding the input value of the hardware border — error code 1,2 and alarm level 5;&lt;br /&gt;
:* exceeding the end variable of the alarm border ['''aMin'''...'''aMax'''] — error code 3,4 and alarm level 4;&lt;br /&gt;
:: [[File:at.png]] Disabled at setting for equal or inverted values of the border&lt;br /&gt;
:* exceeding the end variable of the warning border ['''wMin'''...'''wMax'''] — error code 5,6 and alarm level 2;&lt;br /&gt;
:: [[File:at.png]] Disabled at setting for equal or inverted values of the border&lt;br /&gt;
:* big motion '''speed''' of the end variable — error code 7 and alarm level 2.&lt;br /&gt;
* Specific parameters redefinition in the common attribute '''DESCR''':&lt;br /&gt;
:* ''the first line'' — as description of the alarm messages;&lt;br /&gt;
:* the field ''CustomFlds'' — specifying of [[Special:MyLanguage/Documents/Program_manual#ArchMess|the custom fields]] of the alarm messages in the form &amp;quot;'''CustomFlds: {CustFld0} =&amp;gt; {CustFld1} =&amp;gt; ... =&amp;gt; {CustFldN}'''&amp;quot;;&lt;br /&gt;
:* the field ''CustomAlarms'' — redefinition of the standard alarm levels of the alarm messages in the form &amp;quot;'''CustomAlarms: {ConErr};{BrdAlarm};{BrdWarn}'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| in || Input || Real || Input || Not attribute || Link || Input&amp;amp;#124;var&lt;br /&gt;
|-&lt;br /&gt;
| inProc || Input processing procedure || Text || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| var || Variable || Real || Input || Read only || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| ed || Dimension || String || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| min || Scale: minimum || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| max || Scale: maximum || Real || Input || Full access || Variable || 100&lt;br /&gt;
|-&lt;br /&gt;
| scSqr || Scale: square || Boolean || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| subMode || Substitute: mode || Integer numbers selection || Input || Full access || Variable || 0&amp;lt;br/&amp;gt;&lt;br /&gt;
0;1;2&amp;lt;br/&amp;gt;&lt;br /&gt;
no;last;substitute&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| subVar || Substitute: variable || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| alSup || Violations suppress || Boolean || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Violations delay, seconds || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| aMin || Border down alarm || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| aMax || Border up alarm || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| wMin || Border down warning || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| wMax || Border up warning || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| HystBnd || Hysteresis of borders violation || Real || Input || Full access || Variable || 1&lt;br /&gt;
|-&lt;br /&gt;
| speed || Motion speed, %/cycle || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| prec || Precision, signs || Integer || Input || Full access || Variable || 2&lt;br /&gt;
|-&lt;br /&gt;
| log || Logarithmic scale || Boolean || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| Tf || Filter time, seconds || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| iAdd || Input addition || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| iMult || Input multiplication || Real || Input || Not attribute || Constant || 1&lt;br /&gt;
|-&lt;br /&gt;
| plcMin || Minimum module scale || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcMax || Maximum module scale || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcExcess || Allowed scale exceeding, % || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcImit || PLC imitation || Boolean || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcImitIn || PLC imitation input || Real || Input || Not attribute || Link || Imitation&amp;amp;#124;var&lt;br /&gt;
|-&lt;br /&gt;
| this || Object || Object || Output || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Code || String || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Name || String (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Description || Text (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainAnUnifCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any presented one with the need scheduling properties.&lt;br /&gt;
:2. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select this template for it. Enable the parameter.&lt;br /&gt;
:3. Into the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* ''Input'' — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|link to a source of the &amp;quot;raw&amp;quot; signal]].&lt;br /&gt;
:* ''Input processing procedure'' — form for the complex preprocessing and complete generation of the analog input on the internal programming language of OpenSCADA. It is optional and should be defined in complex cases, for example:&lt;br /&gt;
::* simple and transparent preprocessing to bring the percentage of UPS load to power that can be done with '''iMult''' also:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 40pt&amp;quot;&amp;gt;&lt;br /&gt;
in = 490*in/100;	//the UPS has 480W &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
::* implementing of the input signal counter — consumed electricity of the UPS:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 40pt&amp;quot;&amp;gt;&lt;br /&gt;
//Checking for the data validity&lt;br /&gt;
if(ctx.cntr.isEVal())	ctx.cntr = this.var.get();&lt;br /&gt;
if(!in.isEVal()) {&lt;br /&gt;
	pUPS = 33;&lt;br /&gt;
	if(ctx.cntr.isEVal())	ctx.cntr = (pUPS+in)/(3600*f_frq);&lt;br /&gt;
	else ctx.cntr += (pUPS+in)/(3600*f_frq);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Checking for the next month reset&lt;br /&gt;
month = 0; SYS.localtime(SYS.time(), 0, 0, 0, 0, month);&lt;br /&gt;
if(!ctx.month.isEVal() &amp;amp;&amp;amp; month != ctx.month)	ctx.cntr = 0;&lt;br /&gt;
ctx.month = month;&lt;br /&gt;
&lt;br /&gt;
in = ctx.cntr; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
::* generating of the extended violations — processing for the external signals related to the source:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 40pt&amp;quot;&amp;gt;&lt;br /&gt;
gO = this.cntr().prm_grps;&lt;br /&gt;
if(SYS.DAQ.JavaLikeCalc.lib_aviary.sensorError(gO.prm_generic.PRG_Input_Err_T_room_S.get(),levErr,tErr));&lt;br /&gt;
else if(!(tVl=gO.prm_alarms.PRG_Alarm_T_max.get()).isEVal() &amp;amp;&amp;amp; tVl)&lt;br /&gt;
	levErr = -4, tErr = &amp;quot;11:above the set limit&amp;quot;;&lt;br /&gt;
else if(!(tVl=gO.prm_alarms.PRG_Alarm_T_min.get()).isEVal() &amp;amp;&amp;amp; tVl)&lt;br /&gt;
	levErr = -4, tErr = &amp;quot;11:below the set limit&amp;quot;; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:* ''Minimum and maximum of the module scale'' — must be set at the case of significant difference the hardware and the generic scales, for example:&lt;br /&gt;
::* the input is raw and measured in value of the current [4...20]mA, here it is necessary to specify 4 and 20 mA;&lt;br /&gt;
::* the previous case where it is necessary to simply and transparently calibrate the end value — with a precision device set 4mA and 20mA and indicate here the real measured values of the &amp;quot;raw&amp;quot; signal.&lt;br /&gt;
:* ''Input addition and multiplication'' — use for easy and linear correction of the input, for example:&lt;br /&gt;
::* calibration for the end value, which is less transparent and these coefficients should be calculated according to the formulas:&lt;br /&gt;
::: '''iAdd = ((plcMin*precMeasMax)/plcMax - precMeasMin)*(plcMax/(plcMax-plcMin))'''&lt;br /&gt;
::: '''iMult = (plcMax - plcMin) / (precMeasMax - precMeasMin)'''&lt;br /&gt;
:* ''Allowed scale exceeding'' — set if necessary to exceed the value of the main border, and when this scale starts to perform the recommendation function, say for the initial display of the trend on this scale.&lt;br /&gt;
:* ''PLC imitation and the imitation input'' — define at the need to simulate the input as required in the functions.&lt;br /&gt;
:4. RESULT: Launching the controller object (where this parameter is created) and if it has not been started, we must get the operational data in the tab &amp;quot;Attributes&amp;quot; for: variable, error status; and the generation of violations if the state of the error is nonzero.&lt;br /&gt;
:5. In the process of the working, through the tab &amp;quot;Attributes&amp;quot; of operational data, in addition to obtaining the result, it is possible to perform operative setup and control on:&lt;br /&gt;
:* ''Scale: minimum and maximum'' — strictly [[file:at.png]] set to the range of data changes by availability and according to the hardware border, otherwise the value will be distorted! In the absence of the hardware border, this, the main border, is arbitrary and advisory, although exceeding of the border by the value will be also accompanied by a violation.&lt;br /&gt;
:* ''Scale: square'' — set if the hardware border is square one.&lt;br /&gt;
:* ''Filter time'' — set the filtering time for noisy signals.&lt;br /&gt;
:* ''Substitute: mode and variable'' — set the desired substitution mode at invalidity the variable.&lt;br /&gt;
:* ''Violations suppress'' — set at the need of the parameter violations complete suppression — to disable their generation in whole.&lt;br /&gt;
:* ''Violations delay'' — set the delay time for the generation of the violations, to exclude frequent generation, characteristic to uncertain sources of data, characterized by short-term loss of communication.&lt;br /&gt;
:* ''Border up/down alarm/warning'' — set when it is necessary to generate violations at the exceeding of the alarm/warning borders.&lt;br /&gt;
:* ''Hysteresis of borders violation'' — set the hysteresis of removing the violation, that is, removal of the violations occurs at the specified percentage later, in order to prevent the frequent generation by fluctuating the value near the border.&lt;br /&gt;
:* ''Motion speed'' — set if it is necessary to warn about fast change of value.&lt;br /&gt;
:* ''Name, Description, Dimension, Precision, Logarithmic scale'' — set this information as need when displayed, or as an element of the passport.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=anUnifSt /&amp;gt;&lt;br /&gt;
| {{Anch|anUnifSt|&amp;lt;h3&amp;gt;Analog signal, unified, violation statuses ([[Special:MyLanguage/Libs/Main#anUnifSt|anUnifSt]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru  &amp;lt;section end=anUnifSt /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
Common, representative and unified template of analog input signals processing, extended by binary states of indication the violations. The template grounded on the base template &amp;quot;[[#anUnif|Analog signal, unified]]&amp;quot; with its representative structure and some differences characteristic to independent development and expansion.&lt;br /&gt;
&lt;br /&gt;
Binary states were provided for the convenient use of algorithms of operation at the borders of violations of the parameter object, preferably in [[Special:MyLanguage/Modules/BlockCalc|the block diagrams]] of general control algorithms.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Functions}}&lt;br /&gt;
Mostly the same as the basic template &amp;quot;[[#anUnif|Analog signal, unified]]&amp;quot; and the borderline signs are additionally provided: &amp;quot;H&amp;quot;, &amp;quot;L&amp;quot;, &amp;quot;HH&amp;quot;, &amp;quot;LL&amp;quot;, &amp;quot;EVAL&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | Template IOs of &amp;quot;[[#anUnif|Analog signal, unified]]&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| H || Border up warning violation || Boolean || Output || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| L || Border down warning violation || Boolean || Output || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| HH || Border up alarm violation || Boolean || Output || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| LL || Border down alarm violation || Boolean || Output || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| EVAL || Error value || Boolean || Output || Read only || Variable ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
Completely identical to &amp;quot;[[#anUnif|Analog signal, unified]]]&amp;quot; with the difference of using the borderline signs: &amp;quot;H&amp;quot;, &amp;quot;L&amp;quot;, &amp;quot;HH&amp;quot;, &amp;quot;LL&amp;quot;, &amp;quot;EVAL&amp;quot;; which can be connected to external computing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=manInUnif /&amp;gt;&lt;br /&gt;
| {{Anch|manInUnif|&amp;lt;h3&amp;gt;Manual input, unified ([[Special:MyLanguage/Libs/Main#manInUnif|manInUnif]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru &amp;lt;section end=manInUnif /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainManInUnifOp.png|right|Result and the operative setup.]]&lt;br /&gt;
Common, representative and unified template of a manual input and an analog output signal. The template forms a structure of parameter (complex tag) of the manual input what can be easily connected to most widgets and cadres of [[Special:MyLanguage/Libs/Main_graphical_elements|the main elements library of the user interface]] just pointing the parameter object, the control mostly can be performed through the [[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|Element cadre]] control panel.&lt;br /&gt;
&lt;br /&gt;
The representative structure of the parameter (complex tag) of the manual input is:&lt;br /&gt;
* &amp;quot;Variable ('''var''')&amp;quot; — end variable of the parameter — engineeric real value, allowed and suitable for archiving.&lt;br /&gt;
* &amp;quot;Variable input ('''varIn''')&amp;quot; — attribute for entering a new engineering value, which in the next falls into the variable.&lt;br /&gt;
* &amp;quot;Error ('''err''')&amp;quot; — obligatory attribute of any parameter, consist of the combination of the error code and short text description, like to &amp;quot;2:No data or connection with source&amp;quot;. The template reserves next error codes:&lt;br /&gt;
** '''1, 2''' — hardware errors, when the data mostly wrong;&lt;br /&gt;
** '''3, 4''' — alarm border errors;&lt;br /&gt;
** '''5, 6''' — warning border errors;&lt;br /&gt;
** '''7''' — the speed error of the variable changing.&lt;br /&gt;
* &amp;quot;Violations suppress ('''alSup''') and delay ('''alDelay''')&amp;quot; — violations generic control for suppressing and delaying.&lt;br /&gt;
* &amp;quot;Scale: minimum ('''min''')&amp;quot; and &amp;quot;Scale: maximum ('''max''')&amp;quot; — main scale of the end variable, the output of which causes a hardware border error. The scale is also used as a scale of the variable trend display on the graphs.&lt;br /&gt;
* &amp;quot;Logarithmic scale ('''log''')&amp;quot; — the scale sign of the variable trend display on the graphs in the logarithmic scale.&lt;br /&gt;
* &amp;quot;Dimension ('''ed''')&amp;quot; — dimension (unit of measurement) of the variable.&lt;br /&gt;
* &amp;quot;Precision ('''prec''')&amp;quot; — number signs after the dot, for positive values, and precision (signs in whole), for negative ones, to display the real end variable on the screen.&lt;br /&gt;
&lt;br /&gt;
Significant graphical shapes representing the structure:&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main_graphical_elements|Main elements library of the user interface]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|Element cadre]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Functions}}&lt;br /&gt;
* Generic processing of the raw analog input for:&lt;br /&gt;
:* simple correction-calibration at the formula &amp;quot;'''in''' = '''iMult'''*('''in'''+'''iAdd''')&amp;quot;;&lt;br /&gt;
:* scaling from the hardware border ['''plcMin'''...'''plcMax'''] to the main border ['''min'''...'''max'''], applying the square scale '''scSqr''';&lt;br /&gt;
:: [[File:at.png]] The hardware borders can be inverted ones and disabled in whole for equal values of the maximum and minimum, when the main border only used.&lt;br /&gt;
:* permission to exceed the border for the input value on the value of '''plcExcess''' percent;&lt;br /&gt;
:* filtering the input value changing in the time '''Tf'''.&lt;br /&gt;
* Processing the result variable '''var''' for violation some borders and criteria, generating the alarms and proper setting the attribute '''err'''. The alarm borders can have some hysteresis '''HystBnd''', can be delayed on the time '''alDelay''' and can be suppressed setting '''alSup'''. Next borders and criteria are provided:&lt;br /&gt;
:* missing for data or connection with source at the EVAL input value — error code 1 and alarm level 5;&lt;br /&gt;
:* exceeding the input value of the hardware border — error code 1,2 and alarm level 5;&lt;br /&gt;
:* exceeding the end variable of the alarm border ['''aMin'''...'''aMax'''] — error code 3,4 and alarm level 4;&lt;br /&gt;
:: [[File:at.png]] Disabled at setting for equal or inverted values of the border&lt;br /&gt;
:* exceeding the end variable of the warning border ['''wMin'''...'''wMax'''] — error code 5,6 and alarm level 2;&lt;br /&gt;
:: [[File:at.png]] Disabled at setting for equal or inverted values of the border&lt;br /&gt;
:* big motion '''speed''' of the end variable — error code 7 and alarm level 2.&lt;br /&gt;
* Reverse conversion of the engineered variable value and writing to the output.&lt;br /&gt;
: [[File:at.png]] In the absence of the &amp;quot;Input/Output&amp;quot; connection, the writing is not performed and there is the stand-alone operation.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| inout || Input/Output || Real || Output || Not attribute|| Link || Parameter&amp;amp;#124;var&lt;br /&gt;
|-&lt;br /&gt;
| var || Variable || Real || Input || Read only || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| varIn || Variable input || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| ed || Dimension || String || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| min || Scale: minimum || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| max || Scale: maximum || Real || Input || Full access || Variable || 100&lt;br /&gt;
|-&lt;br /&gt;
| scSqr || Scale: square || Boolean || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| alSup || Violations suppress || Boolean || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Violations delay, seconds || Real || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| aMin || Border down alarm || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| aMax || Border up alarm || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| wMin || Border down warning || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| wMax || Border up warning || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| HystBnd || Hysteresis of borders violation || Real || Input || Full access || Variable || 1&lt;br /&gt;
|-&lt;br /&gt;
| speed || Motion speed, %/cycle || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| prec || Precision, signs || Integer || Input || Full access || Variable || 2&lt;br /&gt;
|-&lt;br /&gt;
| log || Logarithmic scale || Boolean || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| Tf || Filter time, seconds || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| iAdd || Input addition || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| iMult || Input multiplication || Real || Input || Not attribute || Constant || 1&lt;br /&gt;
|-&lt;br /&gt;
| plcMin || Minimum module scale || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcMax || Maximum module scale || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcExcess || Allowed scale exceeding, % || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| this || Object || Object || Output || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Code || String || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Name || String (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Description || Text (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainManInUnifCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any presented one with the need scheduling properties.&lt;br /&gt;
:2. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select this template for it. Enable the parameter.&lt;br /&gt;
:3. Into the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* ''Input/Output'' — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|link to a source of the &amp;quot;raw&amp;quot; IO signal]], or do not link for the stand-alone mode.&lt;br /&gt;
:* ''Minimum and maximum of the module scale'' — must be set at the case of significant difference the hardware and the generic scales, for example see the template &amp;quot;[[#anUnif|Analog signal, unified]]&amp;quot;.&lt;br /&gt;
:* ''Input addition and multiplication'' — use for easy and linear correction of the input, for example see the template &amp;quot;[[#anUnif|Analog signal, unified]]&amp;quot;.&lt;br /&gt;
:* ''Allowed scale exceeding'' — set if necessary to exceed the value of the main border, and when this scale starts to perform the recommendation function, say for the initial display of the trend on this scale.&lt;br /&gt;
:4. RESULT: Launching the controller object (where this parameter is created) and if it has not been started, we must get the operational data in the tab &amp;quot;Attributes&amp;quot; for: variable, error status; and the generation of violations if the state of the error is nonzero; and it will be allowed to set new values.&lt;br /&gt;
:5. In the process of the working, through the tab &amp;quot;Attributes&amp;quot; of operational data, in addition to obtaining the result, it is possible to perform operative setup and control on:&lt;br /&gt;
:* ''Scale: minimum and maximum'' — strictly [[file:at.png]] set to the range of data changes by availability and according to the hardware border, otherwise the value will be distorted! In the absence of the hardware border, this, the main border, is arbitrary and advisory, although exceeding of the border by the value will be also accompanied by a violation.&lt;br /&gt;
:* ''Scale: square'' — set if the hardware border is square one.&lt;br /&gt;
:* ''Filter time'' — set the filtering time for noisy signals.&lt;br /&gt;
:* ''Violations suppress'' — set at the need of the parameter violations complete suppression — to disable their generation in whole.&lt;br /&gt;
:* ''Violations delay'' — set the delay time for the generation of the violations, to exclude frequent generation, characteristic to uncertain sources of data, characterized by short-term loss of communication.&lt;br /&gt;
:* ''Border up/down alarm/warning'' — set when it is necessary to generate violations at the exceeding of the alarm/warning borders.&lt;br /&gt;
:* ''Hysteresis of borders violation'' — set the hysteresis of removing the violation, that is, removal of the violations occurs at the specified percentage later, in order to prevent the frequent generation by fluctuating the value near the border.&lt;br /&gt;
:* ''Motion speed'' — set if it is necessary to warn about fast change of value.&lt;br /&gt;
:* ''Name, Description, Dimension, Precision, Logarithmic scale'' — set this information as need when displayed, or as an element of the passport.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=digitBlockUnif /&amp;gt;&lt;br /&gt;
| {{Anch|digitBlockUnif|&amp;lt;h3&amp;gt;Discrete block, unified ([[Special:MyLanguage/Libs/Main#digitBlockUnif|digitBlockUnif]])&amp;lt;/h3&amp;gt;}} || 1.0 || GPLv2 || * || en, uk, ru &amp;lt;section end=digitBlockUnif /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainDigitBlockUnifOp.png|right|Result and the operative setup.]]&lt;br /&gt;
Common, representative and unified template of the block for union of Discrete parameters for the common control device. The template forms a structure of discrete parameter-block (complex tag) which can be easily connected to most widgets and cadres of [[Special:MyLanguage/Libs/Main_graphical_elements|the main elements library of the user interface]] just pointing the parameter object.&lt;br /&gt;
&lt;br /&gt;
The representative structure of discrete parameters (complex tags) is a latch object with two characteristic states and three commands, which in the final representation may have a different meaning and name:&lt;br /&gt;
* &amp;quot;State &amp;quot;Opened&amp;quot; ('''st_open''')&amp;quot; — the state &amp;quot;Opened&amp;quot; of the latch. Is the primary status signal that can be used without the next one, when '''1 (true)''' is &amp;quot;Opened&amp;quot;, and '''0 (false)''' is 'Closed'.&lt;br /&gt;
* &amp;quot;State &amp;quot;Closed&amp;quot; ('''st_close''')&amp;quot; — the state &amp;quot;Closed&amp;quot;.&lt;br /&gt;
* &amp;quot;Command &amp;quot;Open&amp;quot; ('''com''')&amp;quot; — the command &amp;quot;Open&amp;quot; of the latch. Is the primary command signal that can be used without the next one, when '''1 (true)''' is &amp;quot;Open&amp;quot;, and '''0 (false)''' is 'Close'.&lt;br /&gt;
* &amp;quot;Command &amp;quot;Close&amp;quot; ('''close''')&amp;quot; — the command &amp;quot;Close&amp;quot; of the latch.&lt;br /&gt;
* &amp;quot;Command &amp;quot;Stop&amp;quot; ('''stop''')&amp;quot; — the command &amp;quot;Stop&amp;quot; of the latch.&lt;br /&gt;
&lt;br /&gt;
Significant graphical shapes representing the structure:&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main_graphical_elements|Main elements library of the user interface]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#TextLab|Text label]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ImgLab|Image label]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElViewGraph|Graphics group element]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|Element cadre]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#cntrPaspExt|Passport, extended]]&lt;br /&gt;
* [[Special:MyLanguage/Libs/Mnemo_elements|Mnemonic elements library of the user interface]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Mnemo_elements#El_Alarm|Alarming]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Mnemo_elements#discrApps|Discrete apparatus]]&lt;br /&gt;
* [[Special:MyLanguage/Libs/Electrical_elements|Electrical elements library of the user interface]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Electrical_elements#ActualActive|Key, unified]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Electrical_elements#ActualActive|Switch, unified]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Electrical_elements#ActualActive|General state, unified]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Electrical_elements#ActualActive|Area state, unified]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Functions}}&lt;br /&gt;
* Direct obtaining, by link, of the two states (read only) and three commands (reading and writing).&lt;br /&gt;
* Possibility of holding the commands for a certain time and removing them.&lt;br /&gt;
* Ability to redefine the states and commands by [[Special:MyLanguage/Libs/Main_graphical_elements|the appropriate settings of the interface elements]], such as ''digStts'', for statuses, and ''digComs'', for commands.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| com || Command &amp;quot;Open&amp;quot; || Boolean || Output || Full access || Link || Crane|com&lt;br /&gt;
|-&lt;br /&gt;
| close || Command &amp;quot;Close&amp;quot; || Boolean || Output || Full access || Link || Crane|close&lt;br /&gt;
|-&lt;br /&gt;
| stop || Command &amp;quot;Stop&amp;quot; || Boolean || Output || Full access || Link || Crane|stop&lt;br /&gt;
|-&lt;br /&gt;
| st_open || State &amp;quot;Opened&amp;quot; || Boolean || Input || Read only || Link || Crane|st_open&lt;br /&gt;
|-&lt;br /&gt;
| st_close || State &amp;quot;Closed&amp;quot; || Boolean || Input || Read only || Link || Crane|st_close&lt;br /&gt;
|-&lt;br /&gt;
| tCmd || Time to hold the command, seconds || Integer || Input || Not attribute || Constant || 5&lt;br /&gt;
|-&lt;br /&gt;
| last_cmd || Last command || Integer || Output || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| w_tm || Process command counter || Real || Output || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainDigitBlockUnifCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any presented one with the need scheduling properties.&lt;br /&gt;
:2. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select this template for it. Enable the parameter.&lt;br /&gt;
:3. Into the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* All the states and commands — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|link to a source of the &amp;quot;raw&amp;quot; signal]].&lt;br /&gt;
:* ''Time to hold the command, seconds'' — set the desired hold value or 0 to disable this feature.&lt;br /&gt;
:4. RESULT: Launching the controller object (where this parameter is created) and if it has not been started, we must get the operational data in the tab &amp;quot;Attributes&amp;quot; for: states and commands.&lt;br /&gt;
:5. In the process of the working, through the tab &amp;quot;Attributes&amp;quot; of operational data, in addition to obtaining the result, it is possible to perform operative control, performing the commands:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=digAlarm /&amp;gt;&lt;br /&gt;
| {{Anch|digAlarm|&amp;lt;h3&amp;gt;Alarm discrete ([[Special:MyLanguage/Libs/Main#digAlarm|digAlarm]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru &amp;lt;section end=digAlarm /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainDigAlarmOp.png|right|Result and the operative setup.]]&lt;br /&gt;
Common, representative and unified template of separate discrete parameter (complex tag) processing with formation of signaling by the defined criterion. The template forms a structure of discrete parameter (complex tag) which can be easily connected to most widgets and cadres of [[Special:MyLanguage/Libs/Main_graphical_elements|the main elements library of the user interface]] just pointing the parameter object.&lt;br /&gt;
&lt;br /&gt;
The template provides some fields of [[#digitBlockUnif|the representative structure of the discrete parameters]] and adds the error field:&lt;br /&gt;
* &amp;quot;State &amp;quot;Opened&amp;quot; ('''st_open''')&amp;quot; — the state &amp;quot;Opened&amp;quot;.&lt;br /&gt;
* &amp;quot;State &amp;quot;Closed&amp;quot; ('''st_close''')&amp;quot; — the state &amp;quot;Closed&amp;quot;.&lt;br /&gt;
* &amp;quot;Error ('''err''')&amp;quot; — obligatory attribute of any parameter, consist of the combination of the error code and short text description, like to &amp;quot;2:No data or connection with source&amp;quot;. The template reserves next error codes:&lt;br /&gt;
** '''1''' — hardware errors, when the data mostly wrong;&lt;br /&gt;
** '''3''' — violation of the specified condition.&lt;br /&gt;
* &amp;quot;Violations suppress ('''alSup''') and delay ('''alDelay''')&amp;quot; — violations generic control for suppressing and delaying.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Functions}}&lt;br /&gt;
* Direct obtaining, by link, of the initial state and formation of two representative states with the possibility of their inversion '''stInv'''.&lt;br /&gt;
* Complex preprocessing and complete generation-imitation of the discrete input on the internal programming language of OpenSCADA into the configuration IO '''inProc''' (with appending the builtin syntax highlight rules), where you can operate next service parameters:&lt;br /&gt;
:* ''in'' [IN|OUT] — the same raw discrete input IO;&lt;br /&gt;
:* ''levErr'', ''tErr'' [IN|OUT] — alarm level [-79...0] and text of the error (the attribute &amp;quot;err&amp;quot; format);&lt;br /&gt;
:* ''f_frq'' [IN] — frequency of calculation, the template IO;&lt;br /&gt;
:* ''this'' [IN] — reference to the parameter object, what executing the template;&lt;br /&gt;
:* ''ctx'' [IN] — object of the user context, what saved between the execution cycles;&lt;br /&gt;
:* ''args'' [IN] — object of arguments of the procedure.&lt;br /&gt;
* Processing of the discrete input '''in''' for the purpose of creating a violation and correspondingly setting the attribute '''err''', at the condition &amp;quot;'''{st}:{lev}:{mess}'''&amp;quot;, that is violation generation of the level ''lev'' and the text ''mess'' for the input status ''st'' (0|1). What can be delayed on the time '''alDelay''' and can be suppressed setting '''alSup'''.&lt;br /&gt;
* Specific parameters redefinition in the common attribute '''DESCR''':&lt;br /&gt;
:* ''the first line'' — as description of the alarm messages;&lt;br /&gt;
:* the field ''CustomFlds'' — specifying of [[Special:MyLanguage/Documents/Program_manual#ArchMess|the custom fields]] of the alarm messages in the form &amp;quot;'''CustomFlds: {CustFld0} =&amp;gt; {CustFld1} =&amp;gt; ... =&amp;gt; {CustFldN}'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| alrm || Alarm &amp;quot;{st}:{lev}:{mess}&amp;quot; || String || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| stInv || State inversion || Boolean || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| in || Input || Boolean || Input || Read only || Link || Input&amp;amp;#124;in&lt;br /&gt;
|-&lt;br /&gt;
| inProc || Input processing procedure || Text || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| alSup || Violations suppress || Boolean || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Violations delay, seconds || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| st_open || State &amp;quot;Opened&amp;quot; || Boolean || Input || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| st_close || State &amp;quot;Closed&amp;quot; || Boolean || Input || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Code || String || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Name || String (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Description || Text (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| this || Object || Object || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainDigAlarmCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any presented one with the need scheduling properties.&lt;br /&gt;
:2. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select this template for it. Enable the parameter.&lt;br /&gt;
:3. Into the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* &amp;quot;Alarm &amp;quot;{st}:{lev}:{mess}&amp;quot; — define the criterion for the violation formation, leave blank to disable the violations generation.&lt;br /&gt;
:* &amp;quot;State inversion&amp;quot; — set to invert the representative attributes, that is, &amp;quot;st_open&amp;quot; set for &amp;quot;in&amp;quot; equal to '''false'''.&lt;br /&gt;
:* ''Input'' — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|link to a source of the &amp;quot;raw&amp;quot; signal]].&lt;br /&gt;
:* ''Input processing procedure'' — form for the complex preprocessing and complete generation of the discrete input on the internal programming language of OpenSCADA. For example:&lt;br /&gt;
::* complete creation for a complex status:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 40pt&amp;quot;&amp;gt;&lt;br /&gt;
gO = this.cntr().prm_grps;&lt;br /&gt;
status = gO.prm_generic.PRG_Input_Err_T_Zone1_S.get();&lt;br /&gt;
in = gO.prm_generic.SET_CalcFan_UseSensor_T1.get() || !(status == 0 || status == 2 || status == 3); &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:4. RESULT: Launching the controller object (where this parameter is created) and if it has not been started, we must get the operational data in the tab &amp;quot;Attributes&amp;quot; for: variable, error status; and the generation of violations if the state of the error is nonzero.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=codeState /&amp;gt;&lt;br /&gt;
| {{Anch|codeState|&amp;lt;h3&amp;gt;Code state ([[Special:MyLanguage/Libs/Main#codeState|codeState]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.4 || GPLv2 || * || en, uk, ru &amp;lt;section end=codeState /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainCodeStateOp.png|right|Result and the operative setup.]]&lt;br /&gt;
A variant of [[#digitBlockUnif|the common, representative and unified template of the block for union of Discrete parameters]], expanded by more than two states and three commands that can be encoded by an integer value. The template forms a structure of parameter (complex tag) which can be easily connected to most widgets and cadres of [[Special:MyLanguage/Libs/Main_graphical_elements|the main elements library of the user interface]] just pointing the parameter object.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' Vinnica Poultry Farm&lt;br /&gt;
&lt;br /&gt;
The representative structure of the parameter (complex tag) of the code state is:&lt;br /&gt;
* &amp;quot;State &amp;quot;Text&amp;quot; ('''st_text''')&amp;quot; — text description of the state.&lt;br /&gt;
* &amp;quot;Command &amp;quot;Text&amp;quot; ('''com_text''')&amp;quot; — text of the command.&lt;br /&gt;
* &amp;quot;Commands ('''digComs''')&amp;quot; — common list of the allowed commands, to form the selecting.&lt;br /&gt;
* &amp;quot;Error ('''err''')&amp;quot; — obligatory attribute of any parameter, consist of the combination of the error code and short text description, like to &amp;quot;2:No data or connection with source&amp;quot;. The template reserves next error codes:&lt;br /&gt;
** '''1''' — hardware errors, when the data mostly wrong.&lt;br /&gt;
* &amp;quot;Violations suppress ('''alSup''') and delay ('''alDelay''')&amp;quot; — violations generic control for suppressing and delaying.&lt;br /&gt;
&lt;br /&gt;
Significant graphical shapes representing the structure:&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main_graphical_elements|Main elements library of the user interface]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#TextLab|Text label]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ImgLab|Image label]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|Element cadre]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Functions}}&lt;br /&gt;
* Direct receiving, by link, the status code and the command (read only), as well as setting the status text according to the list of states ''stats''.&lt;br /&gt;
* Working out the text of the command ''com_text'' to find it in the general list ''coms'' of commands and issuing the received command code to the output.&lt;br /&gt;
* Generating from the general list ''coms'' of commands the list of commands to be selected in ''digComs''.&lt;br /&gt;
* Complex processing and complete generation-imitation of the code state, as well as processing the code or the command text for targeted actions, on the internal programming language of OpenSCADA into the configuration IO '''inProc''', where you can operate next service parameters:&lt;br /&gt;
:* ''in'' [IN|OUT] — IO of the code state;&lt;br /&gt;
:* ''text'' [OUT] — direct text status setting;&lt;br /&gt;
:* ''coms'' [IN] — list of available commands, of the corresponded IO;&lt;br /&gt;
:* ''com_text'' [IN|OUT] — text of the received command;&lt;br /&gt;
:* ''levErr'', ''tErr'' [IN|OUT] — alarm level [-79...0] and text of the error (the attribute &amp;quot;err&amp;quot; format);&lt;br /&gt;
:* ''f_frq'' [IN] — frequency of the calculation, the template IO;&lt;br /&gt;
:* ''this'' [IN] — reference to the parameter object, what executing the template;&lt;br /&gt;
:* ''ctx'' [IN] — object of the user context, what saved between the execution cycles;&lt;br /&gt;
:* ''args'' [IN] — object of arguments of the procedure.&lt;br /&gt;
* Formation of the violation and the corresponding setting of the attribute '''err''', provided at setting in the processing procedure or lack of the communication (''in'' = EVAL). What can be delayed on the time '''alDelay''' and can be suppressed setting '''alSup'''.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| in || Input || Integer || Input || Read only || Link || Signal&amp;amp;#124;in&lt;br /&gt;
|-&lt;br /&gt;
| out || Output || Integer || Output || Read only || Link || Signal&amp;amp;#124;out&lt;br /&gt;
|-&lt;br /&gt;
| inProc || Input processing procedure || Text || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| alSup || Violations suppress || Boolean || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Violations delay, seconds || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| st_text || State &amp;quot;Text&amp;quot; || String || Input || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| stats || States, rows &amp;quot;{code}:{State}&amp;quot; || Text || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| com_text || Command &amp;quot;Text&amp;quot; || String || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| coms || Commands-states, rows &amp;quot;{code}:{State}&amp;quot; || Text || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| digComs || Commands || Text || Input || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Code || String || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Name || String (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Description || Text (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| this || Object || Object || Output || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainCodeStateCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any presented one with the need scheduling properties.&lt;br /&gt;
:2. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select this template for it. Enable the parameter.&lt;br /&gt;
:3. Into the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* ''Input'' and ''Output'' — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|link to a source of the &amp;quot;raw&amp;quot; signal]].&lt;br /&gt;
:* ''Input processing procedure'' — form for the processing and complete generation-imitation of the input, and issuing of the specific output, on the internal programming language of OpenSCADA. For example:&lt;br /&gt;
::* complete creation for the state code and alarms forming:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 40pt&amp;quot;&amp;gt;&lt;br /&gt;
gO = this.cntr().prm_grps;&lt;br /&gt;
if(gO.prm_fansControl.PRG_CntrFan_AutoMode_G1.get().isEVal())	in = 4;&lt;br /&gt;
else {&lt;br /&gt;
  if(!(tVl=gO.prm_fansControl.PRG_CntrFan_Alarm_ThermalRelay.get()).isEVal() &amp;amp;&amp;amp; tVl)&lt;br /&gt;
    levErr = -4, tErr = &amp;quot;11:alarm&amp;quot;;&lt;br /&gt;
  if(gO.prm_fansControl.PRG_CntrFan_AutoMode_G1.get())&lt;br /&gt;
    in = gO.prm_fansControl.PRG_CntrFan_On_G1.get() ? 1 : 2;&lt;br /&gt;
  else in = 3;&lt;br /&gt;
} &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
::* forming the clock time text and issuing the time synchronization — direct status text setting and issuing for specific commands:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 40pt&amp;quot;&amp;gt;&lt;br /&gt;
curTm = SYS.time();&lt;br /&gt;
text = SYS.strftime(curTm, &amp;quot;%H։%M %d.%m.%Y&amp;quot;);&lt;br /&gt;
gO = this.cntr().prm_grps;&lt;br /&gt;
if(!(tVl=gO.prm_other.PRG_RTC_UNIX.get()).isEVal()) {&lt;br /&gt;
  text += &amp;quot; (&amp;quot;+(tVl-curTm).toString(10,0,true)+&amp;quot;)&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if(com_text.length &amp;amp;&amp;amp; !com_text.isEVal() &amp;amp;&amp;amp; (tVl=coms.match(&amp;quot;^([^:]+):&amp;quot;+com_text,&amp;quot;m&amp;quot;)).length &amp;amp;&amp;amp; tVl[1] == 1) {&lt;br /&gt;
  gO.prm_other.SET_RTC_New_UNIX.set(curTm);&lt;br /&gt;
  gO.prm_other.KEY_RTC_set_time.set(true);&lt;br /&gt;
} &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:4. RESULT: Launching the controller object (where this parameter is created) and if it has not been started, we must get the operational data in the tab &amp;quot;Attributes&amp;quot; for: input, output, code-input state, error status; and the generation of violations if the state of the error is nonzero.&lt;br /&gt;
:5. In the process of the working, through the tab &amp;quot;Attributes&amp;quot; of operational data, in addition to obtaining the result, it is possible to perform operative control, performing the commands:&lt;br /&gt;
:* ''States'' — set to list of accordance with its status code to text.&lt;br /&gt;
:* ''Commands-states'' — set to list of accordance with its status-command code to text.&lt;br /&gt;
:* ''Command &amp;quot;Text&amp;quot;'' — set in the command text, which is described in the command list, for the code conversion and issuance.&lt;br /&gt;
:* ''Violations suppress'' — set at the need of the parameter violations complete suppression — to disable their generation in whole.&lt;br /&gt;
:* ''Violations delay'' — set the delay time for the generation of the violations, to exclude frequent generation, characteristic to uncertain sources of data, characterized by short-term loss of communication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=pidUnif /&amp;gt;&lt;br /&gt;
| {{Anch|pidUnif|&amp;lt;h3&amp;gt;PID signal, unified, violation statuses ([[Special:MyLanguage/Libs/Main#pidUnif|pidUnif]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru &amp;lt;section end=pidUnif /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainPidUnifOp.png|right|Result and the operative setup.]]&lt;br /&gt;
Common, representative and unified template of an interface to the Proportional Integral Differential (PID) regulator based on the common analog input signal, extended by binary states of indication the violations. The template forms a structure of the analog PID-regulator which can be easily connected to some cadres and widgets of [[Special:MyLanguage/Libs/Main_graphical_elements|the main elements library of the user interface]] just pointing the parameter object.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' DIYA Ltd&lt;br /&gt;
&lt;br /&gt;
The representative structure of the analog PID-regulators is:&lt;br /&gt;
* &amp;quot;Variable ('''var''')&amp;quot; — end variable of the parameter — engineeric real value, allowed and suitable for archiving.&lt;br /&gt;
* &amp;quot;Error ('''err''')&amp;quot; — obligatory attribute of any parameter, consist of the combination of the error code and short text description, like to &amp;quot;2:No data or connection with source&amp;quot;. The template reserves next error codes:&lt;br /&gt;
** '''1, 2''' — hardware errors, when the data mostly wrong;&lt;br /&gt;
** '''3, 4''' — alarm border errors;&lt;br /&gt;
** '''5, 6''' — warning border errors;&lt;br /&gt;
** '''7''' — the speed error of the variable changing.&lt;br /&gt;
* &amp;quot;Violations suppress ('''alSup''') and delay ('''alDelay''')&amp;quot; — violations generic control for suppressing and delaying.&lt;br /&gt;
* &amp;quot;Setpoint ('''sp''')&amp;quot; — setpoint for the analog signal value achievement in the automatic mode.&lt;br /&gt;
* &amp;quot;Manual input ('''manIn''')&amp;quot; — attribute for entering a new output value, which in the next falls into the output at the manual mode.&lt;br /&gt;
* &amp;quot;Output ('''out''')&amp;quot; — output (control signal) of the PID-regulator.&lt;br /&gt;
* &amp;quot;Mode: automate ('''auto''')&amp;quot; — the PID-regulator mode &amp;quot;Automatic&amp;quot;.&lt;br /&gt;
* &amp;quot;Mode: cascade ('''casc''')&amp;quot; — the PID-regulator mode &amp;quot;Cascade&amp;quot;.&lt;br /&gt;
* &amp;quot;Scale: minimum ('''min''')&amp;quot; and &amp;quot;Scale: maximum ('''max''')&amp;quot; — main scale of the end variable, the output of which causes a hardware border error. The scale is also used as a scale of the variable trend display on the graphs.&lt;br /&gt;
* &amp;quot;Logarithmic scale ('''log''')&amp;quot; — the scale sign of the variable trend display on the graphs in the logarithmic scale.&lt;br /&gt;
* &amp;quot;Dimension ('''ed''')&amp;quot; — dimension (unit of measurement) of the variable.&lt;br /&gt;
* &amp;quot;Precision ('''prec''')&amp;quot; — number signs after the dot, for positive values, and precision (signs in whole), for negative ones, to display the real end variable on the screen.&lt;br /&gt;
&lt;br /&gt;
Significant graphical shapes representing the structure:&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main_graphical_elements|Main elements library of the user interface]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#cntrRegul|Regulator's control panel]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|Element cadre]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#cntrPaspExt|Passport, extended]]&lt;br /&gt;
* [[Special:MyLanguage/Libs/Mnemo_elements|Mnemonic elements library of the user interface]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Mnemo_elements#analogApps|Analog apparatus]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Functions}}&lt;br /&gt;
* Generic processing of the raw analog input for:&lt;br /&gt;
:* simple correction-calibration at the formula &amp;quot;'''in''' = '''iMult'''*('''in'''+'''iAdd''')&amp;quot;;&lt;br /&gt;
:* scaling from the hardware border ['''plcMin'''...'''plcMax'''] to the main border ['''min'''...'''max'''], applying the square scale '''scSqr''';&lt;br /&gt;
:* permission to exceed the border for the input value on the value of '''plcExcess''' percent;&lt;br /&gt;
:* filtering the input value changing in the time '''Tf'''.&lt;br /&gt;
* Simple imitation of the analog input, setting '''plcImit''' and linking the imitation-simulation source in '''plcImitIn'''.&lt;br /&gt;
* Processing the result variable '''var''' for violation some borders and criteria, generating the alarms and proper setting the attribute '''err'''. The alarm borders can have some hysteresis '''HystBnd''', can be delayed on the time '''alDelay''' and can be suppressed setting '''alSup'''. Next borders and criteria are provided:&lt;br /&gt;
:* missing for data or connection with source at the EVAL input value — error code 1 and alarm level 5;&lt;br /&gt;
:* exceeding the input value of the hardware border — error code 1,2 and alarm level 5;&lt;br /&gt;
:* exceeding the end variable of the alarm border ['''aMin'''...'''aMax'''] — error code 3,4 and alarm level 4;&lt;br /&gt;
:: [[File:at.png]] Disabled at setting for equal or inverted values of the border&lt;br /&gt;
:* exceeding the end variable of the warning border ['''wMin'''...'''wMax'''] — error code 5,6 and alarm level 2;&lt;br /&gt;
:: [[File:at.png]] Disabled at setting for equal or inverted values of the border&lt;br /&gt;
:* big motion '''speed''' of the end variable — error code 7 and alarm level 2.&lt;br /&gt;
* Transmission of the PID-specific information, control and coefficient attributes to and from the PLC or other data source with the regulation.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| in || Input || Real || Input || Not attribute || Link || Signal&amp;amp;#124;in&lt;br /&gt;
|-&lt;br /&gt;
| sp || Setpoint || Real || Input || Full access || Link || PID&amp;amp;#124;sp&lt;br /&gt;
|-&lt;br /&gt;
| var || Variable || Real || Input || Read only || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| manIn || Manual input, % || Real || Input || Full access || Link || PID&amp;amp;#124;manIn&lt;br /&gt;
|-&lt;br /&gt;
| out || Output, % || Real || Input || Full access || Link || PID&amp;amp;#124;out&lt;br /&gt;
|-&lt;br /&gt;
| auto || Mode: automate || Boolean || Input || Full access || Link || PID&amp;amp;#124;auto&lt;br /&gt;
|-&lt;br /&gt;
| casc || Mode: cascade || Boolean || Input || Full access || Link || PID&amp;amp;#124;casc&lt;br /&gt;
|-&lt;br /&gt;
| ed || Dimension || String || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| min || Scale: minimum || Real || Input || Full access || Link || PID&amp;amp;#124;min&lt;br /&gt;
|-&lt;br /&gt;
| max || Scale: maximum || Real || Input || Full access || Link || PID&amp;amp;#124;max&lt;br /&gt;
|-&lt;br /&gt;
| scSqr || Scale: square || Boolean || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| alSup || Violations suppress || Boolean || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Violations delay, seconds || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| aMin || Border down alarm || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| aMax || Border up alarm || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| wMin || Border down warning || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| wMax || Border up warning || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| HystBnd || Hysteresis of borders violation || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| speed || Motion speed, %/cycle || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| prec || Precision, signs || Integer || Input || Full access || Variable || 2&lt;br /&gt;
|-&lt;br /&gt;
| log || Logarithmic scale || Boolean || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| H || Border up warning violation || Boolean || Output || Read only || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| L || Border down warning violation || Boolean || Output || Read only || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| HH || Border up alarm violation || Boolean || Output || Read only || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| LL || Border down alarm violation || Boolean || Output || Read only || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| EVAL || Value is error || Boolean || Output || Read only || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| Tf || Filter time, milliseconds || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| Kp || Gain || Real || Input || Full access || Link || PID&amp;amp;#124;Kp&lt;br /&gt;
|-&lt;br /&gt;
| Ti || Ti, milliseconds || Integer || Input || Full access || Link || PID&amp;amp;#124;Ti&lt;br /&gt;
|-&lt;br /&gt;
| Kd || Gain differential || Real || Input || Full access || Link || PID&amp;amp;#124;Kd&lt;br /&gt;
|-&lt;br /&gt;
| Td || Td, milliseconds || Integer || Input || Full access || Link || PID&amp;amp;#124;Td&lt;br /&gt;
|-&lt;br /&gt;
| Tzd || T differential lag, milliseconds || Integer || Input || Full access || Link || PID&amp;amp;#124;Tzd&lt;br /&gt;
|-&lt;br /&gt;
| Zi || Insensitivity, % || Real || Input || Full access || Link || PID&amp;amp;#124;Zi&lt;br /&gt;
|-&lt;br /&gt;
| Hup || Upper output border, % || Real || Input || Full access || Link || PID&amp;amp;#124;Hup&lt;br /&gt;
|-&lt;br /&gt;
| Hdwn || Lower output border, % || Real || Input || Full access || Link || PID&amp;amp;#124;Hdwn&lt;br /&gt;
|-&lt;br /&gt;
| K1 || Coefficient of input 1 || Real || Input || Full access || Link || PID&amp;amp;#124;K1&lt;br /&gt;
|-&lt;br /&gt;
| K2 || Coefficient of input 2 || Real || Input || Full access || Link || PID&amp;amp;#124;K2&lt;br /&gt;
|-&lt;br /&gt;
| K3 || Coefficient of input 3 || Real || Input || Full access || Link || PID&amp;amp;#124;K3&lt;br /&gt;
|-&lt;br /&gt;
| K4 || Coefficient of input 4 || Real || Input || Full access || Link || PID&amp;amp;#124;K4&lt;br /&gt;
|-&lt;br /&gt;
| iAdd || Input addition || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| iMult || Input multiplication || Real || Input || Not attribute || Constant || 1&lt;br /&gt;
|-&lt;br /&gt;
| plcMin || Minimum module scale || Real || Input || Not attribute || Constant || 1&lt;br /&gt;
|-&lt;br /&gt;
| plcMax || Maximum module scale || Real || Input || Not attribute || Constant || 5&lt;br /&gt;
|-&lt;br /&gt;
| plcExcess || Allowed scale exceeding, % || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcImit || PLC imitation || Boolean || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcImitIn || PLC imitation input || Real || Input || Not attribute || Link || Imitation&amp;amp;#124;var&lt;br /&gt;
|-&lt;br /&gt;
| this || Object || Object || Output || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Code || String || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Name || String (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Description || Text (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainPidUnifCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any presented one with the need scheduling properties.&lt;br /&gt;
:2. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select this template for it. Enable the parameter.&lt;br /&gt;
:3. Into the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* ''Input'' — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|link to a source of the &amp;quot;raw&amp;quot; analog signal]].&lt;br /&gt;
:* ''Setpoint'', ''Manual input'', ''Output'', ''Mode: automate'', ''Mode: cascade'', ''Scale: minimum'', ''Scale: maximum'', ''Gain'', ''Ti'', ''Gain differential'', ''Td'', ''T differential lag'', ''Insensitivity'', ''Upper output border'', ''Lower output border'', ''Coefficient of input 1'', ''Coefficient of input 2'', ''Coefficient of input 3'', ''Coefficient of input 4'' — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|link to a source of the PID-regulator]].&lt;br /&gt;
:* ''Input addition and multiplication'' — use for easy and linear correction of the input, for example see the template &amp;quot;[[#anUnif|Analog signal, unified]]&amp;quot;.&lt;br /&gt;
:* ''Allowed scale exceeding'' — set if necessary to exceed the value of the main border, and when this scale starts to perform the recommendation function, say for the initial display of the trend on this scale.&lt;br /&gt;
:* ''PLC imitation and the imitation input'' — define at the need to simulate the input as required in the functions.&lt;br /&gt;
:4. RESULT: Launching the controller object (where this parameter is created) and if it has not been started, we must get the operational data in the tab &amp;quot;Attributes&amp;quot; for: variable, error status; and the generation of violations if the state of the error is nonzero. Also we will get all the PID-specific attributes.&lt;br /&gt;
:5. In the process of the working, through the tab &amp;quot;Attributes&amp;quot; of operational data, in addition to obtaining the result, it is possible to perform operative setup and control on:&lt;br /&gt;
:* ''Scale: minimum and maximum'' — strictly [[file:at.png]] set to the range of data changes by availability and according to the hardware border, otherwise the value will be distorted!&lt;br /&gt;
:* ''Scale: square'' — set if the hardware border is square one.&lt;br /&gt;
:* ''Filter time'' — set the filtering time for noisy signals.&lt;br /&gt;
:* ''Violations suppress'' — set at the need of the parameter violations complete suppression — to disable their generation in whole.&lt;br /&gt;
:* ''Violations delay'' — set the delay time for the generation of the violations, to exclude frequent generation, characteristic to uncertain sources of data, characterized by short-term loss of communication.&lt;br /&gt;
:* ''Border up/down alarm/warning'' — set when it is necessary to generate violations at the exceeding of the alarm/warning borders.&lt;br /&gt;
:* ''Hysteresis of borders violation'' — set the hysteresis of removing the violation, that is, removal of the violations occurs at the specified percentage later, in order to prevent the frequent generation by fluctuating the value near the border.&lt;br /&gt;
:* ''Motion speed'' — set if it is necessary to warn about fast change of value.&lt;br /&gt;
:* ''Name, Description, Dimension, Precision, Logarithmic scale'' — set this information as need when displayed, or as an element of the passport.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=pidUnifImp /&amp;gt;&lt;br /&gt;
| {{Anch|pidUnifImp|&amp;lt;h3&amp;gt;Impulse PID signal, unified, violation statuses ([[Special:MyLanguage/Libs/Main#pidUnifImp|pidUnifImp]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.1 || GPLv2 || * || en, uk, ru &amp;lt;section end=pidUnifImp /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
Common, representative and unified template of an interface to the Proportional Integral Differential (PID) regulator based on the common analog input signal but with the PWM-output, extended by binary states of indication the violations and mostly like to the template &amp;quot;[[#pidUnif|PID signal, unified, violation statuses]]&amp;quot;. The template forms a structure of the impulse PID-regulator which can be easily connected to some cadres of [[Special:MyLanguage/Libs/Main_graphical_elements|the main elements library of the user interface]] just pointing the parameter object.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' DIYA Ltd&lt;br /&gt;
&lt;br /&gt;
The representative structure of the impulse PID-regulators is mostly equal to the template &amp;quot;[[#pidUnif|PID signal, unified, violation statuses]]&amp;quot; and contains a number of attributes specific to the pulse output and the attribute of determining the operation of this regulator in the analog mode, that is, this template is even more generalizable:&lt;br /&gt;
* &amp;quot;Impulse output up ('''impQup''')&amp;quot; and &amp;quot;Impulse output down ('''impQdwn''')&amp;quot; — signals of the PWM-output.&lt;br /&gt;
* &amp;quot;Mode: analog ('''analog''')&amp;quot; — a sign of working the regulator in the analog output mode.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Functions}}&lt;br /&gt;
Mostly the same as the basic template &amp;quot;[[#pidUnif|PID signal, unified, violation statuses]]&amp;quot; and the impulse-specific attributes are additionally provided: &amp;quot;Impulse output up&amp;quot;, &amp;quot;Impulse output down&amp;quot;, &amp;quot;Mode: analog&amp;quot;, &amp;quot;T impulses period&amp;quot;, &amp;quot;T minimal impulse&amp;quot;, &amp;quot;Impulse rate factor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | Template IOs of &amp;quot;[[#pidUnif|PID signal, unified, violation statuses]]&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| impQup || Impulse output up || Boolean || Input || Read only || Link || PID&amp;amp;#124;impQupTm&lt;br /&gt;
|-&lt;br /&gt;
| impQdwn || Impulse output down || Boolean || Input || Read only || Link || PID&amp;amp;#124;impQdwnTm&lt;br /&gt;
|-&lt;br /&gt;
| analog || Mode: analog || Boolean || Input || Read only || Link || PID&amp;amp;#124;analog&lt;br /&gt;
|-&lt;br /&gt;
| TImpPer || T impulses period, milliseconds || Integer || Input || Full access || Link || PID&amp;amp;#124;TImpPer&lt;br /&gt;
|-&lt;br /&gt;
| TImpMin || T minimal impulse, milliseconds || Integer || Input || Full access || Link || PID&amp;amp;#124;TImpMin&lt;br /&gt;
|-&lt;br /&gt;
| KImpRfact || Impulse rate factor || Real || Input || Full access || Link || PID&amp;amp;#124;KImpRfact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
Mostly the same as the basic template &amp;quot;[[#pidUnif|PID signal, unified, violation statuses]]&amp;quot; with the difference of using the impulse specific output: &amp;quot;Impulse output up&amp;quot;, &amp;quot;Impulse output down&amp;quot;, &amp;quot;Mode: analog&amp;quot;, &amp;quot;T impulses period&amp;quot;, &amp;quot;T minimal impulse&amp;quot;, &amp;quot;Impulse rate factor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== {{Anch|ComplexObject|Templates of the complex objects}} ==&lt;br /&gt;
In some cases where an object is only a part of a common automated system and does not require deep detailing to the level of signals and parameters (complex tag) around them, including without the need for archiving, it is convenient to unify them in one representative object of the data source OpenSCADA with appropriate consolidated view and object control as a set of simple attributes with violation elements. Such consolidation often occurs around specialised data sources, whose access to data is usually implemented through a separate exchanging protocol, but without unifying the transmission of this data to the level of visualisation and signalling by a separate attribute of the object.&lt;br /&gt;
&lt;br /&gt;
In general, the representative structure of a complex object is:&lt;br /&gt;
* &amp;quot;All items ('''items''')&amp;quot; — common object-type attribute where the attributes of a physical object are directly described by object-type attributes in '''items''' and with defined descriptive attributes in each&lt;br /&gt;
** ''id'' — attribute identifier;&lt;br /&gt;
** ''descr'' — text description of the attribute;&lt;br /&gt;
** ''wr'' — a sign of the possibility of writing or a list of value variants to their selection, through the symbol ';';&lt;br /&gt;
** ''alarm'' — violation code:&lt;br /&gt;
*** 0 — no violation — &amp;quot;NORM&amp;quot;;&lt;br /&gt;
*** 1 — violation level &amp;quot;WARNING&amp;quot;;&lt;br /&gt;
*** 2 — violation level &amp;quot;ALARM&amp;quot;;&lt;br /&gt;
** ''val'' — attribute value;&lt;br /&gt;
** ''set'' — attribute value to set the attributes accessible to write.&lt;br /&gt;
* &amp;quot;Error ('''err''')&amp;quot; — obligatory attribute of common violation status of the object in general, consist of the combination of the error code and short text description, like to &amp;quot;2:No data or connection with source&amp;quot;. The template reserves next error codes:&lt;br /&gt;
** '''1''' — violation level &amp;quot;WARNING&amp;quot;;&lt;br /&gt;
** '''2''' — violation level &amp;quot;ALARM&amp;quot;;&lt;br /&gt;
** '''3''' — unreliability or lack of data.&lt;br /&gt;
* &amp;quot;Violations suppress ('''alSup''') and delay ('''alDelay''')&amp;quot; — violations generic control for suppressing and delaying.&lt;br /&gt;
&lt;br /&gt;
Generally, it is advisable to create such template (a layer above the physical data source object) above a raw data source that provides this data in attributes and without processing, and this template therefore performs:&lt;br /&gt;
* collection of these attributes of the raw source into '''items''';&lt;br /&gt;
* processing of properties of the attributes;&lt;br /&gt;
* control and transmitting of commands of the values setting;&lt;br /&gt;
* processing of the violation conditions at single attributes and at the object in whole, together with which these violations can be fixed in [[Special:MyLanguage/Documents/Program_manual#ArchMess|the table of actual violations]], typically by the [[Special:MyLanguage/Documents/User_API#SYS.DAQ|alarmSet() function]].&lt;br /&gt;
&lt;br /&gt;
In addition to complex object templates, this object-control mechanism can be implemented by templates for implementing [[Special:MyLanguage/Documents/DAQ#LogicLev|the logical level of data access]], such as in [[Special:MyLanguage/Libs/Devices#IEC60870|IEC60870]].&lt;br /&gt;
&lt;br /&gt;
To represent the data of the object-control mechanism, there currently provided the appropriate [[Special:MyLanguage/Libs/Main_graphical_elements#objProps|Object properties frame]], which provides these properties as a table-list with illumination of the violations and the possibility to change the selected and accessible to edit row-properties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=UPS /&amp;gt;&lt;br /&gt;
| {{Anch|UPS|&amp;lt;h3&amp;gt;Uninterruptible Power Supply ([[Special:MyLanguage/Libs/Main#UPS|UPS]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 2.2 || GPLv2 || * || en, uk, ru &amp;lt;section end=UPS /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainUPSOp.png|right|Result and the operative setup.]]&lt;br /&gt;
Data combination of the Uninterruptible Power Supply in a complex object of the attribute &amp;quot;All items&amp;quot;. The template initially designed to use together with the DAQ-module &amp;quot;[[Special:MyLanguage/Modules/System|System]]&amp;quot; in the part &amp;quot;UPS&amp;quot; and to represent this data by the frame &amp;quot;[[Special:MyLanguage/Libs/Main_graphical_elements#objProps|Object properties]]&amp;quot; as a complex object with properties, signalling at single borders and writing.&lt;br /&gt;
&lt;br /&gt;
Next the template was expanded by direct implementing UPS or Power Inverters which support is missing in [https://networkupstools.org/ NUT] (in ground of the part &amp;quot;UPS&amp;quot;), and such the first device became [https://www.mustpower.com/product/ep2100-pro-series-dc12v-300-1000w/ Must EP2100 PRO]. And for that there also was appended of custom definition the device's properties to place as DAQ-Attributes with the possibility of the description redefinition.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' DIYA Ltd&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| srcAddr || Source object's address&lt;br /&gt;
* &amp;quot;System.slow.prm_UPS&amp;quot; - for connecting to the [[Special:MyLanguage/Modules/System|DAQ.System]] parameter in the UPS part;&lt;br /&gt;
* &amp;quot;Serial.ep21:/dev/ttyUSB0:9600:8N1||500:30&amp;quot; - for connecting to serial port of the Must EP2100 PRO.&lt;br /&gt;
| String || Input || Not attribute || Constant || &lt;br /&gt;
|-&lt;br /&gt;
| alSup || Violations suppress || Boolean || Input || Full access || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Violations delay, seconds || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| items || All items || Object || Output || Full access || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| defs || Elements definition&lt;br /&gt;
In form of lines - &amp;quot;{id}:{toAttr}:{descr}&amp;quot;&lt;br /&gt;
| Text || Output || Full access || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| bChL || Battery charge low || Real || Input || Full access || Variable || 20&lt;br /&gt;
|-&lt;br /&gt;
| bChLL || Battery charge critical || Real || Input || Full access || Variable || 5&lt;br /&gt;
|-&lt;br /&gt;
| inVL || Input voltage low || Real || Input || Full access || Variable || 210&lt;br /&gt;
|-&lt;br /&gt;
| inVH || Input voltage high || Real || Input || Full access || Variable || 250&lt;br /&gt;
|-&lt;br /&gt;
| inFLL || Input frequency too low || Real || Input || Full access || Variable || 40&lt;br /&gt;
|-&lt;br /&gt;
| inFL || Input frequency low || Real || Input || Full access || Variable || 45&lt;br /&gt;
|-&lt;br /&gt;
| inFH || Input frequency high || Real || Input || Full access || Variable || 55&lt;br /&gt;
|-&lt;br /&gt;
| inFHH || Input frequency too high || Real || Input || Full access || Variable || 60&lt;br /&gt;
|-&lt;br /&gt;
| loadH || Load high || Real || Input || Full access || Variable || 80&lt;br /&gt;
|-&lt;br /&gt;
| loadHH || Load too high || Real || Input || Full access || Variable || 100&lt;br /&gt;
|-&lt;br /&gt;
| tH || Temperature high || Real || Input || Full access || Variable || 50&lt;br /&gt;
|-&lt;br /&gt;
| tHH || Temperature too high || Real || Input || Full access || Variable || 70&lt;br /&gt;
|-&lt;br /&gt;
| hyst || Hysteresis of borders, % || Real || Input || Full access || Variable || 5&lt;br /&gt;
|-&lt;br /&gt;
| this || Object || Object || Input || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Code || String || Input || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| NAME || Name || String (translate) || Input || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Description || Text (translate) || Input || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainUPSCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. [ [[Special:MyLanguage/Modules/System|DAQ.System]] ] Create a source controller object in the module DAQ.System and set its identifier like to &amp;quot;SYSData&amp;quot;.&lt;br /&gt;
:2. [ [[Special:MyLanguage/Modules/System|DAQ.System]] ] Create a source parameter object in the previous controller object and set its identifier like to &amp;quot;UPS&amp;quot;.&lt;br /&gt;
:3. Create and start a [[Special:MyLanguage/Modules/LogicLev|Logical Controller Object]] or use any presented with the need scheduling properties.&lt;br /&gt;
:4. Create a [[Special:MyLanguage/Modules/LogicLev|Logical Parameter Object]] and select the template for it. Enable the parameter.&lt;br /&gt;
:5. In the tab &amp;quot;Template configuration&amp;quot; of the Logical Parameter Object you need to set:&lt;br /&gt;
:* ''Source object's address'':&lt;br /&gt;
::* [ [[Special:MyLanguage/Modules/System|DAQ.System]] ] — to address of the source UPS parameter object (see to step 1) like to &amp;quot;System.SYSData.prm_UPS&amp;quot;;&lt;br /&gt;
::* [ Must EP2100 PRO ] — to Serial address of connecting the device like to &amp;quot;Serial.ep21:/dev/ttyUSB0:9600:8N1||500:30&amp;quot;.&lt;br /&gt;
:6. RESULT: When running the controller object (where this parameter was created) and if it was not started, we must obtain in the parameter attribute ''All items (items)'' this object with all the attributes and their properties. In the case of some violations, we will get the corresponding information in the attribute ''Error (err)'', for which you can adjust the attributes of the boundaries of the corresponding violations. To customize some item's description and to place some in DAQ-Attributes, you can edit &amp;quot;Elements definition (defs)&amp;quot; for ones. From the created DAQ-Attributes you can also control writable ones.&lt;br /&gt;
:7. In the visual interfaces developing of the module [[Special:MyLanguage/Modules/Vision|Vision]] place the frame &amp;quot;[[Special:MyLanguage/Libs/Main_graphical_elements#objProps|Object properties]]&amp;quot; to any page and link its to the parameter object, created in step 4.&lt;br /&gt;
:8. RESULT: In the runtime of the page you'll get a table with data of the object, notifications about violations in the header and the possibility to set of writable properties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=SNMP /&amp;gt;&lt;br /&gt;
| {{Anch|SNMP|&amp;lt;h3&amp;gt;Network devices by SNMP ([[Special:MyLanguage/Libs/Main#SNMP|SNMP]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.1 || GPLv2 || * || en, uk, ru &amp;lt;section end=SNMP /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainSNMPOp.png|right|Result and the operative setup.]]&lt;br /&gt;
Data combination of a device, accessible by the protocol SNMP, in a complex object of the attribute &amp;quot;All items&amp;quot;. The template designed to use together with the DAQ-module &amp;quot;[[Special:MyLanguage/Modules/SNMP|SNMP]]&amp;quot; and to represent this data by the frame &amp;quot;[[Special:MyLanguage/Libs/Main_graphical_elements#objProps|Object properties]]&amp;quot; as a complex object with properties, signalling at single borders and writing. Considering the great specificity and variety of SNMP-accessible devices, this template is actually a billet and an example of creating a template based on it to a corresponding device with a specific to it processing of input properties, forming of violations and write capability.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' PAC HARTRON&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| srcAddr || Source object's address || String || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| manTables || Manual tables || String || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| alSup || Violations suppress || Boolean || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Violations delay, seconds || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| items || All items || Object || Output || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| this || Object || Object || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Code || String || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Name || String (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Description || Text (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainSNMPCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create a source controller object in the module &amp;quot;[[Special:MyLanguage/Modules/SNMP|SNMP]]&amp;quot; and set its identifier like to &amp;quot;SYSData&amp;quot;.&lt;br /&gt;
:2. Create a source parameter object in the previous controller object and set its identifier like to &amp;quot;DEV&amp;quot;.&lt;br /&gt;
:3. Create and start a [[Special:MyLanguage/Modules/LogicLev|logical controller object]] or use any presented one with the need scheduling properties.&lt;br /&gt;
:4. Create a [[Special:MyLanguage/Modules/LogicLev|logical parameter object]] and select the template for it. Enable the parameter.&lt;br /&gt;
:5. In the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* ''Source object's address'' — to address of the source SNMP device parameter object (see to step 1) like to &amp;quot;SNMP.SYSData.DEV&amp;quot;.&lt;br /&gt;
:* ''Manual tables'' — enter manually some static MIB-variables.&lt;br /&gt;
:6. RESULT: When running the controller object (where this parameter was created) and if it was not started, we must obtain in the parameter attribute ''items'' this object with all the attributes and their properties. In case of some violations, we will get the corresponding information in the attribute of the parameter ''err'', for which you can adjust the attributes of the boundaries of the corresponding violations.&lt;br /&gt;
:7. In the visual interfaces developing of the module [[Special:MyLanguage/Modules/Vision|Vision]] place the frame &amp;quot;[[Special:MyLanguage/Libs/Main_graphical_elements#objProps|Object properties]]&amp;quot; to any page and link it to the parameter object, created in step 4.&lt;br /&gt;
:8. RESULT: In runtime of the page you get a table with data of the object, notifications about violations in the header and the possibility to set of writable properties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=DiskSMART /&amp;gt;&lt;br /&gt;
| {{Anch|DiskSMART|&amp;lt;h3&amp;gt;Disk SMART ([[Special:MyLanguage/Libs/Main#DiskSMART|DiskSMART]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.1 || GPLv2 || * || en, uk &amp;lt;section end=DiskSMART /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainDiskSMARTOp.png|right|Result and the operative setup.]]&lt;br /&gt;
Data combination of the disk SMART in a complex object of the attribute &amp;quot;All items&amp;quot;. The template designed to use together with the DAQ-module &amp;quot;[[Special:MyLanguage/Modules/System|System]]&amp;quot; in the part &amp;quot;Disk SMART&amp;quot; and to represent this data by the frame &amp;quot;[[Special:MyLanguage/Libs/Main_graphical_elements#objProps|Object properties]]&amp;quot; as a complex object with properties and signalling at common errors. Some SMART attributes can be unknown or wrong for specified disk due to their missing in the disks DB, especially for modern SSD, so the template provides a feature to redefine names the attributes.&lt;br /&gt;
&lt;br /&gt;
Complex postprocessing and complete generation-imitation of the SMART fields with separate attributes on the internal programming language of OpenSCADA into the configuration IO '''inProc''' (with appending the builtin syntax highlight rules), where you can operate next service parameters:&lt;br /&gt;
:* ''alLev'', ''tErr'' [IN|OUT] — alarm level [-79...0] and text of the error (the attribute &amp;quot;err&amp;quot; format);&lt;br /&gt;
:* ''f_frq'' [IN] — frequency of calculation, the template IO;&lt;br /&gt;
:* ''this'' [IN] — reference to the parameter object, what executing the template;&lt;br /&gt;
:* ''ctx'' [IN] — object of the user context, what saved between the execution cycles;&lt;br /&gt;
:* ''args'' [IN] — object of arguments of the procedure;&lt;br /&gt;
:* ''items'' [IN|OUT] — object of items of the SMART.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| srcAddr || Source object's address || String || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| inProc || Input processing procedure || Text || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| items || All items || Object || Output || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| defs || Item definitions || Text || Input || Full access || Variable ||&lt;br /&gt;
&amp;lt;pre&amp;gt;161:Number of Valid Spare Blocks (161)&lt;br /&gt;
162:Uncorrectable Sector Count (162)&lt;br /&gt;
163:Number of Initial Invalid Blocks (163)&lt;br /&gt;
164:Total Erase Count (164)&lt;br /&gt;
165:Block Erase Count (165)&lt;br /&gt;
166:Minimum PE Cycles TLC (166)&lt;br /&gt;
167:Max Bad Blocks per Die (167)&lt;br /&gt;
168:Maximum PE Cycles TLC (168)&lt;br /&gt;
168:Max Erase Count of Spec (168)&lt;br /&gt;
168:SATA PHY error count (168)&lt;br /&gt;
169:Total Bad Blocks (169)&lt;br /&gt;
169:Remain Life (169)&lt;br /&gt;
170:Grown Bad Blocks (170)&lt;br /&gt;
170:Bad Block Count (170)&lt;br /&gt;
171:Program Fail Count (171)&lt;br /&gt;
172:Erase Fail Count (172)&lt;br /&gt;
173:Average PE Cycles TLC (173)&lt;br /&gt;
173:Max Erase Count (173)&lt;br /&gt;
174:Unexpected Power Loss (174)&lt;br /&gt;
184:End-to-End Error (184)&lt;br /&gt;
187:Reported Uncorrect (187)&lt;br /&gt;
188:Command Timeout (188)&lt;br /&gt;
218:CRC Error Count (218)&lt;br /&gt;
230:Media Wearout Indicator (230)&lt;br /&gt;
231:SSD Life Left (231)&lt;br /&gt;
233:NAND GB Written TLC (233)&lt;br /&gt;
234:NAND GB Written SLC (234)&lt;br /&gt;
241:Host Writes GB (241)&lt;br /&gt;
242:Host Reads GiB (242)&lt;br /&gt;
244:Temp Throttle Status (244)&lt;br /&gt;
245:Flash Write Sector Count (245)&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| this || The object || Object || Input || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Code || String || Input || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| NAME || Name || String || Input || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Description || String || Input || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainDiskSMARTCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create a source controller object in the module &amp;quot;[[Special:MyLanguage/Modules/System|System]]&amp;quot; and set its identifier like to &amp;quot;SYSData&amp;quot;, set the property &amp;quot;Auto create active data sources&amp;quot; to &amp;quot;All sources&amp;quot; and start by setting &amp;quot;Running&amp;quot;.&lt;br /&gt;
:2. Create and start a [[Special:MyLanguage/Modules/LogicLev|logical controller object]] or use any presented one with the need scheduling properties.&lt;br /&gt;
:3. Create a [[Special:MyLanguage/Modules/LogicLev|logical parameter object]] and select the template for it. Enable the parameter.&lt;br /&gt;
:4. In the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* ''Source object's address'' — to address of the source disk SMART parameter object like to &amp;quot;System.SYSData.DiskSMARTsda&amp;quot;.&lt;br /&gt;
:* ''Input processing procedure'' — form for the complex preprocessing and complete generation of the SMART fields with separate attributes on the internal programming language of OpenSCADA.&lt;br /&gt;
:5. RESULT: When running the controller object (where this parameter was created) and if it was not started, we must obtain in the parameter attribute ''items'' this object with all the attributes and their properties. In case of some violations, we will get the corresponding information in the attribute of the parameter ''err''.&lt;br /&gt;
:6. In the visual interfaces developing of the module [[Special:MyLanguage/Modules/Vision|Vision]] place the frame &amp;quot;[[Special:MyLanguage/Libs/Main_graphical_elements#objProps|Object properties]]&amp;quot; to any page and link it to the parameter object, created in step 3.&lt;br /&gt;
:7. RESULT: In runtime of the page you get a table with data of the object, notifications about violations in the header and the possibility to redefine names of the SMART attributes.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ntf /&amp;gt;&lt;br /&gt;
| {{Anch|ntf|&amp;lt;h3&amp;gt;Notificator by SMS, EMail-SMTP ([[Special:MyLanguage/Libs/Main#ntf|ntf]])&amp;lt;/h3&amp;gt;}} || 1.0 || GPLv2 || * =&amp;gt; [[Special:MyLanguage/Modules/UserProtocol|UserProtocol]] || en, uk, ru &amp;lt;section end=ntf /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainNtfOp.png|right|Result and the operative setup.]]&lt;br /&gt;
The complex template of the notification contains of parts of the dispatcher and the output user protocol of notification by EMail(SMTP) and SMS.&lt;br /&gt;
&lt;br /&gt;
* '''Total complexity:''' &amp;gt; 1.05 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}&lt;br /&gt;
* '''Sponsored by, for initial implementation the SMS-send part on 0.2 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' [[Special:MyLanguage/Using/HouseSpirit|Oleg Sidashov]]&lt;br /&gt;
* '''Sponsored by, for unification, appending SMTP and the notification controller on 0.65 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' SVItoVYR Ltd&lt;br /&gt;
&lt;br /&gt;
'''THE DISPATCHER''' can be performed for pointed messages of the message buffer of OpenSCADA and applied on [[Special:MyLanguage/Documents/DAQ#LogicLev|the Logical level]] or the controller object of [[Special:MyLanguage/Modules/JavaLikeCalc|the module JavaLikeCalc]].&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| io || UserPrt: Output IO || Object || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| tr || UserPrt: Transport || Object || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| tmOut || Maximum notification timeout, seconds || Integer || Input || Not attribute || Constant || 5&lt;br /&gt;
|-&lt;br /&gt;
| messLev || Messages level, negative for alarms || Integer || Input || Not attribute || Constant || 1&lt;br /&gt;
|-&lt;br /&gt;
| messCat || Messages category, template or regular expression || String || Input || Not attribute || Constant || al*:*&lt;br /&gt;
|-&lt;br /&gt;
| messCatExcl || Message exclusion category, in regular expression || String || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| emailState || Email notification current state || String || Output || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| emailTrAddr || Output transport for SMTP connection, empty for disable || String || Input || Not attribute || Constant || Sockets.out_SMTP&lt;br /&gt;
|-&lt;br /&gt;
| emailAuth || Auth, empty for disable || String || Input || Not attribute || Constant || user:pass&lt;br /&gt;
|-&lt;br /&gt;
| emailSender || Sender || String || Input || Not attribute || Constant || noreply@oscada.org&lt;br /&gt;
|-&lt;br /&gt;
| emailReceiver || Destination receiver address || String || Input || Not attribute || Constant || test@oscada.org&lt;br /&gt;
|-&lt;br /&gt;
| emailTopic || EMail topic || String || Input || Not attribute || Constant || Notification&lt;br /&gt;
|-&lt;br /&gt;
| emailMess || EMail message || String || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| SMSState || SMS notification current state || String || Output || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| SMSTrAddr || SMS serial transport, empty for disable || String || Input || Not attribute || Constant || Serial.out_SMS&lt;br /&gt;
|-&lt;br /&gt;
| SMSPin || SMS-pin, empty for disable || String || Input || Not attribute || Constant || 1111&lt;br /&gt;
|-&lt;br /&gt;
| SMSTel || SMS destination receiver, tel. number || String || Input || Not attribute || Constant || +380XXXXXXXXX&lt;br /&gt;
|-&lt;br /&gt;
| SMSTextMd || SMS in the text mode, else PDU || Boolean || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainNtfCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create a parameter in a controller object of [[Special:MyLanguage/Documents/DAQ#LogicLev|the Logical Level]] or a controller object in [[Special:MyLanguage/Modules/JavaLikeCalc|the module DAQ.JavaLikeCalc]].&lt;br /&gt;
:2. Create an output transport of the type &amp;quot;[[Special:MyLanguage/Modules/Serial|Serial]]&amp;quot; and set its Identifier like to &amp;quot;SMS&amp;quot;, one transport suitable for more receivers.&lt;br /&gt;
:3. Set for proper address, only for the [[Special:MyLanguage/Modules/Serial|Serial]] device. The serial port speed, asynchronous data format and timeouts will adjusted by the function.&lt;br /&gt;
:4. Create an output transport of the type &amp;quot;[[Special:MyLanguage/Modules/Sockets|Sockets]]&amp;quot; or &amp;quot;[[Special:MyLanguage/Modules/SSL|SSL]]&amp;quot; and set its Identifier like to &amp;quot;SMTP&amp;quot;, one transport suitable for more receivers. &lt;br /&gt;
:5. Set-up for proper address, for Sockets(25) or SSL(465). The transport timeouts will be adjusted by the function.&lt;br /&gt;
:6. In the tab &amp;quot;Template configuration&amp;quot; you need to set:&lt;br /&gt;
:* Maximum notification timeout, seconds.&lt;br /&gt;
:* Messages level, negative for alarms.&lt;br /&gt;
:* Messages category, template or regular expression.&lt;br /&gt;
:* Message exclusion category, in regular expression.&lt;br /&gt;
:* Output transport for SMTP connection, empty for disable.&lt;br /&gt;
:* Auth, empty for disable.&lt;br /&gt;
:* Sender.&lt;br /&gt;
:* Destination receiver address.&lt;br /&gt;
:* EMail topic.&lt;br /&gt;
:* EMail message.&lt;br /&gt;
:* SMS serial transport, empty for disable.&lt;br /&gt;
:* SMS-pin, empty for disable.&lt;br /&gt;
:* SMS destination receiver, tel. number.&lt;br /&gt;
:* SMS in the text mode, else PDU.&lt;br /&gt;
:7. RESULT: Sending for the pointed messages at SMS or EMail(SMTP).&lt;br /&gt;
&lt;br /&gt;
'''THE OUTPUT USER PROTOCOL PART &amp;quot;SMS&amp;quot;''' provides operations with SMS by a GSM-modem connected as serial device. For now, there supported only sending SMS messages to a number of remote cell phone or GSM-modem. For sending there are supported: ECHO disable, PIN check and set, sending in PDU and the Text mode.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Output user protocol's XML-request structure}}&lt;br /&gt;
'''&amp;lt;cmd pin=&amp;quot;1111&amp;quot; tel=&amp;quot;+380XXXXXXXXX&amp;quot; text=&amp;quot;{0|1}&amp;quot; err=&amp;quot;1:Error&amp;quot;&amp;gt;{SMSText}&amp;lt;/cmd&amp;gt;'''&lt;br /&gt;
:''cmd'' — command, for now only &amp;quot;send&amp;quot; allowed;&lt;br /&gt;
:''pin'' — PIN-code to the SIM-card access;&lt;br /&gt;
:''tel'' — telephone number of the receiver (remote cell phone or GSM-modem);&lt;br /&gt;
:''text{0,1}'' — SMS in the text mode, only ASCII;&lt;br /&gt;
:''SMSText'' — the message text;&lt;br /&gt;
:''err'' — sets for the request result.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create an output transport of the type &amp;quot;[[Special:MyLanguage/Modules/Serial|Serial]]&amp;quot; and set its Identifier like to &amp;quot;SMS&amp;quot;, one transport suitable for more receivers.&lt;br /&gt;
:2. Set for proper address. The serial port speed, asynchronous data format and timeouts will adjusted by the function.&lt;br /&gt;
:3. Create of need [[Special:MyLanguage/Modules/UserProtocol|user protocol object]] based on the templates, with Identifier like to &amp;quot;SMS&amp;quot;.&lt;br /&gt;
:4. Place some requesting commands directly into presented or a new internal OpenSCADA-procedure like to:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 30pt&amp;quot;&amp;gt;&lt;br /&gt;
req = SYS.XMLNode(&amp;quot;send&amp;quot;); req.setAttr(&amp;quot;ProtIt&amp;quot;,&amp;quot;SMS&amp;quot;).setAttr(&amp;quot;pin&amp;quot;,&amp;quot;1111&amp;quot;).setAttr(&amp;quot;tel&amp;quot;,&amp;quot;+380XXXXXXXXX&amp;quot;).setText(&amp;quot;Notify message&amp;quot;);&lt;br /&gt;
SYS.Transport.Serial.out_SMS.messIO(req, &amp;quot;UserProtocol&amp;quot;);&lt;br /&gt;
rez = req.attr(&amp;quot;err&amp;quot;).toInt() ? req.attr(&amp;quot;err&amp;quot;) : &amp;quot;OK&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:5. RESULT: In the variable ''rez'' you will get &amp;quot;OK&amp;quot; if no errors occur and the message successfully transmitted to the receiver.&lt;br /&gt;
&lt;br /&gt;
'''THE OUTPUT USER PROTOCOL PART &amp;quot;SMTP&amp;quot;''' provides operations with a SMTP-server for delivering EMails by their sending through TCP-Socket or SSL. For now, there are supported: TCP, SSL, AUTH, topic encoding for UTF-8.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Output user protocol's XML request structure}}&lt;br /&gt;
'''&amp;lt;send auth=&amp;quot;{user}:{pass}&amp;quot; from=&amp;quot;{FromAddr}&amp;quot; to=&amp;quot;{ToAddr}&amp;quot; topic=&amp;quot;{My Topic}&amp;quot; err=&amp;quot;1:Error&amp;quot;&amp;gt;{MessageText}&amp;lt;/send&amp;gt;'''&lt;br /&gt;
:''topic'' — topic of the message;&lt;br /&gt;
:''from'' — sender address;&lt;br /&gt;
:''to'' — destination address of the receiver;&lt;br /&gt;
:''auth'' — authenticate user and password;&lt;br /&gt;
:''MessageText'' — text of the message;&lt;br /&gt;
:''err'' — sets for the request result.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create an output transport of the type &amp;quot;[[Special:MyLanguage/Modules/Sockets|Sockets]]&amp;quot; or &amp;quot;[[Special:MyLanguage/Modules/SSL|SSL]]&amp;quot; and set its Identifier like to &amp;quot;SMTP&amp;quot;, one transport suitable for more receivers. &lt;br /&gt;
:2. Set-up for proper address, for Sockets(25) or SSL(465). The transport timeouts will be adjusted by the function.&lt;br /&gt;
:3. Create of need [[Special:MyLanguage/Modules/UserProtocol|user protocol object]] based on the templates, with Identifier like to &amp;quot;SMTP&amp;quot;.&lt;br /&gt;
:4. Place some requesting commands directly into allowed or a new internal OpenSCADA procedure like to:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 30pt&amp;quot;&amp;gt;&lt;br /&gt;
req = SYS.XMLNode(&amp;quot;send&amp;quot;);&lt;br /&gt;
req.setAttr(&amp;quot;ProtIt&amp;quot;,&amp;quot;SMTP&amp;quot;).setAttr(&amp;quot;from&amp;quot;,&amp;quot;noreply@oscada.org&amp;quot;).setAttr(&amp;quot;to&amp;quot;,&amp;quot;oscada@oscada.org&amp;quot;).setAttr(&amp;quot;topic&amp;quot;,&amp;quot;My topic&amp;quot;).setText(&amp;quot;My message&amp;quot;);&lt;br /&gt;
SYS.Transport.Sockets.out_SMTP.messIO(req, &amp;quot;UserProtocol&amp;quot;);&lt;br /&gt;
rez = req.attr(&amp;quot;err&amp;quot;).toInt() ? req.attr(&amp;quot;err&amp;quot;) : &amp;quot;OK&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:5. RESULT: In the variable ''rez'' you will get &amp;quot;OK&amp;quot; if no errors occur and the message successfully transmitted to the receiver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=initRemCntr /&amp;gt;&lt;br /&gt;
| {{Anch|initRemCntr|&amp;lt;h3&amp;gt;Control the remote initiative connections ([[Special:MyLanguage/Libs/Main#initRemCntr|initRemCntr]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk &amp;lt;section end=initRemCntr /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainInitRemCntrOp.png|right|Result and the operative setup.]]&lt;br /&gt;
The template of processing input initiative connections expands early one template [[#initConAssociateTrs|initiative connections processing for the associated output transports]] by complete representing data of the remote OpenSCADA hosts on some aggregation server and with a possibility of control the remote hosts through the server, that is finishing the [[Special:MyLanguage/Documents/DAQ#PassiveAndInitiative|conception of data acquisition in the passive mode and the initiative connection]].&lt;br /&gt;
&lt;br /&gt;
The template does in whole:&lt;br /&gt;
* detecting a new connection from remote host, which has no ID;&lt;br /&gt;
* sending an acquaintance direct request to the established connection for getting KEY of the host, when it was already connected early, and for getting information about the host for creating ID of the host;&lt;br /&gt;
* setting ID for the connection;&lt;br /&gt;
* creating a record in the [[Special:MyLanguage/Documents/Program_manual#Transports|OpenSCADA hosts table]] for the connection and sending all followed requests already through the host;&lt;br /&gt;
* creating on the remote host a representative [[Special:MyLanguage/Modules/LogicLev|Logical Controller]];&lt;br /&gt;
* creating on the remote host a representative [[Special:MyLanguage/Modules/System|DAQ.System Controller Object]] in the automatic mode, at missing any other there;&lt;br /&gt;
* processing the present DAQ.System Controller Objects to link the Logical Level parameters to them and creating some processing logical parameters, with updating for all sources at any reconnection and checking for removing ones without sources already;&lt;br /&gt;
* writing the generated key by a line &amp;quot;'''SrcKey: {KEY}'''&amp;quot; to description of the Logical Controller as a sign of finalizing the initialization;&lt;br /&gt;
* creating a Controller Object in [[Special:MyLanguage/Modules/DAQGate|DAQ.DAQGate]] with connection to the remote Logical Controller and syncing its per 10 minutes for appending new sources and removing missing ones.&lt;br /&gt;
&lt;br /&gt;
ID of the remote host is formed in the view &amp;quot;'''{HostDomain}{StatName}{RandKey}'''&amp;quot; and with limiting to 20 symbols, where:&lt;br /&gt;
* ''HostDomain'' — network host name-domain;&lt;br /&gt;
* ''StatName'' — station name of the OpenSCADA project;&lt;br /&gt;
* ''RandKey'' — random key in two HEX-digits.&lt;br /&gt;
&lt;br /&gt;
Data model of the representative Logical Controller can contain both the generated links with processing parameters, and custom parameters, when the user is decided to publish some extra data. The generated items from DAQ.System are represents sources currently:&lt;br /&gt;
* &amp;quot;CPU&amp;quot;, &amp;quot;MEM&amp;quot;, &amp;quot;sensors&amp;quot;, &amp;quot;Power&amp;quot;, &amp;quot;uptime&amp;quot; =&amp;gt; links in the &amp;quot;System (SYS)&amp;quot; container parameter;&lt;br /&gt;
* &amp;quot;fs&amp;quot;, &amp;quot;hddstat&amp;quot;, &amp;quot;hddsmart&amp;quot; =&amp;gt; links in the &amp;quot;Disk (DISK)&amp;quot; container parameter with a processing one for &amp;quot;hddsmart&amp;quot; by the template [[Special:MyLanguage/Libs/Main#DiskSMART|base.DiskSMART]];&lt;br /&gt;
* &amp;quot;netstat&amp;quot; =&amp;gt; links in the &amp;quot;Network (NET)&amp;quot; container parameter;&lt;br /&gt;
* &amp;quot;ups&amp;quot; =&amp;gt; links in the root with a processing one by the template [[Special:MyLanguage/Libs/Main#UPS|base.UPS]].&lt;br /&gt;
&lt;br /&gt;
The aggregated data in [[Special:MyLanguage/Modules/DAQGate|DAQ.GAQGate]] can be lifted to up, or used in derivative DAQ objects, or whether directly on custom frames, or in future on a Dynamic Frame, which scheduled to implement; and without any additional action you will get notification about violations on the hosts.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| inTransport || Input transport || String || Input || Not attribute || Constant || Sockets.InitRemCntr&lt;br /&gt;
|-&lt;br /&gt;
| conTm || Connection time, ms || Integer || Input || Not attribute || Constant || 5000&lt;br /&gt;
|-&lt;br /&gt;
| accessTm || Timeout of accessing, hours&lt;br /&gt;
Used for repeating to create representative objects of not accessed hosts and for removing old connections.&amp;lt;br/&amp;gt;&lt;br /&gt;
Zero or negative value for disabling the control!&lt;br /&gt;
| Integer || Input || Not attribute || Constant || 24&lt;br /&gt;
|-&lt;br /&gt;
| cntrUser || Access: user || String || Input || Not attribute || Constant || root&lt;br /&gt;
|-&lt;br /&gt;
| cntrPass || Access: password || String || Input || Not attribute || Constant || openscada&lt;br /&gt;
|-&lt;br /&gt;
| cntrObj || Control object in DAQ.LogicLev and DAQ.System || String || Input || Not attribute || Constant || RemCntr&lt;br /&gt;
|-&lt;br /&gt;
| prcTr || Processed connections || Text || Output || Read only || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| this || Object || Object || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainInitRemCntrCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create an input transport of receiving the initiative connections of the module &amp;quot;[[Special:MyLanguage/Modules/Sockets#InTr|Sockets]]&amp;quot; or &amp;quot;[[Special:MyLanguage/Modules/SSL#InTr|SSL]]&amp;quot; with the name like to &amp;quot;Sockets.InitRemCntr&amp;quot;.&lt;br /&gt;
:2. Set the previously created transport to the need address of opening the input socket and move it to the mode of creating the associative output transports, leaving the protocol field in empty.&lt;br /&gt;
:3. For this template create and run a logical controller object or use any available with the required scheduling properties.&lt;br /&gt;
:4. Create a [[Special:MyLanguage/Modules/LogicLev|logical parameter object]] and select this template for it. Enable the parameter.&lt;br /&gt;
:5. In the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* ''Input transport'' — to value of the identifier of the input transport, created in the item 1, like to &amp;quot;Sockets.InitRemCntr&amp;quot;;&lt;br /&gt;
:* ''Connection time'' — timeout of connection to the initiative hosts after that to close the connection;&lt;br /&gt;
:* ''Timeout of accessing'' — used for repeating to create representative objects of not accessed hosts and for removing old connections; zero or negative value for disabling the control;&lt;br /&gt;
:* ''Access: user and password'' — user and password of the remote host with permition of creation there Logical Controller and DAQ.System Controller Object, that is the user must be included to the &amp;quot;DAQ&amp;quot; group;&lt;br /&gt;
:* ''Control object in DAQ.LogicLev and DAQ.System'' — to ID of managed-created Controller Objects on the remote hosts.&lt;br /&gt;
:6. RESULT: Starting the controller object (where this parameter was created) and when it was not started, we should get checking the specifying input transport for initiative connections and their initialisation in described above way and with notification processed connection in the attribute &amp;quot;Processed connections&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=initConAssociateTrs /&amp;gt;&lt;br /&gt;
| {{Anch|initConAssociateTrs|&amp;lt;h3&amp;gt;Initiative connections processing for the associated output transports ([[Special:MyLanguage/Libs/Main#initConAssociateTrs|initConAssociateTrs]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru &amp;lt;section end=initConAssociateTrs /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainInitConsAssignTrsOp.png|right|Result and the operative setup.]]&lt;br /&gt;
The template of processing input initiative connections was created to provide the last link of implementation and support for [[Special:MyLanguage/Documents/DAQ#PassiveAndInitiative|conception of data acquisition in the passive mode and the initiative connection]], that is — the control of associative connections, created by the input transport at each connection.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] After implementation this control together the new common-unified output transport connection function [[Special:MyLanguage/Documents/User_API#SYSTransport|outAt()]] that template became deprecated for sources adapted to use the new mechanism, but you still can use the template for not adapted sources.&lt;br /&gt;
&lt;br /&gt;
The function of creation associated output transports at connections is currently only supported by [[Special:MyLanguage/Modules/Sockets|the module &amp;quot;Sockets&amp;quot;]] and for TCP-sockets.&lt;br /&gt;
&lt;br /&gt;
* '''Total complexity:''' 0.9 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}&lt;br /&gt;
* '''Sponsored by, for whole complexity:''' Elyor Turaboev, BLUE STAR GROUP Ltd&lt;br /&gt;
&lt;br /&gt;
The control of associated transport means:&lt;br /&gt;
* obtaining a list of the associated transports, by the function ''assignTrsList()'' of the input transports;&lt;br /&gt;
* reading from new transports (opened) of identification information, which currently represents only the source object identifier;&lt;br /&gt;
** search, by the received identifier, the source object and assigning to it of this transport;&lt;br /&gt;
** registering in the attribute &amp;quot;prcTr&amp;quot; of the object type.&lt;br /&gt;
* checking of existing transports for their closure (detachment), for which performed the deregistration in the attribute &amp;quot;prcTr&amp;quot; of the object type and the establishment of the source object in the empty value; disconnected output associated transports are reused by the input one upon receiving a new connection then it is switched on.&lt;br /&gt;
&lt;br /&gt;
The template can control the containers of data source objects, constructed both as DAQ-objects of the controllers and logical level parameters, what representing the data source and having a transport address definition field, and what generally defined by the configuration field &amp;quot;srcObjPath&amp;quot; of the format '''{CntrAddr}:{TrCntrFldAddr}''', where:&lt;br /&gt;
* ''CntrAddr'' — container address, for example: &amp;quot;ModBus&amp;quot; — for DAQ-objects of the controllers, &amp;quot;LogicLev.CntrPLC&amp;quot; — for logical level parameters;&lt;br /&gt;
* ''TrCntrFldAddr'' — address of the transport control field in the source object, for example — &amp;quot;%2fcntr%2fcfg%2fADDR&amp;quot; for &amp;quot;ModBus&amp;quot;; what can be obtained in a configurator at the history of pointing on the control field in the status line.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| inTransport || Input transport || String || Input || Not attribute || Constant || InitiateCons&lt;br /&gt;
|-&lt;br /&gt;
| outTrTm || Output transport timeouts || String || Input || Not attribute || Constant || 10:0.1&lt;br /&gt;
|-&lt;br /&gt;
| srcObjPath || Source object path || String || Input || Not attribute || Constant || ModBus:%2fcntr%2fcfg%2fADDR&lt;br /&gt;
|-&lt;br /&gt;
| prcTr || Processed transports || Object || Output || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainInitConsAssignTrsCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create an input transport of receiving the initiative connections of [[Special:MyLanguage/Modules/Sockets#InTr|the module &amp;quot;Sockets&amp;quot;]] with the name like to &amp;quot;InitiateCons&amp;quot;.&lt;br /&gt;
:2. Set the previously created transport to the need address of opening the input socket and move it to the mode of creating the associative output transports, leaving the protocol field in empty.&lt;br /&gt;
:3. Provide a container of the data sources to which associative transports must be connected, which can be either a DAQ-module (such as &amp;quot;DAQ.ModBus&amp;quot;), or a logical controller (such as &amp;quot;DAQ.LogicLev.Sources&amp;quot;), or a parameter in it (such as &amp;quot;DAQ.LogicLev.PLC.Sources&amp;quot;), with logical level parameters representing the data source.&lt;br /&gt;
:4. For this template create and run a [[Special:MyLanguage/Modules/LogicLev|logical controller object]] or use any available with the required scheduling properties.&lt;br /&gt;
:5. Create a [[Special:MyLanguage/Modules/LogicLev|logical parameter object]] and select this template for it. Enable the parameter.&lt;br /&gt;
:6. In the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* ''Input transport'' — to value of the identifier of the input transport, created in the item 1, like to &amp;quot;InitiateCons&amp;quot;;&lt;br /&gt;
:* ''Output transport timeouts'' — increase the first digit for very slow connections and typical is normal in most situations&lt;br /&gt;
:* ''Source objects path'' — set according to the item 3, for the first part, and to the control field path, for the second part, for example, and typically for for &amp;quot;ModBus&amp;quot;, is — &amp;quot;ModBus:%2fcntr%2fcfg%2fADDR&amp;quot;.&lt;br /&gt;
:6. RESULT: Starting the controller object (where this parameter was created) and when it was not started, we should get, in the attribute ''prcTr'' of the parameter for information about the processed and therefore successfully transport-linked data sources. In case of some violations, we will get the corresponding information in the attribute ''err'' of the parameter. The absence of a representative object for the received identifier is placed in the protocol of messages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=weather /&amp;gt;&lt;br /&gt;
| {{Anch|weather|&amp;lt;h3&amp;gt;Weather ([[Special:MyLanguage/Libs/Main#weather|weather]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.0 || GPLv2 || * || en, uk &amp;lt;section end=weather /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainWeatherOp.png|right|Result and the operative setup.]]&lt;br /&gt;
The template of acquiring weather data from different weather services in Internet and initially it is only [https://openweathermap.org/ Open Weather]. &lt;br /&gt;
&lt;br /&gt;
The weather data divided on current and forecast with their placing in corresponded objects, where current attributes placed directly in the root and forecast days (the &amp;quot;day&amp;quot; object) and times (the &amp;quot;time&amp;quot; object) inwardly corresponded day according to the current timezone. These data acquired at specified schedule independently for current and forecast, and by default the current ones are performed per hour when forecast ones per day. The data can be accessible by user both as directly and through a specially created widget of the [[Special:MyLanguage/Libs/Main_graphical_elements#weather|main library]].&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| schedCur || Scheduling at CRON of current update || String || Input || Not attribute || Constant || 0 8-20 * * * &lt;br /&gt;
|-&lt;br /&gt;
| schedFC || Scheduling at CRON of forecast update || String || Input || Not attribute || Constant || 0 8 * * *&lt;br /&gt;
|-&lt;br /&gt;
| city || City ID || String || Input || Full access || Variable || 709932&lt;br /&gt;
|-&lt;br /&gt;
| current || Current || Object || Input || Read only || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| forecast || Forecast || Object || Input || Read only || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| this || Parameter || Object || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainWeatherCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. For this template create and run a [[Special:MyLanguage/Modules/LogicLev|logical controller object]] or use any available with the required scheduling properties.&lt;br /&gt;
:2. Create a [[Special:MyLanguage/Modules/LogicLev|logical parameter object]] and select this template for it. Enable the parameter.&lt;br /&gt;
:3. In the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* ''Scheduling at CRON of current update'' — to value of need scheduling for current data acquiring in the [[Special:MyLanguage/Documents/User_API#CRON|CRON format]], at empty the acquiring will be performed with period of execution the controller object;&lt;br /&gt;
:* ''Scheduling at CRON of forecast update'' — to value of need scheduling for forecast data acquiring in the [[Special:MyLanguage/Documents/User_API#CRON|CRON format]], at empty the acquiring will be performed with period of execution the controller object.&lt;br /&gt;
:4. RESULT: Starting the controller object (where this parameter was created) and when it was not started, we should get the weather data in the attribute ''Current (current)'' and ''Forecast (forecast)'' and after setting your city code in the corresponded attribute. City code you can obtain from the [https://openweathermap.org/ official site] in the URL after searching your city in the site form.&lt;br /&gt;
&lt;br /&gt;
== [[Special:MyLanguage/Modules/WebUser|For WebUser]] ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=fileServerHTTP /&amp;gt;&lt;br /&gt;
| {{Anch|fileServerHTTP|&amp;lt;h3&amp;gt;WebUser: HTTP File Server ([[Special:MyLanguage/Libs/Main#fileServerHTTP|fileServerHTTP]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk &amp;lt;section end=fileServerHTTP /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
The template for implementing a HTTP File Server directly in OpenSCADA, which is suitable one at missing a full-featured one for functions of servicing file requests from OpenSCADA Web-interfaces.&lt;br /&gt;
&lt;br /&gt;
Currently there implemented only requesting files by the GET request of HTTP. There are supported also chunks and the Partial Content requests in single range and with forcing to this mode at some configured file size.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| rez || Result || String || Input || Not attribute || Variable || 200 OK&lt;br /&gt;
|-&lt;br /&gt;
| HTTPreq || HTTP request || String || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| url || URL || String || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| sender || Sender || String || Input || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| page || WWW-page || String || Output || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| HTTPvars || HTTP variables || Object || Output || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| baseD || Base directory || String || Input || Not attribute || Constant || /data/share_res/local/Lib/&lt;br /&gt;
|-&lt;br /&gt;
| fSzSolidLim || File size limit for solid reading, else enables the partial content || Real || Input || Not attribute || Constant || 10e6&lt;br /&gt;
|-&lt;br /&gt;
| tr || Transport || Object || Output || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| prt || Protocol || Object || Output || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz	Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainFileServerHTTPCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create a page in the [[Special:MyLanguage/Modules/WebUser|UI.WebUser]] module with some reasonable ''PageId''.&lt;br /&gt;
:2. In the tab &amp;quot;Procedure&amp;quot; you need to set:&lt;br /&gt;
:* Base directory from which the page'll search files.&lt;br /&gt;
:* File size limit for solid reading, else enables the partial content.&lt;br /&gt;
:3. RESULT: Opening URL &amp;quot;&amp;lt;nowiki&amp;gt;http://{OpenSCADAHost}/WebUser/{PageId}/{MyFile}&amp;lt;/nowiki&amp;gt;&amp;quot; in a WebBrowser will open and send you file on FS &amp;quot;{baseD}/{MyFile}&amp;quot;.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	<entry>
		<id>http://oscada.org/wiki/index.php?title=Libs/Main/ru&amp;diff=93955</id>
		<title>Libs/Main/ru</title>
		<link rel="alternate" type="text/html" href="http://oscada.org/wiki/index.php?title=Libs/Main/ru&amp;diff=93955"/>
				<updated>2026-05-10T04:01:04Z</updated>
		
		<summary type="html">&lt;p&gt;FuzzyBot: Updating to match new version of source page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Название !! Версия !! Лицензия !! Источник !! Языки !! Автор !! Описание&lt;br /&gt;
|-&lt;br /&gt;
&amp;lt;section begin=info /&amp;gt;&lt;br /&gt;
| [[Special:MyLanguage/Libs/Main|Основная библиотека]]&lt;br /&gt;
| 2.3 || GPLv2 || OscadaLibs.db ([http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/OscadaLibs.sql SQL], [[:File:OscadaLibs.db.gz|GZip]]) &amp;gt; DAQ.tmplb_base || en, uk, ru &lt;br /&gt;
&amp;lt;section end=info /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Роман Савоченко]]&lt;br /&gt;
| Библиотека основных шаблонов обработки DAQ-источников и производных сервисов.&lt;br /&gt;
* '''Основано:''' Январь 2006&lt;br /&gt;
* '''Спонсировано:''' зависимо от элемента ...&lt;br /&gt;
* '''Использовано:''' [[Special:MyLanguage/Using|большинство проектов на OpenSCADA]]&lt;br /&gt;
* '''[[Special:MyLanguage/Works/To_do|Задачи (To Do)]]:'''&lt;br /&gt;
&amp;lt;section begin=ToDo /&amp;gt;&lt;br /&gt;
&amp;lt;section end=ToDo /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Библиотека создана для предоставления основных шаблонов обработки DAQ-источников и производных сервисов.&lt;br /&gt;
&lt;br /&gt;
Названия элементов и их параметров доступны на языках: Английский, Украинский и mRussian. Их исходный код написан в языко(человеческий)-независимом режиме с вызовом функции перевода ''tr()'' и перевод этих сообщений также доступен Английским, Украинским и mRussian.&lt;br /&gt;
&lt;br /&gt;
Для подключения библиотеки к проекту станции OpenSCADA Вы можете получить файл БД как:&lt;br /&gt;
* такой что поставляется с готовым и соответствующим пакетом дистрибутива Linux вроде &amp;quot;openscada-libdb-main&amp;quot;, &amp;quot;openscada-LibDB.Main&amp;quot;;&lt;br /&gt;
* наиболее актуальный и непосредственно полученный из [http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/OscadaLibs.sql репозитория subversion], преобразованный в файл БД SQLite путём:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;BASH&amp;quot; style=&amp;quot;margin-left: 15px&amp;quot;&amp;gt;&lt;br /&gt;
wget http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/OscadaLibs.sql&lt;br /&gt;
sqlite3 -init OscadaLibs.sql OscadaLibs.db .exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* загрузка [[:File:OscadaLibs.db.gz|прикреплённого тут]].&lt;br /&gt;
&lt;br /&gt;
Этот полученный файл вы далее можете разместить в каталоге проекта станции и создать объект базы данных модуля БД &amp;quot;SQLite&amp;quot;, зарегистрировав файл базы данных в конфигурации.&lt;br /&gt;
&lt;br /&gt;
Для DAQ-шаблонов, в целом, вам нужно создать представительский объект устройства в [[Special:MyLanguage/Modules/LogicLev|модуле Логического Уровня]] и выбрать соответствующий шаблон из библиотеки шаблонов. Далее, для корректной конфигурации, придерживайтесь специфики шаблона в персональном описании.&lt;br /&gt;
&lt;br /&gt;
== Templates of standard structures of the DAQ-parameters ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=anUnif /&amp;gt;&lt;br /&gt;
| {{Anch|anUnif|&amp;lt;h3&amp;gt;Analog signal, unified ([[Special:MyLanguage/Libs/Main#anUnif|anUnif]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 2.4 || GPLv2 || * || en, uk, ru &amp;lt;section end=anUnif /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainAnUnifOp.png|right|Result and the operative setup.]]&lt;br /&gt;
Common, representative and unified template of analog input signals processing. The template forms a structure of analog parameter (complex tag) which can be easily connected to most widgets and cadres of [[Special:MyLanguage/Libs/Main_graphical_elements|the main elements library of the user interface]] just pointing the parameter object.&lt;br /&gt;
&lt;br /&gt;
The representative structure of analog parameters (complex tags) is:&lt;br /&gt;
* &amp;quot;Variable ('''var''')&amp;quot; — end variable of the parameter — engineeric real value, allowed and suitable for archiving.&lt;br /&gt;
* &amp;quot;Error ('''err''')&amp;quot; — obligatory attribute of any parameter, consist of the combination of the error code and short text description, like to &amp;quot;2:No data or connection with source&amp;quot;. The template reserves next error codes:&lt;br /&gt;
** '''1, 2''' — hardware errors, when the data mostly wrong;&lt;br /&gt;
** '''3, 4''' — alarm border errors;&lt;br /&gt;
** '''5, 6''' — warning border errors;&lt;br /&gt;
** '''7''' — the speed error of the variable changing.&lt;br /&gt;
* &amp;quot;Violations suppress ('''alSup''') and delay ('''alDelay''')&amp;quot; — violations generic control for suppressing and delaying.&lt;br /&gt;
* &amp;quot;Scale: minimum ('''min''')&amp;quot; and &amp;quot;Scale: maximum ('''max''')&amp;quot; — main scale of the end variable, the output of which causes a hardware border error. The scale is also used as a scale of the variable trend display on the graphs.&lt;br /&gt;
* &amp;quot;Logarithmic scale ('''log''')&amp;quot; — the scale sign of the variable trend display on the graphs in the logarithmic scale.&lt;br /&gt;
* &amp;quot;Dimension ('''ed''')&amp;quot; — dimension (unit of measurement) of the variable.&lt;br /&gt;
* &amp;quot;Precision ('''prec''')&amp;quot; — number signs after the dot, for positive values, and precision (signs in whole), for negative ones, to display the real end variable on the screen.&lt;br /&gt;
&lt;br /&gt;
Significant graphical shapes representing the structure:&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main_graphical_elements|Main elements library of the user interface]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#anShow|Analog show]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#anShow1|Analog show 1]]; [[Special:MyLanguage/Libs/Main_graphical_elements#anShow1s|Analog show 1, short]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElViewGraph|Graphics group element]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElViewCadr|Frame of the group of overview]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ResultGraphEl|Frame of the result graphics]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|Element cadre]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#cntrPaspExt|Passport, extended]]&lt;br /&gt;
* [[Special:MyLanguage/Libs/Mnemo_elements|Mnemonic elements library of the user interface]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Mnemo_elements#Level|Level]]&lt;br /&gt;
* [[Special:MyLanguage/Libs/Documents|Reports' and documents' library]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Documents#docRepInstVals|Instantaneous values report]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Documents#docRepDay|Day report of the hour-averaged values]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Documents#docRepMonth|Month report of the day-averaged values]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Documents#docRepYear|Year report of the month values]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Documents#docRep2WorkSh|Report of two working shifts]]&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by, for expanding the common field DESCR using in the specific alarm parameters on 0.1 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' INSERTEC LTDA&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Functions}}&lt;br /&gt;
* Generic processing of the raw analog input for:&lt;br /&gt;
:* simple correction-calibration at the formula &amp;quot;'''in''' = '''iMult'''*('''in'''+'''iAdd''')&amp;quot;;&lt;br /&gt;
:* scaling from the hardware border ['''plcMin'''...'''plcMax'''] to the main border ['''min'''...'''max'''], applying the square scale '''scSqr''';&lt;br /&gt;
:: [[File:at.png]] The hardware borders can be inverted ones and disabled in whole for equal values of the maximum and minimum, when the main border only used.&lt;br /&gt;
:* permission to exceed the border for the input value on the value of '''plcExcess''' percent;&lt;br /&gt;
:* filtering the input value changing in the time '''Tf'''.&lt;br /&gt;
* Simple imitation of the analog input, setting '''plcImit''' and linking the imitation-simulation source in '''plcImitIn'''.&lt;br /&gt;
:: [[File:at.png]] Missing the link '''plcImitIn''' (EVAL) causes to generating random analog input&lt;br /&gt;
* Complex preprocessing and complete generation-imitation of the analog input on the internal programming language of OpenSCADA into the configuration IO '''inProc''' (with appending the builtin syntax highlight rules), where you can operate next service parameters:&lt;br /&gt;
:* ''in'' [IN|OUT] — the same raw analog input IO;&lt;br /&gt;
:* ''var'' [IN] — the end variable IO;&lt;br /&gt;
:* ''min'', ''max'' [IN] — the main border IOs;&lt;br /&gt;
:* ''plcMin'', ''plcMax'' [IN] — the hardware border IOs;&lt;br /&gt;
:* ''plcImit'', ''plcImitIn'' [IN] — IOs of the simple imitation;&lt;br /&gt;
:* ''levErr'', ''tErr'' [IN|OUT] — alarm level [-79...0] and text of the error (the attribute &amp;quot;err&amp;quot; format);&lt;br /&gt;
:* ''f_frq'' [IN] — frequency of calculation, the template IO;&lt;br /&gt;
:* ''this'' [IN] — reference to the parameter object, what executing the template;&lt;br /&gt;
:* ''ctx'' [IN] — object of the user context, what saved between the execution cycles;&lt;br /&gt;
:* ''args'' [IN] — object of arguments of the procedure;&lt;br /&gt;
:* ''toSave'' [OUT] — to force save the parameter object at exit.&lt;br /&gt;
* Simple substitution for the variable '''subVar''' at the error (not valid) input variable (EVAL) in the modes: &amp;quot;no&amp;quot;, &amp;quot;last&amp;quot; and &amp;quot;substitute&amp;quot;.&lt;br /&gt;
* Processing the result variable '''var''' for violation some borders and criteria, generating the alarms and proper setting the attribute '''err'''. The alarm borders can have some hysteresis '''HystBnd''', can be delayed on the time '''alDelay''' and can be suppressed setting '''alSup'''. Next borders and criteria are provided:&lt;br /&gt;
:* missing for data or connection with source at the EVAL input value — error code 1 and alarm level 5;&lt;br /&gt;
:* exceeding the input value of the hardware border — error code 1,2 and alarm level 5;&lt;br /&gt;
:* exceeding the end variable of the alarm border ['''aMin'''...'''aMax'''] — error code 3,4 and alarm level 4;&lt;br /&gt;
:: [[File:at.png]] Disabled at setting for equal or inverted values of the border&lt;br /&gt;
:* exceeding the end variable of the warning border ['''wMin'''...'''wMax'''] — error code 5,6 and alarm level 2;&lt;br /&gt;
:: [[File:at.png]] Disabled at setting for equal or inverted values of the border&lt;br /&gt;
:* big motion '''speed''' of the end variable — error code 7 and alarm level 2.&lt;br /&gt;
* Specific parameters redefinition in the common attribute '''DESCR''':&lt;br /&gt;
:* ''the first line'' — as description of the alarm messages;&lt;br /&gt;
:* the field ''CustomFlds'' — specifying of [[Special:MyLanguage/Documents/Program_manual#ArchMess|the custom fields]] of the alarm messages in the form &amp;quot;'''CustomFlds: {CustFld0} =&amp;gt; {CustFld1} =&amp;gt; ... =&amp;gt; {CustFldN}'''&amp;quot;;&lt;br /&gt;
:* the field ''CustomAlarms'' — redefinition of the standard alarm levels of the alarm messages in the form &amp;quot;'''CustomAlarms: {ConErr};{BrdAlarm};{BrdWarn}'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| in || Input || Real || Input || Not attribute || Link || Input&amp;amp;#124;var&lt;br /&gt;
|-&lt;br /&gt;
| inProc || Input processing procedure || Text || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| var || Variable || Real || Input || Read only || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| ed || Dimension || String || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| min || Scale: minimum || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| max || Scale: maximum || Real || Input || Full access || Variable || 100&lt;br /&gt;
|-&lt;br /&gt;
| scSqr || Scale: square || Boolean || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| subMode || Substitute: mode || Integer numbers selection || Input || Full access || Variable || 0&amp;lt;br/&amp;gt;&lt;br /&gt;
0;1;2&amp;lt;br/&amp;gt;&lt;br /&gt;
no;last;substitute&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| subVar || Substitute: variable || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| alSup || Violations suppress || Boolean || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Violations delay, seconds || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| aMin || Border down alarm || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| aMax || Border up alarm || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| wMin || Border down warning || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| wMax || Border up warning || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| HystBnd || Hysteresis of borders violation || Real || Input || Full access || Variable || 1&lt;br /&gt;
|-&lt;br /&gt;
| speed || Motion speed, %/cycle || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| prec || Precision, signs || Integer || Input || Full access || Variable || 2&lt;br /&gt;
|-&lt;br /&gt;
| log || Logarithmic scale || Boolean || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| Tf || Filter time, seconds || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| iAdd || Input addition || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| iMult || Input multiplication || Real || Input || Not attribute || Constant || 1&lt;br /&gt;
|-&lt;br /&gt;
| plcMin || Minimum module scale || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcMax || Maximum module scale || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcExcess || Allowed scale exceeding, % || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcImit || PLC imitation || Boolean || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcImitIn || PLC imitation input || Real || Input || Not attribute || Link || Imitation&amp;amp;#124;var&lt;br /&gt;
|-&lt;br /&gt;
| this || Object || Object || Output || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Code || String || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Name || String (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Description || Text (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainAnUnifCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any presented one with the need scheduling properties.&lt;br /&gt;
:2. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select this template for it. Enable the parameter.&lt;br /&gt;
:3. Into the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* ''Input'' — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|link to a source of the &amp;quot;raw&amp;quot; signal]].&lt;br /&gt;
:* ''Input processing procedure'' — form for the complex preprocessing and complete generation of the analog input on the internal programming language of OpenSCADA. It is optional and should be defined in complex cases, for example:&lt;br /&gt;
::* simple and transparent preprocessing to bring the percentage of UPS load to power that can be done with '''iMult''' also:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 40pt&amp;quot;&amp;gt;&lt;br /&gt;
in = 490*in/100;	//the UPS has 480W &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
::* implementing of the input signal counter — consumed electricity of the UPS:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 40pt&amp;quot;&amp;gt;&lt;br /&gt;
//Checking for the data validity&lt;br /&gt;
if(ctx.cntr.isEVal())	ctx.cntr = this.var.get();&lt;br /&gt;
if(!in.isEVal()) {&lt;br /&gt;
	pUPS = 33;&lt;br /&gt;
	if(ctx.cntr.isEVal())	ctx.cntr = (pUPS+in)/(3600*f_frq);&lt;br /&gt;
	else ctx.cntr += (pUPS+in)/(3600*f_frq);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Checking for the next month reset&lt;br /&gt;
month = 0; SYS.localtime(SYS.time(), 0, 0, 0, 0, month);&lt;br /&gt;
if(!ctx.month.isEVal() &amp;amp;&amp;amp; month != ctx.month)	ctx.cntr = 0;&lt;br /&gt;
ctx.month = month;&lt;br /&gt;
&lt;br /&gt;
in = ctx.cntr; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
::* generating of the extended violations — processing for the external signals related to the source:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 40pt&amp;quot;&amp;gt;&lt;br /&gt;
gO = this.cntr().prm_grps;&lt;br /&gt;
if(SYS.DAQ.JavaLikeCalc.lib_aviary.sensorError(gO.prm_generic.PRG_Input_Err_T_room_S.get(),levErr,tErr));&lt;br /&gt;
else if(!(tVl=gO.prm_alarms.PRG_Alarm_T_max.get()).isEVal() &amp;amp;&amp;amp; tVl)&lt;br /&gt;
	levErr = -4, tErr = &amp;quot;11:above the set limit&amp;quot;;&lt;br /&gt;
else if(!(tVl=gO.prm_alarms.PRG_Alarm_T_min.get()).isEVal() &amp;amp;&amp;amp; tVl)&lt;br /&gt;
	levErr = -4, tErr = &amp;quot;11:below the set limit&amp;quot;; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:* ''Minimum and maximum of the module scale'' — must be set at the case of significant difference the hardware and the generic scales, for example:&lt;br /&gt;
::* the input is raw and measured in value of the current [4...20]mA, here it is necessary to specify 4 and 20 mA;&lt;br /&gt;
::* the previous case where it is necessary to simply and transparently calibrate the end value — with a precision device set 4mA and 20mA and indicate here the real measured values of the &amp;quot;raw&amp;quot; signal.&lt;br /&gt;
:* ''Input addition and multiplication'' — use for easy and linear correction of the input, for example:&lt;br /&gt;
::* calibration for the end value, which is less transparent and these coefficients should be calculated according to the formulas:&lt;br /&gt;
::: '''iAdd = ((plcMin*precMeasMax)/plcMax - precMeasMin)*(plcMax/(plcMax-plcMin))'''&lt;br /&gt;
::: '''iMult = (plcMax - plcMin) / (precMeasMax - precMeasMin)'''&lt;br /&gt;
:* ''Allowed scale exceeding'' — set if necessary to exceed the value of the main border, and when this scale starts to perform the recommendation function, say for the initial display of the trend on this scale.&lt;br /&gt;
:* ''PLC imitation and the imitation input'' — define at the need to simulate the input as required in the functions.&lt;br /&gt;
:4. RESULT: Launching the controller object (where this parameter is created) and if it has not been started, we must get the operational data in the tab &amp;quot;Attributes&amp;quot; for: variable, error status; and the generation of violations if the state of the error is nonzero.&lt;br /&gt;
:5. In the process of the working, through the tab &amp;quot;Attributes&amp;quot; of operational data, in addition to obtaining the result, it is possible to perform operative setup and control on:&lt;br /&gt;
:* ''Scale: minimum and maximum'' — strictly [[file:at.png]] set to the range of data changes by availability and according to the hardware border, otherwise the value will be distorted! In the absence of the hardware border, this, the main border, is arbitrary and advisory, although exceeding of the border by the value will be also accompanied by a violation.&lt;br /&gt;
:* ''Scale: square'' — set if the hardware border is square one.&lt;br /&gt;
:* ''Filter time'' — set the filtering time for noisy signals.&lt;br /&gt;
:* ''Substitute: mode and variable'' — set the desired substitution mode at invalidity the variable.&lt;br /&gt;
:* ''Violations suppress'' — set at the need of the parameter violations complete suppression — to disable their generation in whole.&lt;br /&gt;
:* ''Violations delay'' — set the delay time for the generation of the violations, to exclude frequent generation, characteristic to uncertain sources of data, characterized by short-term loss of communication.&lt;br /&gt;
:* ''Border up/down alarm/warning'' — set when it is necessary to generate violations at the exceeding of the alarm/warning borders.&lt;br /&gt;
:* ''Hysteresis of borders violation'' — set the hysteresis of removing the violation, that is, removal of the violations occurs at the specified percentage later, in order to prevent the frequent generation by fluctuating the value near the border.&lt;br /&gt;
:* ''Motion speed'' — set if it is necessary to warn about fast change of value.&lt;br /&gt;
:* ''Name, Description, Dimension, Precision, Logarithmic scale'' — set this information as need when displayed, or as an element of the passport.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=anUnifSt /&amp;gt;&lt;br /&gt;
| {{Anch|anUnifSt|&amp;lt;h3&amp;gt;Analog signal, unified, violation statuses ([[Special:MyLanguage/Libs/Main#anUnifSt|anUnifSt]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru  &amp;lt;section end=anUnifSt /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
Common, representative and unified template of analog input signals processing, extended by binary states of indication the violations. The template grounded on the base template &amp;quot;[[#anUnif|Analog signal, unified]]&amp;quot; with its representative structure and some differences characteristic to independent development and expansion.&lt;br /&gt;
&lt;br /&gt;
Binary states were provided for the convenient use of algorithms of operation at the borders of violations of the parameter object, preferably in [[Special:MyLanguage/Modules/BlockCalc|the block diagrams]] of general control algorithms.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Functions}}&lt;br /&gt;
Mostly the same as the basic template &amp;quot;[[#anUnif|Analog signal, unified]]&amp;quot; and the borderline signs are additionally provided: &amp;quot;H&amp;quot;, &amp;quot;L&amp;quot;, &amp;quot;HH&amp;quot;, &amp;quot;LL&amp;quot;, &amp;quot;EVAL&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | Template IOs of &amp;quot;[[#anUnif|Analog signal, unified]]&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| H || Border up warning violation || Boolean || Output || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| L || Border down warning violation || Boolean || Output || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| HH || Border up alarm violation || Boolean || Output || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| LL || Border down alarm violation || Boolean || Output || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| EVAL || Error value || Boolean || Output || Read only || Variable ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
Completely identical to &amp;quot;[[#anUnif|Analog signal, unified]]]&amp;quot; with the difference of using the borderline signs: &amp;quot;H&amp;quot;, &amp;quot;L&amp;quot;, &amp;quot;HH&amp;quot;, &amp;quot;LL&amp;quot;, &amp;quot;EVAL&amp;quot;; which can be connected to external computing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=manInUnif /&amp;gt;&lt;br /&gt;
| {{Anch|manInUnif|&amp;lt;h3&amp;gt;Manual input, unified ([[Special:MyLanguage/Libs/Main#manInUnif|manInUnif]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru &amp;lt;section end=manInUnif /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainManInUnifOp.png|right|Result and the operative setup.]]&lt;br /&gt;
Common, representative and unified template of a manual input and an analog output signal. The template forms a structure of parameter (complex tag) of the manual input what can be easily connected to most widgets and cadres of [[Special:MyLanguage/Libs/Main_graphical_elements|the main elements library of the user interface]] just pointing the parameter object, the control mostly can be performed through the [[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|Element cadre]] control panel.&lt;br /&gt;
&lt;br /&gt;
The representative structure of the parameter (complex tag) of the manual input is:&lt;br /&gt;
* &amp;quot;Variable ('''var''')&amp;quot; — end variable of the parameter — engineeric real value, allowed and suitable for archiving.&lt;br /&gt;
* &amp;quot;Variable input ('''varIn''')&amp;quot; — attribute for entering a new engineering value, which in the next falls into the variable.&lt;br /&gt;
* &amp;quot;Error ('''err''')&amp;quot; — obligatory attribute of any parameter, consist of the combination of the error code and short text description, like to &amp;quot;2:No data or connection with source&amp;quot;. The template reserves next error codes:&lt;br /&gt;
** '''1, 2''' — hardware errors, when the data mostly wrong;&lt;br /&gt;
** '''3, 4''' — alarm border errors;&lt;br /&gt;
** '''5, 6''' — warning border errors;&lt;br /&gt;
** '''7''' — the speed error of the variable changing.&lt;br /&gt;
* &amp;quot;Violations suppress ('''alSup''') and delay ('''alDelay''')&amp;quot; — violations generic control for suppressing and delaying.&lt;br /&gt;
* &amp;quot;Scale: minimum ('''min''')&amp;quot; and &amp;quot;Scale: maximum ('''max''')&amp;quot; — main scale of the end variable, the output of which causes a hardware border error. The scale is also used as a scale of the variable trend display on the graphs.&lt;br /&gt;
* &amp;quot;Logarithmic scale ('''log''')&amp;quot; — the scale sign of the variable trend display on the graphs in the logarithmic scale.&lt;br /&gt;
* &amp;quot;Dimension ('''ed''')&amp;quot; — dimension (unit of measurement) of the variable.&lt;br /&gt;
* &amp;quot;Precision ('''prec''')&amp;quot; — number signs after the dot, for positive values, and precision (signs in whole), for negative ones, to display the real end variable on the screen.&lt;br /&gt;
&lt;br /&gt;
Significant graphical shapes representing the structure:&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main_graphical_elements|Main elements library of the user interface]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|Element cadre]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Functions}}&lt;br /&gt;
* Generic processing of the raw analog input for:&lt;br /&gt;
:* simple correction-calibration at the formula &amp;quot;'''in''' = '''iMult'''*('''in'''+'''iAdd''')&amp;quot;;&lt;br /&gt;
:* scaling from the hardware border ['''plcMin'''...'''plcMax'''] to the main border ['''min'''...'''max'''], applying the square scale '''scSqr''';&lt;br /&gt;
:: [[File:at.png]] The hardware borders can be inverted ones and disabled in whole for equal values of the maximum and minimum, when the main border only used.&lt;br /&gt;
:* permission to exceed the border for the input value on the value of '''plcExcess''' percent;&lt;br /&gt;
:* filtering the input value changing in the time '''Tf'''.&lt;br /&gt;
* Processing the result variable '''var''' for violation some borders and criteria, generating the alarms and proper setting the attribute '''err'''. The alarm borders can have some hysteresis '''HystBnd''', can be delayed on the time '''alDelay''' and can be suppressed setting '''alSup'''. Next borders and criteria are provided:&lt;br /&gt;
:* missing for data or connection with source at the EVAL input value — error code 1 and alarm level 5;&lt;br /&gt;
:* exceeding the input value of the hardware border — error code 1,2 and alarm level 5;&lt;br /&gt;
:* exceeding the end variable of the alarm border ['''aMin'''...'''aMax'''] — error code 3,4 and alarm level 4;&lt;br /&gt;
:: [[File:at.png]] Disabled at setting for equal or inverted values of the border&lt;br /&gt;
:* exceeding the end variable of the warning border ['''wMin'''...'''wMax'''] — error code 5,6 and alarm level 2;&lt;br /&gt;
:: [[File:at.png]] Disabled at setting for equal or inverted values of the border&lt;br /&gt;
:* big motion '''speed''' of the end variable — error code 7 and alarm level 2.&lt;br /&gt;
* Reverse conversion of the engineered variable value and writing to the output.&lt;br /&gt;
: [[File:at.png]] In the absence of the &amp;quot;Input/Output&amp;quot; connection, the writing is not performed and there is the stand-alone operation.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| inout || Input/Output || Real || Output || Not attribute|| Link || Parameter&amp;amp;#124;var&lt;br /&gt;
|-&lt;br /&gt;
| var || Variable || Real || Input || Read only || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| varIn || Variable input || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| ed || Dimension || String || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| min || Scale: minimum || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| max || Scale: maximum || Real || Input || Full access || Variable || 100&lt;br /&gt;
|-&lt;br /&gt;
| scSqr || Scale: square || Boolean || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| alSup || Violations suppress || Boolean || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Violations delay, seconds || Real || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| aMin || Border down alarm || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| aMax || Border up alarm || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| wMin || Border down warning || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| wMax || Border up warning || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| HystBnd || Hysteresis of borders violation || Real || Input || Full access || Variable || 1&lt;br /&gt;
|-&lt;br /&gt;
| speed || Motion speed, %/cycle || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| prec || Precision, signs || Integer || Input || Full access || Variable || 2&lt;br /&gt;
|-&lt;br /&gt;
| log || Logarithmic scale || Boolean || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| Tf || Filter time, seconds || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| iAdd || Input addition || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| iMult || Input multiplication || Real || Input || Not attribute || Constant || 1&lt;br /&gt;
|-&lt;br /&gt;
| plcMin || Minimum module scale || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcMax || Maximum module scale || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcExcess || Allowed scale exceeding, % || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| this || Object || Object || Output || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Code || String || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Name || String (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Description || Text (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainManInUnifCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any presented one with the need scheduling properties.&lt;br /&gt;
:2. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select this template for it. Enable the parameter.&lt;br /&gt;
:3. Into the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* ''Input/Output'' — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|link to a source of the &amp;quot;raw&amp;quot; IO signal]], or do not link for the stand-alone mode.&lt;br /&gt;
:* ''Minimum and maximum of the module scale'' — must be set at the case of significant difference the hardware and the generic scales, for example see the template &amp;quot;[[#anUnif|Analog signal, unified]]&amp;quot;.&lt;br /&gt;
:* ''Input addition and multiplication'' — use for easy and linear correction of the input, for example see the template &amp;quot;[[#anUnif|Analog signal, unified]]&amp;quot;.&lt;br /&gt;
:* ''Allowed scale exceeding'' — set if necessary to exceed the value of the main border, and when this scale starts to perform the recommendation function, say for the initial display of the trend on this scale.&lt;br /&gt;
:4. RESULT: Launching the controller object (where this parameter is created) and if it has not been started, we must get the operational data in the tab &amp;quot;Attributes&amp;quot; for: variable, error status; and the generation of violations if the state of the error is nonzero; and it will be allowed to set new values.&lt;br /&gt;
:5. In the process of the working, through the tab &amp;quot;Attributes&amp;quot; of operational data, in addition to obtaining the result, it is possible to perform operative setup and control on:&lt;br /&gt;
:* ''Scale: minimum and maximum'' — strictly [[file:at.png]] set to the range of data changes by availability and according to the hardware border, otherwise the value will be distorted! In the absence of the hardware border, this, the main border, is arbitrary and advisory, although exceeding of the border by the value will be also accompanied by a violation.&lt;br /&gt;
:* ''Scale: square'' — set if the hardware border is square one.&lt;br /&gt;
:* ''Filter time'' — set the filtering time for noisy signals.&lt;br /&gt;
:* ''Violations suppress'' — set at the need of the parameter violations complete suppression — to disable their generation in whole.&lt;br /&gt;
:* ''Violations delay'' — set the delay time for the generation of the violations, to exclude frequent generation, characteristic to uncertain sources of data, characterized by short-term loss of communication.&lt;br /&gt;
:* ''Border up/down alarm/warning'' — set when it is necessary to generate violations at the exceeding of the alarm/warning borders.&lt;br /&gt;
:* ''Hysteresis of borders violation'' — set the hysteresis of removing the violation, that is, removal of the violations occurs at the specified percentage later, in order to prevent the frequent generation by fluctuating the value near the border.&lt;br /&gt;
:* ''Motion speed'' — set if it is necessary to warn about fast change of value.&lt;br /&gt;
:* ''Name, Description, Dimension, Precision, Logarithmic scale'' — set this information as need when displayed, or as an element of the passport.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=digitBlockUnif /&amp;gt;&lt;br /&gt;
| {{Anch|digitBlockUnif|&amp;lt;h3&amp;gt;Discrete block, unified ([[Special:MyLanguage/Libs/Main#digitBlockUnif|digitBlockUnif]])&amp;lt;/h3&amp;gt;}} || 1.0 || GPLv2 || * || en, uk, ru &amp;lt;section end=digitBlockUnif /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainDigitBlockUnifOp.png|right|Result and the operative setup.]]&lt;br /&gt;
Common, representative and unified template of the block for union of Discrete parameters for the common control device. The template forms a structure of discrete parameter-block (complex tag) which can be easily connected to most widgets and cadres of [[Special:MyLanguage/Libs/Main_graphical_elements|the main elements library of the user interface]] just pointing the parameter object.&lt;br /&gt;
&lt;br /&gt;
The representative structure of discrete parameters (complex tags) is a latch object with two characteristic states and three commands, which in the final representation may have a different meaning and name:&lt;br /&gt;
* &amp;quot;State &amp;quot;Opened&amp;quot; ('''st_open''')&amp;quot; — the state &amp;quot;Opened&amp;quot; of the latch. Is the primary status signal that can be used without the next one, when '''1 (true)''' is &amp;quot;Opened&amp;quot;, and '''0 (false)''' is 'Closed'.&lt;br /&gt;
* &amp;quot;State &amp;quot;Closed&amp;quot; ('''st_close''')&amp;quot; — the state &amp;quot;Closed&amp;quot;.&lt;br /&gt;
* &amp;quot;Command &amp;quot;Open&amp;quot; ('''com''')&amp;quot; — the command &amp;quot;Open&amp;quot; of the latch. Is the primary command signal that can be used without the next one, when '''1 (true)''' is &amp;quot;Open&amp;quot;, and '''0 (false)''' is 'Close'.&lt;br /&gt;
* &amp;quot;Command &amp;quot;Close&amp;quot; ('''close''')&amp;quot; — the command &amp;quot;Close&amp;quot; of the latch.&lt;br /&gt;
* &amp;quot;Command &amp;quot;Stop&amp;quot; ('''stop''')&amp;quot; — the command &amp;quot;Stop&amp;quot; of the latch.&lt;br /&gt;
&lt;br /&gt;
Significant graphical shapes representing the structure:&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main_graphical_elements|Main elements library of the user interface]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#TextLab|Text label]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ImgLab|Image label]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElViewGraph|Graphics group element]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|Element cadre]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#cntrPaspExt|Passport, extended]]&lt;br /&gt;
* [[Special:MyLanguage/Libs/Mnemo_elements|Mnemonic elements library of the user interface]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Mnemo_elements#El_Alarm|Alarming]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Mnemo_elements#discrApps|Discrete apparatus]]&lt;br /&gt;
* [[Special:MyLanguage/Libs/Electrical_elements|Electrical elements library of the user interface]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Electrical_elements#ActualActive|Key, unified]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Electrical_elements#ActualActive|Switch, unified]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Electrical_elements#ActualActive|General state, unified]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Electrical_elements#ActualActive|Area state, unified]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Functions}}&lt;br /&gt;
* Direct obtaining, by link, of the two states (read only) and three commands (reading and writing).&lt;br /&gt;
* Possibility of holding the commands for a certain time and removing them.&lt;br /&gt;
* Ability to redefine the states and commands by [[Special:MyLanguage/Libs/Main_graphical_elements|the appropriate settings of the interface elements]], such as ''digStts'', for statuses, and ''digComs'', for commands.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| com || Command &amp;quot;Open&amp;quot; || Boolean || Output || Full access || Link || Crane|com&lt;br /&gt;
|-&lt;br /&gt;
| close || Command &amp;quot;Close&amp;quot; || Boolean || Output || Full access || Link || Crane|close&lt;br /&gt;
|-&lt;br /&gt;
| stop || Command &amp;quot;Stop&amp;quot; || Boolean || Output || Full access || Link || Crane|stop&lt;br /&gt;
|-&lt;br /&gt;
| st_open || State &amp;quot;Opened&amp;quot; || Boolean || Input || Read only || Link || Crane|st_open&lt;br /&gt;
|-&lt;br /&gt;
| st_close || State &amp;quot;Closed&amp;quot; || Boolean || Input || Read only || Link || Crane|st_close&lt;br /&gt;
|-&lt;br /&gt;
| tCmd || Time to hold the command, seconds || Integer || Input || Not attribute || Constant || 5&lt;br /&gt;
|-&lt;br /&gt;
| last_cmd || Last command || Integer || Output || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| w_tm || Process command counter || Real || Output || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainDigitBlockUnifCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any presented one with the need scheduling properties.&lt;br /&gt;
:2. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select this template for it. Enable the parameter.&lt;br /&gt;
:3. Into the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* All the states and commands — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|link to a source of the &amp;quot;raw&amp;quot; signal]].&lt;br /&gt;
:* ''Time to hold the command, seconds'' — set the desired hold value or 0 to disable this feature.&lt;br /&gt;
:4. RESULT: Launching the controller object (where this parameter is created) and if it has not been started, we must get the operational data in the tab &amp;quot;Attributes&amp;quot; for: states and commands.&lt;br /&gt;
:5. In the process of the working, through the tab &amp;quot;Attributes&amp;quot; of operational data, in addition to obtaining the result, it is possible to perform operative control, performing the commands:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=digAlarm /&amp;gt;&lt;br /&gt;
| {{Anch|digAlarm|&amp;lt;h3&amp;gt;Alarm discrete ([[Special:MyLanguage/Libs/Main#digAlarm|digAlarm]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.3 || GPLv2 || * || en, uk, ru &amp;lt;section end=digAlarm /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainDigAlarmOp.png|right|Result and the operative setup.]]&lt;br /&gt;
Common, representative and unified template of separate discrete parameter (complex tag) processing with formation of signaling by the defined criterion. The template forms a structure of discrete parameter (complex tag) which can be easily connected to most widgets and cadres of [[Special:MyLanguage/Libs/Main_graphical_elements|the main elements library of the user interface]] just pointing the parameter object.&lt;br /&gt;
&lt;br /&gt;
The template provides some fields of [[#digitBlockUnif|the representative structure of the discrete parameters]] and adds the error field:&lt;br /&gt;
* &amp;quot;State &amp;quot;Opened&amp;quot; ('''st_open''')&amp;quot; — the state &amp;quot;Opened&amp;quot;.&lt;br /&gt;
* &amp;quot;State &amp;quot;Closed&amp;quot; ('''st_close''')&amp;quot; — the state &amp;quot;Closed&amp;quot;.&lt;br /&gt;
* &amp;quot;Error ('''err''')&amp;quot; — obligatory attribute of any parameter, consist of the combination of the error code and short text description, like to &amp;quot;2:No data or connection with source&amp;quot;. The template reserves next error codes:&lt;br /&gt;
** '''1''' — hardware errors, when the data mostly wrong;&lt;br /&gt;
** '''3''' — violation of the specified condition.&lt;br /&gt;
* &amp;quot;Violations suppress ('''alSup''') and delay ('''alDelay''')&amp;quot; — violations generic control for suppressing and delaying.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Functions}}&lt;br /&gt;
* Direct obtaining, by link, of the initial state and formation of two representative states with the possibility of their inversion '''stInv'''.&lt;br /&gt;
* Complex preprocessing and complete generation-imitation of the discrete input on the internal programming language of OpenSCADA into the configuration IO '''inProc''' (with appending the builtin syntax highlight rules), where you can operate next service parameters:&lt;br /&gt;
:* ''in'' [IN|OUT] — the same raw discrete input IO;&lt;br /&gt;
:* ''levErr'', ''tErr'' [IN|OUT] — alarm level [-79...0] and text of the error (the attribute &amp;quot;err&amp;quot; format);&lt;br /&gt;
:* ''f_frq'' [IN] — frequency of calculation, the template IO;&lt;br /&gt;
:* ''this'' [IN] — reference to the parameter object, what executing the template;&lt;br /&gt;
:* ''ctx'' [IN] — object of the user context, what saved between the execution cycles;&lt;br /&gt;
:* ''args'' [IN] — object of arguments of the procedure.&lt;br /&gt;
* Processing of the discrete input '''in''' for the purpose of creating a violation and correspondingly setting the attribute '''err''', at the condition &amp;quot;'''{st}:{lev}:{mess}'''&amp;quot;, that is violation generation of the level ''lev'' and the text ''mess'' for the input status ''st'' (0|1). What can be delayed on the time '''alDelay''' and can be suppressed setting '''alSup'''.&lt;br /&gt;
* Specific parameters redefinition in the common attribute '''DESCR''':&lt;br /&gt;
:* ''the first line'' — as description of the alarm messages;&lt;br /&gt;
:* the field ''CustomFlds'' — specifying of [[Special:MyLanguage/Documents/Program_manual#ArchMess|the custom fields]] of the alarm messages in the form &amp;quot;'''CustomFlds: {CustFld0} =&amp;gt; {CustFld1} =&amp;gt; ... =&amp;gt; {CustFldN}'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| alrm || Alarm &amp;quot;{st}:{lev}:{mess}&amp;quot; || String || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| stInv || State inversion || Boolean || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| in || Input || Boolean || Input || Read only || Link || Input&amp;amp;#124;in&lt;br /&gt;
|-&lt;br /&gt;
| inProc || Input processing procedure || Text || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| alSup || Violations suppress || Boolean || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Violations delay, seconds || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| st_open || State &amp;quot;Opened&amp;quot; || Boolean || Input || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| st_close || State &amp;quot;Closed&amp;quot; || Boolean || Input || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Code || String || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Name || String (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Description || Text (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| this || Object || Object || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainDigAlarmCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any presented one with the need scheduling properties.&lt;br /&gt;
:2. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select this template for it. Enable the parameter.&lt;br /&gt;
:3. Into the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* &amp;quot;Alarm &amp;quot;{st}:{lev}:{mess}&amp;quot; — define the criterion for the violation formation, leave blank to disable the violations generation.&lt;br /&gt;
:* &amp;quot;State inversion&amp;quot; — set to invert the representative attributes, that is, &amp;quot;st_open&amp;quot; set for &amp;quot;in&amp;quot; equal to '''false'''.&lt;br /&gt;
:* ''Input'' — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|link to a source of the &amp;quot;raw&amp;quot; signal]].&lt;br /&gt;
:* ''Input processing procedure'' — form for the complex preprocessing and complete generation of the discrete input on the internal programming language of OpenSCADA. For example:&lt;br /&gt;
::* complete creation for a complex status:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 40pt&amp;quot;&amp;gt;&lt;br /&gt;
gO = this.cntr().prm_grps;&lt;br /&gt;
status = gO.prm_generic.PRG_Input_Err_T_Zone1_S.get();&lt;br /&gt;
in = gO.prm_generic.SET_CalcFan_UseSensor_T1.get() || !(status == 0 || status == 2 || status == 3); &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:4. RESULT: Launching the controller object (where this parameter is created) and if it has not been started, we must get the operational data in the tab &amp;quot;Attributes&amp;quot; for: variable, error status; and the generation of violations if the state of the error is nonzero.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=codeState /&amp;gt;&lt;br /&gt;
| {{Anch|codeState|&amp;lt;h3&amp;gt;Code state ([[Special:MyLanguage/Libs/Main#codeState|codeState]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.4 || GPLv2 || * || en, uk, ru &amp;lt;section end=codeState /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainCodeStateOp.png|right|Result and the operative setup.]]&lt;br /&gt;
A variant of [[#digitBlockUnif|the common, representative and unified template of the block for union of Discrete parameters]], expanded by more than two states and three commands that can be encoded by an integer value. The template forms a structure of parameter (complex tag) which can be easily connected to most widgets and cadres of [[Special:MyLanguage/Libs/Main_graphical_elements|the main elements library of the user interface]] just pointing the parameter object.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' Vinnica Poultry Farm&lt;br /&gt;
&lt;br /&gt;
The representative structure of the parameter (complex tag) of the code state is:&lt;br /&gt;
* &amp;quot;State &amp;quot;Text&amp;quot; ('''st_text''')&amp;quot; — text description of the state.&lt;br /&gt;
* &amp;quot;Command &amp;quot;Text&amp;quot; ('''com_text''')&amp;quot; — text of the command.&lt;br /&gt;
* &amp;quot;Commands ('''digComs''')&amp;quot; — common list of the allowed commands, to form the selecting.&lt;br /&gt;
* &amp;quot;Error ('''err''')&amp;quot; — obligatory attribute of any parameter, consist of the combination of the error code and short text description, like to &amp;quot;2:No data or connection with source&amp;quot;. The template reserves next error codes:&lt;br /&gt;
** '''1''' — hardware errors, when the data mostly wrong.&lt;br /&gt;
* &amp;quot;Violations suppress ('''alSup''') and delay ('''alDelay''')&amp;quot; — violations generic control for suppressing and delaying.&lt;br /&gt;
&lt;br /&gt;
Significant graphical shapes representing the structure:&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main_graphical_elements|Main elements library of the user interface]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#TextLab|Text label]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ImgLab|Image label]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|Element cadre]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Functions}}&lt;br /&gt;
* Direct receiving, by link, the status code and the command (read only), as well as setting the status text according to the list of states ''stats''.&lt;br /&gt;
* Working out the text of the command ''com_text'' to find it in the general list ''coms'' of commands and issuing the received command code to the output.&lt;br /&gt;
* Generating from the general list ''coms'' of commands the list of commands to be selected in ''digComs''.&lt;br /&gt;
* Complex processing and complete generation-imitation of the code state, as well as processing the code or the command text for targeted actions, on the internal programming language of OpenSCADA into the configuration IO '''inProc''', where you can operate next service parameters:&lt;br /&gt;
:* ''in'' [IN|OUT] — IO of the code state;&lt;br /&gt;
:* ''text'' [OUT] — direct text status setting;&lt;br /&gt;
:* ''coms'' [IN] — list of available commands, of the corresponded IO;&lt;br /&gt;
:* ''com_text'' [IN|OUT] — text of the received command;&lt;br /&gt;
:* ''levErr'', ''tErr'' [IN|OUT] — alarm level [-79...0] and text of the error (the attribute &amp;quot;err&amp;quot; format);&lt;br /&gt;
:* ''f_frq'' [IN] — frequency of the calculation, the template IO;&lt;br /&gt;
:* ''this'' [IN] — reference to the parameter object, what executing the template;&lt;br /&gt;
:* ''ctx'' [IN] — object of the user context, what saved between the execution cycles;&lt;br /&gt;
:* ''args'' [IN] — object of arguments of the procedure.&lt;br /&gt;
* Formation of the violation and the corresponding setting of the attribute '''err''', provided at setting in the processing procedure or lack of the communication (''in'' = EVAL). What can be delayed on the time '''alDelay''' and can be suppressed setting '''alSup'''.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| in || Input || Integer || Input || Read only || Link || Signal&amp;amp;#124;in&lt;br /&gt;
|-&lt;br /&gt;
| out || Output || Integer || Output || Read only || Link || Signal&amp;amp;#124;out&lt;br /&gt;
|-&lt;br /&gt;
| inProc || Input processing procedure || Text || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| alSup || Violations suppress || Boolean || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Violations delay, seconds || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| st_text || State &amp;quot;Text&amp;quot; || String || Input || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| stats || States, rows &amp;quot;{code}:{State}&amp;quot; || Text || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| com_text || Command &amp;quot;Text&amp;quot; || String || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| coms || Commands-states, rows &amp;quot;{code}:{State}&amp;quot; || Text || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| digComs || Commands || Text || Input || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Code || String || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Name || String (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Description || Text (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| this || Object || Object || Output || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainCodeStateCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any presented one with the need scheduling properties.&lt;br /&gt;
:2. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select this template for it. Enable the parameter.&lt;br /&gt;
:3. Into the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* ''Input'' and ''Output'' — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|link to a source of the &amp;quot;raw&amp;quot; signal]].&lt;br /&gt;
:* ''Input processing procedure'' — form for the processing and complete generation-imitation of the input, and issuing of the specific output, on the internal programming language of OpenSCADA. For example:&lt;br /&gt;
::* complete creation for the state code and alarms forming:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 40pt&amp;quot;&amp;gt;&lt;br /&gt;
gO = this.cntr().prm_grps;&lt;br /&gt;
if(gO.prm_fansControl.PRG_CntrFan_AutoMode_G1.get().isEVal())	in = 4;&lt;br /&gt;
else {&lt;br /&gt;
  if(!(tVl=gO.prm_fansControl.PRG_CntrFan_Alarm_ThermalRelay.get()).isEVal() &amp;amp;&amp;amp; tVl)&lt;br /&gt;
    levErr = -4, tErr = &amp;quot;11:alarm&amp;quot;;&lt;br /&gt;
  if(gO.prm_fansControl.PRG_CntrFan_AutoMode_G1.get())&lt;br /&gt;
    in = gO.prm_fansControl.PRG_CntrFan_On_G1.get() ? 1 : 2;&lt;br /&gt;
  else in = 3;&lt;br /&gt;
} &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
::* forming the clock time text and issuing the time synchronization — direct status text setting and issuing for specific commands:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 40pt&amp;quot;&amp;gt;&lt;br /&gt;
curTm = SYS.time();&lt;br /&gt;
text = SYS.strftime(curTm, &amp;quot;%H։%M %d.%m.%Y&amp;quot;);&lt;br /&gt;
gO = this.cntr().prm_grps;&lt;br /&gt;
if(!(tVl=gO.prm_other.PRG_RTC_UNIX.get()).isEVal()) {&lt;br /&gt;
  text += &amp;quot; (&amp;quot;+(tVl-curTm).toString(10,0,true)+&amp;quot;)&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if(com_text.length &amp;amp;&amp;amp; !com_text.isEVal() &amp;amp;&amp;amp; (tVl=coms.match(&amp;quot;^([^:]+):&amp;quot;+com_text,&amp;quot;m&amp;quot;)).length &amp;amp;&amp;amp; tVl[1] == 1) {&lt;br /&gt;
  gO.prm_other.SET_RTC_New_UNIX.set(curTm);&lt;br /&gt;
  gO.prm_other.KEY_RTC_set_time.set(true);&lt;br /&gt;
} &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:4. RESULT: Launching the controller object (where this parameter is created) and if it has not been started, we must get the operational data in the tab &amp;quot;Attributes&amp;quot; for: input, output, code-input state, error status; and the generation of violations if the state of the error is nonzero.&lt;br /&gt;
:5. In the process of the working, through the tab &amp;quot;Attributes&amp;quot; of operational data, in addition to obtaining the result, it is possible to perform operative control, performing the commands:&lt;br /&gt;
:* ''States'' — set to list of accordance with its status code to text.&lt;br /&gt;
:* ''Commands-states'' — set to list of accordance with its status-command code to text.&lt;br /&gt;
:* ''Command &amp;quot;Text&amp;quot;'' — set in the command text, which is described in the command list, for the code conversion and issuance.&lt;br /&gt;
:* ''Violations suppress'' — set at the need of the parameter violations complete suppression — to disable their generation in whole.&lt;br /&gt;
:* ''Violations delay'' — set the delay time for the generation of the violations, to exclude frequent generation, characteristic to uncertain sources of data, characterized by short-term loss of communication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=pidUnif /&amp;gt;&lt;br /&gt;
| {{Anch|pidUnif|&amp;lt;h3&amp;gt;PID signal, unified, violation statuses ([[Special:MyLanguage/Libs/Main#pidUnif|pidUnif]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru &amp;lt;section end=pidUnif /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainPidUnifOp.png|right|Result and the operative setup.]]&lt;br /&gt;
Common, representative and unified template of an interface to the Proportional Integral Differential (PID) regulator based on the common analog input signal, extended by binary states of indication the violations. The template forms a structure of the analog PID-regulator which can be easily connected to some cadres and widgets of [[Special:MyLanguage/Libs/Main_graphical_elements|the main elements library of the user interface]] just pointing the parameter object.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' DIYA Ltd&lt;br /&gt;
&lt;br /&gt;
The representative structure of the analog PID-regulators is:&lt;br /&gt;
* &amp;quot;Variable ('''var''')&amp;quot; — end variable of the parameter — engineeric real value, allowed and suitable for archiving.&lt;br /&gt;
* &amp;quot;Error ('''err''')&amp;quot; — obligatory attribute of any parameter, consist of the combination of the error code and short text description, like to &amp;quot;2:No data or connection with source&amp;quot;. The template reserves next error codes:&lt;br /&gt;
** '''1, 2''' — hardware errors, when the data mostly wrong;&lt;br /&gt;
** '''3, 4''' — alarm border errors;&lt;br /&gt;
** '''5, 6''' — warning border errors;&lt;br /&gt;
** '''7''' — the speed error of the variable changing.&lt;br /&gt;
* &amp;quot;Violations suppress ('''alSup''') and delay ('''alDelay''')&amp;quot; — violations generic control for suppressing and delaying.&lt;br /&gt;
* &amp;quot;Setpoint ('''sp''')&amp;quot; — setpoint for the analog signal value achievement in the automatic mode.&lt;br /&gt;
* &amp;quot;Manual input ('''manIn''')&amp;quot; — attribute for entering a new output value, which in the next falls into the output at the manual mode.&lt;br /&gt;
* &amp;quot;Output ('''out''')&amp;quot; — output (control signal) of the PID-regulator.&lt;br /&gt;
* &amp;quot;Mode: automate ('''auto''')&amp;quot; — the PID-regulator mode &amp;quot;Automatic&amp;quot;.&lt;br /&gt;
* &amp;quot;Mode: cascade ('''casc''')&amp;quot; — the PID-regulator mode &amp;quot;Cascade&amp;quot;.&lt;br /&gt;
* &amp;quot;Scale: minimum ('''min''')&amp;quot; and &amp;quot;Scale: maximum ('''max''')&amp;quot; — main scale of the end variable, the output of which causes a hardware border error. The scale is also used as a scale of the variable trend display on the graphs.&lt;br /&gt;
* &amp;quot;Logarithmic scale ('''log''')&amp;quot; — the scale sign of the variable trend display on the graphs in the logarithmic scale.&lt;br /&gt;
* &amp;quot;Dimension ('''ed''')&amp;quot; — dimension (unit of measurement) of the variable.&lt;br /&gt;
* &amp;quot;Precision ('''prec''')&amp;quot; — number signs after the dot, for positive values, and precision (signs in whole), for negative ones, to display the real end variable on the screen.&lt;br /&gt;
&lt;br /&gt;
Significant graphical shapes representing the structure:&lt;br /&gt;
* [[Special:MyLanguage/Libs/Main_graphical_elements|Main elements library of the user interface]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#cntrRegul|Regulator's control panel]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#ElCadr|Element cadre]]&lt;br /&gt;
** [[Special:MyLanguage/Libs/Main_graphical_elements#cntrPaspExt|Passport, extended]]&lt;br /&gt;
* [[Special:MyLanguage/Libs/Mnemo_elements|Mnemonic elements library of the user interface]]:&lt;br /&gt;
** [[Special:MyLanguage/Libs/Mnemo_elements#analogApps|Analog apparatus]]&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Functions}}&lt;br /&gt;
* Generic processing of the raw analog input for:&lt;br /&gt;
:* simple correction-calibration at the formula &amp;quot;'''in''' = '''iMult'''*('''in'''+'''iAdd''')&amp;quot;;&lt;br /&gt;
:* scaling from the hardware border ['''plcMin'''...'''plcMax'''] to the main border ['''min'''...'''max'''], applying the square scale '''scSqr''';&lt;br /&gt;
:* permission to exceed the border for the input value on the value of '''plcExcess''' percent;&lt;br /&gt;
:* filtering the input value changing in the time '''Tf'''.&lt;br /&gt;
* Simple imitation of the analog input, setting '''plcImit''' and linking the imitation-simulation source in '''plcImitIn'''.&lt;br /&gt;
* Processing the result variable '''var''' for violation some borders and criteria, generating the alarms and proper setting the attribute '''err'''. The alarm borders can have some hysteresis '''HystBnd''', can be delayed on the time '''alDelay''' and can be suppressed setting '''alSup'''. Next borders and criteria are provided:&lt;br /&gt;
:* missing for data or connection with source at the EVAL input value — error code 1 and alarm level 5;&lt;br /&gt;
:* exceeding the input value of the hardware border — error code 1,2 and alarm level 5;&lt;br /&gt;
:* exceeding the end variable of the alarm border ['''aMin'''...'''aMax'''] — error code 3,4 and alarm level 4;&lt;br /&gt;
:: [[File:at.png]] Disabled at setting for equal or inverted values of the border&lt;br /&gt;
:* exceeding the end variable of the warning border ['''wMin'''...'''wMax'''] — error code 5,6 and alarm level 2;&lt;br /&gt;
:: [[File:at.png]] Disabled at setting for equal or inverted values of the border&lt;br /&gt;
:* big motion '''speed''' of the end variable — error code 7 and alarm level 2.&lt;br /&gt;
* Transmission of the PID-specific information, control and coefficient attributes to and from the PLC or other data source with the regulation.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| in || Input || Real || Input || Not attribute || Link || Signal&amp;amp;#124;in&lt;br /&gt;
|-&lt;br /&gt;
| sp || Setpoint || Real || Input || Full access || Link || PID&amp;amp;#124;sp&lt;br /&gt;
|-&lt;br /&gt;
| var || Variable || Real || Input || Read only || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| manIn || Manual input, % || Real || Input || Full access || Link || PID&amp;amp;#124;manIn&lt;br /&gt;
|-&lt;br /&gt;
| out || Output, % || Real || Input || Full access || Link || PID&amp;amp;#124;out&lt;br /&gt;
|-&lt;br /&gt;
| auto || Mode: automate || Boolean || Input || Full access || Link || PID&amp;amp;#124;auto&lt;br /&gt;
|-&lt;br /&gt;
| casc || Mode: cascade || Boolean || Input || Full access || Link || PID&amp;amp;#124;casc&lt;br /&gt;
|-&lt;br /&gt;
| ed || Dimension || String || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| min || Scale: minimum || Real || Input || Full access || Link || PID&amp;amp;#124;min&lt;br /&gt;
|-&lt;br /&gt;
| max || Scale: maximum || Real || Input || Full access || Link || PID&amp;amp;#124;max&lt;br /&gt;
|-&lt;br /&gt;
| scSqr || Scale: square || Boolean || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| alSup || Violations suppress || Boolean || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Violations delay, seconds || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| aMin || Border down alarm || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| aMax || Border up alarm || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| wMin || Border down warning || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| wMax || Border up warning || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| HystBnd || Hysteresis of borders violation || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| speed || Motion speed, %/cycle || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| prec || Precision, signs || Integer || Input || Full access || Variable || 2&lt;br /&gt;
|-&lt;br /&gt;
| log || Logarithmic scale || Boolean || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| H || Border up warning violation || Boolean || Output || Read only || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| L || Border down warning violation || Boolean || Output || Read only || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| HH || Border up alarm violation || Boolean || Output || Read only || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| LL || Border down alarm violation || Boolean || Output || Read only || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| EVAL || Value is error || Boolean || Output || Read only || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| Tf || Filter time, milliseconds || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| Kp || Gain || Real || Input || Full access || Link || PID&amp;amp;#124;Kp&lt;br /&gt;
|-&lt;br /&gt;
| Ti || Ti, milliseconds || Integer || Input || Full access || Link || PID&amp;amp;#124;Ti&lt;br /&gt;
|-&lt;br /&gt;
| Kd || Gain differential || Real || Input || Full access || Link || PID&amp;amp;#124;Kd&lt;br /&gt;
|-&lt;br /&gt;
| Td || Td, milliseconds || Integer || Input || Full access || Link || PID&amp;amp;#124;Td&lt;br /&gt;
|-&lt;br /&gt;
| Tzd || T differential lag, milliseconds || Integer || Input || Full access || Link || PID&amp;amp;#124;Tzd&lt;br /&gt;
|-&lt;br /&gt;
| Zi || Insensitivity, % || Real || Input || Full access || Link || PID&amp;amp;#124;Zi&lt;br /&gt;
|-&lt;br /&gt;
| Hup || Upper output border, % || Real || Input || Full access || Link || PID&amp;amp;#124;Hup&lt;br /&gt;
|-&lt;br /&gt;
| Hdwn || Lower output border, % || Real || Input || Full access || Link || PID&amp;amp;#124;Hdwn&lt;br /&gt;
|-&lt;br /&gt;
| K1 || Coefficient of input 1 || Real || Input || Full access || Link || PID&amp;amp;#124;K1&lt;br /&gt;
|-&lt;br /&gt;
| K2 || Coefficient of input 2 || Real || Input || Full access || Link || PID&amp;amp;#124;K2&lt;br /&gt;
|-&lt;br /&gt;
| K3 || Coefficient of input 3 || Real || Input || Full access || Link || PID&amp;amp;#124;K3&lt;br /&gt;
|-&lt;br /&gt;
| K4 || Coefficient of input 4 || Real || Input || Full access || Link || PID&amp;amp;#124;K4&lt;br /&gt;
|-&lt;br /&gt;
| iAdd || Input addition || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| iMult || Input multiplication || Real || Input || Not attribute || Constant || 1&lt;br /&gt;
|-&lt;br /&gt;
| plcMin || Minimum module scale || Real || Input || Not attribute || Constant || 1&lt;br /&gt;
|-&lt;br /&gt;
| plcMax || Maximum module scale || Real || Input || Not attribute || Constant || 5&lt;br /&gt;
|-&lt;br /&gt;
| plcExcess || Allowed scale exceeding, % || Real || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcImit || PLC imitation || Boolean || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| plcImitIn || PLC imitation input || Real || Input || Not attribute || Link || Imitation&amp;amp;#124;var&lt;br /&gt;
|-&lt;br /&gt;
| this || Object || Object || Output || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Code || String || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Name || String (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Description || Text (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainPidUnifCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create and start [[Special:MyLanguage/Modules/LogicLev|a logical controller object]] or use any presented one with the need scheduling properties.&lt;br /&gt;
:2. Create [[Special:MyLanguage/Modules/LogicLev|a logical parameter object]] and select this template for it. Enable the parameter.&lt;br /&gt;
:3. Into the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* ''Input'' — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|link to a source of the &amp;quot;raw&amp;quot; analog signal]].&lt;br /&gt;
:* ''Setpoint'', ''Manual input'', ''Output'', ''Mode: automate'', ''Mode: cascade'', ''Scale: minimum'', ''Scale: maximum'', ''Gain'', ''Ti'', ''Gain differential'', ''Td'', ''T differential lag'', ''Insensitivity'', ''Upper output border'', ''Lower output border'', ''Coefficient of input 1'', ''Coefficient of input 2'', ''Coefficient of input 3'', ''Coefficient of input 4'' — [[Special:MyLanguage/Documents/DAQ#LogicLevLnks|link to a source of the PID-regulator]].&lt;br /&gt;
:* ''Input addition and multiplication'' — use for easy and linear correction of the input, for example see the template &amp;quot;[[#anUnif|Analog signal, unified]]&amp;quot;.&lt;br /&gt;
:* ''Allowed scale exceeding'' — set if necessary to exceed the value of the main border, and when this scale starts to perform the recommendation function, say for the initial display of the trend on this scale.&lt;br /&gt;
:* ''PLC imitation and the imitation input'' — define at the need to simulate the input as required in the functions.&lt;br /&gt;
:4. RESULT: Launching the controller object (where this parameter is created) and if it has not been started, we must get the operational data in the tab &amp;quot;Attributes&amp;quot; for: variable, error status; and the generation of violations if the state of the error is nonzero. Also we will get all the PID-specific attributes.&lt;br /&gt;
:5. In the process of the working, through the tab &amp;quot;Attributes&amp;quot; of operational data, in addition to obtaining the result, it is possible to perform operative setup and control on:&lt;br /&gt;
:* ''Scale: minimum and maximum'' — strictly [[file:at.png]] set to the range of data changes by availability and according to the hardware border, otherwise the value will be distorted!&lt;br /&gt;
:* ''Scale: square'' — set if the hardware border is square one.&lt;br /&gt;
:* ''Filter time'' — set the filtering time for noisy signals.&lt;br /&gt;
:* ''Violations suppress'' — set at the need of the parameter violations complete suppression — to disable their generation in whole.&lt;br /&gt;
:* ''Violations delay'' — set the delay time for the generation of the violations, to exclude frequent generation, characteristic to uncertain sources of data, characterized by short-term loss of communication.&lt;br /&gt;
:* ''Border up/down alarm/warning'' — set when it is necessary to generate violations at the exceeding of the alarm/warning borders.&lt;br /&gt;
:* ''Hysteresis of borders violation'' — set the hysteresis of removing the violation, that is, removal of the violations occurs at the specified percentage later, in order to prevent the frequent generation by fluctuating the value near the border.&lt;br /&gt;
:* ''Motion speed'' — set if it is necessary to warn about fast change of value.&lt;br /&gt;
:* ''Name, Description, Dimension, Precision, Logarithmic scale'' — set this information as need when displayed, or as an element of the passport.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=pidUnifImp /&amp;gt;&lt;br /&gt;
| {{Anch|pidUnifImp|&amp;lt;h3&amp;gt;Impulse PID signal, unified, violation statuses ([[Special:MyLanguage/Libs/Main#pidUnifImp|pidUnifImp]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.1 || GPLv2 || * || en, uk, ru &amp;lt;section end=pidUnifImp /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
Common, representative and unified template of an interface to the Proportional Integral Differential (PID) regulator based on the common analog input signal but with the PWM-output, extended by binary states of indication the violations and mostly like to the template &amp;quot;[[#pidUnif|PID signal, unified, violation statuses]]&amp;quot;. The template forms a structure of the impulse PID-regulator which can be easily connected to some cadres of [[Special:MyLanguage/Libs/Main_graphical_elements|the main elements library of the user interface]] just pointing the parameter object.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' DIYA Ltd&lt;br /&gt;
&lt;br /&gt;
The representative structure of the impulse PID-regulators is mostly equal to the template &amp;quot;[[#pidUnif|PID signal, unified, violation statuses]]&amp;quot; and contains a number of attributes specific to the pulse output and the attribute of determining the operation of this regulator in the analog mode, that is, this template is even more generalizable:&lt;br /&gt;
* &amp;quot;Impulse output up ('''impQup''')&amp;quot; and &amp;quot;Impulse output down ('''impQdwn''')&amp;quot; — signals of the PWM-output.&lt;br /&gt;
* &amp;quot;Mode: analog ('''analog''')&amp;quot; — a sign of working the regulator in the analog output mode.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Functions}}&lt;br /&gt;
Mostly the same as the basic template &amp;quot;[[#pidUnif|PID signal, unified, violation statuses]]&amp;quot; and the impulse-specific attributes are additionally provided: &amp;quot;Impulse output up&amp;quot;, &amp;quot;Impulse output down&amp;quot;, &amp;quot;Mode: analog&amp;quot;, &amp;quot;T impulses period&amp;quot;, &amp;quot;T minimal impulse&amp;quot;, &amp;quot;Impulse rate factor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;7&amp;quot; | Template IOs of &amp;quot;[[#pidUnif|PID signal, unified, violation statuses]]&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| impQup || Impulse output up || Boolean || Input || Read only || Link || PID&amp;amp;#124;impQupTm&lt;br /&gt;
|-&lt;br /&gt;
| impQdwn || Impulse output down || Boolean || Input || Read only || Link || PID&amp;amp;#124;impQdwnTm&lt;br /&gt;
|-&lt;br /&gt;
| analog || Mode: analog || Boolean || Input || Read only || Link || PID&amp;amp;#124;analog&lt;br /&gt;
|-&lt;br /&gt;
| TImpPer || T impulses period, milliseconds || Integer || Input || Full access || Link || PID&amp;amp;#124;TImpPer&lt;br /&gt;
|-&lt;br /&gt;
| TImpMin || T minimal impulse, milliseconds || Integer || Input || Full access || Link || PID&amp;amp;#124;TImpMin&lt;br /&gt;
|-&lt;br /&gt;
| KImpRfact || Impulse rate factor || Real || Input || Full access || Link || PID&amp;amp;#124;KImpRfact&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
Mostly the same as the basic template &amp;quot;[[#pidUnif|PID signal, unified, violation statuses]]&amp;quot; with the difference of using the impulse specific output: &amp;quot;Impulse output up&amp;quot;, &amp;quot;Impulse output down&amp;quot;, &amp;quot;Mode: analog&amp;quot;, &amp;quot;T impulses period&amp;quot;, &amp;quot;T minimal impulse&amp;quot;, &amp;quot;Impulse rate factor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== {{Anch|ComplexObject|Templates of the complex objects}} ==&lt;br /&gt;
In some cases where an object is only a part of a common automated system and does not require deep detailing to the level of signals and parameters (complex tag) around them, including without the need for archiving, it is convenient to unify them in one representative object of the data source OpenSCADA with appropriate consolidated view and object control as a set of simple attributes with violation elements. Such consolidation often occurs around specialised data sources, whose access to data is usually implemented through a separate exchanging protocol, but without unifying the transmission of this data to the level of visualisation and signalling by a separate attribute of the object.&lt;br /&gt;
&lt;br /&gt;
In general, the representative structure of a complex object is:&lt;br /&gt;
* &amp;quot;All items ('''items''')&amp;quot; — common object-type attribute where the attributes of a physical object are directly described by object-type attributes in '''items''' and with defined descriptive attributes in each&lt;br /&gt;
** ''id'' — attribute identifier;&lt;br /&gt;
** ''descr'' — text description of the attribute;&lt;br /&gt;
** ''wr'' — a sign of the possibility of writing or a list of value variants to their selection, through the symbol ';';&lt;br /&gt;
** ''alarm'' — violation code:&lt;br /&gt;
*** 0 — no violation — &amp;quot;NORM&amp;quot;;&lt;br /&gt;
*** 1 — violation level &amp;quot;WARNING&amp;quot;;&lt;br /&gt;
*** 2 — violation level &amp;quot;ALARM&amp;quot;;&lt;br /&gt;
** ''val'' — attribute value;&lt;br /&gt;
** ''set'' — attribute value to set the attributes accessible to write.&lt;br /&gt;
* &amp;quot;Error ('''err''')&amp;quot; — obligatory attribute of common violation status of the object in general, consist of the combination of the error code and short text description, like to &amp;quot;2:No data or connection with source&amp;quot;. The template reserves next error codes:&lt;br /&gt;
** '''1''' — violation level &amp;quot;WARNING&amp;quot;;&lt;br /&gt;
** '''2''' — violation level &amp;quot;ALARM&amp;quot;;&lt;br /&gt;
** '''3''' — unreliability or lack of data.&lt;br /&gt;
* &amp;quot;Violations suppress ('''alSup''') and delay ('''alDelay''')&amp;quot; — violations generic control for suppressing and delaying.&lt;br /&gt;
&lt;br /&gt;
Generally, it is advisable to create such template (a layer above the physical data source object) above a raw data source that provides this data in attributes and without processing, and this template therefore performs:&lt;br /&gt;
* collection of these attributes of the raw source into '''items''';&lt;br /&gt;
* processing of properties of the attributes;&lt;br /&gt;
* control and transmitting of commands of the values setting;&lt;br /&gt;
* processing of the violation conditions at single attributes and at the object in whole, together with which these violations can be fixed in [[Special:MyLanguage/Documents/Program_manual#ArchMess|the table of actual violations]], typically by the [[Special:MyLanguage/Documents/User_API#SYS.DAQ|alarmSet() function]].&lt;br /&gt;
&lt;br /&gt;
In addition to complex object templates, this object-control mechanism can be implemented by templates for implementing [[Special:MyLanguage/Documents/DAQ#LogicLev|the logical level of data access]], such as in [[Special:MyLanguage/Libs/Devices#IEC60870|IEC60870]].&lt;br /&gt;
&lt;br /&gt;
To represent the data of the object-control mechanism, there currently provided the appropriate [[Special:MyLanguage/Libs/Main_graphical_elements#objProps|Object properties frame]], which provides these properties as a table-list with illumination of the violations and the possibility to change the selected and accessible to edit row-properties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=UPS /&amp;gt;&lt;br /&gt;
| {{Anch|UPS|&amp;lt;h3&amp;gt;Uninterruptible Power Supply ([[Special:MyLanguage/Libs/Main#UPS|UPS]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 2.2 || GPLv2 || * || en, uk, ru &amp;lt;section end=UPS /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainUPSOp.png|right|Result and the operative setup.]]&lt;br /&gt;
Data combination of the Uninterruptible Power Supply in a complex object of the attribute &amp;quot;All items&amp;quot;. The template initially designed to use together with the DAQ-module &amp;quot;[[Special:MyLanguage/Modules/System|System]]&amp;quot; in the part &amp;quot;UPS&amp;quot; and to represent this data by the frame &amp;quot;[[Special:MyLanguage/Libs/Main_graphical_elements#objProps|Object properties]]&amp;quot; as a complex object with properties, signalling at single borders and writing.&lt;br /&gt;
&lt;br /&gt;
Next the template was expanded by direct implementing UPS or Power Inverters which support is missing in [https://networkupstools.org/ NUT] (in ground of the part &amp;quot;UPS&amp;quot;), and such the first device became [https://www.mustpower.com/product/ep2100-pro-series-dc12v-300-1000w/ Must EP2100 PRO]. And for that there also was appended of custom definition the device's properties to place as DAQ-Attributes with the possibility of the description redefinition.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' DIYA Ltd&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| srcAddr || Source object's address&lt;br /&gt;
* &amp;quot;System.slow.prm_UPS&amp;quot; - for connecting to the [[Special:MyLanguage/Modules/System|DAQ.System]] parameter in the UPS part;&lt;br /&gt;
* &amp;quot;Serial.ep21:/dev/ttyUSB0:9600:8N1||500:30&amp;quot; - for connecting to serial port of the Must EP2100 PRO.&lt;br /&gt;
| String || Input || Not attribute || Constant || &lt;br /&gt;
|-&lt;br /&gt;
| alSup || Violations suppress || Boolean || Input || Full access || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Violations delay, seconds || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| items || All items || Object || Output || Full access || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| defs || Elements definition&lt;br /&gt;
In form of lines - &amp;quot;{id}:{toAttr}:{descr}&amp;quot;&lt;br /&gt;
| Text || Output || Full access || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| bChL || Battery charge low || Real || Input || Full access || Variable || 20&lt;br /&gt;
|-&lt;br /&gt;
| bChLL || Battery charge critical || Real || Input || Full access || Variable || 5&lt;br /&gt;
|-&lt;br /&gt;
| inVL || Input voltage low || Real || Input || Full access || Variable || 210&lt;br /&gt;
|-&lt;br /&gt;
| inVH || Input voltage high || Real || Input || Full access || Variable || 250&lt;br /&gt;
|-&lt;br /&gt;
| inFLL || Input frequency too low || Real || Input || Full access || Variable || 40&lt;br /&gt;
|-&lt;br /&gt;
| inFL || Input frequency low || Real || Input || Full access || Variable || 45&lt;br /&gt;
|-&lt;br /&gt;
| inFH || Input frequency high || Real || Input || Full access || Variable || 55&lt;br /&gt;
|-&lt;br /&gt;
| inFHH || Input frequency too high || Real || Input || Full access || Variable || 60&lt;br /&gt;
|-&lt;br /&gt;
| loadH || Load high || Real || Input || Full access || Variable || 80&lt;br /&gt;
|-&lt;br /&gt;
| loadHH || Load too high || Real || Input || Full access || Variable || 100&lt;br /&gt;
|-&lt;br /&gt;
| tH || Temperature high || Real || Input || Full access || Variable || 50&lt;br /&gt;
|-&lt;br /&gt;
| tHH || Temperature too high || Real || Input || Full access || Variable || 70&lt;br /&gt;
|-&lt;br /&gt;
| hyst || Hysteresis of borders, % || Real || Input || Full access || Variable || 5&lt;br /&gt;
|-&lt;br /&gt;
| this || Object || Object || Input || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Code || String || Input || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| NAME || Name || String (translate) || Input || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Description || Text (translate) || Input || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainUPSCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. [ [[Special:MyLanguage/Modules/System|DAQ.System]] ] Create a source controller object in the module DAQ.System and set its identifier like to &amp;quot;SYSData&amp;quot;.&lt;br /&gt;
:2. [ [[Special:MyLanguage/Modules/System|DAQ.System]] ] Create a source parameter object in the previous controller object and set its identifier like to &amp;quot;UPS&amp;quot;.&lt;br /&gt;
:3. Create and start a [[Special:MyLanguage/Modules/LogicLev|Logical Controller Object]] or use any presented with the need scheduling properties.&lt;br /&gt;
:4. Create a [[Special:MyLanguage/Modules/LogicLev|Logical Parameter Object]] and select the template for it. Enable the parameter.&lt;br /&gt;
:5. In the tab &amp;quot;Template configuration&amp;quot; of the Logical Parameter Object you need to set:&lt;br /&gt;
:* ''Source object's address'':&lt;br /&gt;
::* [ [[Special:MyLanguage/Modules/System|DAQ.System]] ] — to address of the source UPS parameter object (see to step 1) like to &amp;quot;System.SYSData.prm_UPS&amp;quot;;&lt;br /&gt;
::* [ Must EP2100 PRO ] — to Serial address of connecting the device like to &amp;quot;Serial.ep21:/dev/ttyUSB0:9600:8N1||500:30&amp;quot;.&lt;br /&gt;
:6. RESULT: When running the controller object (where this parameter was created) and if it was not started, we must obtain in the parameter attribute ''All items (items)'' this object with all the attributes and their properties. In the case of some violations, we will get the corresponding information in the attribute ''Error (err)'', for which you can adjust the attributes of the boundaries of the corresponding violations. To customize some item's description and to place some in DAQ-Attributes, you can edit &amp;quot;Elements definition (defs)&amp;quot; for ones. From the created DAQ-Attributes you can also control writable ones.&lt;br /&gt;
:7. In the visual interfaces developing of the module [[Special:MyLanguage/Modules/Vision|Vision]] place the frame &amp;quot;[[Special:MyLanguage/Libs/Main_graphical_elements#objProps|Object properties]]&amp;quot; to any page and link its to the parameter object, created in step 4.&lt;br /&gt;
:8. RESULT: In the runtime of the page you'll get a table with data of the object, notifications about violations in the header and the possibility to set of writable properties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=SNMP /&amp;gt;&lt;br /&gt;
| {{Anch|SNMP|&amp;lt;h3&amp;gt;Network devices by SNMP ([[Special:MyLanguage/Libs/Main#SNMP|SNMP]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.1 || GPLv2 || * || en, uk, ru &amp;lt;section end=SNMP /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainSNMPOp.png|right|Result and the operative setup.]]&lt;br /&gt;
Data combination of a device, accessible by the protocol SNMP, in a complex object of the attribute &amp;quot;All items&amp;quot;. The template designed to use together with the DAQ-module &amp;quot;[[Special:MyLanguage/Modules/SNMP|SNMP]]&amp;quot; and to represent this data by the frame &amp;quot;[[Special:MyLanguage/Libs/Main_graphical_elements#objProps|Object properties]]&amp;quot; as a complex object with properties, signalling at single borders and writing. Considering the great specificity and variety of SNMP-accessible devices, this template is actually a billet and an example of creating a template based on it to a corresponding device with a specific to it processing of input properties, forming of violations and write capability.&lt;br /&gt;
&lt;br /&gt;
* '''Sponsored by:''' PAC HARTRON&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| srcAddr || Source object's address || String || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| manTables || Manual tables || String || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| alSup || Violations suppress || Boolean || Input || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| alDelay || Violations delay, seconds || Real || Input || Full access || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| items || All items || Object || Output || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| this || Object || Object || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Code || String || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| NAME || Name || String (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Description || Text (translate) || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainSNMPCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create a source controller object in the module &amp;quot;[[Special:MyLanguage/Modules/SNMP|SNMP]]&amp;quot; and set its identifier like to &amp;quot;SYSData&amp;quot;.&lt;br /&gt;
:2. Create a source parameter object in the previous controller object and set its identifier like to &amp;quot;DEV&amp;quot;.&lt;br /&gt;
:3. Create and start a [[Special:MyLanguage/Modules/LogicLev|logical controller object]] or use any presented one with the need scheduling properties.&lt;br /&gt;
:4. Create a [[Special:MyLanguage/Modules/LogicLev|logical parameter object]] and select the template for it. Enable the parameter.&lt;br /&gt;
:5. In the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* ''Source object's address'' — to address of the source SNMP device parameter object (see to step 1) like to &amp;quot;SNMP.SYSData.DEV&amp;quot;.&lt;br /&gt;
:* ''Manual tables'' — enter manually some static MIB-variables.&lt;br /&gt;
:6. RESULT: When running the controller object (where this parameter was created) and if it was not started, we must obtain in the parameter attribute ''items'' this object with all the attributes and their properties. In case of some violations, we will get the corresponding information in the attribute of the parameter ''err'', for which you can adjust the attributes of the boundaries of the corresponding violations.&lt;br /&gt;
:7. In the visual interfaces developing of the module [[Special:MyLanguage/Modules/Vision|Vision]] place the frame &amp;quot;[[Special:MyLanguage/Libs/Main_graphical_elements#objProps|Object properties]]&amp;quot; to any page and link it to the parameter object, created in step 4.&lt;br /&gt;
:8. RESULT: In runtime of the page you get a table with data of the object, notifications about violations in the header and the possibility to set of writable properties.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=DiskSMART /&amp;gt;&lt;br /&gt;
| {{Anch|DiskSMART|&amp;lt;h3&amp;gt;Disk SMART ([[Special:MyLanguage/Libs/Main#DiskSMART|DiskSMART]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.1 || GPLv2 || * || en, uk &amp;lt;section end=DiskSMART /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainDiskSMARTOp.png|right|Result and the operative setup.]]&lt;br /&gt;
Data combination of the disk SMART in a complex object of the attribute &amp;quot;All items&amp;quot;. The template designed to use together with the DAQ-module &amp;quot;[[Special:MyLanguage/Modules/System|System]]&amp;quot; in the part &amp;quot;Disk SMART&amp;quot; and to represent this data by the frame &amp;quot;[[Special:MyLanguage/Libs/Main_graphical_elements#objProps|Object properties]]&amp;quot; as a complex object with properties and signalling at common errors. Some SMART attributes can be unknown or wrong for specified disk due to their missing in the disks DB, especially for modern SSD, so the template provides a feature to redefine names the attributes.&lt;br /&gt;
&lt;br /&gt;
Complex postprocessing and complete generation-imitation of the SMART fields with separate attributes on the internal programming language of OpenSCADA into the configuration IO '''inProc''' (with appending the builtin syntax highlight rules), where you can operate next service parameters:&lt;br /&gt;
:* ''alLev'', ''tErr'' [IN|OUT] — alarm level [-79...0] and text of the error (the attribute &amp;quot;err&amp;quot; format);&lt;br /&gt;
:* ''f_frq'' [IN] — frequency of calculation, the template IO;&lt;br /&gt;
:* ''this'' [IN] — reference to the parameter object, what executing the template;&lt;br /&gt;
:* ''ctx'' [IN] — object of the user context, what saved between the execution cycles;&lt;br /&gt;
:* ''args'' [IN] — object of arguments of the procedure;&lt;br /&gt;
:* ''items'' [IN|OUT] — object of items of the SMART.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Parameter !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| srcAddr || Source object's address || String || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| inProc || Input processing procedure || Text || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| items || All items || Object || Output || Full access || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| defs || Item definitions || Text || Input || Full access || Variable ||&lt;br /&gt;
&amp;lt;pre&amp;gt;161:Number of Valid Spare Blocks (161)&lt;br /&gt;
162:Uncorrectable Sector Count (162)&lt;br /&gt;
163:Number of Initial Invalid Blocks (163)&lt;br /&gt;
164:Total Erase Count (164)&lt;br /&gt;
165:Block Erase Count (165)&lt;br /&gt;
166:Minimum PE Cycles TLC (166)&lt;br /&gt;
167:Max Bad Blocks per Die (167)&lt;br /&gt;
168:Maximum PE Cycles TLC (168)&lt;br /&gt;
168:Max Erase Count of Spec (168)&lt;br /&gt;
168:SATA PHY error count (168)&lt;br /&gt;
169:Total Bad Blocks (169)&lt;br /&gt;
169:Remain Life (169)&lt;br /&gt;
170:Grown Bad Blocks (170)&lt;br /&gt;
170:Bad Block Count (170)&lt;br /&gt;
171:Program Fail Count (171)&lt;br /&gt;
172:Erase Fail Count (172)&lt;br /&gt;
173:Average PE Cycles TLC (173)&lt;br /&gt;
173:Max Erase Count (173)&lt;br /&gt;
174:Unexpected Power Loss (174)&lt;br /&gt;
184:End-to-End Error (184)&lt;br /&gt;
187:Reported Uncorrect (187)&lt;br /&gt;
188:Command Timeout (188)&lt;br /&gt;
218:CRC Error Count (218)&lt;br /&gt;
230:Media Wearout Indicator (230)&lt;br /&gt;
231:SSD Life Left (231)&lt;br /&gt;
233:NAND GB Written TLC (233)&lt;br /&gt;
234:NAND GB Written SLC (234)&lt;br /&gt;
241:Host Writes GB (241)&lt;br /&gt;
242:Host Reads GiB (242)&lt;br /&gt;
244:Temp Throttle Status (244)&lt;br /&gt;
245:Flash Write Sector Count (245)&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| this || The object || Object || Input || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| SHIFR || Code || String || Input || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| NAME || Name || String || Input || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| DESCR || Description || String || Input || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainDiskSMARTCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create a source controller object in the module &amp;quot;[[Special:MyLanguage/Modules/System|System]]&amp;quot; and set its identifier like to &amp;quot;SYSData&amp;quot;, set the property &amp;quot;Auto create active data sources&amp;quot; to &amp;quot;All sources&amp;quot; and start by setting &amp;quot;Running&amp;quot;.&lt;br /&gt;
:2. Create and start a [[Special:MyLanguage/Modules/LogicLev|logical controller object]] or use any presented one with the need scheduling properties.&lt;br /&gt;
:3. Create a [[Special:MyLanguage/Modules/LogicLev|logical parameter object]] and select the template for it. Enable the parameter.&lt;br /&gt;
:4. In the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* ''Source object's address'' — to address of the source disk SMART parameter object like to &amp;quot;System.SYSData.DiskSMARTsda&amp;quot;.&lt;br /&gt;
:* ''Input processing procedure'' — form for the complex preprocessing and complete generation of the SMART fields with separate attributes on the internal programming language of OpenSCADA.&lt;br /&gt;
:5. RESULT: When running the controller object (where this parameter was created) and if it was not started, we must obtain in the parameter attribute ''items'' this object with all the attributes and their properties. In case of some violations, we will get the corresponding information in the attribute of the parameter ''err''.&lt;br /&gt;
:6. In the visual interfaces developing of the module [[Special:MyLanguage/Modules/Vision|Vision]] place the frame &amp;quot;[[Special:MyLanguage/Libs/Main_graphical_elements#objProps|Object properties]]&amp;quot; to any page and link it to the parameter object, created in step 3.&lt;br /&gt;
:7. RESULT: In runtime of the page you get a table with data of the object, notifications about violations in the header and the possibility to redefine names of the SMART attributes.&lt;br /&gt;
&lt;br /&gt;
== Services ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=ntf /&amp;gt;&lt;br /&gt;
| {{Anch|ntf|&amp;lt;h3&amp;gt;Notificator by SMS, EMail-SMTP ([[Special:MyLanguage/Libs/Main#ntf|ntf]])&amp;lt;/h3&amp;gt;}} || 1.0 || GPLv2 || * =&amp;gt; [[Special:MyLanguage/Modules/UserProtocol|UserProtocol]] || en, uk, ru &amp;lt;section end=ntf /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainNtfOp.png|right|Result and the operative setup.]]&lt;br /&gt;
The complex template of the notification contains of parts of the dispatcher and the output user protocol of notification by EMail(SMTP) and SMS.&lt;br /&gt;
&lt;br /&gt;
* '''Total complexity:''' &amp;gt; 1.05 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}&lt;br /&gt;
* '''Sponsored by, for initial implementation the SMS-send part on 0.2 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' [[Special:MyLanguage/Using/HouseSpirit|Oleg Sidashov]]&lt;br /&gt;
* '''Sponsored by, for unification, appending SMTP and the notification controller on 0.65 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}:''' SVItoVYR Ltd&lt;br /&gt;
&lt;br /&gt;
'''THE DISPATCHER''' can be performed for pointed messages of the message buffer of OpenSCADA and applied on [[Special:MyLanguage/Documents/DAQ#LogicLev|the Logical level]] or the controller object of [[Special:MyLanguage/Modules/JavaLikeCalc|the module JavaLikeCalc]].&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| io || UserPrt: Output IO || Object || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| tr || UserPrt: Transport || Object || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| tmOut || Maximum notification timeout, seconds || Integer || Input || Not attribute || Constant || 5&lt;br /&gt;
|-&lt;br /&gt;
| messLev || Messages level, negative for alarms || Integer || Input || Not attribute || Constant || 1&lt;br /&gt;
|-&lt;br /&gt;
| messCat || Messages category, template or regular expression || String || Input || Not attribute || Constant || al*:*&lt;br /&gt;
|-&lt;br /&gt;
| messCatExcl || Message exclusion category, in regular expression || String || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| emailState || Email notification current state || String || Output || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| emailTrAddr || Output transport for SMTP connection, empty for disable || String || Input || Not attribute || Constant || Sockets.out_SMTP&lt;br /&gt;
|-&lt;br /&gt;
| emailAuth || Auth, empty for disable || String || Input || Not attribute || Constant || user:pass&lt;br /&gt;
|-&lt;br /&gt;
| emailSender || Sender || String || Input || Not attribute || Constant || noreply@oscada.org&lt;br /&gt;
|-&lt;br /&gt;
| emailReceiver || Destination receiver address || String || Input || Not attribute || Constant || test@oscada.org&lt;br /&gt;
|-&lt;br /&gt;
| emailTopic || EMail topic || String || Input || Not attribute || Constant || Notification&lt;br /&gt;
|-&lt;br /&gt;
| emailMess || EMail message || String || Input || Not attribute || Constant ||&lt;br /&gt;
|-&lt;br /&gt;
| SMSState || SMS notification current state || String || Output || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| SMSTrAddr || SMS serial transport, empty for disable || String || Input || Not attribute || Constant || Serial.out_SMS&lt;br /&gt;
|-&lt;br /&gt;
| SMSPin || SMS-pin, empty for disable || String || Input || Not attribute || Constant || 1111&lt;br /&gt;
|-&lt;br /&gt;
| SMSTel || SMS destination receiver, tel. number || String || Input || Not attribute || Constant || +380XXXXXXXXX&lt;br /&gt;
|-&lt;br /&gt;
| SMSTextMd || SMS in the text mode, else PDU || Boolean || Input || Not attribute || Constant || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainNtfCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create a parameter in a controller object of [[Special:MyLanguage/Documents/DAQ#LogicLev|the Logical Level]] or a controller object in [[Special:MyLanguage/Modules/JavaLikeCalc|the module DAQ.JavaLikeCalc]].&lt;br /&gt;
:2. Create an output transport of the type &amp;quot;[[Special:MyLanguage/Modules/Serial|Serial]]&amp;quot; and set its Identifier like to &amp;quot;SMS&amp;quot;, one transport suitable for more receivers.&lt;br /&gt;
:3. Set for proper address, only for the [[Special:MyLanguage/Modules/Serial|Serial]] device. The serial port speed, asynchronous data format and timeouts will adjusted by the function.&lt;br /&gt;
:4. Create an output transport of the type &amp;quot;[[Special:MyLanguage/Modules/Sockets|Sockets]]&amp;quot; or &amp;quot;[[Special:MyLanguage/Modules/SSL|SSL]]&amp;quot; and set its Identifier like to &amp;quot;SMTP&amp;quot;, one transport suitable for more receivers. &lt;br /&gt;
:5. Set-up for proper address, for Sockets(25) or SSL(465). The transport timeouts will be adjusted by the function.&lt;br /&gt;
:6. In the tab &amp;quot;Template configuration&amp;quot; you need to set:&lt;br /&gt;
:* Maximum notification timeout, seconds.&lt;br /&gt;
:* Messages level, negative for alarms.&lt;br /&gt;
:* Messages category, template or regular expression.&lt;br /&gt;
:* Message exclusion category, in regular expression.&lt;br /&gt;
:* Output transport for SMTP connection, empty for disable.&lt;br /&gt;
:* Auth, empty for disable.&lt;br /&gt;
:* Sender.&lt;br /&gt;
:* Destination receiver address.&lt;br /&gt;
:* EMail topic.&lt;br /&gt;
:* EMail message.&lt;br /&gt;
:* SMS serial transport, empty for disable.&lt;br /&gt;
:* SMS-pin, empty for disable.&lt;br /&gt;
:* SMS destination receiver, tel. number.&lt;br /&gt;
:* SMS in the text mode, else PDU.&lt;br /&gt;
:7. RESULT: Sending for the pointed messages at SMS or EMail(SMTP).&lt;br /&gt;
&lt;br /&gt;
'''THE OUTPUT USER PROTOCOL PART &amp;quot;SMS&amp;quot;''' provides operations with SMS by a GSM-modem connected as serial device. For now, there supported only sending SMS messages to a number of remote cell phone or GSM-modem. For sending there are supported: ECHO disable, PIN check and set, sending in PDU and the Text mode.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Output user protocol's XML-request structure}}&lt;br /&gt;
'''&amp;lt;cmd pin=&amp;quot;1111&amp;quot; tel=&amp;quot;+380XXXXXXXXX&amp;quot; text=&amp;quot;{0|1}&amp;quot; err=&amp;quot;1:Error&amp;quot;&amp;gt;{SMSText}&amp;lt;/cmd&amp;gt;'''&lt;br /&gt;
:''cmd'' — command, for now only &amp;quot;send&amp;quot; allowed;&lt;br /&gt;
:''pin'' — PIN-code to the SIM-card access;&lt;br /&gt;
:''tel'' — telephone number of the receiver (remote cell phone or GSM-modem);&lt;br /&gt;
:''text{0,1}'' — SMS in the text mode, only ASCII;&lt;br /&gt;
:''SMSText'' — the message text;&lt;br /&gt;
:''err'' — sets for the request result.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create an output transport of the type &amp;quot;[[Special:MyLanguage/Modules/Serial|Serial]]&amp;quot; and set its Identifier like to &amp;quot;SMS&amp;quot;, one transport suitable for more receivers.&lt;br /&gt;
:2. Set for proper address. The serial port speed, asynchronous data format and timeouts will adjusted by the function.&lt;br /&gt;
:3. Create of need [[Special:MyLanguage/Modules/UserProtocol|user protocol object]] based on the templates, with Identifier like to &amp;quot;SMS&amp;quot;.&lt;br /&gt;
:4. Place some requesting commands directly into presented or a new internal OpenSCADA-procedure like to:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 30pt&amp;quot;&amp;gt;&lt;br /&gt;
req = SYS.XMLNode(&amp;quot;send&amp;quot;); req.setAttr(&amp;quot;ProtIt&amp;quot;,&amp;quot;SMS&amp;quot;).setAttr(&amp;quot;pin&amp;quot;,&amp;quot;1111&amp;quot;).setAttr(&amp;quot;tel&amp;quot;,&amp;quot;+380XXXXXXXXX&amp;quot;).setText(&amp;quot;Notify message&amp;quot;);&lt;br /&gt;
SYS.Transport.Serial.out_SMS.messIO(req, &amp;quot;UserProtocol&amp;quot;);&lt;br /&gt;
rez = req.attr(&amp;quot;err&amp;quot;).toInt() ? req.attr(&amp;quot;err&amp;quot;) : &amp;quot;OK&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:5. RESULT: In the variable ''rez'' you will get &amp;quot;OK&amp;quot; if no errors occur and the message successfully transmitted to the receiver.&lt;br /&gt;
&lt;br /&gt;
'''THE OUTPUT USER PROTOCOL PART &amp;quot;SMTP&amp;quot;''' provides operations with a SMTP-server for delivering EMails by their sending through TCP-Socket or SSL. For now, there are supported: TCP, SSL, AUTH, topic encoding for UTF-8.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Output user protocol's XML request structure}}&lt;br /&gt;
'''&amp;lt;send auth=&amp;quot;{user}:{pass}&amp;quot; from=&amp;quot;{FromAddr}&amp;quot; to=&amp;quot;{ToAddr}&amp;quot; topic=&amp;quot;{My Topic}&amp;quot; err=&amp;quot;1:Error&amp;quot;&amp;gt;{MessageText}&amp;lt;/send&amp;gt;'''&lt;br /&gt;
:''topic'' — topic of the message;&lt;br /&gt;
:''from'' — sender address;&lt;br /&gt;
:''to'' — destination address of the receiver;&lt;br /&gt;
:''auth'' — authenticate user and password;&lt;br /&gt;
:''MessageText'' — text of the message;&lt;br /&gt;
:''err'' — sets for the request result.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create an output transport of the type &amp;quot;[[Special:MyLanguage/Modules/Sockets|Sockets]]&amp;quot; or &amp;quot;[[Special:MyLanguage/Modules/SSL|SSL]]&amp;quot; and set its Identifier like to &amp;quot;SMTP&amp;quot;, one transport suitable for more receivers. &lt;br /&gt;
:2. Set-up for proper address, for Sockets(25) or SSL(465). The transport timeouts will be adjusted by the function.&lt;br /&gt;
:3. Create of need [[Special:MyLanguage/Modules/UserProtocol|user protocol object]] based on the templates, with Identifier like to &amp;quot;SMTP&amp;quot;.&lt;br /&gt;
:4. Place some requesting commands directly into allowed or a new internal OpenSCADA procedure like to:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot; style=&amp;quot;margin-left: 30pt&amp;quot;&amp;gt;&lt;br /&gt;
req = SYS.XMLNode(&amp;quot;send&amp;quot;);&lt;br /&gt;
req.setAttr(&amp;quot;ProtIt&amp;quot;,&amp;quot;SMTP&amp;quot;).setAttr(&amp;quot;from&amp;quot;,&amp;quot;noreply@oscada.org&amp;quot;).setAttr(&amp;quot;to&amp;quot;,&amp;quot;oscada@oscada.org&amp;quot;).setAttr(&amp;quot;topic&amp;quot;,&amp;quot;My topic&amp;quot;).setText(&amp;quot;My message&amp;quot;);&lt;br /&gt;
SYS.Transport.Sockets.out_SMTP.messIO(req, &amp;quot;UserProtocol&amp;quot;);&lt;br /&gt;
rez = req.attr(&amp;quot;err&amp;quot;).toInt() ? req.attr(&amp;quot;err&amp;quot;) : &amp;quot;OK&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
:5. RESULT: In the variable ''rez'' you will get &amp;quot;OK&amp;quot; if no errors occur and the message successfully transmitted to the receiver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=initRemCntr /&amp;gt;&lt;br /&gt;
| {{Anch|initRemCntr|&amp;lt;h3&amp;gt;Control the remote initiative connections ([[Special:MyLanguage/Libs/Main#initRemCntr|initRemCntr]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk &amp;lt;section end=initRemCntr /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainInitRemCntrOp.png|right|Result and the operative setup.]]&lt;br /&gt;
The template of processing input initiative connections expands early one template [[#initConAssociateTrs|initiative connections processing for the associated output transports]] by complete representing data of the remote OpenSCADA hosts on some aggregation server and with a possibility of control the remote hosts through the server, that is finishing the [[Special:MyLanguage/Documents/DAQ#PassiveAndInitiative|conception of data acquisition in the passive mode and the initiative connection]].&lt;br /&gt;
&lt;br /&gt;
The template does in whole:&lt;br /&gt;
* detecting a new connection from remote host, which has no ID;&lt;br /&gt;
* sending an acquaintance direct request to the established connection for getting KEY of the host, when it was already connected early, and for getting information about the host for creating ID of the host;&lt;br /&gt;
* setting ID for the connection;&lt;br /&gt;
* creating a record in the [[Special:MyLanguage/Documents/Program_manual#Transports|OpenSCADA hosts table]] for the connection and sending all followed requests already through the host;&lt;br /&gt;
* creating on the remote host a representative [[Special:MyLanguage/Modules/LogicLev|Logical Controller]];&lt;br /&gt;
* creating on the remote host a representative [[Special:MyLanguage/Modules/System|DAQ.System Controller Object]] in the automatic mode, at missing any other there;&lt;br /&gt;
* processing the present DAQ.System Controller Objects to link the Logical Level parameters to them and creating some processing logical parameters, with updating for all sources at any reconnection and checking for removing ones without sources already;&lt;br /&gt;
* writing the generated key by a line &amp;quot;'''SrcKey: {KEY}'''&amp;quot; to description of the Logical Controller as a sign of finalizing the initialization;&lt;br /&gt;
* creating a Controller Object in [[Special:MyLanguage/Modules/DAQGate|DAQ.DAQGate]] with connection to the remote Logical Controller and syncing its per 10 minutes for appending new sources and removing missing ones.&lt;br /&gt;
&lt;br /&gt;
ID of the remote host is formed in the view &amp;quot;'''{HostDomain}{StatName}{RandKey}'''&amp;quot; and with limiting to 20 symbols, where:&lt;br /&gt;
* ''HostDomain'' — network host name-domain;&lt;br /&gt;
* ''StatName'' — station name of the OpenSCADA project;&lt;br /&gt;
* ''RandKey'' — random key in two HEX-digits.&lt;br /&gt;
&lt;br /&gt;
Data model of the representative Logical Controller can contain both the generated links with processing parameters, and custom parameters, when the user is decided to publish some extra data. The generated items from DAQ.System are represents sources currently:&lt;br /&gt;
* &amp;quot;CPU&amp;quot;, &amp;quot;MEM&amp;quot;, &amp;quot;sensors&amp;quot;, &amp;quot;Power&amp;quot;, &amp;quot;uptime&amp;quot; =&amp;gt; links in the &amp;quot;System (SYS)&amp;quot; container parameter;&lt;br /&gt;
* &amp;quot;fs&amp;quot;, &amp;quot;hddstat&amp;quot;, &amp;quot;hddsmart&amp;quot; =&amp;gt; links in the &amp;quot;Disk (DISK)&amp;quot; container parameter with a processing one for &amp;quot;hddsmart&amp;quot; by the template [[Special:MyLanguage/Libs/Main#DiskSMART|base.DiskSMART]];&lt;br /&gt;
* &amp;quot;netstat&amp;quot; =&amp;gt; links in the &amp;quot;Network (NET)&amp;quot; container parameter;&lt;br /&gt;
* &amp;quot;ups&amp;quot; =&amp;gt; links in the root with a processing one by the template [[Special:MyLanguage/Libs/Main#UPS|base.UPS]].&lt;br /&gt;
&lt;br /&gt;
The aggregated data in [[Special:MyLanguage/Modules/DAQGate|DAQ.GAQGate]] can be lifted to up, or used in derivative DAQ objects, or whether directly on custom frames, or in future on a Dynamic Frame, which scheduled to implement; and without any additional action you will get notification about violations on the hosts.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| inTransport || Input transport || String || Input || Not attribute || Constant || Sockets.InitRemCntr&lt;br /&gt;
|-&lt;br /&gt;
| conTm || Connection time, ms || Integer || Input || Not attribute || Constant || 5000&lt;br /&gt;
|-&lt;br /&gt;
| accessTm || Timeout of accessing, hours&lt;br /&gt;
Used for repeating to create representative objects of not accessed hosts and for removing old connections.&amp;lt;br/&amp;gt;&lt;br /&gt;
Zero or negative value for disabling the control!&lt;br /&gt;
| Integer || Input || Not attribute || Constant || 24&lt;br /&gt;
|-&lt;br /&gt;
| cntrUser || Access: user || String || Input || Not attribute || Constant || root&lt;br /&gt;
|-&lt;br /&gt;
| cntrPass || Access: password || String || Input || Not attribute || Constant || openscada&lt;br /&gt;
|-&lt;br /&gt;
| cntrObj || Control object in DAQ.LogicLev and DAQ.System || String || Input || Not attribute || Constant || RemCntr&lt;br /&gt;
|-&lt;br /&gt;
| prcTr || Processed connections || Text || Output || Read only || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| this || Object || Object || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainInitRemCntrCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create an input transport of receiving the initiative connections of the module &amp;quot;[[Special:MyLanguage/Modules/Sockets#InTr|Sockets]]&amp;quot; or &amp;quot;[[Special:MyLanguage/Modules/SSL#InTr|SSL]]&amp;quot; with the name like to &amp;quot;Sockets.InitRemCntr&amp;quot;.&lt;br /&gt;
:2. Set the previously created transport to the need address of opening the input socket and move it to the mode of creating the associative output transports, leaving the protocol field in empty.&lt;br /&gt;
:3. For this template create and run a logical controller object or use any available with the required scheduling properties.&lt;br /&gt;
:4. Create a [[Special:MyLanguage/Modules/LogicLev|logical parameter object]] and select this template for it. Enable the parameter.&lt;br /&gt;
:5. In the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* ''Input transport'' — to value of the identifier of the input transport, created in the item 1, like to &amp;quot;Sockets.InitRemCntr&amp;quot;;&lt;br /&gt;
:* ''Connection time'' — timeout of connection to the initiative hosts after that to close the connection;&lt;br /&gt;
:* ''Timeout of accessing'' — used for repeating to create representative objects of not accessed hosts and for removing old connections; zero or negative value for disabling the control;&lt;br /&gt;
:* ''Access: user and password'' — user and password of the remote host with permition of creation there Logical Controller and DAQ.System Controller Object, that is the user must be included to the &amp;quot;DAQ&amp;quot; group;&lt;br /&gt;
:* ''Control object in DAQ.LogicLev and DAQ.System'' — to ID of managed-created Controller Objects on the remote hosts.&lt;br /&gt;
:6. RESULT: Starting the controller object (where this parameter was created) and when it was not started, we should get checking the specifying input transport for initiative connections and their initialisation in described above way and with notification processed connection in the attribute &amp;quot;Processed connections&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=initConAssociateTrs /&amp;gt;&lt;br /&gt;
| {{Anch|initConAssociateTrs|&amp;lt;h3&amp;gt;Initiative connections processing for the associated output transports ([[Special:MyLanguage/Libs/Main#initConAssociateTrs|initConAssociateTrs]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk, ru &amp;lt;section end=initConAssociateTrs /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainInitConsAssignTrsOp.png|right|Result and the operative setup.]]&lt;br /&gt;
The template of processing input initiative connections was created to provide the last link of implementation and support for [[Special:MyLanguage/Documents/DAQ#PassiveAndInitiative|conception of data acquisition in the passive mode and the initiative connection]], that is — the control of associative connections, created by the input transport at each connection.&lt;br /&gt;
&lt;br /&gt;
[[file:at.png]] After implementation this control together the new common-unified output transport connection function [[Special:MyLanguage/Documents/User_API#SYSTransport|outAt()]] that template became deprecated for sources adapted to use the new mechanism, but you still can use the template for not adapted sources.&lt;br /&gt;
&lt;br /&gt;
The function of creation associated output transports at connections is currently only supported by [[Special:MyLanguage/Modules/Sockets|the module &amp;quot;Sockets&amp;quot;]] and for TCP-sockets.&lt;br /&gt;
&lt;br /&gt;
* '''Total complexity:''' 0.9 {{CtxDetails|HD|human-days, 1 HD — 10 hours}}&lt;br /&gt;
* '''Sponsored by, for whole complexity:''' Elyor Turaboev, BLUE STAR GROUP Ltd&lt;br /&gt;
&lt;br /&gt;
The control of associated transport means:&lt;br /&gt;
* obtaining a list of the associated transports, by the function ''assignTrsList()'' of the input transports;&lt;br /&gt;
* reading from new transports (opened) of identification information, which currently represents only the source object identifier;&lt;br /&gt;
** search, by the received identifier, the source object and assigning to it of this transport;&lt;br /&gt;
** registering in the attribute &amp;quot;prcTr&amp;quot; of the object type.&lt;br /&gt;
* checking of existing transports for their closure (detachment), for which performed the deregistration in the attribute &amp;quot;prcTr&amp;quot; of the object type and the establishment of the source object in the empty value; disconnected output associated transports are reused by the input one upon receiving a new connection then it is switched on.&lt;br /&gt;
&lt;br /&gt;
The template can control the containers of data source objects, constructed both as DAQ-objects of the controllers and logical level parameters, what representing the data source and having a transport address definition field, and what generally defined by the configuration field &amp;quot;srcObjPath&amp;quot; of the format '''{CntrAddr}:{TrCntrFldAddr}''', where:&lt;br /&gt;
* ''CntrAddr'' — container address, for example: &amp;quot;ModBus&amp;quot; — for DAQ-objects of the controllers, &amp;quot;LogicLev.CntrPLC&amp;quot; — for logical level parameters;&lt;br /&gt;
* ''TrCntrFldAddr'' — address of the transport control field in the source object, for example — &amp;quot;%2fcntr%2fcfg%2fADDR&amp;quot; for &amp;quot;ModBus&amp;quot;; what can be obtained in a configurator at the history of pointing on the control field in the status line.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| inTransport || Input transport || String || Input || Not attribute || Constant || InitiateCons&lt;br /&gt;
|-&lt;br /&gt;
| outTrTm || Output transport timeouts || String || Input || Not attribute || Constant || 10:0.1&lt;br /&gt;
|-&lt;br /&gt;
| srcObjPath || Source object path || String || Input || Not attribute || Constant || ModBus:%2fcntr%2fcfg%2fADDR&lt;br /&gt;
|-&lt;br /&gt;
| prcTr || Processed transports || Object || Output || Read only || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainInitConsAssignTrsCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create an input transport of receiving the initiative connections of [[Special:MyLanguage/Modules/Sockets#InTr|the module &amp;quot;Sockets&amp;quot;]] with the name like to &amp;quot;InitiateCons&amp;quot;.&lt;br /&gt;
:2. Set the previously created transport to the need address of opening the input socket and move it to the mode of creating the associative output transports, leaving the protocol field in empty.&lt;br /&gt;
:3. Provide a container of the data sources to which associative transports must be connected, which can be either a DAQ-module (such as &amp;quot;DAQ.ModBus&amp;quot;), or a logical controller (such as &amp;quot;DAQ.LogicLev.Sources&amp;quot;), or a parameter in it (such as &amp;quot;DAQ.LogicLev.PLC.Sources&amp;quot;), with logical level parameters representing the data source.&lt;br /&gt;
:4. For this template create and run a [[Special:MyLanguage/Modules/LogicLev|logical controller object]] or use any available with the required scheduling properties.&lt;br /&gt;
:5. Create a [[Special:MyLanguage/Modules/LogicLev|logical parameter object]] and select this template for it. Enable the parameter.&lt;br /&gt;
:6. In the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* ''Input transport'' — to value of the identifier of the input transport, created in the item 1, like to &amp;quot;InitiateCons&amp;quot;;&lt;br /&gt;
:* ''Output transport timeouts'' — increase the first digit for very slow connections and typical is normal in most situations&lt;br /&gt;
:* ''Source objects path'' — set according to the item 3, for the first part, and to the control field path, for the second part, for example, and typically for for &amp;quot;ModBus&amp;quot;, is — &amp;quot;ModBus:%2fcntr%2fcfg%2fADDR&amp;quot;.&lt;br /&gt;
:6. RESULT: Starting the controller object (where this parameter was created) and when it was not started, we should get, in the attribute ''prcTr'' of the parameter for information about the processed and therefore successfully transport-linked data sources. In case of some violations, we will get the corresponding information in the attribute ''err'' of the parameter. The absence of a representative object for the received identifier is placed in the protocol of messages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=weather /&amp;gt;&lt;br /&gt;
| {{Anch|weather|&amp;lt;h3&amp;gt;Weather ([[Special:MyLanguage/Libs/Main#weather|weather]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.0 || GPLv2 || * || en, uk &amp;lt;section end=weather /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:LibsMainWeatherOp.png|right|Result and the operative setup.]]&lt;br /&gt;
The template of acquiring weather data from different weather services in Internet and initially it is only [https://openweathermap.org/ Open Weather]. &lt;br /&gt;
&lt;br /&gt;
The weather data divided on current and forecast with their placing in corresponded objects, where current attributes placed directly in the root and forecast days (the &amp;quot;day&amp;quot; object) and times (the &amp;quot;time&amp;quot; object) inwardly corresponded day according to the current timezone. These data acquired at specified schedule independently for current and forecast, and by default the current ones are performed per hour when forecast ones per day. The data can be accessible by user both as directly and through a specially created widget of the [[Special:MyLanguage/Libs/Main_graphical_elements#weather|main library]].&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| schedCur || Scheduling at CRON of current update || String || Input || Not attribute || Constant || 0 8-20 * * * &lt;br /&gt;
|-&lt;br /&gt;
| schedFC || Scheduling at CRON of forecast update || String || Input || Not attribute || Constant || 0 8 * * *&lt;br /&gt;
|-&lt;br /&gt;
| city || City ID || String || Input || Full access || Variable || 709932&lt;br /&gt;
|-&lt;br /&gt;
| current || Current || Object || Input || Read only || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| forecast || Forecast || Object || Input || Read only || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| this || Parameter || Object || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz || Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainWeatherCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. For this template create and run a [[Special:MyLanguage/Modules/LogicLev|logical controller object]] or use any available with the required scheduling properties.&lt;br /&gt;
:2. Create a [[Special:MyLanguage/Modules/LogicLev|logical parameter object]] and select this template for it. Enable the parameter.&lt;br /&gt;
:3. In the tab &amp;quot;Template configuration&amp;quot; of the logical parameter object you need to set:&lt;br /&gt;
:* ''Scheduling at CRON of current update'' — to value of need scheduling for current data acquiring in the [[Special:MyLanguage/Documents/User_API#CRON|CRON format]], at empty the acquiring will be performed with period of execution the controller object;&lt;br /&gt;
:* ''Scheduling at CRON of forecast update'' — to value of need scheduling for forecast data acquiring in the [[Special:MyLanguage/Documents/User_API#CRON|CRON format]], at empty the acquiring will be performed with period of execution the controller object.&lt;br /&gt;
:4. RESULT: Starting the controller object (where this parameter was created) and when it was not started, we should get the weather data in the attribute ''Current (current)'' and ''Forecast (forecast)'' and after setting your city code in the corresponded attribute. City code you can obtain from the [https://openweathermap.org/ official site] in the URL after searching your city in the site form.&lt;br /&gt;
&lt;br /&gt;
== [[Special:MyLanguage/Modules/WebUser|For WebUser]] ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
&amp;lt;section begin=fileServerHTTP /&amp;gt;&lt;br /&gt;
| {{Anch|fileServerHTTP|&amp;lt;h3&amp;gt;WebUser: HTTP File Server ([[Special:MyLanguage/Libs/Main#fileServerHTTP|fileServerHTTP]])&amp;lt;/h3&amp;gt;}}&lt;br /&gt;
| 1.2 || GPLv2 || * || en, uk &amp;lt;section end=fileServerHTTP /&amp;gt;&lt;br /&gt;
| [[User:RomanSavochenko|Roman Savochenko]]&lt;br /&gt;
|}&lt;br /&gt;
The template for implementing a HTTP File Server directly in OpenSCADA, which is suitable one at missing a full-featured one for functions of servicing file requests from OpenSCADA Web-interfaces.&lt;br /&gt;
&lt;br /&gt;
Currently there implemented only requesting files by the GET request of HTTP. There are supported also chunks and the Partial Content requests in single range and with forcing to this mode at some configured file size.&lt;br /&gt;
&lt;br /&gt;
{{CntHdr|Template IOs}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Identifier !! Name !! Type !! Mode !! Attribute !! Configuration !! Value&lt;br /&gt;
|-&lt;br /&gt;
| rez || Result || String || Input || Not attribute || Variable || 200 OK&lt;br /&gt;
|-&lt;br /&gt;
| HTTPreq || HTTP request || String || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| url || URL || String || Input || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| sender || Sender || String || Input || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| page || WWW-page || String || Output || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| HTTPvars || HTTP variables || Object || Output || Not attribute || Variable ||&lt;br /&gt;
|-&lt;br /&gt;
| baseD || Base directory || String || Input || Not attribute || Constant || /data/share_res/local/Lib/&lt;br /&gt;
|-&lt;br /&gt;
| fSzSolidLim || File size limit for solid reading, else enables the partial content || Real || Input || Not attribute || Constant || 10e6&lt;br /&gt;
|-&lt;br /&gt;
| tr || Transport || Object || Output || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| prt || Protocol || Object || Output || Not attribute || Variable || &lt;br /&gt;
|-&lt;br /&gt;
| f_start || Function start flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_frq || Frequency of calculation of the function, Hz	Real || Input || Not attribute || Variable || 1000&lt;br /&gt;
|-&lt;br /&gt;
| f_stop || Function stop flag || Boolean || Input || Not attribute || Variable || 0&lt;br /&gt;
|-&lt;br /&gt;
| f_err || Function error || String || Input || Not attribute || Variable || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[File:LibsMainFileServerHTTPCfg.png|right|Configuration.]]&lt;br /&gt;
{{CntHdr|Configuring and using}}&lt;br /&gt;
:1. Create a page in the [[Special:MyLanguage/Modules/WebUser|UI.WebUser]] module with some reasonable ''PageId''.&lt;br /&gt;
:2. In the tab &amp;quot;Procedure&amp;quot; you need to set:&lt;br /&gt;
:* Base directory from which the page'll search files.&lt;br /&gt;
:* File size limit for solid reading, else enables the partial content.&lt;br /&gt;
:3. RESULT: Opening URL &amp;quot;&amp;lt;nowiki&amp;gt;http://{OpenSCADAHost}/WebUser/{PageId}/{MyFile}&amp;lt;/nowiki&amp;gt;&amp;quot; in a WebBrowser will open and send you file on FS &amp;quot;{baseD}/{MyFile}&amp;quot;.&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>	</entry>

	</feed>