The release of open SCADA (Supervisory control and data acquisition) system of version 0.6.3 is scheduled release of a branch 0.6.0. Within the limits of this version big work on stabilization and adaptation to practical tasks is done.
The given document is processing (compilation) of the document <ChangeLog> of system OpenSCADA versions 0.6.3 which is intended in brief and evidently to cover new opportunities and changes of system OpenSCADA. To familiarize in details with all changes in system OpenSCADA it is possible in the file ChangeLog from a package of the distribution kit of system or here: http://wiki.oscada.org.ua/Works/ChangeLog (RU).
The key features of this version are:
Realization of the planned tasks.
Increasing of stability, durability and productivity of the system.
Improvement and stabilizing of VCA.
General system expansions.
During works with release there have been made following changes to modules of OpenSCADA:
Archive.FSArch (1.0.1) - Stabilization. Translation of the interface into German is done.
Archive.DBArch (0.7.1) - Stabilization. Translation of the interface into German is done.
DB.DBF (1.9.1) - Translation of the interface into German.
DB.MySQL (1.4.1) - Stabilization. Addition of an opportunity of storage of date and time in a field MySQL with type DATETIME is done. Translation of the interface into German is done.
DB.SQLite (1.4.1) - Stabilization. Providing of the possibility of working with files of a DB only for reading is added. Translation of the interface into German is done.
DB.FireBird (0.8.1) - Translation of the interface into German is done.
DAQ.BlockCalc (1.1.1) - Stabilization. Translation of the interface into German is done.
DAQ.JavaLikeCalc (1.3.0) - Stabilization. Addition of support of areas of names of functions of user API is done. Addition of keywords “using” and “return” is done.
DAQ.SNMP (0.3.3) - Stabilization.
DAQ.LogicLev (0.9.2) - Stabilization.
DAQ.ModBus (0.9.1) - Stabilization.
DAQ.DCON (0.1.0) - The new module: the module of realization of a source of data is included in the tree of source code of the project under protocol DCON (Almaz Karimov).
DAQ.Siemens (1.1.1) - Stabilization.
DAQ.System (1.6.2) - Stabilization. It is adapted for support of library libsensors versions 3 (API versions 4).
DAQ.Transporter (0.3.3) - Stabilization.
Transport.Sockets (1.3.6) - Stabilization. The field of the status for transports is added.
Transport.SSL (0.8.0) - The new module: The module of transport “SSL”, based on library of scrambling OpenSSL.
Special.FLibComplex1 (1.0.3) - Stabilization.
Special.FLibSYS (0.7.0) - Parameters for direct access to archives in function are added: varhBeg(), varhEnd(), varhGetR(), varhGetB() and varhGetS(). New functions are added: strPath2Sep(), strEnc2HTML() and real2str(). Function tmCtime() is replaced on tmFStr().
UI.QTCfg (1.7.0) - Stabilization. For formation of a tree of the navigator the inquiry of a branch of enclosed elements with depth in one level, optimized on time, is used. Restriction of the size of entered identifiers of objects is added.
UI.VCAEngine (0.8.0) - Stabilization. Optimization of productivity is made. The group inquiry of attributes of widgets of branch of widgets of sessions of execution of the projects is added. The primitive "Document" is realized. Support of dynamic properties of figures of primitive "ElFigure" is realized. Set of various improvements is made.
UI.Vision (0.8.0) - Stabilization. Optimization of productivity is done. Realization of dynamization of all parameters of elements of primitive "ElFigure" is done. Realization of the primitive "Document" is made. Addition of function for a printing and export in a mode of execution is done. For inquiries of the data of frames the group inquiry, considerably increasing productivity, is used. Optimization of algorithm of sorting of enclosed widgets of the frames that has considerably increased productivity of processing of large mnemonic schemes. Changing of the conception of formation of elements of primitive "ElFigure" is made, it allow considerably increasing of productivity. Realization of function of visual scaling of the frames in developing mode is made. Realization of scale of a font in all primitives is made. Set of various improvements is made.
UI.WebVision (0.6.0) - Stabilization. Realization of dynamization of all parameters of elements of primitive "ElFigure" is done. Realization of the primitive "Document" is done. For inquiries of the data of the frames the group inquiry, considerably increasing productivity, is used. Realization of the primitive "Protocol" is made. Set of various improvements is done.
UI.WebCfg (1.5.2) - Stabilization of the module. Addition of actions of loading and saving of the current page is done.
UI.WebCfgD (0.5.0) - The new module: Realization of a dynamic Web-configurator of OpenSCADA.
UI.WebDbg - Removal of the module: The module of working off of interaction with Web-interfaces.
1 Realization of scheduled tasks
According to the plan of release the following tasks have been done:
Realization of support of group inquiries in language of the control and management of OpenSCADA, and also optimization on its basis of network communications of various subsystems of OpenSCADA. - According to this task it has been done:
Realization of service inquiry of a branch of attributes of widgets '/serv/attrBr '. The inquiry is intended to optimize an exchange between a visualizer and visualization engine by replacement of set of little inquiries with one large. In case of an exchange on network highly-latent channels the given mechanism essentially increases productivity. The inquiry has been used in modules UI.Vision and UI.WebVision.
The group inquiry of a tree of libraries of widgets of UI.Vision is realized. It has allowed to increase productivity of loading and processing of large trees of libraries of widgets, especially by the means of a network.
The inquiry of affiliated elements of a tree of navigation, optimized on time, in UI.QTCfg and UI.WebCfgD is realized and used. It has allowed to exclude superfluous, fragmented inquiries, having increased the general speed of formation of a tree of objects, especially by means of a network.
Development and realization of the conception of primitive of VCA “Document”, intended for formation of accounting documentation. - The conception of primitive "Document" has been developed and realized. Realization has touched maintenance of support on the side of VCA engine(UI.VCAEngine) and visualizers UI.Vision and UI.WebVision.
Migration of the module of a configuration of system OpenSCADA UI.WebCfg on dynamic interface DHTML is done. - There has been done not a migration, but creation of the new module of a configuration of OpenSCADA on the basis of Web DHTML. The module has received the name UI.WebCfgD. At present time at the distribution kit OpenSCADA there are both this modules.
Realization of safe transport on the basis of OpenSSL is done. - Result of realization of transport on the basis of OpenSSL became the module of a subsystem "Transports" OpenSCADA - Transport.SSL. The given module realizes standards of scrambling of traffic SSL v2, SSL v3 and TLS v1 for both: inbound, and outbound transports.
Realization of primitives of VCA “Link” and "Function." - This work has not been done and transferred to the next release.
2 Increase of stability, durability and productivity of system.
During working with the given version, and also with its practical adaptation, it was revealed and corrected something about 120 errors. The majority of errors was revealed in components of the visual control area (90 errors).
Except of correction of set of errors 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 on productivity.
Let's list the most essential errors, the correction of which was considerably reflected in the increasing of stability:
Function QWidget::deleteLater() for deleting of widgets and elimination of a problem of falling of OpenSCADA in some situations of deleting of widgets of QT4 is used.
Incorrect deleting of elements std::map in primitive "ElFigure" of the module UI.Vision and UI.WebVision leading falling of system under load after day of work.
Absence of a resource for access to string attributes of parameters of a subsystem "Data acquisition". On the loaded systems with competitive accesses to shared data, for example at start of several sessions of one project of visualization there was an error of memory.
Falling of system is finally excluded at change of connection in module UI.Vision, after closing dialogue with the notice on installation of not all connections.
Insensibility to the register of string key fields of a DB MySQL is corrected, that led to crossing of properties of elements of visualization.
Support of symbols of translation of strings in attributes and names of XML tags is added, that has excluded problems with transfer of large texts in attributes.
The mechanism of access to debugging messages is reconsidered. Now debugging is enabled with the help of definite variable OSC_DEBUG with a level from 0 up to 5, where 5 level the most detailing also should be used with care.
The mechanism of restriction of input of amount of symbols of identifiers of objects of OpenSCADA according to dimension of their values as keys of a DB is realized.
Scrambling of the identifiers of objects of OpenSCADA for prevention of input of inadmissible symbols in the identifier is added.
Increasing of the productivity:
The service inquiry of a branch of attributes of widgets '/serv/attrBr ' is realized. The inquiry is intended to optimize an exchange between a visualizer and visualization engine by replacement of set of little inquiries with one large. In case of an exchange by network highly-latent channels the given mechanism essentially increases productivity.
The binary algorithm of sorting of a heap is used at sorting of the enclosed widgets considering their order. The problem of old algorithm became noticeable after 500 enclosed widgets.
The group inquiry of a tree of libraries of widgets of UI.Vision is added and used.
The new, optimized on time, inquiry of affiliated elements of a tree of navigation in UI.QTCfg and UI.WebCfgD is realized and used.
3 Improvement and stabilization of VCA.
The most significant changes have been done within the limits of visual control area (VCA), namely in modules of VCA engine UI.VCAEngine, visualizers UI.Vision and UI.WebVision. The changes that have been made were directed on stabilization, optimization of productivity and improvement of user properties of VCA.
Improvements of VCA:
Support of dynamic and static points for primitive "ElFigure" is added; dynamic width, colors, and images; dynamic styles of lines. All this has given an opportunity to create very complicated dynamic figures within the limits of one widget, and also has excluded redundancy of presence of separate attributes of coordinates of points for big and complicated static images.
Support of primitive "Document" in UI.VCAEngine, UI.Vision and UI.WebVision is realized. Realization of the primitive "Document" has given an opportunity to create the accounting documentation of various complexity and properties in environments of library QT and Web-technologies of system OpenSCADA.
Realization of functions of a print and export in a window of the executed project is added. The print and export are realized for: pages, diagrams and documents. Export of pages and diagrams is carried out in images, and the document in XHTML.
The conception of display of primitive "ElFigure" with the purpose of substantial increasing of productivity in a mode of development and especially in the execution mode is changed. Changes consist in a preliminary painting on the image, and its subsequent sending on the screen at inquiry about updating. In cases of formation of big static images, and atop of them accommodation of dynamic ones the general productivity of the interface considerably increases.
Function of free visual scale of the edited frame of the visual interface of module UI.Vision is realized. Function is intended to facilitate development of small, but complicated elements, and the big panoramic frames.
Function of scaling of a font of all primitives of modules of visualization UI.Vision and UI.WebVision is realized. Scaling of all primitives became more adequate in a wide range of values.
High-grade scaling of primitive "Diagram" of modules of visualization UI.Vision and UI.WebVision is modified.
UI.WebVision: Significant expansion of functionality of the module, namely:
Using of TTF fonts and FontConfig for access to them is realized. TTF fonts are used for formation of inscriptions of the primitive "Diagram" that has made trends more similar to those in UI.Vision.
Checking of access rights is added;
Opening pages of the interface in separate, pop-up, windows is realized;
The control of an active mode over elements of primitive "FormEl" is realized;
Blocking updating of elements of primitive "FormEl", at the moment of editing by the user, is added;
The primitive "Protocol" is realized.
Support of the icon types of OpenSCADA, like “png”, “gif”, “jpg” and “jpeg” is added.
4 General system expansions.
To the given release has brought much enough general system changes directed on expansion of functionality.
Changes of building system and file of the specification for formation of a RPM-package:
The file of the specification of creation of RPM packages is adapted for formation noarch packages on ALTLinux. Own script 'mkdist' for creation of "pure" archive of the distribution kit, with correction of functioning of a command 'make dist' is created.
Packages of the documentation are unified. The information documentation is placed in a binary package, and the documentation for the program is allocated in the separate package.
Accommodation of libraries and their links on packages is corrected.
The version of library of a kernel of OpenSCADA is changed on "0:10:0".
Changes of a configuration of OpenSCADA and a demonstration DB:
Support of working of OpenSCADA in the user directory is added. For start in user mode the script 'openscada_start' is added.
For QT configurator (UI.QTCfg) the user is set as 'root' by default.
The configuration of own interface of OpenSCADA on port 10005 is added in configuration files of the distribution kit.
The configuration field of a way to icons of OpenSCADA is added. The field of a configuration of a way to modules of OpenSCADA is moved to the main page of system.
The demonstration DB is updated:
The file of a DB of the visual area is divided into files of a DB: vcaBase, vcaTest and vcaAGLKS;
The frames of dynamic reports on the basis of primitive "Document" are added;
Reports in an archival mode on the basis of primitive "Document" are added;
The page of group of graphics is updated and corrected;
Mnemonic scheme and group of graphics are added in the second signal object;
The page of a configuration of parameters of the PID-REGULATOR is added;
The panel of navigation for documents is added;
The panel for control of parameters is expanded for support of discrete parameters (cutoff plates);
Valves are connected to real devices of dynamic model of CS on the basic mnemonic scheme;
The demonstration DB is divided by a language attribute, really the demonstration DB in English has been added to the distribution kit.
Expansion API of the user programming:
Special.FLibSYS:
The function of user API for transformation of date and time at string tmCtime() is replaced with function of representation of date and time in an any format tmFStr();
In the function of user API: varhBeg(), varhEnd(), varhGetR(), varhGetB() and varhGetS() the parameter of direct access to archive is added;
The following functions are added: strPath2Sep(), strEnc2HTML() and real2str().
Support of areas of names for the user functions is added. In module DAQ.JavaLikeCalc the keyword “using”, for the indication of area of names, and keyword “return” is added.
Miscellaneous:
The interface of the status of transports is realized. It is intended for detailed elaboration of a current condition and granting of statistics of an exchange.
The opportunity of storage and access to executed instructions of XML-node is added.
The template of the module (src/moduls/ui/=Tmpl=) of subsystem «The user interfaces» is added. The template is intended for creation of modules of the given subsystem on its basis, following the comments in the source code.
Irina and Alexey Popkovyh's translations into German language for modules: Archive.DBArch, Archive.FSArch, DB.SQLite, DB.MySQL, DB.FireBird, DB.DBF, DAQ.BlockCalc are added.
The module DAQ.System is adapted for support libsensors of versions 3.
5 Plans of the further development
To release of the next version the decisions of such tasks are planned:
Expansion API of the user programming by functions:
Management of a session of the visual control area (VCA);
Management of a subsystem "Data acquisition" (DAQ);
Carrying out of a transport and protocol part of the module DAQ.ModBus in the subsystem "Transports" and "Transport protocols". Realization of a mode "Slave" for ModBus network.
Creation of the interface of the status of controllers of subsystem DAQ for the control over status of a source of data and statistics of data acquisition.
Realization of primitives "Connection" and "Function" of VCA.
Realization of styles and the manager of themes in VCA.
Realization of support of arrays in language of the user programming JavaLikeCalc and in OpenSCADA as a whole.
Realization of mechanisms of reservation of a subsystem "Data acquisition".