Реліз відкритої 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”.