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