Реліз відкритої SCADA(Supervisory control and data acquisition) системи версії 0.6.1 є першим стабілізуючим релізом гілки 0.6.0. У межах цієї версії виконана велика робота по стабілізації та адаптації до практичних завдань. Як результат, було пройдено шлях до формування базової бібліотеки шаблонів традиційної SCADA системи та побудовано демонстраційний інтерфейс користувача. Демонстраційний інтерфейс містить кадр з повноцінною мнемосхемою, шаблоні кадри груп графіків, груп контурів, та оглядових кадрів. Результатом виконаної роботи стало те, що завдання побудови складних інтерфейсів користувача SCADA-системи стало здійсненим.
Цей документ є обробкою(компіляцією) документа <ChangeLog> системи OpenSCADA версії 0.6.1, який призначено коротко та наочно освітлити нові можливості системи OpenSCADA. Детально ознайомитися зі змінами у системі OpenSCADA можна у файлі ChangeLog з дистрибутиву системи або тут: http://diyaorg.dp.ua/oscadawiki/Works/ChangeLog (RU).
Ключовими особливостями даної версії є:
Підвищення стабільності, стійкості та продуктивності системи.
Загальносистемні розширення та розширення користувальницького API.
Перегляд та вдосконалення механізму побудови графіків.
Вдосконалення та стабілізація СВК.
Розширення переліку файлів ресурсів та збіркової системи.
Удосконалення частини модулів підсистеми "Збір даних".
Удосконалення частини модулів підсистеми "БД".
Нові та оновлені модулі:
Archive.FSArch (0.9.6) -- Стабілізація.
Archive.DBArch (0.6.0) -- Оптимізація та стабілізація.
DB.MySQL (1.3.1) -- Стабілізація.
DB.SQLite (1.3.1) -- Додана можливість керування кількістю запитів у транзакції.
DB.FireBird (0.7.0) -- Додана підтримка поєднання транзакцій для команд модифікації.
DAQ.BlockCalc (1.0.1) -- Змінено механізм посилання параметрів контролерів на атрибути блоків.
DAQ.DiamondBoards (1.0.1) -- Стабілізація.
DAQ.JavaLikeCalc (1.0.1) -- Стабілізація та додання підтримки спеціальних символів ('\n' и '\t').
DAQ.SNMP (0.3.1) -- Стабілізація.
DAQ.ModBus (0.8.0) -- Додання підтримки протоколів RTU та ASCII, а також блочного механізму збору.
DAQ.Transporter (0.3.1) -- Стабілізація.
DAQ.System (1.6.0) -- Додання збору даних сенсорів за допомогою бібліотеки libsensors. Стабілізація.
Transport.Sockets (1.3.1) -- Стабілізація.
Protocol.HTTP (1.3.1) -- Стабілізація.
Special.FLibComplex1 (1.0.1) -- Стабілізація.
Special.FLibSYS (0.6.0) -- Додання функцій для роботи зі строками.
UI.QTCfg (1.5.1) -- Невеликі покращення.
UI.VCAEngine (0.6.0) -- Значна стабілізація та розширення функціоналу.
UI.Vision (0.6.0) -- Значна стабілізація та розширення функціоналу.
UI.WebVision (0.3.0) -- Стабілізація та розширення функціоналу.
1. Підвищення стабільності, стійкості та продуктивності системи.
У процесі робіт над даною версією, а також її практичною адаптацією, було виявлено та виправлено порядку сотні помилок. Біля половини з них було виявлено завдяки наполегливому вивченню та адаптації Попковим Олексієм. Значну кількість помилок було виявлено у компонентах середовища візуалізації та керування. Немало зусиль було направлено і на підвищення продуктивності системи в цілому та середовища візуалізації та керування (СВК) зокрема.
2. Загальносистемні розширення та розширення користувальницького API.
У ядро системи OpenSCADA були внесені деякі зміни розширюючого характеру. Перелічимо їх:
Для розширення функціональних характеристик стандартного атрибуту значення, підсистеми "Збір даних", тип його резервного параметра було змінено з цілого в строку. Це дозволило модулям підсистеми "Збір даних" зберігати більш складні дані прямо з атрибутом, спрощуючи внутрішню обробку.
З метою надання механізму уніфікованого видалення вузлів з динамічного дерева об'єктів системи OpenSCADA, за його повним шляхом, було додано функцію TCntrNode::nodeDel().
Для розширення можливостей API користувальницького програмування, функціями роботи зі строками, у бібіліотеку системного API користувальницького програмування були додані щість функцій роботи зі строками: strSize(), strSubstr(), strInsert(), strReplace(), strParse(), strParsePath().
Додана системна функція округлення реальних значень до вказаного знаку після коми TSYS::realRound().
3. Перегляд та удосконалення механізму побудови графіків.
З метою підвищення читабельності, а також у зв'язку з виявленням низки проблем у механізмах побудови графіків різних вузлів системи OpenSCADA була виконана уніфікація механізму побудови графіків для всіх механізмів, а саме: у будівникові графіків значень підсистеми "Архіви" (QTCfg), візуалізаторі трендів примітиву "Diagram" модулів Vision та WebVision.
Під час цих заходів будівник графіків значень підсистеми "Архіви" було доповнено наступними можливостями:
визначення розмірів вікна побудови графіків;
визначення потрібної шкали значень параметру;
обмеження верхньої межі часу поточним часом, а також слідкування за поточним часом.
4. Удосконалення та стабілізація середовища візуалізації та керування (СВК).
Найбільш значущі зміни були виконані у межах середовища візуалізації та керування (СВК), а саме у модулях рушія СВК - VCAEngine, візуалізаторі на основі бібліотеки QT - Vision та візуалізаторі на основі Web-технологій - WebVision. Внесені зміни було спрямовано на стабілізацію та покращення користувальницьких властивостей СВК.
Розглянемо детальніше загальні зміни модулів СВК:
У процесі практичної адаптації були виявлені серйозні обмеження у механізмі обробки повідомлень інтерфейсу. Ці обмеження не дозволяли створювати сценарії обробки повідомлень вкладених віджетів. Обмеження було усунено шляхом додання адреси джерела повідомлення у саме повідомлення.
З метою надання можливості ідентифікації якості вхідних значень, а також наявності зв'язків, а у подальшому для можливості аналізу цих значень у скриптах інтерфейсу, була реалізована повна підтримка значення помилки - EVAL. Це дозволило приймати рішення про приховування або відображення елементів інтерфейсу в універсальних кадрах/образах параметрів підсистеми "Збір даних", а також у кадрах іншого призначення.
Змінено механізм встановлення заповнення замкненого контуру примітивів "ElFigure". Тепер заповнення вказується координатами точки в середині замкненого контуру. Виконано з метою уніфікації механізмів представлення для QT та WEB-технологій.
З метою приведення текстів на сторінках СВК до єдиного вигляду на різних візуалізаторах була додана можливість встановлення шрифту текстів примітиву "FormEl", а одиниця виміру розміру шрифту всіх елементів вказується у пікселах.
Додана підтримка механізму динамічної лінковки сторінок. Цей механізм дуже зручний при формування сторінок, для обслуговування багатьох параметрів підсистеми "Збір даних" або для доповнення групи типових сторінок одним кадром у дереві проекту.
Уніфіковано механізм завантаження Mime-даних з БД. Також, додано функцію зберігання Mime-даних у БД за проектом.
Додано підтримку користувальницьких атрибутів у вкладених, на кадр, віджетах.
Безпосередньо у модуль візуалізації на бібліотеці QT (Vision) були внесені наступні значні зміни:
Для розширення спектру підтримуваних стилів бордюрів у примітивах, які формують бордюри, було додано атрибут стилю, який відповідає стандартним стилям WEB-інтерфейсу.
Для надання можливості встановлення активних областей на зображеннях, з можливістю формування повідомлень, за їх активації, при виконанні проекту, було додано механізм формування активних областей (карти) зображень.
З метою адекватної обробки властивості масштабування тип атрибутів геометрії було змінено на реальний. Атрибути координат точок примітиву "ElFigure", за тією ж причиною, було змінено на реальний.
Додано підтримку формування слайдерів та полос прокручування у примітиві "FormEl".
Додано підтримку атрибутів машстабу, а також і реального масштабування вмісту примітиву "ElFigure".
Додано підтримку фокусу та відпрацювання зміни фокусу активних елементів. Реалізовано, також, можливість встановлення послідовності отримання клавіатурного фокусу.
В редактор СВК модуля візуалізації на бібліотеці QT (Vision) було внесено наступні значущі зміни:
Додано підтримку зміни розміру та масштабу віджету з клавіатури.
Додано контекстне меню к елементам кадрів, з підтримкою власного меню для різних типів віджетів, включаючи і режим редагування віджетів на кадрі.
Додано функцію копіювання/переміщення візуальних елементів.
Оптимізовано операції вставки, оновлення та видалення дочірніх виджетів.
Додано генератор ідентифікаторів для наново створюваних віджетів, виходячи з ідентифікатору віджету-основи та вже присутніх віджетів.
Функцію групової зміни розмірів виділених віджетів переписано з метою адекватної та пропорційної зміни розмірів всіх виділених віджетів.
Додано можливість виділення групи віджетів шляхом малювання, мишею, візуального прямокутника.
Додано підтримку багатьох комбінацій клавіш швидкого виклику функції.
Безпосередньо у модуль візуалізації на технології WEB (WebVision) було внесено наступні значущі зміни:
Додано підтримку WEB-браузера MS Internet Explorer.
Додано підтримку примітиву "Diagram". Тоб-то у межах Web-інтерфейсу можуть формуватися графіки.
Додано першу реалізацію підтримки примітиву "ElFigure".
Додано підтримку масштабування елементів інтерфейсу.
5. Розширення переліку файлів ресурсів та збіркової системи.
Для забезпечення збірки проекту на дистрибутиві Mandriva 2008 була додана, в сценарій конфігурації збіркової системи, обробка особливого розташування бібліотеки QT4 у цьому дистрибутиві.
В дерево проекту були додані нові файли комплекту основної документації. В число цих файлів включені переклади основного комплекту документації на Українську та Англійську мови: FAQ.pdf, AboutOpenSCADA.pdf, release_0.6.0_uk.pdf, release_0.6.0.pdf и FAQ_uk.pdf.
Для надання можливості запуску системи з меню робочого стола в дерево проекту були додані відповідні конфігураційні файли та іконки.
6. Удосконалена частина модулів підсистеми "Збір даних".
Частина модулів підсистеми "Збір даних" була значно оновлена:
У модуль збору даних за протоколом ModBus (/DAQ/ModBus) була додана підтримка протоколів ModBus/RTU та ModBus/ASCII. Також була реалізована підтримка блочного режиму збору даних.
У модулі збору системних даних (/DAQ/System) була реалізована підтримка бібліотеки сенсорів системних плат - libsensors.
У модулі параметрів логічного рівня (/DAQ/LogicLev) забезпечено встановлення значень атрибутів, зв'язки яких зруйновано, у EVAL.
У модулі блочного обчислювача (/DAQ/BlockCalc) змінено механізм адресації відображених атрибутів параметрів на атрибути блоків.
7. Удосконалена частина модулів підсистеми "БД"
Основні зміни пов'язані з удосконаленням модуля підтримки СКБД "FireBird". З найбільш значущих змін треба відзначити додання керування транзакціями та, як наслідок, деяке підвищення продуктивності. З метою підвищення продуктивності роботи СКБД "FireBird" у модулі архівації на БД (/Archive/DBArch) була переглянута процедура скидання блока даних на БД.
У модулі підтримки БД SQLite додана можливість встановлення кількості запитів, через яке потрібно закривати транзакцію.
8. Плани подальшого розвитку
До релізу наступної версії заплановано вирішення таких завдань:
Створення форуму проекту OpenSCADA.
Розробка та реалізація концепції спеціалізованого повідомлення та сигналізації.
Доробка модуля візуалізації СВК WebVision до рівня повноцінної функціональності, у межах базових елементів модуля Vision.
Нарощування функцій системи OpenSCADA: Реалізація модуля опиту контролерів Siemens за посередництвом бібліотеки Libnodave; Реалізація контролю прав доступу у СВК
Перевірка функціонування компонентів системи OpenSCADA програмою Valgrind.