The release of open SCADA (Supervisory control and data acquisition) system version 0.6.0 is positioned as concept-release. It is connected by that at present the basic functions of SCADA system's conception which have been formulated by the project OpenSCADA in 2003, actually, are realized.
The basic purpose of the given release is granting to community of users and developers of the free software the conception and platform for development of decisions of construction of complex SCADA-systems and other adjacent decisions, with purposeful perfection and stabilization of available components, and also development of the necessary expansions and modules.
The given document is processing (compilation) of the document <ChangeLog> of OpenSCADA system version 0.6.0 which is called in brief and evidently to cover new opportunities of system OpenSCADA. In details to familiarize with changes in OpenSCADA system it is possible in a file ChangeLog from the distribution kit of system or here: http://wiki.oscada.org/Works/ChangeLog (RU).
Main features of the given version are:
Conception of the visual control area (VCA), and also visualizer VCA are based on Qt4 library.
Substantial increase of stability, durability and productivity of system.
Unification of the interface of management and construction of the protocol of interaction on its basis.
Unification of the mechanism of construction of parameters of a subsystem "Data acquisition" on patterns.
Expansion of the basic language JavaLikeCalc and API a level of the user programming.
Transition to library Qt of version 4 in the modules using this library.
General improvements of API of a kernel of OpenSCADA system.
General improvements of building system, as consequence, simplification and expansion of supported platforms.
New site of the project OpenSCADA.
The new and updated modules:
Transport.Sockets (1.3.0) — General stabilization of the module.
Archive.FSArch (0.9.5) — The archiver of values is optimized. Archiving of messages in a flat format of text is added. The module is renamed from "BaseArh" into "FSArch". A lot of bugs is corrected.
Archive.DBArch (0.5.0) — The new module of archiving messages and values on a DB.
DB.DBF (1.8.1) — General stabilization of the module.
DB.MySQL (1.3.0) — Support of API of inquiry of the list of accessible tables and structures of these tables is added. Significant stabilization and optimization of the module.
DB.SQLite (1.3.0) — Support of API of inquiry of the list of accessible tables and structures of these tables Is added. Significant stabilization and optimization of the module.
DB.FireBird (0.6.0) — The new module of DBMS "FireBird" support.
Protocol.HTTP (1.3.0) — Significant processing and stabilization of the module.
Protocol.SelfSystem (0.7.0) — New module of own OpenSCADA's protocol, based on the interface of management of OpenSCADA.
Special.FLibComplex1 (1.0.0) — General stabilization of the module.
Special.FLibSYS (0.5.0) — Result of association with the module Special.FLibTime and works on unification of user's API for work with archives.
Special.SystemTests (1.3.5) — Some tests are updated.
DAQ.DiamondBoards (1.0.0) — The mechanism of acquisition by means of interruptions is reconsidered, many errors are corrected, the problem of blocking of streams is corrected together with library API version 5.91 and the final release is let out.
DAQ.System (1.5.0) — The general stabilization of the module. It is renamed form "OperationSystem".
DAQ.BlockCalc (1.0.0) — Some improvements in the mechanism of the linkage, the expanded function of copying of controllers of blocks and parameters, correction of errors and final release.
DAQ.JavaLikeCalc (1.0.0) — The grammar of language is expanded, support of the precompilation mechanism of the user procedures and their subsequent use in different parts OpenSCADA is added, corrections of errors and final release.
DAQ.LogicLev (0.9.0) — The code of a subsystem is token out in the module "Parameters" OpenSCADA 0.5.0 with expansion of the functional and correction of errors.
DAQ.CIF (0.9.0) — New module of a source of data from controllers of firm Siemens of series S7 (300,400) by means of a network ProfiBUS, protocol MPI and the communication processor of firm Hilcher CIF50PB.
DAQ.SNMP (0.3.0) — New module of base support of protocol Simple Network Management Protocol in a mode of reading.
DAQ.ModBus (0.4.0) — New module of support of sources of the data accessible under protocol ModBus.
DAQ.Transporter (0.3.0) — The new module of support of the mechanism of reflection of data of the subsystem "Data acquisition" remote OpenSCADA stations on local.
UI.QTStarter (1.5.0) — Transition to Qt library version 4, the general stabilization and exception of external calls of functions Qt.
UI.QTCfg (1.5.0) — Transition to Qt library version 4, support of images in the interface of management, the general stabilization and optimization.
UI.WebCfg (1.5.0) — General stabilization of the module.
UI.VCAEngine (0.5.0) — New module of engine of the visual control area (VCA).
UI.Vision (0.5.0) — New module of a visualizer of the visual control area (VCA) on library Qt.
1 The conception of the visual control area, and also visualizer of VCA on the basis of Qt4 library.
The main innovation of release 0.6.0 of OpenSCADA system became basic realization of the flexible visual control area (VCA). VCA of OpenSCADA is constructed under the conception of "the model of data" - "view" where "the model of data" describes structure and calculations of the visual interface (VI), and "view" realizes direct representation and contact to the user. Such approach allows to realize visualization with use of various graphic libraries and environments of the user interface, within the limits of the uniform configuration description of structure of the user interface. Support of a mode of development and execution of the user interface on the basis of known graphic library Qt4 is realized. On the basis of WEB-technologies basic realization of a visualizer with support of execution mode (RunTime) is created.
The conception incorporates an opportunity of formation of a wide range of interfaces of the user of various complexity. The narrow primitives is put in a basis of all these interfaces. Combining these primitives it is possible to create both the derivative frames of the user elements of visualization, and pages of final interfaces of visualization. The following set of basic primitives is determined:
ElFigure — Elementary graphic figures.
FormEl — Elements of the form.
Text — Text.
Media — Media.
Diagram — Diagram.
Protocol — Report.
Document — Document.
Function — Function of API of objective model OpenSCADA.
Box — Container.
Link — Binding line.
From among listed primitives in the given release have remained not realized: "Document", "Function" and "Link". Their realization is planned after an output of version 0.6.0.
The implemented VCA project provides support of following functions:
three levels of complexity in formation of the interface the visualization allowing to master and apply toolkit using the technique from simple to complex:
formation from the sample frames by assignment of dynamics (it is probable without a graphic configuration);
graphic formation of the new frames by use of ready elements of visualization from library (mnemonicschemes);
formation of the new frames, the sample frames and displaying elements into libraries.
construction of interfaces of differential complexity beginning from simple flat interfaces of monitoring and finishing the high-grade hierarchical interfaces used in SCADA systems;
granting of various ways of formation and a configuration of the user interface, based on various interfaces of graphic representation (Qt, Web, Java...) or by means of the standard interface of management of system OpenSCADA;
change of dynamics during performance;
construction of the new sample frames at a level of the user and formation specialized, for the range of application, libraries of the frames (for example inclusion of the frames of parameters, schedules and other elements with their coordination with each other), according to the theory of secondary use and accumulation;
construction of new user elements of visualization and formation, specialized under the range of application, libraries of the frames, according to the theory of secondary use and accumulation;
the description of logic of the new sample frames and the user elements of visualization both simple communications and laconic, with the help of high-grade language of the user programming;
an opportunity of inclusion in the user elements of visualization the functions (or the frames of function calculation) of objective model of OpenSCADA, practically connecting representation with algorithm of calculation (for example, visualizing library of models of devices of technical process (TP) for the subsequent visual construction of models TP);
division of the user's interfaces data and interfaces of representation of these data, allowing to build the interface of the user in one environment, and to execute in many others (Qt, Web, Java...);
an opportunity of connection to the executing interface, for supervision and correction of actions (for example, at training of operators and his actions control at real time);
visual construction of various schemes, with imposing of logical communications with the subsequent centralized execution in a background (visual construction and execution of mathematical models, logical schemes, relay schemes and other procedures);
granting of an objective API functions in system OpenSCADA, it can be used for management of properties of the interface of visualization from the user procedures;
construction of servers of the frames, elements of visualization and projects of interfaces of visualization with an opportunity of service of plural client connections;
the simple organization of client stations on a various basis (Qt, Web, Java...) with connection to the central server;
the high-grade mechanism of division of authorities between the users, allowing to create and execute projects with various access rights to his components;
flexible formation of rules of signal systems and notifications, with a glance and support of various ways of the notification;
support of the user formation of a palette and font preferences for the interface of visualization (themes);
support of the user formation of maps of events under the various equipment of management and the user preferences;
support of profiles of the users, allowing to determine various properties of the interface of visualization (color scale, the font features, preferable maps of events);
flexible storage and distribution of widget libraries, the frames and projects of interfaces of visualization in the DB supported by OpenSCADA system; practically the user needs to register only the received DB with data.
2 Substantial increase of stability, durability and productivity of system.
During the works with version 0.6.0 it has been done a number of actions on the general stabilization of OpenSCADA system, and also on increasing of productivity of system. We shall list most important of them:
The global problem of an insufficient covering of key variables by resources is corrected. The problem has distinctly revealed itself on multicore architecture.
The opportunity of a direct call of Qt-methods from not Qt-streams in all Qt-modules is excluded, it led to falling OpenSCADA at its stop.
The Mechanism of capture of resources is reviewed, it is corrected for work on multicore systems and optimized. The general stability and productivity has increased as a result.
Functions TSYS::addr2str() and TSYS::str2addr() are corrected. They led to not clear falling of module QTCfg.
Introduction of associative containers (map and hash_map) in the most responsible units of OpenSCADA. It has considerably increased speed of access to elements big arrays, for example:
at access to dynamic objects of a dynamic tree during analysis of a full way of dynamic object;
at work with properties of elements of configuration and tables of a DB.
The interface of management of system and its language is systematized and unified. It has increased functional qualities and reactance of interfaces and protocols constructed on it.
The opportunity of addressing of separate elements of record of tables of a DB is added. It has increased productivity of access to a DB by query for only the necessary elements of record.
The mechanism of storing of displacement in line for the basic functions at parsing of a way or the address with a divider is added. It has excluded the dependence of geometrical growth of expenses of time for parsing of a line from quantity of elements in it.
Optimization of realization of queries in modules of a DB SQLite and MySQL. It has considerably increased efficiency of access to a DB of these types.
The mechanism of check of access rights is optimized. It has allowed to lower the time of check of access rights.
3 Unification of the interface of management and construction of the protocol of interaction on its basis.
In the given version unification of the interface of management of OpenSCADA in a direction of formalization of language of queries, simplification of formation of an information part and processing of command queries, and also with the purpose of simplification of formation of transport protocols on the basis of the given interface is made. Result of the given unification became increasing of the general productivity of queries on the given interface, and so creation of the transport protocol SelfSystem. For a basis of this protocol queries to the interface of management of OpenSCADA, wrapped up in a thin layer of the operating protocol are taken.
By means of the given protocol interaction between various stations of OpenSCADA in a network is realized. For example, the module of a configuration on library Qt, QTCfg, has had an opportunity of configuration of the remote stations, allowing to build the allocated systems with the uniform configuration center. The visualizer of the user interfaces on the basis of Qt library, Vision, also has had an opportunity for formation of the user interface and execution of sessions of the user interfaces located on remote OpenSCADA stations, forming configuration with a server of visualization. The first module of reflection of the data of remote stations OpenSCADA on local ones has been realized, it became the module of reflection of data of the subsystem "Data acquisition". In a consequence creation of such transport modules for other modular subsystems is planned.
And after the given decisions the mechanism of service functions of the interface of management has been added. Given mechanism allows to get access to data with complex formatting and of big volumes in a priority mode of query and with the optimum form for transfer.
4 Unification of the mechanism of construction of parameters of the subsystem "Data acquisition" on templates.
In version 0.5.0 the mechanism of formation of parameters of the subsystem "Data acquisition" with the structure necessary to the user, i.e. on a template, has been introduced. The given mechanism has been realized in the form of a separate subsystem "Parameters". In the given release the idea of formation of parameters of the subsystem "Data acquisition" on templates has been expanded on all other modules of the subsystem "Data acquisition". Thus earlier the existing subsystem "Parameters" has been transformed to the equivalent module of a logic level of parameters "LogicLev", and templates it began possible to form at a level of the subsystem 'Data acquisition', grouping them on libraries of templates. Actually, any module, which gives an access to highly intellectual sources' data, can include parameters' support, formed on a template, bringing the sense in the link of an internal level. An example of such module became the module of access to data of controllers of firm Siemens of series S7 under protocol MPI of a network ProfiBUS Siemens.
Templates of parameters began to form irrespective of existing functions, by formation of own function of processing of parameters and its subsequent compilation in the module giving the mechanism of compilation of language of the user programming. The template can be generated without the user procedure if the passive, selective reflection of parameters is only needed.
5 Expansion of the basic language JavaLikeCalc and API level of the user programming.
The compiling interpreter of Java-like language, together with libraries of functions of the user programming of the fixed type (API) form the environment of the user programming of OpenSCADA system.
In the given release Java-like language has got:
high-grade support of cycles "while" and "for";
the mechanism of interruption of the looped procedures;
operations of prefix and postfix increment and decrement;
the mechanism of precompilation of the user programs of various subsystems;
the direct mechanism of addressing of parameters of the subsystem "Data acquisition".
API functions of the user programming was unified and it is determined by libraries of functions:
FLibSYS — The library of system API, at the moment of the given release contains functions for work with time and date, and also with archives of messages and values.
FLibMath — Library of mathematical functions.
FLibComplex1 — Library of functions of compatibility with SCADA "Complex1".
6 Transition to Qt library version 4 in the modules using this library.
In a view of realized of the new version of Qt library (version 4) and its universal distribution, and also the beginning of works under the visual control area (VCA), it has been decided to transfer the existing modules, based on Qt, on the new version.
Such work has been done and modules of the subsystem "User interfaces": QTCfg, QTStarter and Vision function on the basis of Qt library version 4. In a kind of presence in early versions of the certain problems and absence of some functions it is recommended to use the version of library not less than 4.3.
As a result of transition to Qt4 library it was possible to achieve greater stability and to expand functional characteristics of modules, which using it.
7 General improvements of API of a kernel of OpenSCADA system.
During the works with the given release there have been made the certain changes in API of OpenSCADA system. In a greater measure it is connected with processes stabilization, optimization, fixing of errors and general improvement of API and in a lesser measure with addition of new functions. We shall list the most significant changes:
Unification of API of the interface of management OpenSCADA. More detailed about it in section 3.
In a subsystem of safety, at users and groups of users, indexation of users and groups of users is removed. Also the group of the user by default is removed. It is done with the purpose of elimination of double identification as there is a fast identification on the symbolical identifier/name.
The subsystem "Parameters" is abolished, and its functions are moved to the module of The logic level "LogicLev" of the subsystem "Data acquisition". Templates of parameters are grouped on libraries and placed in the subsystem "Data acquisition". More detailed about it read in section 4.
The mechanism of compilation of procedures in modules of the subsystem "Data acquisition" for using of the user programming in various units of OpenSCADA is added.
The template of function of localization of messages _() with the purpose of unification, increasing of readability of the initial text and reduction of a saturation is added.
Templates of functions for formation of messages in OpenSCADA and increasing of readability of the initial text, and so reduction of a saturation are added. Templates of functions are added: message(),mess_err(), mess_info() and similar.
Points of conditions of controllers of a subsystem are unified. Now a condition "is enabled" means installation of all communications, and "is started" - the actual data acquisition only.
Practically all functions of installation of parameters are renamed to a kind setMethod().
Support of attribute of visibility of fields of record of a DB is added. It allows to increase the productivity of work from a DB due to reception only the necessary data.
Support of a global error code in object TError is added. It is used for selective processing of errors.
The mechanism of capture of resources is reviewed, corrected for work in multicore systems and optimized.
The mechanism of preliminary initialization of created archives of values in modules of data acquisition is added. It was possible to achieve exception of additional adjustment of archive at a configuration of attributes of parameters.
Support of mechanisms of query of the list of accessible tables in a DB and their structures, and also editing of their contents by means of the interface of management and configurators of OpenSCADA is added.
Support of outbound protocols is realized. The internal interface of the protocol has data-flow realization, with specialized for the protocol structure.
More detailed to familiarize with API of the given version it is possible in the corresponding document "API systems OpenSCADA".
8 The general improvements of building system and, as consequence, simplification and expansion of supported platforms.
With the purpose of realization of function of high-grade, early, notification on absence of the dependences necessary for building to the script for check of an environment has been added by a code of check of the basic dependences of building. As a result of this, notifications on all not satisfied dependences will be given out at a stage of a configuration of building system, that accelerates the resolving of dependences or decision-making about switching-off of building of this or that module.
The format of the documentation, placed in a tree of the initial text and in the tarball of the project, has been changed to pdf, in a view of more simple manipulation with it on the stages of installation.
9 New site of the OpenSCADA project.
During working under the given release, for the OpenSCADA project the new site (http://oscada.org), based on a CMS-engine Typo3 has been created. The site is multilingual and contains the basic information on the OpenSCADA project, keeping a more potential on expansion. For this site translations of the basic information materials into the Ukranian and English languages have been made.
Addition of following functions on the main site is planned: a forum, gallery of screenshots and other media-materials, post delivery, changes trackers and works leaded under the project.
10 Plans of the further development.
The subsequent, frequent releases within the limits of version 0.6.0, with the purpose of operative tracking process of applied adaptation and stabilization are planned. In the final release of stable-industrial version 0.7.0 for platform Linux x86, x86-64 is planned.
For realization to version 0.7.0, under intermediate versions 0.6.0, it is possible to determine following important tasks:
Modular mechanism of notifications and signal systems.
Development and realization of primitives of VCA: Document, Function and Links.
Realization of the mechanism: "Themes of appearance" and "Maps of events" for VCA.
Expansion of the list of supported sources of data of the subsystem "Data acquisition".