Релиз открытой SCADA(Supervisory control and data acquisition) системы версии 0.6.2 является следующим стабилизирующим релизом ветки 0.6.0. В рамках этой версии проделана большая работа по стабилизации и адаптации к практическим задачам.
Данный документ является обработкой(компиляцией) документа <ChangeLog> системы OpenSCADA версии 0.6.2, который призван вкратце и наглядно осветить новые возможности системы OpenSCADA. Детально ознакомиться с изменениями в системе OpenSCADA можно в файле ChangeLog из пакета дистрибутива системы или здесь: http://diyaorg.dp.ua/oscadawiki/Works/ChangeLog.
Ключевыми особенностями данной версии являются:
Повышение стабильности, устойчивости и производительности системы.
Усовершенствование и стабилизация СВУ.
Общесистемные расширения.
Усовершенствована часть модулей подсистемы "Сбор данных".
Новые и обновленные модули:
Archive.FSArch (1.0.0) -- Интеграция механизма глобального контроля за модификацией. Исправление деградации производительности при большом количестве файлов архива. Чистка исходного кода.
Archive.DBArch (0.7.0) -- Интеграция механизма глобального контроля за модификацией. Чистка исходного кода.
DB.MySQL (1.4.0) -- Интеграция механизма глобального контроля за модификацией. Адаптация к последним версиям MySQL. Чистка исходного кода. Добавление всплывающей подсказки по формату адреса БД.
DB.SQLite (1.4.0) -- Интеграция механизма глобального контроля за модификацией. Чистка исходного кода. Добавление всплывающей подсказки по формату адреса БД.
DB.FireBird (0.8.0) -- Интеграция механизма глобального контроля за модификацией. Чистка исходного кода. Добавление всплывающей подсказки по формату адреса БД.
DB.DBF (1.9.0) -- Интеграция механизма глобального контроля за модификацией. Чистка исходного кода. Добавление всплывающей подсказки по формату адреса БД.
DAQ.BlockCalc (1.1.0) -- Стабилизация модуля. Интеграция механизма глобального контроля за модификацией. Унификация функции копирования элементов. Замена механизма синхронизации БД на стандартный. Чистка исходного кода. Добавление всплывающей подсказки по формату атрибутов параметров DAQ.
DAQ.DiamondBoards (1.1.0) -- Стабилизация модуля. Интеграция механизма глобального контроля за модификацией. Чистка исходного кода.
DAQ.JavaLikeCalc (1.2.0) -- Переписан механизм работы с целыми для приведения основных числовых операций в вещественную форму. Интеграция с механизмом копирования элементов. Стабилизация модуля. Интеграция механизма глобального контроля за модификацией. Чистка исходного кода.
DAQ.SNMP (0.3.2) -- Стабилизация модуля. Интеграция механизма глобального контроля за модификацией. Чистка исходного кода.
DAQ.LogicLev (0.9.1) -- Стабилизация модуля. Интеграция механизма глобального контроля за модификацией. Чистка исходного кода.
DAQ.ModBus (0.9.0) -- Значительное расширение функциональности. Стабилизация и оптимизация модуля. Интеграция механизма глобального контроля за модификацией. Чистка исходного кода.
DAQ.Siemens (1.1.0) -- Добавлена поддержка протокола ISO_TSAP (ProfiNet) посредством библиотеки Libnodave. Стабилизация модуля. Интеграция механизма глобального контроля за модификацией. Чистка исходного кода.
DAQ.System (1.6.1) -- Стабилизация модуля. Интеграция механизма глобального контроля за модификацией. Чистка исходного кода.
DAQ.Transporter (0.3.2) -- Стабилизация модуля. Интеграция механизма глобального контроля за модификацией. Чистка исходного кода.
Transport.Sockets (1.3.5) -- Стабилизация модуля. Интеграция механизма глобального контроля за модификацией. Чистка исходного кода. Добавление всплывающей подсказки по формату адреса входящего и исходящего сокетов.
Protocol.HTTP (1.3.2) -- Чистка исходного кода.
Protocol.SelfSystem (0.8.0) -- Добавлена компрессия трафика, а также возможность формирования прямых запросов без подключения. Стабилизация. Чистка исходного кода.
Special.FLibComplex1 (1.0.2) -- Интеграция механизма глобального контроля за модификацией. Чистка исходного кода.
Special.FLibMath (0.5.1) -- Интеграция механизма глобального контроля за модификацией. Чистка исходного кода.
Special.FLibSYS (0.6.1) -- Интеграция механизма глобального контроля за модификацией. Чистка исходного кода.
Special.SystemTests (1.3.6) -- Интеграция механизма глобального контроля за модификацией. Чистка исходного кода.
UI.QTCfg (1.5.1?) -- ??.
UI.VCAEngine (0.6.0?) -- ??.
UI.Vision (0.6.0?) -- ??.
UI.WebVision (0.3.0?) -- ??.
1. Повышение стабильности, устойчивости и производительности системы.
В процессе работ над данной версией, а также её практической адаптации, было обнаружено и исправлено около полторы сотни ошибок. Порядка четверти сотни из них было обнаружено благодаря пристрастному тестированию Попковым Алексеем и около десятка Андреем Калитой. Подавляющее большинство ошибок было обнаружено в компонентах среды визуализации и управления.
2. Усовершенствование и стабилизация СВУ.
В процессе работы с системой OpenSCADA было внесено множество улучшений и оптимизаций в СВУ и её визуализаторы.
Рассмотрим важные улучшения:
Реализация механизма сигнализации и уведомления. Реализована поддержка трёх способов уведомления: визуальная, сигнальная и речевая.
Для упрощения работы с инспектором атрибутов были добавлен предосмотр шрифтов, изображений и цвета, а также диалоги прямой их модификации.
В примитив "ElFigure" добавлена поддержка заливки замкнутых контуров цветом и изображением.
В примитив "ElFigure" добавлена функция копирования внутри примитива.
В примитив "ElFigure" добавлена поддержка масштабирования толщины линии и бордюра по минимальному масштабу по x и y.
Унифицирован механизм разделения прав пользователей и полностью реализован в Vision. Добавлена возможность смены пользователя в режиме исполнения с отслеживанием смены прав доступа.
Добавлена поддержка автоматического скролинга в контейнерах, для возможности доступа к большим кадрам.
Реализован кеш ресурсов.
Важные оптимизационные улучшения Vision:
Скрытие страниц на момент загрузки с уведомлением о загрузке в режиме исполнения.
Оптимизация операций перемещения и изменения размеров виджетов.
Оптимизирован механизм хранения индивидуальных данных примитивов.
Выполнена оптимизация удаления и копирования-вставки больших групп виджетов в режиме разработки.
Операция выделения мышью и прямоугольником оптимизирована по времени. Теперь событие выбора елемента генерируется по отпусканию мыши.
Реализованы значительные расширения WebVision. Реализован активный режим работы всех видов примитива "FormEl". Реализована поддержка фокуса мышью и частичная поддержка клавиатурного фокуса.
3. Общесистемные расширения.
В ядро системы OpenSCADA были внесены некоторые изменения расширяющего характера. Перечислим их:
Внедрение механизма глобального контроля за модификацией объектов динамического дерева, и как следствие добавлена возможность избирательной загрузки и сохранением отдельных объектов в ветвях. В язык контроля и управления OpenSCADA добавлены команды для отслеживания состояния модификации ветвей и отдельных объектов, а также для их сохранения и загрузки. Этот механизм был внедрён в QTCfg и Vision, что дало возможность пользователю контролировать изменения и избегать их потери.
Создан унифицированный механизм копирования объектов динамического дерева. Команды этого механизмы были добавлены в язык контроля и управления OpenSCADA. На основе этих команд в конфигураторе QTCfg были реализованы функции прозрачного копирования объектов в дереве навигации.
Реализован механизм отложенного удаления объектов динамического дерева. Механизм предназначен для обеспечения возможности отката удаления и использован для объектов движка среды визуализации и управления (СВУ).
Добавлены функции компрессии с использованием ZLib. На основе этих функций была реализована упаковка трафика протокола "SelfSystem".
Расширение языка контроля и управления:
Унификация интерфейса создания и удаления объектов в узлах динамического дерева. На основе этого механизма в QTCfg добавлена функция добавления и удаления элементов дерева объектов прямо в дереве навигации.
Добавлен атрибут для размещения сопроводительной помощи (атрибут "help" полей "fld"). Использован в конфигураторе QTCfg для создания всплывающих подсказок.
Добавлена поддержка элементов статического списка, который призван упростить работу со статическими списками в интерфейсе.
Общий интерфейс для предоставления возможности выбора БД
Выполнена адаптация для сборки на компиляторе gcc версии 4.3 и в окружении дистрибутива Mandriva 2008.1.
Выполнена адаптация к особенностям библиотеки QT 4.4.
Для более гибкого контроля за особенностями установки библиотеки QT в скрипт конфигурации был добавлен параметр "--with-qt4-dir=DIR".
Выполнена общая чистка исходного кода проекта от избыточных пробелов и отклонений в стиле оформления.
4. Усовершенствована часть модулей подсистемы "Сбор данных".
Значительному усовершенствованию подверглись модули источников данных "DAQ.Siemens", "DAQ.JavaLikeCalc" и "DAQ.ModBus".
В модуль "DAQ.Siemens" добавлена поддержка протокола ISO_TSAP посредством библиотеки Libnodave. Это позволило получить доступ к широкому спектру контроллеров фирмы Siemens посредством сети ProfiNET.
Язык высокого уровня модуля "DAQ.JavaLikeCalc" был расширен операторами побитового сдвига, а в последствии был переписан механизм обработки числовых значений. В результате базовые операции переведены на работу только с вещественными, что устранило неопределённости синтаксиса, часто приводящие к потере знака вещественных чисел.
В модуль "DAQ.ModBus" было добавлено. Добавлена возможность установки времени восстановление связи с недоступными контроллерами. Используется для уменьшения нагрузки на сеть RS485 за счёт разрежения попыток восстановления связи. Добавлена возможность установки таймаутов RS485 сети индивидуально для каждого контроллера. Добавлена поддержка опроса битовых параметров посредством стандартных функций 01 и 05 протокола "ModBus". Добавлен собственный лог протокола обмена. Добавлена возможность опроса входных регистров (04) и входных битов (02) посредством протокола "ModBus".