The release of open SCADA (Supervisory control and data acquisition) system of version 0.6.2 is following stabilizing release of a branch 0.6.0. Within the limits of this version the big work on stabilization and adaptation to practical tasks is done.
The given document is processing of the document <ChangeLog> of system OpenSCADA versions 0.6.2 which is called to cover briefly and obviously new opportunities of system OpenSCADA. In details to familiarize with changes in system OpenSCADA it is possible in a file ChangeLog from a package of the distribution kit of system or here: http://diyaorg.dp.ua/oscadawiki/Works/ChangeLog.
Key features of the given version are:
Increasing of stability, durability and productivity of system.
Improvement and stabilization of VCA.
General-system expansions.
Improvement of a part of modules of a subsystem "Data acquisition".
The new and updated modules:
Archive. FSArch (1.0.0) - Correction of degradation of productivity at a plenty of files of archive. Integration of the mechanism of the global control over updating. Cleaning of an initial code.
Archive. DBArch (0.7.0) - Integration of the mechanism of the global control over updating. Cleaning of an initial code.
DB.MySQL (1.4.0) - Adaptation to the last version of MySQL. Addition of the bubble help on a format of the address of a DB. Integration of the mechanism of the global control over updating. Cleaning of an initial code.
DB.SQLite (1.4.0) - Addition of the bubble help on a format of the address of a DB. Integration of the mechanism of the global control over updating. Cleaning of an initial code.
DB.FireBird (0.8.0) - Addition of the bubble help on a format of the address of a DB. Integration of the mechanism of the global control over updating. Cleaning of an initial code.
DB.DBF (1.9.0) - Addition of the bubble help on a format of the address of a DB. Integration of the mechanism of the global control over updating. Cleaning of an initial code.
DAQ.BlockCalc (1.1.0) - Unification of function of copying of elements. Replacement of the mechanism of synchronization of a DB on standard one. Addition of the bubble help on a format of attributes of parameters of DAQ. Stabilization of the module. Integration of the mechanism of the global control over updating. Cleaning of an initial code.
DAQ.DiamondBoards (1.1.0) - Stabilization of the module. Integration of the mechanism of the global control over updating. Cleaning of an initial code.
DAQ.JavaLikeCalc (1.2.0) - The mechanism of work with integer values Is changed for mathcing of the basic numerical operations to the real-valued form. Integration with the global mechanism of copying of elements. Stabilization of the module. Integration of the mechanism of the global control over updating. Cleaning of an initial code.
DAQ.SNMP (0.3.2) - Stabilization of the module. Integration of the mechanism of the global control over updating. Cleaning of an initial code.
DAQ.LogicLev (0.9.1) - Stabilization of the module. Integration of the mechanism of the global control over updating. Cleaning of an initial code.
DAQ.ModBus (0.9.0) - Significant expansion of functionality. Stabilization and optimization of the module. Integration of the mechanism of the global control over updating. Cleaning of an initial code.
DAQ.Siemens (1.1.0) - Support of protocol ISO_TSAP (ProfiNet) by means of library Libnodave is added. Stabilization of the module. Integration of the mechanism of the global control over updating. Cleaning of an initial code.
DAQ.System (1.6.1) - Stabilization of the module. Integration of the mechanism of the global control over updating. Cleaning of an initial code.
DAQ.Transporter (0.3.2) - Stabilization of the module. Integration of the mechanism of the global control over updating. Cleaning of an initial code.
Transport. Sockets (1.3.5) - Addition of the bubble help on a format of the address of entering and outgoing sockets. Stabilization of the module. Integration of the mechanism of the global control over updating. Cleaning of an initial code.
Protocol. HTTP (1.3.2) - Cleaning of an initial code.
Protocol. SelfSystem (0.8.0) - The compression of the traffic, and also an opportunity of formation of direct queries without connection is added. Stabilization of the module. Cleaning of an initial code.
Special. FLibComplex1 (1.0.2) - Integration of the mechanism of the global control over updating. Cleaning of an initial code.
Special. FLibMath (0.5.1) - Integration of the mechanism of the global control over updating. Cleaning of an initial code.
Special. FLibSYS (0.6.1) - Integration of the mechanism of the global control over updating. Cleaning of an initial code.
Special. SystemTests (1.3.6) - Integration of the mechanism of the global control over updating. Cleaning of an initial code.
UI.QTCfg (1.5.1?) -.
UI.VCAEngine (0.6.0?) -.
UI.Vision (0.6.0?) -.
UI.WebVision (0.3.0?) -.
1. Increase of stability, durability and productivity of system.
During works under the given version, and also under its practical adaptation, it was revealed and corrected something about a hundred and fifty errors. Something about a quarter of hundred from them it was revealed owing to biassed testing by Popkov Alexey and about ten by Andrey Kalita. The overwhelming majority of errors was revealed in components of the visual control area.
Except of correction of the set of errors the work on optimization of various components of OpenSCADA has been done. The visual control area(VCA) and its visualizers has undergone to especially appreciable optimization. The basic vector in optimization was optimization of productivity which significance shew itself when loading on the system became to grow.
2. Improvement and stabilization of VCA.
During work with system OpenSCADA the set of improvements and optimizations in VCA and its visualizers has been done.
Let's examine the important improvements:
Realization of the mechanism of the signalling and notification. Support of three ways of the notification is realized: visual, alarm and speech. As a whole the mechanism is integrated into conception of VCA, it is not fixed and allows to realize the signalling by various user criteria, and not just on traditional for automated control system of technological processes (Industrial Control) criteria.
For simplification of work with the inspector of attributes were preview of fonts, images and colors, and also dialogues of their direct modification is added.
In primitive "ElFigure" were added:
Support of the filling the closed contours by color and the image. It is also supported the filling by transparent colors.
Function of copying inside the primitive is added. This function has allowed to simplify a task of creation of big static images inside of one widget.
Support of scaling of thickness of a line and a border on the minimal scale on x and y is added. It has made process of scaling more adequate and has allowed to repaint many elements with the use of simple lines.
It is unified and it is completely realized in Vision the mechanism of division of the rights of users. Therefore the opportunity of change of the user in a mode of performance with tracking of changing of access rights on separate components is added. The given work has made a reality an opportunity of formation of the user interfaces with division of access rights to separate elements between them.
Support of automatic scrolling in containers is added. It is made for an opportunity of placement and adequate representation of the big frames on the user interfaces.
The cache of resources is realized. It is called to increase productivity on highly-dynamised frames with often changed resources such as images and others entities.
Important optimization improvements of visualizer of VCA - Vision:
Masquerading of pages at the moment of loading with the notification on loading in a mode of performance. It makes the interface more clear and removes questions at long enough opening the big frames.
Optimization of operations of moving and changing of the sizes of widgets. It has increased responsiveness of the interface in a mode of development.
The mechanism of storage of individual data of primitives is optimized. It has allowed to reach at once the two purposes, the first purpose - optimization of using of memory and the second purpose - increasing of productivity of formation of primitives of the interface.
Optimization of deleting and copying-insert of big groups of widgets in a mode of development is done. It has allowed to accelerate considerably group operations with widgts during creation of high-loaded frames.
Operation of allocation by the mouse and a rectangular is optimized on time. Now on not fast computing systems it is not necessary to wait for updating of the dispatcher of attributes after pressing the button of the mouse with the purpose of allocation of group of widgets by means of rectangular, event of a choice of element is generated on mouse button release.
Significant expansions of WebVision are done. Namely:
All representations of the primitive of elements of forms (FormEl) became active, that allows to form forms of interaction with the user through the Web-interface.
support of focus by the mouse and partial support of keyboard focus Is realized. It has added an opportunity of construction of high-grade interfaces of visualization with navigation and control.
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", позволяющий указывать место расположения инсталляции QT.
Выполнена общая чистка исходного кода проекта от избыточных пробелов и отклонений в стиле оформления.
4. Усовершенствование части модулей подсистемы "Сбор данных".
Значительному усовершенствованию подверглись модули источников данных "DAQ.Siemens", "DAQ.JavaLikeCalc" и "DAQ.ModBus".
В модуль "DAQ.Siemens" добавлена поддержка протокола ISO_TSAP посредством библиотеки Libnodave. Это позволило получить доступ к широкому спектру контроллеров фирмы Siemens посредством сети ProfiNET.
Язык высокого уровня модуля "DAQ.JavaLikeCalc" был расширен операторами побитового сдвига, а в последствии был переписан механизм обработки числовых значений. В результате базовые операции переведены на работу только с вещественными, что устранило неопределённости в синтаксисе, часто приводящие к потере знака вещественных чисел.
В модуль "DAQ.ModBus" было внесено множество изменений. Подавляющее их большинство связано с работами по тестированию Попковым Алексеем. В целом были внесены изменения расширения функциональных возможностей, стабилизации и оптимизации модуля. Рассмотрим их детальнее:
Добавлена возможность установки времени восстановления связи с недоступными контроллерами на последовательных интерфейсах. Используется для уменьшения нагрузки на сеть RS485 за счёт разрежения попыток восстановления связи.
Добавлена возможность установки таймаутов RS485 сети индивидуально для каждого контроллера. Позволяет подключать разнородные контроллеры на последовательную шину и при этом учитывать индивидуальные особенности временных таймаутов контроллеров, оптимизируя производительность сети в целом.
Добавлена поддержка опроса и записи битовых параметров посредством стандартных функций 01 и 05, а также входных регистров (04) и входных битов (02). Таким образом реализована поддержка всех стандартных множеств параметров протокола ModBus.
Добавлен собственный лог протокола обмена. Позволяет решить множество проблем коммуникации путём отслеживания реальных запросов и ответов.
5. Планы дальнейшего развития
К релизу следующей версии запланированы решения таких задач:
Реализация поддержки групповых запросов в язык контроля и управления OpenSCADA и оптимизация на его основе сетевых коммуникаций различных подсистем OpenSCADA.
Разработка и реализация концепции примитива СВУ "Document" предназначенного для формирования отчётной документации.
Миграция модуля конфигурации системы OpenSCADA UI.WebVision на динамический интерфейс DHTML.
Реализация безопасного транспорта на основе OpenSSL.