OpenSCADA

Документи/Реліз 0.9

This page is a translated version of the page Documents/Release 0.9 and the translation is 100% complete.

English • ‎mRussian • ‎Українська

Contents

1 Вступ

Реліз OpenSCADA, відкритої SCADA(Supervisory control and data acquisition) системи, версії 0.9 є стабільним промисловим релізом тривалої підтримки (LTS).

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

Реліз є наступною версією стабільної гілки для якого, протягом тривалого часу, надається технічна підтримка від розробників та забезпечується випуск виправлень у вигляді публічних збірок для основних та стабільних оточень Linux, а також оперативних збірок для власників пакетів технічної підтримки. Життєвий цикл попереднього релізу 0.8.0 LTS припиняється його останнім поновленням, безпосередньо перед першими збірками пакетів 0.9 LTS.

Саме на цій версії відбувся остаточний перехід на схему розробки Work/LTS, тобто, розробка здійснюється у межах робочої версії та на її основі періодично випускаються стабільні релізи, які, своєю чергою та паралельно розробці, оновлюються шляхом зворотнього портування сумісних змін із робочої версії. Ініціюючий перехід відбувся у 2013 році, коли поточною стабільною версію визнано 0.8.0 LTS, а робочою 0.9 Work. Наразі, стабільною версію стає анонсована 0.9 LTS, а робочою 1 Work.

Загалом, нова стабільна версія є результатом шести років роботи з розробки, впровадження у різні рішення, стабілізації та експлуатації OpenSCADA у її робочій гілці, яка наразі випускається поточною стабільною. Весь цей час оновлення для 0.8.0 LTS продовжували випускатися та що буде здійснюватися для анонсованої 0.9 LTS.

Цей документ є узагальненням протоколу змін (ChangeLog), починаючи з нульової ревізії попередньої LTS версії, через її оновлення та закінчуючи поточною. Документ покликано коротко та наочно освітлити нові можливості OpenSCADA. Детально ознайомитися зі змінами можна у файлі "ChangeLog" дистрибутивних пакетів або із першоджерела: http://oscada.org/svn/tags/openscada_0.9/ChangeLog.

1.1 Загальна інформація

Проєкт OpenSCADA засновано Савоченко Романом у 2003 році як вільну реалізація Системи Диспетчерського Контролю та Збору Даних (SCADA) або Людино Машинний Інтерфейс (HMI), на основі її ґрунтовного проєктування протягом 2002 року та досвіду використання і розробки комерційної SCADA-системи до цього.

SCADA або HMI системи загалом призначені та використовуються для здійснення людиною оперативного контролю за роботою складного та відповідального технологічного обладнання та процесів різноманітних виробничих підприємств.

На час анонсу 0.9 LTS, OpenSCADA є розвиненою SCADA/HMI системою, яка доволі широко застосовується як за прямим призначенням, так, завдяки своїй гнучкості, і у багатьох суміжних галузях, та яка із впевненістю може називатися більш загально — динамічна система роботи із даними реального часу.

Номер стабільної версії OpenSCADA менше за одиницю тільки через те, що її метою була заявлена багатоплатформність, досягти якої у запланованому об'ємі планується наступним стабільним релізом з номером 1. Загалом, цілями OpenSCADA є:

1.2 Застосування

Ролі OpenSCADA.

До актуальних галузей застосування, де відоме хоча-б одне впровадження та із коротким переліком яких від учасників проєкту можна ознайомитися за цим посиланням, відносяться:

Із деякими обмеженнями та доробками, значним чином у внутрішньому оточенні користувача, OpenSCADA може використовуватися й у таких галузях:

2 Результати попереднього релізу 0.8.0 LTS

Реліз 0.8.0 LTS випущено у квітні 2012 року та протягом цих шести років він отримав 20 оновлень, якими, загалом, виправлено більше 500 помилок та додано багато вдосконалень, які не порушують сумісності бібліотечних БД та конфігурації.

Конфігурація та бібліотечні БД 0.8.0 LTS були загалом заморожені, через великі несумісні зміни у 0.9 Work, для методів запуску OpenSCADA, та недосконалість розповсюдження бібліотечних БД на момент випуску 0.8.0 LTS. Тому, оновлення та перехід на версію 0.9 LTS буде нетривіальним, хоча у 0.9 LTS передбачено все можливе для спрощення цієї процедури. Оновлення-же 0.9 LTS до запланованої у майбутньому 1 LTS вже не буде таким складним і фактично може перетворитися виключно у формальну зміну версії робочої гілки, оскільки тепер планується оновлення всього, включно з бібліотечними БД.

3 Планові завдання релізу

Розвиток OpenSCADA, після попередньої LTS версії та у межах робочої гілки, переважно здійснювався шляхом глибокої стабілізації та через практичну адаптацію з елементами розширення існуючого функціоналу, націлені на надання стабільного та надійного оточення автоматизації промислових та суміжних завдань, а відтак і не існувало чітко визначеного плану. Та за три роки до цього релізу такий план з'явився і склав наступні завдання, що видно із загального плану розвитку:

Ці завдання виконано та деякі деталі щодо них наведено далі.

4 Загальносистемні властивості

Нова стабільна версія OpenSCADA отримала помітні загальносистемні розширення, набула більшої стабільності у роботі та збільшення продуктивності, а також отримала помітні удосконалення графічного інтерфейсу та оточення довкола неї на кшталт: розширеного налаштування, документації, доступної прямо з програми (offline та online), та яку значним чином переглянуто і актуалізовано.

Основну частину документації проєкту перенесено на нову Wiki, на основі MediaWiki, та значний об'єм цієї частини було відревізовано та перекладено на три мови — Англійська, Українська, mRussian. Для перенесення було створено процедуру конвертації статей з діалекту рушія WackoWiki на MediaWiki, яку було повністю написано на внутрішній мові OpenSCADA та яку повсякчасно використано для перенесення великого об'єму старої Wiki. Формат автономної (offline) документації було змінено зі статичних PDF-файлів, які не оновлювалися після попередньої LTS версії, на HTML-файли, які динамічно генеруються з актуальної бази знань проєкту (Wiki), а також мають актуальні крос-посилання між сторінками та посилання на online-документацію, для виключно зовнішніх матеріалів. Генерація offline-документації також здійснюється спеціально написаною процедурою на внутрішній мові OpenSCADA, що, разом із процедурою конвертації Wiki-діалекту та комплексного тестування релізу OpenSCADA, є яскравою ознакою потужності та поточного рівня розвиненості внутрішньої мови OpenSCADA.

У межах старої Wiki, після випуску 0.8.0 LTS було додано та оновлено деякі документи, а з перенесенням на нову Wiki, окрім ревізії та перекладу основної частини документації, було здійснено загальну уніфікацію її структури з міркувань: багатомовності (Англійської як первинної мови), логічності організації, зручності перекладу та можливості прибрати дублювання статей з офіційним сайтом, які на разі просто використовуються із Wiki. Окремо відзначимо значно-розширені головні документи:

Первинну мову (Англійську) було повністю відревізовано у оригінальних повідомленнях програми та багато у основних статтях документації-Wiki OpenSCADA, що наразі робить OpenSCADA адекватно сприятливою для аудиторії, що не розуміє вихідних мов — Української або mRussian. Та, разом із реалізація у повному обсязі механізму динамічного перекладу, робить можливим побудову на основі OpenSCADA динамічно багатомовних інтерфейсів користувача, що Ви можете, зокрема, побачити на публічно доступному Web-інтерфейсі динамічних моделей ТП: АГЛКС, Котел.

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

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

Живі диски дистрибутиву Linux автоматизації проєкту OpenSCADA.

У процесі здійснення робіт над робочою гілкою, у основі цієї стабільної, було запроваджено формування репозиторіїв пакетів дистрибутивів Linux зі збірками OpenSCADA, які до цього надавалися лише як окремі пакети. Що помітно спростило розгортання OpenSCADA та утримання її актуальною. Потім було створено автоматичний складальник цих пакетів, який наразі нараховує до 100 цілей, та що значно спростило випуск оновлень як для робочої гілки так і для цієї стабільної. Відтак, до цієї LTS версії надаються збірки пакетів для основних оточень Linux та всю історію публічних оновлень буде збережено.

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

Основний сервер OpenSCADA.

Збірки та пакети OpenSCADA супроводжуються низкою відкритого та вільного матеріалу внутрішнього оточення програми, а саме, це: напрацювання шару збору та обробки даних, елементи графічного представлення та цілі-комплексні проєкти моделей ТП. Ці матеріали надаються у вигляді файлів БД SQLite та включають:

Хостинг проєкту загалом та матеріалів 0.9 LTS зокрема, було перенесено на власний сервер проєкту, де додатково було розгорнуто: демонстраційні Web-інтерфейси моделей OpenSCADA, проєкт моніторингу серверу та розумного будинку на основі OpenSCADA та складальник пакетів репозиторію OpenSCADA.

4.1 Внутрішні

Роздільну здатність внутрішніх даних цілого типу оточення OpenSCADA збільшено до 64 розрядів. Загалом-же, внутрішні дані OpenSCADA, з резервуванням значення помилки (EVAL) для кожного, уніфіковано загальними типами: логічне, ціле, реальне, рядок та об'єкт. Що в першу чергу стосується джерел даних.

До ядра OpenSCADA, власного протоколу та всіх вузлів що працюють з віддаленими станціями OpenSCADA; додано можливість "підняття" вузлів OpenSCADA, що знаходяться за іншими вузлами та, як правило, у іншій мережі. Що загалом дозволяє централізовано керувати мережею станцій OpenSCADA на будь-якому рівні ієрархії.

4.2 Вдосконалення та адаптація до різних платформ

OpenSCADA на Android.

Ця версія OpenSCADA набула поглибленої підтримки та здібності до адаптації до різноманітних платформ. Це переважно сталося завдяки адаптації до роботи на програмній платформі Android та відновлення збірки і роботи з ucLibC, та що планується використати у подальшій адаптації до роботи на програмних платформах QNX та MS Windows.

Raspberry Pi.
Orange Pi.

Роботу на одноплатних ПК було розширено платами Raspberry Pi та Orange Pi.

Nokia N9.

Підтримку Linux смартфорнів Nokia доповнено останнім, заснованим на MeeGo 1.2, це — Nokia N9. Або це було оновлення підтримки Nokia N950.

Окрім безпосередньої роботи (нативно) на різних платформах, було значно розширено Web-інтерфейс, який наразі реалізує всі загальні можливості концепції середовища візуалізації та управління (СВУ).

4.3 Оптимізація, стабілізація та продуктивність

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

Глибокої та всебічної стабілізації притерпіли майже всі модулі OpenSCADA та багато було оптимізовано, з яких особливо треба відзначити:

Резервування OpenSCADA станцій.

Надійність резервованої станції у масштабі комплексного рішення, точніше збереження даних історії, було вдосконалено розширенням механізму резервування, який потенційно передбачає резервування будь-якої підсистеми та реалізує наразі резервування підсистем "Збір даних" та "Архіви-Історія".

Та, для програми загалом, було виконано низку формальних всебічних тестів, які було попередньо розширено у внутрішній процедурі комплексного тестування релізу OpenSCADA. За підсумком цих тестів було виявлено декілька помилок, які виправлено.

4.4 Збір даних

Користувацька об'єктна модель ядра OpenSCADA.

Враховуючи ключову роль збору даних у програмах такого роду, ця функція, у особі підсистеми "Збір даних" та її модулів, отримала значні вдосконалення, з яких особливо треба відзначити: зміщення акценту у розширені підтримуваних джерел даних з реалізації окремих модулів підсистеми "Збір даних" на системній мові "C/C++", на їх реалізацію у оточені OpenSCADA та на її внутрішній мові — логічний рівень OpenSCADA. Тобто, на логічному рівні OpenSCADA, може та реалізується все, що: для доступу до даних використовує мережу, не потребує використання специфічних бібліотек та функцій та не є дуже складним. Наразі, таким чином реалізовано:

Низькорівневі пристрої підключені до Raspberry Pi.
OpenSCADA на LCD екрані Raspberry Pi.

Враховуючи збільшення ролі логічного рівня OpenSCADA, зросли і вимоги до гнучкості моделі даних джерела даних та загалом, що було задоволено:

Внутрішня мова програмування OpenSCADA набула значних удосконалень та, наразі, задовольняє всім вимогам галузей застосування OpenSCADA. Багато з цих удосконалень потрапили до попередньої версії 0.8.0 LTS, та низка не могла туди потрапити через порушення зворотньої сумісності або недостатньої стабільності на той час. З цих, суттєвих вдосконалень, треба ще раз відзначити: збільшення роздільної здатності даних внутрішнього оточення OpenSCADA цілого типу до 64 розрядів та збереження контексту виконання внутрішніх процедур.

4.5 Графічне оточення

Діалог обрання проєктів OpenSCADA.
Користувацький контроль вигляду інтерфейсу Qt.

Загалом, графічне оточення отримало значний розвиток та головним з них стало розширення модуля запуску Qt-інтерфейсу, як підґрунтя для решти локальних. В першу чергу, цей модуль та ядро OpenSCADA адаптовано для можливості запуску бібліотеки графічного середовища Qt у основному потоці програми, що виключило багато проблем, пов'язаних із виконанням у неголовному потоці, а також забезпечено роботу з версією 5 цієї бібліотеки. По друге, цей модуль взяв на себе роль інтерфейсу обрання проєктів OpenSCADA при її запуску та перемиканні, а також створення нових. І по трете, через його первинність до запуску Qt, він отримав функцію керування виглядом програми незалежно від графічного оточення та можливість його запуску-закриття у системний лоток. Що загалом уможливило налаштування OpenSCADA під персональні вимоги користувача та адаптовувати її до дуже специфічних оточень на кшталт Android.

Помітних удосконалень отримали модулі конфігурації Qt та Web, де особливо треба відзначити:

OpenSCADA на Web.

Помітних вдосконалень також отримало середовище візуалізації та управління (СВУ), у складі всіх його модулів:

Всі Web-модулі, загалом, набули можливість зміни вигляду за посередництва тем, через загальносистемні інтерфейси модуля протоколу HTTP та його механізми обробки запитів і формування відповідей. Також, всі вони отримали підтримку динамічного перекладу інтерфейсу, що особливо актуально для багатокористувацьких Web-інтерфейсів та з чим Ви можете ознайомитися на демонстраційних Web-інтерфейсах моделей OpenSCADA: АГЛКС, Котел. Додано також механізм розподілу доступу до сторінок, який, зокрема, дозволяє розмежувати доступ до Web-модулів загалом.

5 Нові та значно оновлені модулі

У новій версії було додано нові модулі та значним чином оновлено низку чинних:

6 Висновки

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

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

Предадаптація OpenSCADA до роботи на QNX.

У появі нової промислової версії OpenSCADA 0.9 LTS прийняли участь:

Подальші зусилля розробки буде спрямовано на:

7 Оновлення

7.1 [01.01.7532/01.03.2024] СЬОМЕ оновлення

Це оновлення релізу 0.9 LTS виправляє біля 60 помилок та додає ДУЖЕ БАГАТО удосконалень із декількома значними-концептуальними, з якими цілком можна ознайомитися у протоколі змін оновлення.

At.png Важливі дії користувача за оновленням

=> вручну переприв'язти усі автоматично створені джерела, що змінилися, якщо використано Автоматичний режим створення
=> вручну замінити усі статичні використання атрибуту "focus", на кшталт if(alarms_focus) alUnSel = 10; у LibsDB.vcaBase.wlb_Main.alarmsSt, на код if(this.alarms.attr("focus")) alUnSel = 10;

Linux Дистрибутив Автоматизації проєкту OpenSCADA

Основні WWW-ресурси, документація проєкту та підпроєктів

Нові та значно оновлені частини

(Уніфікація складання із адаптацією ..., Перегляд і уніфікація підсистеми Транспортів ..., Контроль великого споживанням пам'яті), Переклад Повідомлень — виправлення концептуальних змін попереднього оновлення)
(Перегляд і уніфікація підсистеми Транспортів ...)
(Уніфікація концепції типів параметрів)
(Цілковитий перегляд і розширення щодо ...)
(Розширення підтримкою ініціативних підключень, адаптація до OpenSSL 1.1 і більше)
(Значне розширення і виправлення у реалізації зовнішніх підключень та більше)
(Уніфікація складання із адаптацією до Qt6, QtWebEngine, QtMultimediaEngine, ...)
(Уніфікація складання із адаптацією до Qt6, QtWebEngine, QtMultimediaEngine, ...)
(Уніфікація складання із адаптацією до Qt6, QtWebEngine, QtMultimediaEngine, ...)
(Доповнення багатьма шаблонами із документуванням)
(Доповнення декількома шаблонами із документуванням)
(Доповнення декількома віджетами із документуванням)
  • storeHouse: 1.3 => 1.4
  • grpGraph, grpGraph10: 1.5 => 1.6
  • ElViewGraph: 1.4 => 1.5

КОНЦЕПТУАЛЬНЕ > Уніфікація складання із адаптацією до Debian 12, Qt6, QtWebEngine, QtMultimediaEngine, OpenSSL3, MIPS

КОНЦЕПТУАЛЬНЕ > Перегляд і уніфікація підсистеми Транспортів у керуванні додатковими параметрами та розширення використання параметрів часу підключення щодо реєстрації конфігураційних параметрів зовнішніх джерел

КОНЦЕПТУАЛЬНЕ > Контроль великого споживання пам'яті

КОНЦЕПТУАЛЬНЕ > Переклад Повідомлень (виправлення концептуальних змін попередніх оновлень)

OpenSCADA бібліотеки та проєкти

API
!!!!:Зміни:

Доповнення:

Система

Збір Даних

Архіви-Історія

Транспорти

Транспортні Протоколи

Інтерфейс Користувача

7.1.1 Сервісні оновлення

7.2 [01.01.7531/01.03.2023] ШОСТЕ оновлення

Це оновлення релізу 0.9 LTS виправляє біля 70 помилок та додає БАГАТО удосконалень із декількома значними-концептуальними, з якими цілком можна ознайомитися у протоколі змін оновлення.

Linux Дистрибутив Автоматизації проєкту OpenSCADA

Основні WWW-ресурси, документація проєкту та підпроєктів

Нові та значно оновлені частини

(Оптимізація продуктивності інтерфейсу СВУ, Уніфікація асоційованих вихідних транспортів із вхідним ТА загального підключення вихідного транспорту, Переклад Повідомлень — виправлення концептуальних змін попереднього оновлення)
(Уніфікація асоційованих вихідних транспортів із вхідним ТА загального підключення вихідного транспорту)
(Уніфікація асоційованих вихідних транспортів із вхідним ТА загального підключення вихідного транспорту)
(Оптимізація продуктивності інтерфейсу СВУ)

КОНЦЕПТУАЛЬНЕ > Оптимізація продуктивності інтерфейсу СВУ

КОНЦЕПТУАЛЬНЕ > Уніфікація асоційованих вихідних транспортів із вхідним ТА загального підключення вихідного транспорту

КОНЦЕПТУАЛЬНЕ > Переклад Повідомлень (виправлення концептуальних змін попереднього оновлення)

OpenSCADA бібліотеки та проєкти

API
!!!!:Зміни:

Доповнення:

Система

Бази Даних

Збір Даних

Архіви-Історія

Транспорти

Транспортні Протоколи

Інтерфейс Користувача

7.2.1 Сервісні оновлення

7.3 [22.12.7529/22.02.2022] П'ЯТЕ оновлення

Це оновлення релізу 0.9 LTS виправляє біля 50 помилок та додає БАГАТО удосконалень із декількома значними-концептуальними, з якими цілком можна ознайомитися у протоколі змін оновлення.

At.png Важливі дії розробника модулів OpenSCADA за оновленням

=> обов'язково переглянути використання функцій міток, оскільки компілятор може не повідомляти про помилки у функціях на кшталт printf(), TSYS::strMess(), але цей модуль буде аварійно завершуватися.

Linux Дистрибутив Автоматизації проєкту OpenSCADA

Основні WWW-ресурси проєкту — Сайт

Нові та значно оновлені частини

(Загальна Концепція Зберігання Даних, Переклад Повідомлень, Підрівні Повідомлень {Main}[0...9] та Уніфікація Передачі Повідомлень Користувача)
(Значна Уніфікація Загального SQL-коду у Ядрі OpenSCADA)
(резервування та транспортування повідомлень, імплементація асинхронного режиму запису)
(вказання сертифікатів та ключа безпосередньо із зовнішнього файлу із перезапуском вхідних транспортів за його зміни)
(завершення реалізації отримання змін у режимі виконання за циклами тактування)
(раннє відкриття відновлених та визначених сторінок у процедурі ініціалізації)

КОНЦЕПТУАЛЬНЕ > Загальна Концепція Зберігання Даних

КОНФІГУРАЦІЙНИЙ ФАЙЛ

ПЕРЕРОБЛЕННЯ ПРАПОРЦІВ TCntrNode

КОНЦЕПТУАЛЬНЕ > Значна Уніфікація Загального SQL-коду у Ядрі OpenSCADA

КОНЦЕПТУАЛЬНЕ > Переклад Повідомлень
Об'єкт TFunction::IO доповнено прапорцем IO::TransltText прямого маркування перекладуваного ВВ Рядку:

Розширення мовою оточення виконання користувацьких функцій об'єкту OpenSCADA, для функцій на кшталт strftime():

TUIS,UI.{QTCfg,Vision}: docGet() розширено мовою у другому рядку.
FIX: Розширення вкладки "Переклади" та виправлення щодо:

FIX: Розширення Перекладу Повідомлень Даних у трьох режимах: ОДНОМОВНИЙ, БАГАТОМОВНИЙ та БАГАТОМОВНИЙ-ДИНАМІЧНИЙ:

ПЕРВИННІ ОБ'ЄКТИ ПРОЄКТУ
ОКРЕМІ ПОВІДОМЛЕННЯ - "Trs"
СИСТЕМНІ ПОВІДОМЛЕННЯ

КОНЦЕПТУАЛЬНЕ > Підрівні Повідомлень {Main}[0...9] та Уніфікація Передачі Повідомлень Користувача

OpenSCADA бібліотеки та проєкти

API
!!!!:Зміни:

Доповнення:

Система

БД

Збір Даних

Транспорти

Транспортні Протоколи

Інтерфейс Користувача

7.3.1 Сервісні оновлення

7.4 [14.04.7529/14.06.2021] ЧЕТВЕРТЕ оновлення

Це оновлення релізу 0.9 LTS виправляє біля 45 помилок та додає деякі удосконалення, які цілком ви можете почитати у протоколі змін оновлення.

At.png Важливі дії користувача за оновленням

=> видаліть вручну загальне конфігураційне поле "WorkDir" якщо воно з'явилося там помилково та ви маєте проблеми використання тек чужих проектів цим проектом.

Нові та значно оновлені частини

(ревізія механізму перекладів)
(доповнено реалізацією сервісу Publish, підтримкою шматків (CHUNKS) на клієнтській частині Збору Даних та загальним переглядом коду у цьому процесі)
(загальний перегляд та переробка таблиць)
(загальний перегляд та переробка таблиць в Qt загалом та вигляду Таблиця примітиву FormEl СВУ)
(загальний перегляд та переробка таблиць вигляду Таблиця примітиву FormEl СВУ)

OpenSCADA бібліотеки та проекти

API
!!!!:Зміни:

Доповнення:

Система

  • обмеження часу формування таблиці за prmInterf_TM (7 секунд);
  • конфігураційного поля пропуску кількості верхніх повідомлень;
  • встановлення перекладу лише до фільтрованих джерел;
  • перевірка вмісту на збіг лише для фільтрованих джерел;
  • пропуск помилок відсутності джерел.
  • Функцію перекладу TMess::translSet() попереджено від розповсюдження групових повідомлень, змінених не із менеджеру перекладу.

Збір Даних

КЛІЄНТ:
  • додання атрибутів (елементів моніторингу) пересунено із attrPrc() безпосередньо до enable() та яка запускається при запуску об'єкту контролеру
  • ... та опрацювання елементів покращено оновленням опису, прапорців та зв'язування;
  • збір даних уніфіковано опрацюванням у функції параметру upVal()
  • ... та запиту значень функцією об'єкту контролеру getValMIt() із підтримкою Масивів
  • ... чим впритул приготовано до вбудування логічного типу параметрів;
  • об'єкти параметрів Збору Даних активовано для включення інших параметрів;
  • встановлення та видалення EVAL до всіх атрибутів перевірено у всіх режимах;
  • структурні змінні, у оглядачі обрання DAQ-параметру, дозволені до обрання їх елементів окремо;
  • розбір переліку змінних DAQ-параметрів встановлено у цілковитий розбір із пропуском порожніх рядків;
  • об'єкт DAQ-контролеру доповнено закриттям сеансу та безпечного каналу при його зупинці;
  • загальний статус об'єкту контролеру доповнено деталізованою інформацією щодо використаного каналу безпеки, сеансу, підписки та опрацьованими елементами моніторингу;
  • блокування запиту перейменовано у resOPC.
СЕРВЕР:
  • об'єкт OPC-UA Серверу доповнено вкладкою загального статусу серверу із інформацією щодо активності каналів безпеки;
  • об'єкт Вузла EndPoint доповнено загальним статусом із інформацією щодо активності сеансів та підписок, а також періодичністю і часом виконання завдання підписок.
БІБЛІОТЕКА:
  • уніфіковано у визначені типового значення часу життя каналу безпеки, який встановлено у 300000 мс;
  • типовий LifeTimeCounter підписок встановлено у 2400;
  • об'єкт NodeId доповнено функцією прямого порівняння operator==();
  • функцію XML_N::childClear() доповнено результатом повернення того самого об'єкту XML_N для поєднання;
  • функцію curTime() доповнено аргументом визначення джерела годинника із використанням функції clock_gettime();
  • короткі функції доповнено str2int() та str2uint();
  • деякі поля перейменовано: publInterv у publInterval, cntrLifeTime у lifetimeCnt, cntrKeepAlive у maxKeepAliveCnt, maxNotPerPubl у maxNtfPerPubl, en у publEn;
  • виправлення слова "POOL" на "POLL".
БІБЛІОТЕКА_КЛІЄНТ:
  • Client::reqService() доповнено мета-командою "CloseALL" закриття поточного сеансу та каналу безпеки;
  • функцію опрацювання клієнтських сервісів protIO() адаптовано до роботи у асинхронному режимі (не запит);
  • функцію Client::messIO() розширено аргументом таймауту із визначенням також режиму запиту;
  • запис до каналу та читання із нього відокремлено у обробці MSG пакетів;
  • адаптація повідомлень безпеки до роботи зі змішаним вхідним буфером;
  • переміщення основного сервісного запиту "OPN" під опрацювання повідомлень через надсилання оновлень всередині Publish активності.
  • реалізовано сервіс Publish на боці клієнту:
  • об'єкт "Client" доповнено реалізацією підоб'єкту "Subscr" (але зберігається у Client::SClntSess) із функціями: activate(), monitoredItemAdd() та monitoredItemDel();
  • об'єкт "Client" доповнено функцією poll() із:
  • уніфікацією читання значень у обох режимах Read та Publish;
  • перевіркою втрати всіх Publish запитів протягом OpcUa_ClntPublishResentCntr(2) спроб-часу збереження живим;
  • відновлення пулу Publish.
  • об'єкт Client::Subscr::MonitItem додано як представник елементів моніторингу із доступом з під загального блокування клієнтських ресурсів;
  • сервісні запити доповнено реалізацією, включно із опрацюванням відповідей: CreateSubscription, DeleteSubscriptions, CreateMonitoredItems, Publish, Poll;
  • реалізовано та перевірено у підтримці безпечних політик за Publish;
  • цільовий пул Publish запитів на підписку встановлено у віртуальній функції publishReqsPool() із типовим значенням 2.
  • доповнено реалізацією шматків (CHUNKS) як у запитах, так і відповідях;
  • цілковито відревізовано та очищено загальну функцію запиту reqService() від дублікатів аргументів та параметрів:
  • доповнено відновленням сеансів при перепідключенні каналу безпеки;
  • уніфіковано очищення поточного сеансу та каналу безпеки.
  • об'єкт клієнту доповнено загальним блокуванням ресурсів mtxData;
  • властивість повідомлення "timeoutHint" встановлено у 0 для всіх повідомлень;
  • запит Read повернуто до "плаского" запиту із обмеженням лише у CHUNKS;
  • помилку OpcUa_BadSecureChannelIdInvalid додано до очищення каналу безпеки;
  • Client::SClntSess::{sessOpen,lstMessReq} перейменовано у {secChnlOpenTm,secLstMessReqTm}
  • ... та попереджено від очищення і відновлення сеансу та каналу безпеки;
  • доповнено налагоджувальними повідомленнями помилок запитів.
БІБЛІОТЕКА_СЕРВЕР:
  • серверну частину адаптовано до роботи із UAExpert 1.5 щодо: встановлення атрибуту AId_Descr DAQ-значення у тип OpcUa_LocalizedText, додання декларації цілочисельного типу OpcUa_IntAuto та OpcUa_UIntAuto;
  • опрацювання підписок повернуто до їх опрацювання у окремому завдання та функції subScrCycle() щодо:
  • правильного рахування всіх таймаутів для вимкнення;
  • опрацювання періодичності підписки та публікації;
  • перевірки стану пов'язаних сеансів та каналів безпеки щодо закриття підписок.
  • але публікацію залишено на опрацювання у активності вхідного каналу та функції Server::EP::publishCall() із попередженням опрацювання Publish для помилкових та чужих Підписок, через перевірку inPrtId, sesTokId та isSecCnlAct;
  • уніфікація Сеансу щодо: пов'язання сеансів із каналами безпеки переключено на один замість масиву, перевірку сеансу всіх повідомлень доповнено попередженням використання чужих підключень;
  • не останні шматки пакету переключено на відправку прямо, щоб не додавати до одного TCP-пакету;
  • EP::mtxData блокування переключено у PTHREAD_MUTEX_RECURSIVE;
  • канали безпеки обмежено кількістю OpcUa_SecCnlLimit(10) та чергу публікацій кількістю OpcUa_ServerMaxPublishQueue(10);
  • EP::secSize() перейменовано у EP::secN() та додано EP::sessN(), EP::subscrN() і chnlList();
  • Server.SecCnl.{TokenId,TokenIdPrev} перейменовано у Server.SecCnl.{tokenId,tokenIdPrev}.

Архіви-Історія

Транспорти

Інтерфейс Користувача

  • QTStarter,QTCfg,Vision: Загальний бібліотечний клас TableDelegate значним чином покращено у роботі на QTCfg та Vision:
  • доповнено власними користувацькими ролями SelectRole, TextLimRole та OneLineString;
  • відображення клітинок доповнено фоновим кольором через читанням-застосування загальних ролей;
  • чисельні типи (ціле та реальне) доповнено примусовим центруванням;
  • строкові типи доповнено опціями вирівнювання та завертанням слів із ролі Qt::TextAlignmentRole;
  • доповнено підтримкою візуального обмеження довгих текстів власною роллю TextLimRole та типове значення встановлено у 300 символів через додаткове перевизначення sizeHint().
  • FIX: Вигляд "Таблиця" примітиву "FormEl":
  • VCAEngine,QTStarter,Vision,WebVision: Доповнено новим типом клітинки 't'-текст, переважно для можливості підтвердження редагування типу 's'-рядок натисканням Enter.
  • VCAEngine,Vision,WebVision: Доповнено опцією "prec" простору стовпчика, рядка та клітинки для контролю точності реальних значень; та реалізацією атрибуту "align" стовпчика та клітинки.
  • WebVision,Vision: Доповнено перемиканням таблиць у запобігання подвійному зберіганню вихідного вмісту за його розміру більш ніж 10000.
  • FIX:Vision: Використання загального делегату таблиці із можливістю багаторядкового редагування.
  • Вдосконалено відображення стовпців, рядків та клітинок при оновлені та загалом:
  • обмеженням візуального розміру вмісту клітинки 300 символами та висоти рядків у 70% від загального розміру таблиці;
  • більш точним вирівнюванням ширини стовпців;
  • підлаштуванням у режимі розробки, а також при видимості вертикального заголовку;
  • щільним заповненням таблиці через врахування розміру видимої смуги вертикального гортання;
  • підлаштуванням лише після цілковитої зміни розміру таблиці, чим також дозволивши ручну зміну стовпців та для надання такого-правильного підлаштування завжди.
  • Реалізовано "легке" опрацювання зміни ширини та оновлення:
  • "легке" редагування без перепідлаштування стовпців за кожного оновлення, лише за: появи першого рядка, зміни кількості стовпців та зміни заголовку стовпця, зміни шрифту та зміни розміру;
  • застосування фіксованої ширини стовпця та вирахування висоти рядків із обмеженнями незалежно від значення загального атрибуту "colsWdthFit";
  • встановлення значення, рання зміна розміру та підлаштування таблиці, перенесено у простір наявності вмісту таблиці та після сортування.
  • Функцію експорту під час виконання доповнено експортом виду Таблиця примітиву "FormEl" у CSV.
  • WebVision:
  • Вдосконалено відображення стовпців, рядків та клітинок при оновлені та загалом:
  • реалізацією режиму не підлаштування (відсутність атрибуту "colsWdthFit"), з використанням режиму автоматичного розміщення таблиці для обчислення фіксованої ширини та наступного перемикання у фіксований режим розміщення таблиці;
  • багаторядковим редагуванням тексту клітинок у повну ширину та висоту клітинки, із застосуванням редагування за Ctrl+Enter;
  • вигляд строкових клітинок обмежено 300 символами;
  • відображення логічних клітинок зображенням стану TRUE;
  • клітинки таблиці, у режимі редагування, дозволено до виклику контекстного меню системи-браузеру.
  • Реалізовано "легке" опрацювання зміни ширини та оновлення:
  • виявляння змін таблиці та оновлення перемкнуто у режим не зберігання вихідного вмісту двічі;
  • попереджено від цілковитого оновлення за модифікації атрибуту "value".
  • Доповнено підтримкою сортування за стовпцями. Встановлення у сортування за першим видимим стовпчиком при ввімкнені сортування.
  • WebCfgD: Розширення таблиці щодо:
  • великий видимий вміст тексту обмежено 300 символами;
  • строковий тип дозволено до багаторядкового редагування використовуючи TEXTAREA;
  • тип даних "bool" відображено зображенням, не "On" або "Off";
  • центрування вмісту логічного, чисел, часу та обрання;
  • спрощення редагування вмісту таблиці для типів час, число та рядок, через видалення кнопок застосування та прокручування.
  • Доповнено, та увімкнено як опція складання, щодо механізму маркування змін атрибутів без дублювань, через запит попередніх-завершених циклів, чим також запобігаючи необхідності виявлення дублікатів у візуалізаторах та зберігання великого початкового вмісту.
  • Виконання проектів покращено при зміні батька опрацьовуваних сторінок на льоту.
  • Виконання завдань сеансів доповнено раннім виконанням, за наявності подій.
  • FIX: СВУ-стилі виправлено при доступі до порожніх полів, які не завантажуються.
  • Сторінку "Діагностика" СВУ-проектів адаптовано до відображення повідомлень рівня налагоджування при ввімкнені налагодження.
  • Інформацію виконання сеансу проекту доповнено реальною періодичністю, отриманою від завдання, яку також використано при формуванні значення атрибуту "f_frq" процедури.
  • Клавіатурний фокус та події значним чином покращено щодо гарантування роботи цього загалом через:
  • встановлення атрибуту "tabindex" для всіх активних віджетів та специфічно для FormEl — безпосередньо у елементи форми;
  • доповнення обчисленням числа "tabindex" як унікальний для цілого інтерфейсу, чим запобігаючи стрибкам фокусу;
  • опрацювання події onfocus щодо встановлення власного фокусу у setFocus();
  • вигляд Кнопка примітиву FormEl доповнено опрацюванням клавіатурних подій натискання та відпускання за клавішами Space та Enter;
  • примітив Діаграма спрощено через видалення зайвого елементу тегу A;
  • FIX: Виправлено перемикання фокусу при клацанні на кнопках із зображеннями.
  • FIX: Виправлено перевірку видалених віджетів для всіх та головної сторінки.
  • FIX: Виправлено нарешті множення зайвих DIV елементів при зміні сторінки у контейнері сторінок.
  • FIX: Запобігання зациклюванню за наявності Web-сеансу, але відсутності відповідного СВУ-сеансу.
  • перенесення всіх дій внутрішніх інструментів до реалізації кнопками та розмір панелі інструментів встановлено із 25 в 30 пікселів;
  • видалення фільтрації-зміни розміру зображень кнопок інструментів на боці серверу;
  • встановлення відстані між іконкою сторінки та заголовком у 10 пікселів;
  • цілковитого оновлення контрольованої сторінки після зміни розміру вікна;
  • розширення поля загального редагування тексту TEXTAREA застосуванням та скасуванням із клавіатури;
  • пов'язання функції оновлення хостів до подвійного клацання мишею на загальному просторі області дерева;
  • FIX: виправлення функції оновлення хостів щодо виявлення елементів дубльованих хостів;
  • FIX: примусового позначення актуальних-обраних елементів у дереві контролю після його розгортання;
  • видалення nodeText() та setNodeText() через безпосереднє використання "innerText" та "textContent".

7.4.1 Сервісні оновлення

7.5 [20.10.7528/20.12.2020] ТРЕТЕ оновлення

Це оновлення релізу 0.9 LTS виправляє біля 40 помилок та додає деякі удосконалення, які цілком ви можете почитати у протоколі змін оновлення.

Linux Дистрибутив Автоматизації проєкту OpenSCADA

OpenSCADA бібліотеки та проєкти

API
!!!!:Зміни:

Доповнення:

Система

Збір Даних

Архіви-Історія

Транспорти

Транспортні Протоколи

Інтерфейс Користувача

7.5.1 Сервісні оновлення

7.6 [17.06.7528/17.08.2020] ДРУГЕ оновлення

Це оновлення релізу 0.9 LTS виправляє біля 60 помилок та додає деякі удосконалення, які цілком ви можете почитати у протоколі змін оновлення.

Linux Дистрибутив Автоматизації проекту OpenSCADA

OpenSCADA бібліотеки та проекти

API
!!!!:Зміни:

Доповнення:

SYS

БД

Збір Даних

Транспорти

Транспортні Протоколи

Інтерфейс Користувача

7.6.1 Сервісні оновлення

7.7 [08.02.7528/08.04.2020] ПЕРШЕ оновлення

Оновлення здійснено за 1.5 роки від релізу 0.9 LTS, відтак воно варте 10 оновлень, оскільки ним виправлено близько 250 помилок та додано багато вдосконалень, які цілком ви можете почитати у протоколі змін оновлення.

Ключовими властивостями оновлення є:

7.7.1 OpenSCADA бібліотеки та проекти

7.7.2 API

!!!!:Зміни:

Доповнення:

7.7.3 Система

7.7.4 БД

7.7.5 Збір Даних

7.7.6 Архіви-Історія

7.7.7 Транспорти

7.7.8 Транспортні Протоколи

7.7.9 Інтерфейс Користувача

7.7.10 Спеціальні

7.7.11 Сервісні оновлення

8 Посилання

Documents/Release_0.9/uk - GFDLNovember 2024OpenSCADA 1+r2996