Реліз відкритої SCADA(Supervisory control and data acquisition) системи версії 0.6.1 є першим стабілізуючим релізом гілки 0.6.0. У межах цієї версії виконана велика робота по стабілізації та адаптації до практичних завдань. Як результат, було пройдено шлях до формування базової бібліотеки шаблонів традиційної SCADA системи та побудовано демонстраційний інтерфейс користувача. Демонстраційний інтерфейс містить кадр з повноцінною мнемосхемою, шаблоні кадри груп графіків, груп контурів, та оглядових кадрів. Результатом виконаної роботи стало те, що завдання побудови складних інтерфейсів користувача SCADA-системи стала здійсненою.
Цей документ є обробкою(компіляцією) документа <ChangeLog> системи OpenSCADA версії 0.6.0, який призначено коротко та наочно освітлити нові можливості системи OpenSCADA. Детально ознайомитися зі змінами у системі OpenSCADA можна у файлі ChangeLog з дистрибутиву системи або тут: http://diyaorg.dp.ua/oscadawiki/Works/ChangeLog.
Ключовими особливостями даної версії є:
Підвищення стабільності, стійкості та продуктивності системи.
Загальносистемні рішення та розширення користувальницького 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 добавлена возможность указания количества запросов, через которые нужно закрывать транзакцию.
10 Планы дальнейшего развития
К релизу следующей версии запланированы решения таких задач:
Создание форума проекта OpenSCADA.
Разработка и реализация концепции специализированного уведомления и сигнализации.
Доработка модуля визуализации СВУ WebVision до уровня полноценной функциональности, в рамках базовых элементов модуля Vision.
Наращивание функций системы OpenSCADA: Реализация модуля опроса контроллеров Siemens посредством библиотеки Libnodave; Реализация контроля прав доступа в СВК.
Проверка функционирования компонентов системы OpenSCADA программой “Valgrind”.