OpenSCADAWiki: Home Page En/Doc/VCA Engine ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of HomePageEn/Doc/VCAEngine from 2015-08-22 18:54:28..
Russian (1 Kb) Ðóññêàÿ âåðñèÿ
Ukrainian (1 Kb) Óêðà¿íñüêà âåðñ³ÿ?

The module <VCAEngine> of subsystems "User Interfaces"

Module: VCAEngine
Name: Visual control area engine
Type: User Interfaces
Source: ui_VCAEngine.so
Version: 2.9.0
Author: Roman Savochenko
Translated: Maxim Lysenko
Description: The main visual control area engine.
License: GPL

Contents

Introduction

The VCAEngine module provides visual control area engine (VCA) in OpenSCADA system. The module same does not implement the visualization of the VCA, and contains data in accordance with the ideology of "Model/data — Interface". Data visualization of that module is implemented by the visualization modules of VCA, such as Vision and WebVision.


Visual control area (VCA) is an integral part of the SCADA system. It applies to the client stations with a view to providing accessible information about the object and to for the the issuance of the control actions to the object. In various practical situations and conditions the VCA based on different principles of visualization may by applied. For example, this may be the library of widgets Qt, GTK+, WxWidgets or hypertext mechanisms based technologies HTML, XHTML, XML, CSS, and JavaScript, or third-party applications of visualization, realized in various programming languages Java, Python, etc. Any of these principles has its advantages and disadvantages, the combination of which could become an insurmountable obstacle to the use of VCA in a practical case. For example, technologies like the Qt library can create highly-reactive VCA, which will undoubtedly important for the operator station for control of technological processes (TP). However, the need for installation of that client software in some cases may make using of it impossible. On the other hand, Web-technology does not require installation on client systems and is extremely multi-platform (it is enough to create a link to the Web-server at any Web-browser) that is most important for various engineering and administrative stations, but the responsiveness and reliability of such interfaces is lower that actually eliminates the using of them at the operator of the TP stations.


OpenSCADA system has extremely flexible architecture that allows you to create external interfaces, including user and in any manner and for any taste. For example, the system configuration OpenSCADA as now available as by means of the Qt library, and also the Web-based.


At the same time creation of an independent implementation of the VCA in different basis may cause the inability to use the configuration of one VCA into another one. That is inconvenient and limited from the user side, as well as costly in terms of implementation and follow-up support. In order to avoid these problems, as well as to create as soon as possible the full spectrum of different types of VCA project of the creation of the conception of the VCA? is established. The result of this project — the engine module(data model) of the VCA, as well as direct visualization modules Vision and WebVision.

1. Purpose

This module of the engine (data model) of the VCA is aimed to create the logical structure of the VCA and the execution of sessions of individual instances of the VCA projects. Also, the module provides all the necessary data to the final visualizers of the VCA, both through local mechanisms of interaction of OpenSCADA, and through the management Interface of OpenSCADA for remote access.


The final version of the VCA module will provide:

2. The configuration and the formation of interfaces of the VCA

Module itself does not contain mechanisms for visual creating interfaces of VCA, such tools can be given by the final visualization modules of the VCA, for example such a tool provides by the module Vision.


Although the mechanisms for the visual formation of the VCA the module doesn't provide the interface, implemented on the basis of the management interface of the OpenSCADA, to manage the logical structure is provided, and thus it is available for use in any system configurator of the OpenSCADA. Dialogues of this interface are considered further in the context of the architecture of the module and its data.

3. Architecture

Action source page doesn't exist yet(/Home Page En / Doc / VC Aconcept / part 4 / part 2?)

3.1. Frames and elements of visualization (widgets)

Action source page doesn't exist yet(/Home Page En / Doc / VC Aconcept / part 4 / part 3?)

3.2. Project

Action source page doesn't exist yet(/Home Page En / Doc / VC Aconcept / part 4 / part 4?)

3.3. Session of the project execution

Action source page doesn't exist yet(/Home Page En / Doc / VC Aconcept / part 4 / part 5?)

3.4. Styles

Action source page doesn't exist yet(/Home Page En / Doc / VC Aconcept / part 4 / part 6?)

3.5. Events, their processing and the events' maps

Action source page doesn't exist yet(/Home Page En / Doc / VC Aconcept / part 4 / part 7?)

3.6. Signaling (Alarms)

Action source page doesn't exist yet(/Home Page En / Doc / VC Aconcept / part 4 / part 8?)

3.7. Rights management

Action source page doesn't exist yet(/Home Page En / Doc / VC Aconcept / part 4 / part 9?)

3.8. Linkage with the dynamics

Action source page doesn't exist yet(/Home Page En / Doc / VC Aconcept / part 4 / part 10?)

3.9. The primitives of the widget

Action source page doesn't exist yet(/Home Page En / Doc / VC Aconcept / part 4 / part 12?)

3.10. Database using to store libraries of widgets and projects

Action source page doesn't exist yet(/Home Page En / Doc / VC Aconcept / part 4 / part 13?)

3.11. API of the user programming and service interfaces of the OpenSCADA

3.11.1. API of the user programming

API of the user programming of API of the visualization engine are represented by the OpenSCADA objects directly, which build user interface, and same "Session" and "Widget/page". These objects provide the set of control functions for the user:

Object "Session" ( this.ownerSess() )


Object "Widget" (this)




Object "Widget" of the primitive "Document" (this)


The deprecated API of the user programming of the visualization engine are represented by the group of functions directly in the engine module of the VCA. Calling of these functions from the scripts of widgets can be performed directly by the ID of the function, since their area of names is indicated for the context of the scripts of widgets.


Widget list (WdgList)
Description: Returns a list of widgets in the container of widgets or a list of child widgets. If pg is set it returns a list of pages for the projects and sessions.
Parameters:

ID Name Type Mode By default
list List String Return
addr Address String Input
pg Pages Bool Input 0

Presence of the node (NodePresent)
Description: Check for the presence of the node, including widgets, attributes and others.
Parameters:

ID Name Type Mode By default
rez Result Bool Return
addr Address String Input

Attributes list (AttrList)
Description: Returns list of attributes of the widget. If noUser is set then only not user attributes are returned.
Parameters:

ID Name Type Mode By default
list List String Return
addr Address String Input
noUser Without user Bool Input 1

Request of the attribute (AttrGet)
Description: Request of the value of the attribute of the widget. The request can be done as by indicating the full address of the attribute in addr, and by indicating separately the address of the widget in addr, and the ID of the attribute in the attr.
Parameters:

ID Name Type Mode By default
val Value String Return
addr Address String Input
attr Attribute Bool Input

Setting of the attribute (AttrSet)
Description: Setting of the value of the attribute of the widget. Setting can be done as by the indicating the full address of the attribute in addr, and by indicating separately the address of the widget in addr, and the ID of the attribute in attr.
Parameters:

ID Name Type Mode By default
addr Address String Input
val Value String Input
attr Attribute Bool Input

Session user (SesUser)
Description: Return the session user by the session's widget path.
Parameters:

ID Name Type Mode By default
user User String Return
addr Address String Input

3.11.2. Service interfaces of OpenSCADA

Service interfaces are interfaces of access to the OpenSCADA system by means of OpenSCADA control interface from external systems. This mechanism — is the basis of all the mechanisms for interaction within OpenSCADA, implemented through the weak ties, and standard exchange protocol of OpenSCADA.

Access to the values of attributes of the visualization elements (widgets)

In order to provide unitized, grouping and relatively fast access to the values of attributes of the visual elements the service function of the visual element "/serv/attr" and get/set commands of the attributes' values are provided: <get path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/> and <set path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/>. Attributes of these commands, which provide the various mechanisms of the request, are presented in the Table 3.11.2.a.


Table 3.11.2.a. Attributes of commands for get/set of the attributes of the visual elements

Id Name Value
Requesting command of the visual attributes of the widget: <get path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/>
tm Time/counter of the changes Time/counter of the changes set up for the query of the only changed attributes.
<el id="{attr}" p="{a_id}">{val}</el> The formation of the child elements with the results of the attributes In the child element are specified: string ID attr of the attribute, index a_id of the attribute and its value val.
Setting command of the visual attributes of the widget: <set path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/>
<el id="{attr}">{val}</el> Setting of the attributes In the child elements the ID of the attribute attr and its value val are specified.
Group access to the values of the attributes of the visualization elements (widgets)

In order to optimize network traffic by eliminating the small queries, but use one, but a large the group query of the attributes' values of visual elements is made. Grouping of this query involves a request of attributes of the entire branch of the widget, including the embedded elements. For this request the service command "/serv/attrBr" provides. Request of this service command is equivalent to the service command "/serv/attr" and looks as follows: <get path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattrBr"/>

tm — Time/counter of the changes. Time/counter of the changes set up for the query of the only changed attributes.

Result:

<el id="{attr}" p="{a_id}">{val}</el> — elements with the results of the attributes. In the element are specified: string ID attr of the attribute, index a_id of the attribute and its value val.
<w id="{wid}" lnkPath="{lnk_path}">{childs+attrs}</w> — elements with the child widgets and their attributes. The identifier of the child widget wid and the path to the widget on which the current widget links to, if its is the link lnk_path, are specified in the element.
Access to the pages of the session

In order to unify and optimize the access to the pages the service function of the session "/serv/pg" and commands of the query of the list of open pages <openlist path="/UI/VCAEngine/ses_{Session}/%2fserv%2fpg"/>; of opening the pages <open path="/UI/VCAEngine/ses_{Session}/%2fserv%2fpg"/>; and closing of the pages <close path="/UI/VCAEngine/ses_{Session}/%2fserv%2fpg"/> are provided.


The result of the query is child elements <el>{OpPage}</el> which contain the full path of the open page. In addition to the list of open pages, the query returns the value of the current counter for calculating the session in the attribute tm. If this attribute is set during the query, then for each open page it returns the list of changed, since the moment of the specified value of the counter, widgets of the open page.

Signaling (alarm) management

To provide a mechanism for global control of the signaling of the session the service function of the session "/serv/alarm" and commands of the query of the signals status <get path="/UI/VCAEngine/ses_{Session}/%2fserv%2falarm"/>; and of the quittance <quittance path="/UI/VCAEngine/ses_{Session}/%2fserv%2falarm"/> are provided.


Request for the status of signals returns generalized condition of the signals, as well as additional a notification resource by attribute "mode" sets to "resource". The notification resource request result is typically a sound file, for playback, and at that time it performs monitoring of the sequence of signaling and quittance of individual the notification resources of the messages.


Request for the quittance performs quittance of the specified widget, attribute wdg, in accordance with the template, attribute tmpl.

Manipulation with the sessions of the projects

To provide a unitize mechanism for manipulation of the sessions by the visualizers of VCA in the module of the VCA engine (VCAEngine) are provided the service function "/serv/sess" and the query commands of the list of open sessions, connection/creation of the new session and disconnection/deleting of the session: <list path="/UI/VCAEngine/%2fserv%2fsess"/>, <connect path="/UI/VCAEngine/%2fserv%2fsess"/> and <disconnect path="/UI/VCAEngine/%2fserv%2fsess"/> accordingly. Attributes of these commands, which provide the various mechanisms of the request, are presented in Table 3.11.2.b.


Table 3.11.2.b. Attributes of commands of the mechanism of manipulation with sessions

Id Name Value
Command of requesting of a list of open sessions for the project: <list path="/UI/VCAEngine/%2fserv%2fsess"/>
prj Indication of the project Specifies the project for which to return the list of open sessions.
<el>{Session}</el> Control of the sessions' list In the child element the open for the requested project sessions are specified.
The command of the connection/opening of the session: <connect path="/UI/VCAEngine/%2fserv%2fsess"/>
sess Installation and control of the session name If the attribute is defined, then connecting to an existing session is to be made, else — creation of the new session is to be made. In the case of opening of the new session in this attribute its name is is placed.
prj Setting the name of the project It is used to open a new session for indicated project and when the attribute sess is not specified.
The command of disconnection/closing of the session: <disconnect path="/UI/VCAEngine/%2fserv%2fsess"/>
sess Setting the name of the session Specify the name of the session from that it is made the disconnection or closing. Sessions, not the background, and to which none of the visualizers is not connected, are automatically closed.
Group request for the tree of widget libraries

In order to optimize the performance of local and especially network interaction the service function "/serv/wlbBr" and the command of the query of the tree of widget libraries: <get path="/UI/VCAEngine/%2fserv%2fwlbBr"/> are provided. The result of the query is a tree with the elements of the libraries of widgets, tags wlb. Inside the tags of libraries of widgets are included: icon tag ico and the widgets library tags w. The widgets tags, in their turn, contain the icon tag and tags of the child widgets cw.


 (2 Kb) The revision continuing here.

4. Configuring the module via the control interface of OpenSCADA

Through the management interface of OpenSCADA, components that use it, can be configured from any system configurator OpenSCADA. This module provides an interface to access all of the data object of the VCA. Main inset of configuration page of the module provides access to widgets libraries and projects (Fig. 4.1). The inset "Sessions" provides access to opened sessions of projects (Fig. 4.2).


Main configuration page of the module. (93 Kb)
Fig.4.1 Main configuration page of the module.

The inset "Sessions" of configuration page of the module. (92 Kb)
Fig.4.2 The inset "Sessions" of configuration page of the module.

In addition to the list of open sessions tab in Figure 4.2 contains a table with a list of sessions that must be created and run at boot time OpenSCADA. Creation of sessions through this tool can be useful for Web-based interface. In this case, when connecting Web-user data is ready and ensures the continuity of the formation of archival documents.


The configuration of container widgets in the face of libraries and widget projects is done through pages in Fig. 4.3 (a project) and Fig.4.5 (a library of widgets). Widget library contains widgets, and the draft — page. Both types contain a tab container configuration Mime-data used widgets (Fig.4.6). The project page also contains tab "Diagnostics" (Fig.4.4) for debug and control all the page's executions by sessions.


Configuration page of the projects. (117 Kb)
Fig.4.3 The configuration page of the projects.

From this page you can set:


The tab "Diagnostics" of the projects. (125 Kb)
Fig.4.4 The tab "Diagnostics" of the projects.

From this tab you can select time, or refresh to current, and size for diagnostic messages obtain.


The configuration page of the widgets libraries. (90 Kb)
Fig.4.5 The configuration page of the widgets libraries.

From this page you can set:


The configuration tab of the Mime-data of the container. (96 Kb)
Fig.4.6 The configuration tab of the Mime-data of the container.

Configuration of the project session differs significantly from the configuration of the project (Fig. 4.8), but also contains pages of the project.


Configuration page of the sessions of the projects. (113 Kb)
Fig.4.7 The configuration page of the sessions of the projects.

From this page you can set:


The configuration pages of visual elements, placed in different containers, may be very different, but this difference is the presence or absence of individual tabs. The main tab of visual elements in fact is the same everywhere, differing in one configuration field (Fig. 4.8). The pages contains the tabs of the child pages and embedded widget. Container widgets contains the tab of the embedded widgets. All visual elements contain attributes tab (Fig. 4.9), except the logical containers of the projects. Elements, at the level of which it is possible to build the user procedure and to determine the links, contain the tabs "Process" (Fig. 4.10) and "Links" (Fig.4.11).


Main tab of the configuration of visual elements. (126 Kb)
Fig.4.8 Main tab of the configuration of visual elements.

From this page you can set:


Tab of the attributes of visual elements. (112 Kb)
Fig.4.9 Tab of the attributes of visual elements.

Tab of the processing of visual elements. (137 Kb)
Fig.4.10 Tab of the processing of visual elements.

Tab of the links of the visual elements. (103 Kb)
Fig.4.11 Tab of the links of the visual elements.

 
There are no files on this page.[Display files/form]
There is no comment on this page. [Display comments/form]