OpenSCADA

Documents/Release 0.9

English • ‎mRussian • ‎Українська

Contents

1 Introduction

The release of OpenSCADA, an open SCADA (Supervisory Control and Data Acquisition) system, version 0.9 is a stable production release of the long-term support (LTS).

The main purpose of the release is to provide an updated and stable platform for building integrated automation systems and other adjacent solutions for the community of users and developers of the free software. Also, the release is intended to become an actual and solid foundation for commercial solutions building.

The release is the next release of the stable branch for which, over a long period of time, there provided the technical support from developers and releasing of updates in the form of public builds for the main and stable environments of Linux, as well as operational builds for holders of packages of the technical support. The life cycle of the previous release 0.8.0 LTS stops from its latest update, right before the first builds of 0.9 LTS packages.

It was at this version that the final transition to the Work/LTS development scheme took place, that is, the development is carried out within the working version and on its basis periodically released the stable releases, which, in turn and in parallel, are updated by the back-porting compatible changes from the working version. The initiating transition took place in 2013, when the current stable version was recognized as 0.8.0 LTS and the working as 0.9 Work. Currently, 0.9 LTS is announced as a stable version, and 1 Work as a working version.

In general, the new stable version is the result of six years of development, implementation to various solutions, stabilization and exploitation of OpenSCADA in its work branch, which is currently being released as a stable one. All this time updates for 0.8.0 LTS continued to be released and what will be done for the announced 0.9 LTS.

This document is a generalization of the Change Log, starting with the zero revision of the previous LTS version, through its updates and ending with the current one. The document is intended to briefly and clearly show the new features of OpenSCADA. You can read in detail the changes in the "ChangeLog" file of distributive packages or from the source: http://oscada.org/svn/tags/openscada_0.9/ChangeLog.

1.1 Overall information

The OpenSCADA project was founded by Roman Savochenko in 2003 as a free implementation of the SCADA system or the Human Machine Interface (HMI), based on its thorough projecting during 2002 and the experience of using and developing a commercial SCADA system to this.

SCADA or HMI systems are generally designed and used to carry out human operational control over the work of complex and responsible technological equipment and processes of various manufacturing enterprises.

At the time of announcement of 0.9 LTS, OpenSCADA is a developed SCADA/HMI system, which is quite widely used as in the direct destination and, due to its flexibility, in many related industries and it can definitely be called more general — a dynamic system of working with data in the real time.

The number of the stable version of OpenSCADA is less than one only because its purpose was claimed multiplatform, to achieve which in the planned volume is scheduled for the next stable release number 1. In general, the objectives of OpenSCADA are:

1.2 Application

For actual implementations, where at least one implementation is known and with a short list of which from the project participants you can read through this link, belong:

With some restrictions and improvements, largely in the user's internal environment, OpenSCADA can be used in the following areas:

2 Results of the previous release 0.8.0 LTS

The release 0.8.0 LTS was released in April 2012 and during these six years it received 20 updates, which, in total, corrected over 500 errors and added many improvements that do not violate the compatibility of library databases and configurations.

The configuration and library databases of 0.8.0 LTS were generally frozen due to large incompatible changes at 0.9 Work, for OpenSCADA launch methods, and the imperfection of distributing the library databases at the release date of 0.8.0 LTS. Therefore, the upgrade and transition to 0.9 LTS will be non-trivial, although 0.9 LTS provides everything possible for simplification this procedure. Updating 0.9 LTS to the planned future 1 LTS will no longer be so complex and in fact can only turn into a formal change in the version of the working branch, since now it is planned to upgrade all, including the library databases.

3 Planned tasks of the release

The development of OpenSCADA, after the previous LTS version and within the Work branch, was mainly through deep stabilization and through the practical adaptation with elements of the expansion of the existing functional, aimed to provide a stable and reliable environment for the industrial automation and related tasks, and therefore, there was no clearly defined plan. But three years before this release, such a plan appeared and made the following tasks, as seen from the general development plan:

These tasks are done and some details about them are given below.

4 System-wide properties

The new stable version of OpenSCADA has gained significant system-wide extensions, increased stability in work and productivity, and also received significant improvements to the graphical user interface and its environment, such as: advanced configuration, documentation, accessible directly from the program (offline and online), and which significantly revised and updated.

The common part of documentation of the project has been moved to a new Wiki, based on MediaWiki, and a significant amount of this part has been revised and translated into three languages — English, Ukrainian, mRussian. For the pages transferring a converting procedure from the WackoWiki engine dialect to MediaWiki was created which was completely written in the internal programming language of OpenSCADA, and is used to transfer large volume of the old Wiki. Format the offline documentation has been changed from static PDF-files, that were not updated after the previous LTS version, to HTML-files which dynamically generated from the actual knowledge base (Wiki) of the project, and have actual cross-links between pages and links on the online-documentation, for exclusively external materials. The offline-documentation is also generated by a specially-written procedure in the internal language of OpenSCADA, which, along with the procedure of the Wiki-dialects converting and complex testing the release OpenSCADA, is a bright sign of power and the current level of development of the internal language of OpenSCADA.

Within the old Wiki, after the release 0.8.0 LTS, some documents were added and updated, and with the transferring to the new Wiki, in addition to revision and translation of the main part of the documentation, the overall unification of its structure was made for reasons of: multilingualism (English as a primary language), the logic of the organization, the convenience of translation and the ability to remove duplicate articles from the official site, which at the moment are simply used with the Wiki. We will separately note the significantly expanded main documents:

The original language (English) was completely revised in original messages of the program and mainly for the main articles of the documentation-Wiki OpenSCADA, which is currently making OpenSCADA an adequately favorable for an audience that does not understand the original language — Ukrainian or mRussian. And, along with the full realization of the dynamic translation mechanism, it is possible to build on the basis of OpenSCADA the dynamically multilingual user interfaces that you can see, in particular, on the publicly available Web-interface of the dynamic simulators of TP: AGLKS, Boiler.

The Work version, based on this stable, for the first time defined the OpenSCADA projects conception and implemented a command line script for launching and creating OpenSCADA projects. Immediately before the release of this version, the concept of the OpenSCADA project was finally assigned to the folder with the data of the separate project and the configuration file of OpenSCADA, and the implementation of the project manager was integrated directly into OpenSCADA. Consequently, this LTS version has a developed concept for the project manager that allows to flexibly work with them and eliminate the dangerous possibility of multiple launches with the general data of one project.

The Work version also introduced modification of the modules versions at modification in the code of the module and just before they are uploaded to the source repository, and therefore, the versions of the OpenSCADA modules of this release clearly reflect the overall level of development and stability.

In the process of implementing works on the Work branch, based on this stable, there were introduced the repositories of Linux distribution packages with the OpenSCADA builds, which until now were only provided as separate packages. That significantly simplified the deployment of OpenSCADA and keeping it up to date. Then automatic builder of these packages was created, which currently has up to 100 targets, and which greatly simplified the release of updates for both branches, that is the Work and this stable. Therefore, this LTS version provides packages collections for the main Linux environments and the entire history of public updates will be saved.

To the OpenSCADA packages collections there also provide builds of the live disks of the quick acquaintance and deployment of OpenSCADA together with the system environment. Currently, they have received a formal background in the form of the Linux Automation Distribution of OpenSCADA.

OpenSCADA builds and packages are accompanied by a number of open and free materials of the internal environment of the program, that is, the development of the data acquisition and processing layer, graphic representation elements and whole-complex projects of the TP simulators. These materials are provided as SQLite database files and include:

Hosting of the project in general and materials of 0.9 LTS in particular were transferred to own project server, where additionally were deployed: the demonstration Web-interfaces of OpenSCADA simulators, the project of server monitoring and smart home based on OpenSCADA and builder of the packages of the OpenSCADA repositories.

4.1 Internal

The resolution of internal data of the integer type of the OpenSCADA environment is increased to 64 bits. In general, the internal data of OpenSCADA, with error value reservation (EVAL) for each, is unified by common types: logical, integer, real, string, and object. Which primarily concerns the data sources.

To the OpenSCADA core, its own protocol and all nodes that work with remote stations OpenSCADA; added the ability to "raise" the nodes of OpenSCADA that are located behind other nodes and, as a rule, in another network. What generally allows you to centrally manage the OpenSCADA network at any level of the hierarchy.

4.2 Improvements and adaptions to the different platforms

This version of OpenSCADA has gained in-depth support and ability to adapt to different platforms. This was mainly due to the adaptation to work on the Android software platform and the restoration of the building and work with ucLibC, and that it is planned to be used for further adaptation to work on QNX and MS Windows software platforms.

Working on the Single-board PCs was expanded by the Raspberry Pi and Orange Pi boards.

Support of the Linux smartphones of Nokia was appended by the last one based on MeeGo 1.2, that is Nokia N9. Or it was the renewing of support for the Nokia N950.

In addition to direct work (natively) on different platforms, the Web-interface has been significantly expanded, which currently implements all the general features of the concept of the Visualization Control Area (VCA).

4.3 Optimization, stabilization and performance

Significant stabilization of the OpenSCADA core, and the overall program, has been achieved through the unification of internal resources control and the expansion of capabilities of the user debugging. In general, the user diagnostic and debugging expanded:

Almost all of the OpenSCADA modules have been subjected to deep and comprehensive stabilization and many have been optimized, of which especially should be noted:

Reliability of the redundant station on an integrated solution scale, more precisely the preservation of the history data, was enhanced by the extension of the redundancy mechanism, which potentially involves reserving any subsystem and currently implements the subsystems "Data acquisition" and "Archives-History".

And, for the program as a whole, a series of formal comprehensive tests was executed, that was pre-expanded in the internal integrated testing procedure of the OpenSCADA release. On the basis of these tests, several bugs were detected which were fixed.

4.4 Data acquisition

Given the key role of the data acquisition in this type of software, this feature, in the person of the subsystem "Data acquisition" and its modules, has received significant improvements, of which particular attention should be paid: shifting emphasis on the extending supported data sources from implementation of individual modules of the subsystem "Data acquisition" in the system language "C/C++", to their implementation in the OpenSCADA environment and in its internal language — logical level of OpenSCADA. That is, at the logical level of OpenSCADA, can be and implements everything that: uses the network to access the data, does not require to use specific libraries and functions, and is not very complicated. Currently there implemented in this way:

Given the increased role of the logical level of OpenSCADA, there has been an increase in the requirements to the flexibility of the data model of the data source, which was satisfied by:

The OpenSCADA internal programming language has made significant improvements and, at the moment, satisfies all the requirements of the areas of application OpenSCADA. Many of these enhancements came in the previous version of 0.8.0 LTS, and some could not get there because of the backward compatibility or lack of stability at that time. Of these significant improvements, it should be noted again: increasing the resolution of the data of the OpenSCADA internal environment of the integer type up to 64 bits and preserving the context of execution of the internal procedures.

4.5 Graphical environment

In general, the graphical environment has been significantly developed, and the main one has been the extension of the module of starting the Qt-interface, as the basis for the rest local interface modules. First of all, this module and the core of OpenSCADA are adapted to allow the Qt-library to run in the main thread of the program, eliminating many of the problems associated with execution in the non-main thread, and also provides work with version 5 of this library. Secondly, this module took on the role of the selecting interface of the OpenSCADA projects when it launches and switches, as well as creating new ones. And thirdly, because of its primacy to launching Qt, it received the function of controlling the appearance of the program regardless of the graphical environment and the possibility of its launch-closing in the system tray. In general, it has made of the possibility to customize OpenSCADA to personal user requirements and to adapt it to very specific environments such as Android.

Notable improvements have been made to the Qt and Web configuration modules, which are particularly noteworthy:

Notable improvements were also made to the Visual Control Area (VCA), consisting of all its modules:

All Web modules, in general, have the opportunity to change the view by topics, through the system-wide interfaces of the protocol HTTP and its mechanisms for query processing and response forming. Also, they all have the support of dynamic translation of the interface, which is especially relevant for multi-user Web-interfaces, and what you can see on the demo Web-interfaces of the OpenSCADA models: AGLKS, Boiler. There is also a mechanism for the distribution of access to the pages, which, in particular, allows to differentiate access to the Web-modules in general.

5 New and significantly updated modules

The new version has added new modules and significantly updated a number of present ones:

6 Conclusion

On the way to the new release 0.9 LTS of industrial use, much work has been done to stabilize, expand functionality, and expand adaptability to work on alternative platforms. All this in general has further expanded the scope of full use of OpenSCADA at all levels of industrial automation systems and related areas of automation and automatic.

LTS versions of OpenSCADA are not blank, they are really supported all the time until the next LTS version, and support for this version will be further expanded with the service updates. Also, the emphasis and implementation policy of the LTS version, which was previously recommended to upgrade configurations with frozen library databases, will be shifted to the using priority on a wide range of new solutions.

In the emergence of the new industrial version of OpenSCADA 0.9 LTS took part:

Further development efforts will focus on:

7 Updates

7.1 [01.01.7532/01.03.2024] The SEVENTH update

This update of the 0.9 LTS release fixes about 60 bugs and appends VERY MANY improvements with several of significant-conceptual ones, which you can read wholly in the update ChangeLog.

At.png User significant actions on the update

=> manually relink all the automatically created sources which changed, when you use the Automatic creation mode
=> manually replace all static using the "focus" attribute like to if(alarms_focus) alUnSel = 10; in LibsDB.vcaBase.wlb_Main.alarmsSt to the code if(this.alarms.attr("focus")) alUnSel = 10;

Automation Linux distributive of the project OpenSCADA

Main WWW-resources, documentation of the project and subprojects

New and significantly updated parts

(Unification the building with adaption ..., Refactoring and unifying the Transports subsystem ..., Control for big memory consumption), Messages Translation — fixes of the conceptual changes of the previous updates)
(Refactoring and unifying the Transports subsystem ...)
(Unification of conception the parameter types)
(Complete refactoring and expanding for ...)
(Expanding by support of the initiative connections, adaption to OpenSSL 1.1 and more)
(Significant reviewing and fixing in the external connections implementation and more)
(Unification the building with adaption to Qt6, QtWebEngine, QtMultimediaEngine, ...)
(Unification the building with adaption to Qt6, QtWebEngine, QtMultimediaEngine, ...)
(Unification the building with adaption to Qt6, QtWebEngine, QtMultimediaEngine, ...)
(Appending by many templates with documenting)

CONCEPTUAL > Unification the building with adaption to Debian 12, Qt6, QtWebEngine, QtMultimediaEngine, OpenSSL3, MIPS

CONCEPTUAL > Refactoring and unifying the Transports subsystem in the additional parameters management and expanding in using the connection time parameters for registering configuration parameters of external sources

CONCEPTUAL > Control for big memory consumption

CONCEPTUAL > Messages Translation (fixes of the conceptual changes of the previous updates)

OpenSCADA libraries and projects

API
!!!!:Changes:

Appends:

SYS

DAQ

Archives-History

Transports

Transport Protocols

User Interface

7.2 [01.01.7531/01.03.2023] The SIXTH update

This update of the 0.9 LTS release fixes about 70 bugs and appends MANY improvements with several of significant-conceptual ones, which you can read wholly in the update ChangeLog.

Automation Linux distributive of the project OpenSCADA

Main WWW-resources, documentation of the project and subprojects

New and significantly updated parts

(Productivity optimisation of the VCA interface, Unification the associated output transports to the input one AND the generic output transport connection, Messages Translation — fixes of the conceptual changes of the previous update)
(Unification the associated output transports to the input one AND the generic output transport connection)
(Unification the associated output transports to the input one AND the generic output transport connection)
(Productivity optimisation of the VCA interface)

CONCEPTUAL > Productivity optimisation of the VCA interface

CONCEPTUAL > Unification the associated output transports to the input one AND the generic output transport connection

CONCEPTUAL > Messages Translation (fixes of the conceptual changes of the previous update)

OpenSCADA libraries and projects

API
!!!!:Changes:

Appends:

SYS

DB

DAQ

Archives-History

Transports

Transport Protocols

User Interface

7.2.1 Service updates

7.3 [22.12.7529/22.02.2022] The FIFTH update

This update of the 0.9 LTS release fixes about 50 bugs and appends MANY improvements with several of significant-conceptual ones, which you can read wholly in the update ChangeLog.

At.png Significant actions of the developer of the OpenSCADA modules on the update

=> obligatory revise of using the label functions since the compiler mayn't to say an error in functions like to printf(), TSYS::strMess() but that module will be crashed.

Automation Linux distributive of the project OpenSCADA

Main WWW-resources of the project — Site

New and significantly updated parts

(Common Conception of the Data Storage, Messages Translation, Message Sublevels {Main}[0...9] and Unification for the User Messages Transferring)
(Significant Unification the Common SQL-code in the OpenSCADA Core)
(redundancy and the messages transferring, asynchronous writing mode implementation)
(pointing the certificates and the key directly from an external file with the input transports restarting at it change)
(finishing of implementing the changes obtaining in the runtime mode by the clocking cycles through)
(early opening the restored and specified pages in the init procedure)

CONCEPTUAL > Common Conception of the Data Storage

CONFIGURATION FILE

REFACTORING THE TCntrNode FLAGS

CONCEPTUAL > Significant Unification the Common SQL-code in the OpenSCADA Core

CONCEPTUAL > Messages Translation
TFunction::IO object appended the flag IO::TransltText of marking the translate String IO directly:

Expanding by the language for the execution environment of the user functions of the OpenSCADA object, for functions like to strftime():

TUIS,UI.{QTCfg,Vision}: docGet() expanded by the language in the second line.
FIX: The "Translations" tab expansion and fixing for:

FIX: Expansion the Data Messages Translation in the tree modes: SINGLELANGUAGE, MULTILANGUAGE and MULTILANGUAGE-DYNAMIC:

PRIMARY PROJECT OBJECTS
INDIVIDUAL MESSAGES - "Trs"
SYSTEM MESSAGES

CONCEPTUAL > Message Sublevels {Main}[0...9] and Unification for the User Messages Transferring

OpenSCADA libraries and projects

API
!!!!:Changes:

Appends:

SYS

DB

DAQ

Transports

Transport Protocols

User Interface

7.3.1 Service updates

7.4 [14.04.7529/14.06.2021] The FOURTH update

This update of the 0.9 LTS release fixes about 45 bugs and appends some improvements, which you can read wholly in the update ChangeLog.

At.png User significant actions on the update

=> remove manually the common configuration field "WorkDir" if it was appeared there in a wrong way and you have problems in use folders of foreign OpenSCADA projects by this project.

New and significantly updated parts

(revision the translations mechanism)
(appended for the Publish service implementation, CHUNKS support on the DAQ-client part and the code coming refactoring in generic)
(common review and refactoring the tables)
(common review and refactoring the tables in Qt generically and in the view Table of the primitive FormEl of VCA)
(common review and refactoring the tables in the view Table of the primitive FormEl of VCA)

OpenSCADA libraries and projects

API
!!!!:Changes:

Appends:

SYS

  • limiting of the table form time in prmInterf_TM (7 seconds);
  • a configuration field of passing number the top messages;
  • translation setting only for the filtered sources;
  • checking the content for match only for the filtered sources;
  • pass the sources missing error.
  • The translation function TMess::translSet() prevented from propagation the group messages changed not from the translation manager.

DAQ

CLIENT:
  • attributes (monitored items) adding moved from attrPrc() directly to enable() and which ensured to call at the controller object start
  • ... and the items processing improved in updating the description, flags and link;
  • values acquisition is unified in processing in the parameter function upVal()
  • ... and the values requesting by the controller object function getValMIt() with the Arrays support
  • ... than preparing closely for builtin the logical parameter type;
  • the DAQ-parameter objects enabled for including other parameters;
  • the EVAL setting and removing for all attributes tested for all modes;
  • structure variables in DAQ-parameters allowed to select them items separately, in the selection browser;
  • the variables list of the DAQ-parameters parsing set to complete parsing with passing empty lines;
  • the DAQ-controller object appended in closing the session and secure channel at it stopping;
  • the controller object common status appended for the detailed information about the used secure channel, session, subscription and the processing monitored items;
  • the request lock renamed to resOPC.
SERVER:
  • the OPC-UA Server object appended for the common server status tab with information about activity of the secure channels;
  • the EndPoint Node object appended for the common status with information about activity of the sessions and subscriptions, also the subscription task period and time of execution.
LIB:
  • unified in specifying the default value of the secure channel life time, what set to 300000 ms;
  • the default LifeTimeCounter of the subscriptions set to 2400;
  • the object NodeId appended for the function operator==() of direct comparing;
  • the function XML_N::childClear() appended by a result of returning the same XML_N object for concatenation;
  • the function curTime() appended for an argument of the clock source specifying with using the function clock_gettime();
  • short functions appended for str2int() and str2uint();
  • some fields renamed: publInterv to publInterval, cntrLifeTime to lifetimeCnt, cntrKeepAlive to maxKeepAliveCnt, maxNotPerPubl to maxNtfPerPubl, en to publEn;
  • fixing "POOL" word on "POLL".
LIB_CLIENT:
  • Client::reqService() appended for the meta command "CloseALL" of closing current session and secure channel;
  • the main client services processing function protIO() adapted to work in the asynchronous mode (not requesting);
  • the function Client::messIO() expanded for the timeout argument with specifying the requesting mode also;
  • the channel writing and reading is separated in MSG packages processing;
  • adaption the secure messages to work with the mixed input buffer;
  • moving the main service request "OPN" under the messages processing due to the renewals sending inward the Publish activity.
  • implemented for the Publish service on the client side:
  • the "Client" object appended for the subobject "Subscr" implementation (but stored in Client::SClntSess) with the functions: activate(), monitoredItemAdd() and monitoredItemDel();
  • the "Client" object appended for the function poll() with:
  • unifying the values reading both for the Read and Publish modes;
  • checking of loss all Publish requests during the OpcUa_ClntPublishResentCntr(2) keep alive count-time;
  • restoring the Publish pool.
  • the object Client::Subscr::MonitItem was added as the monitored items representer with the access under the client resource common lock;
  • the service requests appended for implementation, include processing the responses: CreateSubscription, DeleteSubscriptions, CreateMonitoredItems, Publish, Poll;
  • implemented and tested in the secure policies support at Publish;
  • the target Publish requests pool per subscription set in the virtual function publishReqsPool() with default value 2.
  • appended for the CHUNKS implementation both for requests and responses;
  • completely revised and cleared in the common requesting function reqService() from doubling the arguments and parameters:
  • appended for restoring sessions at reconnection the secure channel;
  • unifying the clearing of the current session and secure channel.
  • the client object appended by the common resources lock mtxData;
  • the message property "timeoutHint" set to 0 for all messages;
  • the Read request returned to the plain requesting with limition on CHUNKS only;
  • the error OpcUa_BadSecureChannelIdInvalid added for clearing the secure channel;
  • Client::SClntSess::{sessOpen,lstMessReq} renamed to {secChnlOpenTm,secLstMessReqTm}
  • ... and prevented from clearing in restoring the session and secure channel;
  • appended for debug message of the request errors.
LIB_SERVER:
  • the server part adapted to work with UAExpert 1.5 for: the attribute AId_Descr of the DAQ-value set to the type OpcUa_LocalizedText, the integer types appended for declaration OpcUa_IntAuto and OpcUa_UIntAuto;
  • the subscriptions processing returned to they processing in a separate task and the function subScrCycle() for:
  • true counting all timeouts to disable;
  • processing the periodicity of subscription and publishing;
  • checking the assigned sessions and secure channels state to close the subscriptions.
  • but the publishing leave for processing in the input channel activity and the function Server::EP::publishCall() with preventing the Publish processing for wrong and foreign Subscriptions, by checking inPrtId, sesTokId and isSecCnlAct;
  • Session unification for: link of the sessions to secure channels switched to single one instead an array, the session checking of all messages appended of preventing of using foreign connections;
  • not final chunk packages switched to send directly, for not append to single TCP-package;
  • EP::mtxData lock switched to PTHREAD_MUTEX_RECURSIVE;
  • the secure channels limited in OpcUa_SecCnlLimit(10) and the publishes queue in OpcUa_ServerMaxPublishQueue(10);
  • EP::secSize() renamed to EP::secN() and there added EP::sessN(), EP::subscrN() and chnlList();
  • Server.SecCnl.{TokenId,TokenIdPrev} renamed to Server.SecCnl.{tokenId,tokenIdPrev}.

Archives-History

Transports

User Interface

  • QTStarter,QTCfg,Vision: The common library class TableDelegate significantly improved to work in QTCfg and Vision:
  • appended for the own user roles SelectRole, TextLimRole and OneLineString;
  • the cell paint appended for the background color by reading-applying the common roles;
  • the number types (integer and real) appended for force centering;
  • the string types appended by the options of alignment and wordwrapping from the role Qt::TextAlignmentRole;
  • appended for long text visible limit support by the own role TextLimRole and the default value 300 symbols by sizeHint() additional reimplementation.
  • FIX: The view "Table" of the primitive "FormEl":
  • VCAEngine,QTStarter,Vision,WebVision: Appended by the new cell type 't'-text mostly for allowing the edition confirming the type 's'-string by pressing Enter.
  • VCAEngine,Vision,WebVision: Appended of the column, row and cell space option "prec" of the real value precision control; and by the column and cell attribute "align" implementation.
  • WebVision,Vision: Appended for switching the tables in preventing of double storing the source content at the content size more for 10000.
  • FIX:Vision: Using the common table delegate with the feature of multiline edition.
  • Improved in the columns, rows and cells show at the table updation and commonly:
  • in limiting the visual size of the cell content in 300 symbols and the rows height in 70% from the whole table size;
  • more precision columns width alignment;
  • in fitting at the development mode and also at the vertical header show;
  • in the table close filling by consideration the visible vertical scrollbar size;
  • in fitting after the table whole resizing only, so allow the columns resizing manually also and to provide that true fitting always.
  • Implemented for the light processing of the width changing and updating:
  • light edition without the columns refitting all updating time, only at: first row appearing, columns count change and the column title change, font change and resize;
  • apply the column force width and the row height calculation with limits independently from the common attribute "colsWdthFit" value;
  • setting the value, early resizing and the table fitting, moved to the space of the table content presence and after the sorting.
  • The export function in runtime append of export the view Table of the primitive "FormEl" in CSV.
  • WebVision:
  • Improved in the columns, rows and cells show at the table updating and commonly:
  • the not fitting mode (the attribute "colsWdthFit" missing) implementation, using the automatic table layout mode for calculation the fixed widths and next switching to the fixed table layout mode;
  • multiline text edition of the text cells in whole width and height of the cell, with the edition apply by Ctrl+Enter;
  • view limiting the string cells in 300 symbols;
  • display the boolean cells as an image at the TRUE state;
  • table cells in the editing mode allowed for the system-browser context menu.
  • Implemented for the light processing of the width changing and updating:
  • the table changes detection and updating switched to the mode of not storing double source content;
  • prevented from the complete updating at the attribute "value" modification.
  • Appended for the sorting support by columns. Set to the first visible column for sorting at the sorting enable.
  • WebCfgD: The table expandings for:
  • the big text content limiting in 300 symbols at the visibility;
  • the string type allowed for the multiline edition using TEXTAREA;
  • the type data "bool" is shown as an image, not "On" or "Off";
  • centring the boolean, number, time and selectable content;
  • simplifying the table content edition for the types time, number and string by removing the apply and spin buttons.
  • Appended and enabled as a build option for the mark mechanism of the attributes changing without the doubles, by requesting the previous-completed cycles, than also preventing the need of detection the doubles in the visualisers and storing the big source content.
  • The projects runtime improved in changing parents of the processing pages on the fly.
  • The session tasks execution appended of early execution at events presence.
  • FIX: The VCA-styles fixed in accessing to empty fields which don't load.
  • The "Diagnostic" page of the VCA-projects adapted to show the debug level messages at enable the debugging.
  • The project session execution information appended for the real periodicity taken from the task, which also used in form value of the procedure attribute "f_frq".
  • The keyboard focus and events significantly improved for ensure that working in common by:
  • setting the "tabindex" attribute for all active widgets and for FormEl items specially - for the form elements;
  • appending the "tabindex" number calculation as a unique one for whole interface, than prventing the tab focus jumps;
  • processing the onfocus event for the own focus setting by setFocus();
  • the view Button of the primitive FormEl appended for the keyboard events processing for down and up at the keys Space and Enter;
  • the primitive Diagram is simplified by removing the spare A item;
  • FIX: Fixed in the keyboard focus switching at mouse clicking on buttons with images.
  • FIX: Fixed in checking the removed widgets for all and the master page.
  • FIX: Fixed at last in plodding spare DIV items at the page changing in the page containers.
  • FIX: Prevented in cycling at presence the Web-session but missing the corresponded VCA-session.
  • the all internal tool actions moving to the implementation as buttons and the toolbar size set from 25 to 30 pixels;
  • removing the toolbar button images' size filtering-resizing on the server side;
  • page icon padding between the title set to 10 pixels;
  • the control page complete updating after the window resize;
  • the generic text edition field by TEXTAREA expanded for apply and cancel from the keyboard;
  • the hosts updating function bound to the double mouse click on the common space of the tree area;
  • FIX: the hosts updating function fixed in detection douple host items;
  • FIX: forced in the actual-selected item marking in the control tree after it rolling;
  • removing nodeText() and setNodeText() by direct using "innerText" and "textContent".

7.4.1 Service updates

7.5 [20.10.7528/20.12.2020] The THIRD update

This update of the 0.9 LTS release fixes about 40 bugs and appends some improvements, which you can read wholly in the update ChangeLog.

Automation Linux distributive of the project OpenSCADA

OpenSCADA libraries and projects

API
!!!!:Changes:

Appends:

SYS

DAQ

Archives-History

Transports

Transport Protocols

User Interface

7.5.1 Service updates

7.6 [17.06.7528/17.08.2020] The SECOND update

This update of the 0.9 LTS release fixes about 60 bugs and appends some improvements, which you can read wholly in the update ChangeLog.

Automation Linux distributive of the project OpenSCADA

OpenSCADA libraries and projects

API
!!!!:Changes:

Appends:

SYS

DB

DAQ

Transports

Transport Protocols

User Interface

7.6.1 Service updates

7.7 [08.02.7528/08.04.2020] The FIRST update

This update is done after 1.5 years of releasing the 0.9 LTS, then it worth as 10 updates by there have fixed about 250 bugs and append many improvements, which you can read wholly in the update ChangeLog.

The key features of the update are:

7.7.1 OpenSCADA libraries and projects

7.7.2 API

!!!!:Changes:

Appends:

7.7.3 SYS

7.7.4 DB

7.7.5 DAQ

7.7.6 Archives-History

7.7.7 Transports

7.7.8 Transport Protocols

7.7.9 User Interface

7.7.10 Special

7.7.11 Service updates

8 Links

Documents/Release_0.9/en - GFDLMarch 2024OpenSCADA 0.9.7