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://wiki.oscada.org/Works/ChangeLog (RU).
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.6.0) - Function of the unified loading and saving is added. Function of the unified copying is added. Actions above objects directly in a tree of navigation are added. The control over updating and the prevention when exit is added. Stabilization of the module. Cleaning of an initial code.
UI.VCAEngine (0.7.0) - The mechanism of the signalling and notification is realized. The mechanism of division of the rights of the user is reconsidered. Stabilization and optimization of the module. Integration into the global mechanism of copying. The mechanism of the lazy deleting is realized. Integration of the mechanism of the global control over updating. Cleaning of an initial code.
UI.Vision (0.7.0) - Significant improvement of primitive "ElFigure". The mechanism of tracking and the prevention of updating is advanced. Cache of resources is added. The mechanism of division of the user access is unified. Support of the mechanism of the signalling and notification is added. Stabilization and optimization of the module. Cleaning of an initial code.
UI.WebVision (0.4.0) - Realization of an active operating mode of the primitive "ElForm" is done. Addition of processing of events of the keyboard and the mouse. Addition of support of focus. Cleaning of an initial code.
UI.WebCfg (1.5.1) - Stabilization and minor improvements of the module. Cleaning of an initial code.
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 clearer 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 widgets 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. General-system expansions.
To the kernel of system OpenSCADA have been made some changes of expanding character. We shall list them:
Implementation of the mechanism of the global control over updating of objects of a dynamic tree and, as consequence, addition of an opportunity of selective loading and saving of separate objects in branches of a dynamic tree. In language of the control and management of OpenSCADA commands for tracking a condition of updating of branches and separate objects, and also for their saving and loading are added. This mechanism has been implemented in QTCfg and Vision, that has enabled the user to supervise changes and to avoid loss of data.
The unified mechanism of copying of objects of a dynamic tree is created. Commands of it mechanisms have been added in language of the control and management of OpenSCADA. On the basis of these commands in configurator QTCfg functions of transparent copying of objects in a tree of navigation have been realized.
The mechanism of the lazy deleting of objects of a dynamic tree Is realized. The mechanism is intended for a possibility of undo of operation of deleting and used for objects of the engine of the visual control area (VCA).
Functions of a compression with use of library ZLib Are added. On the basis of these functions packing of the traffic of the protocol "SelfSystem" has been realized.
Expansions of language of the control and management:
Unification of the interface of creation and deleting of objects in units of a dynamic tree. On the basis of this mechanism in QTCfg the function of addition and deleting of elements of a tree of objects directly in a tree of navigation is added.
The attribute for placement of the accompanying help (attribute "help" of fields "fld") is added. It is used in configurator QTCfg for creation of bubble helps.
The support of elements of the static list, which is called to simplify work with static lists in the interface, is added.
The general interface for granting an opportunity of a choice of a DB is added. It is intended for simple and unified with the bubble help integration of combo box of a choice of a DB into objects, which demand it.
Adaptation for building with the compiler gcc versions 4.3 and in an environment of distribution kit Mandriva 2008.1 is done.
Adaptation to features of the new version of library QT 4.4 is done.
For more flexible control over features of installation of library QT in a script of a configuration the parameter " - with-qt4-dir=DIR " has been added, allowing to specify the location of installation of QT.
The general cleaning of an initial code of the project from redundant blanks and deviations in style of formatting is done.
4. Improvement of a part of modules of a subsystem "Data acquisition".
Modules of sources of data "DAQ.Siemens", "DAQ.JavaLikeCalc" and "DAQ.ModBus" have undergone to significant improvement.
In module "DAQ.Siemens" support of protocol ISO_TSAP by means of library Libnodave is added. It has allowed to get access to a wide spectrum of controllers of firm Siemens by means of a network ProfiNET.
Language of a high level of module "DAQ.JavaLikeCalc" has been expanded by operators of bit-by-bit shift, and in a consequence the mechanism of processing of numerical values has been rewrited. As a result base operations are translated for work only with real-valued numbers, that has eliminated uncertainty of the syntax, often leading loss of a sign on real-valued numbers.
The set of changes has been brought into module "DAQ.ModBus". The overwhelming majority of them is connected with works on testing by Popkov Alexey. As a whole changes of expansion of functional capabilities, stabilization and optimization of the module have been made. Let's examine them more detailed:
The opportunity of installation of time of restoration of connection with inaccessible controllers on serial interfaces is added. It is used for reduction of loading by network RS485 due to rarefaction of attempts of restoration of connection.
The opportunity of installation of timeouts RS485 network individually for each controller is added. It allows to connect diverse controllers on the serial bus and thus to consider specific features of temporal timeouts of controllers, optimizing productivity of a network as a whole.
Support of inquiry and record of bit parameters by means of standard functions 01 and 05, and also input registers (04) and input bits (02) is added. Thus support of all standard sets of parameters of the protocol ModBus is realized.
Own log of the protocol of an exchange is added. Allows to solve set of problems of the communication by tracking real queries and answers.
5. Plans of the further development
To release of the next version decisions of such tasks are planned:
Realization of support of group queries in language of the control and management of OpenSCADA and optimization on its basis of network communications of various subsystems of OpenSCADA.
Development and realization of the conception of primitive of VCA "Document" intended for formation of the report documentation.
Migration of the module of a configuration of system OpenSCADA UI.WebCfg on dynamic interface DHTML.
Realization of safe transport on the basis of OpenSSL.
Realization of the primitives of VCA "Link" and "Function".