Libs/Mnemo elements - OpenSCADAWiki

# Libs/Mnemo elements

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

Name | Version | License | Source | Languages | Author | Icon | Description
--- | --- | --- | --- | --- | --- | --- | ---
Mnemonic elements library of the user interface | 1.0 | GPLv2 | vcaBase.db (SQL, GZip) > VCA.wlb_mnEls | en, uk, ru | Roman Savochenko Maxim Lysenko (2008-2012), Ksenia Yashina (2007) |  | Provides the mnemonic elements library of the user interface of the industrial automation. Founded: September 2007 Initially created: in the old Wiki Used by: the simulator AGLKS, Boiler and more projects

The library is created to provide mnemonic elements of the user interface and it contains graphic elements, often need when forming the user interface of the automation of technological processes. The library is built on the basis primitives of the widgets and the internal programming language JavaLikeCalc.

The element's names and their parameters are available in languages: English, Ukrainian and mRussian. Their source code wrote in the human-language independent mode with calls for the translations by the function tr() and the message's translation also allowed for English, Ukrainian and mRussian.

For connection the library to a project of the OpenSCADA station you can obtain the database file as:

- supplied with a ready and proper package of the Linux distribution like to "openscada-libdb-vca", "openscada-LibDB.VCA";
- directly taken for most actual one from the subversion repository and converted to the DB SQLite file in the way:

    wget http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/vcaBase.sql
    sqlite3 -init vcaBase.sql vcaBase.db .exit

- downloaded for the one attached here.

This obtained file next you can place into the project directory of the station and create the database object for the DB module "SQLite", registering the database file in the configuration.

## 1 Passive screen elements

### 1.1 Elements of pipelines without the gradient fill

The elements in Figure 1.1 serve to construct pipelines of any complexity, required width and color. By default, they are filled in yellow, the rotation angle is 0° and the mirroring disabled.

Fig.1.1. Elements of the pipeline without the gradient fill.

The pipeline elements include, from the left to the right:

Name (identifier) | Version | License | Author
--- | --- | --- | ---
Pipe-cross (El_Krest) | 1.0 | GPLv2 | Maxim Lysenko
Pipe-line horizontal (El_Pipe_simple) | 1.0 | GPLv2 | Maxim Lysenko
Pipe-line vertical (El_Pipe_simple_vert) | 1.0 | GPLv2 | Maxim Lysenko
Arrow (El_Strela) | 1.0 | GPLv2 | Maxim Lysenko
Back arrow (El_Obr_Strela) | 1.0 | GPLv2 | Maxim Lysenko
Pipe-angle (El_pipe_1) | 1.0 | GPLv2 | Maxim Lysenko
Pipe-tee (El_Troinik) | 1.0 | GPLv2 | Maxim Lysenko

Using — development
These widgets can be used by the developer to create mnemonic schemes of the plain pipelines. By the attribute "Color 1" you can change the element filling color. By rotation and mirroring these widgets you can get all the needed combinations. By scaling, you can set the desired pipe width where, for straight sections, the "x" and "y" axis scales may be different, determining the typical pipe width on the mnemonic scheme and the length of its individual section, respectively. To use it you need to add selected ones to a mnemonic scheme, systematically adjust for the geometry and visually connect the needed parts of the pipelines properly, see Addition 1 for the details. For the purpose of systematic and simplified work, you may prepare only first elements and for other pipeline parts use ready copies of these already prepared and placed elements.

Using — runtime
In the runtime mode, these elements look the same as in the development mode because they are not dynamic.

### 1.2 Elements of pipelines with volumetric filling

The elements in Figure 1.2 serve to construct volumetric pipelines of any complexity, required width and color. By default, the transparent volumetric gradient is filled in yellow.

Fig.1.2. Elements of pipelines with volumetric filling.

The pipeline elements include, from the left to the right and from the top to the bottom:

Name (identifier) | Version | License | Author
--- | --- | --- | ---
Pipe-cross, volumetric (El_Krest_gr) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko
Pipe-line horizontal, volumetric (El_Pipe_simple_gr) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko
Vertical pipe line, volumetric (El_Pipe_simple_vert_gr) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko
ArrowHR, volumetric (El_Strela_gr) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko
ArrowHL, volumetric (El_StrelaHL_gr) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko
ArrowVB, volumetric (El_StrelaVB_gr) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko
ArrowVT, volumetric (El_StrelaVT_gr) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko
Back arrowHL, volumetric (El_Obr_Strela_gr) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko
Back arrowHR, volumetric (El_Obr_StrelaHR_gr) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko
Back arrowVB, volumetric (El_Obr_StrelaVB_gr) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko
Back arrowVT, volumetric (El_Obr_StrelaVT_gr) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko
Pipe-angleBL, volumetric (El_pipe_1_gr) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko
Pipe-angleBR, volumetric (El_angleBR_gr) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko
Pipe-angleTL, volumetric (El_angleTL_gr) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko
Pipe-angleTR, volumetric (El_angleTR_gr) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko
Pipe-teeVR, volumetric (El_Troinik_gr) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko
Pipe-teeHB, volumetric (El_TroinikHB_gr) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko
Pipe-teeHT, volumetric (El_TroinikHT_gr) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko
Pipe-teeVL, volumetric (El_TroinikVL_gr) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko

Using — development
These widgets can be used by the developer to create mnemonic schemes of the volumetric pipelines. By the attribute "Fill: color" you can change the element filling color. By scaling, you can set the desired pipe width where, for straight sections, the "x" and "y" axis scales may be different, determining the typical pipe width on the mnemonic scheme and the length of its individual section, respectively. To use it you need to add selected ones to a mnemonic scheme, systematically adjust for the geometry and visually connect the needed parts of the pipelines properly, see Addition 1 for the details. For the purpose of systematic and simplified work, you may prepare only first elements and for other pipeline parts use ready copies of these already prepared and placed elements.

It is not necessary to rotate these widgets as this may cause visual contradiction with other elements of this category, due to the specific of gradient filling. That is why all four element orientations are provided without the need for rotation.

Using — runtime
In the runtime mode, these elements look the same as in the development mode because they are not dynamic.

### 1.3 Different passive elements

The elements in Figure 1.3 are for use in, or around, pipelines.

Fig.1.3. Different passive elements.

The different passive elements include, from the left to the right:

Name (identifier) | Version | License | Author
--- | --- | --- | ---
Elements of the pipe schemes
Manual valve (El_Armatura) | 1.0 | GPLv2 | Roman Savochenko
Diaphragm (El_d) | 1.0 | GPLv2 | Roman Savochenko
Separator (sep) | 1.0 | GPLv2 | Roman Savochenko
Cooler (cooler) | 1.0 | GPLv2 | Roman Savochenko
Coil pipe (Teploobm) | 1.0 | GPLv2 | Maxim Lysenko
Parts of elements of the pipe schemes
Cooler 2 (cooler2) | 1.0 | GPLv2 | Ksenia Yashina
Rounded rectangle (El_round_square) | 1.0 | GPLv2 | Maxim Lysenko
Rounded rectangle 1 (El_round_square1) | 1.0 | GPLv2 | Maxim Lysenko
Rounded rectangle, volumetric (rnd_sq_gr) | 1.0 | GPLv2 | Maxim Lysenko
Rounded rectangle 1, volumetric (rnd_sq_gr1) | 1.0 | GPLv2 | Maxim Lysenko
Additional
Line (Line_simple) | 1.0 | GPLv2 | Maxim Lysenko
Wave-line (El_Obriv) | 1.0 | GPLv2 | Maxim Lysenko
Scale (Shkala) | 1.0 | GPLv2 | Roman Savochenko
Ruler (El_Priamaja) | 1.0 | GPLv2 | Maxim Lysenko

Using — development
These widgets can be used by the developer to create mnemonic schemes with the pipelines. By rotating and mirroring these widgets, you can get all the combinations you want, based solely on the primitive "Elementary Figures". By scaling, you can set the desired geometric dimensions relative to the overall dimensions of the pipe network. To use it you need to add selected ones to a mnemonic scheme, systematically adjust for the geometry and properly visually connect into or between the pipeline elements, see Addition 1 for the details. For the purpose of systematic and simplified work, you may prepare only first elements and for other pipeline parts use ready copies of these already prepared and placed elements.

Using — runtime
In the runtime mode, these elements look mostly the same as in the development mode because they are not dynamic. Some elements, as "Cooler 2", are dynamic but are not linked.

### 1.4 Alarming (El_Alarm) | 1.0 | GPLv2 | * | en, uk, ru | Roman Savochenko

The element on Figure 1.4 is used to display the discrete status by color. Also this element generates notifications of violations on the locally defined condition, the attribute ntf. The element commonly uses and represents the representative structure of the DAQ-template of the discrete block.

Fig.1.4. The element "Alarming" in the development and runtime modes (left to right).

Using — development
This widget can be used by the developer to create mnemonic schemes with displaying of discrete statuses. To use it you need to add this widget to a mnemonic scheme, proportionally adjust for the geometry and link to the data source parameter.

Using — runtime
In the runtime mode, in the main field of the element, there are displayed a circle filled by colour, what related to values of the discrete signals of the parameter and the attribute digStts configuration; where the colour, depending to availability of a violation related to the attribute ntf condition, sets to the violation color; and to what the inquieted parameter may blink. At the hardware errors and non validity the data, it fills in the gray color.

Linking and configuring the attributes

Identifier | Name | Type | Configuration | Configuration template | Description
--- | --- | --- | --- | --- | ---
NAME | Name | String | Input link | Parameter|NAME | Short name of the parameter to be inserted in the notification of violations.
st_open | Parameter: status-open | Boolean | Input link | Parameter|st_open | The state "Opened" of the parameter or the common state of the switch at missing the state signal "Closed".
st_close | Parameter: status-close | Boolean | Input link | Parameter|st_close | The state "Closed" of the parameter
digStts | Statuses | String | Input link | Parameter|digStts | Configuration of the parameter statuses with the structure {openedLabel}-{color};{closedLabel}-{color}, for the discrete block.
ntf | Notification "{st}:{modes}:{Speech text}" | String | Constant |  | Configuration of the notification forming at the status (st) [0|1] and the notification modes-methods (modes), as a string of the digital methods, and by the speech, if pointed such method.

### 1.5 Level (Level) | 1.0 | GPLv2 | * | en, uk, ru | Maxim Lysenko, Roman Savochenko

The element on Figure 1.5 is used to display a value histogram of levels of liquid in the technological apparatus. The element commonly uses and represents the representative structure of the "Analog signal" DAQ-template.

Fig.1.5. The element "Level" in the development and runtime modes (left to right).

Using — development
This widget can be used by the developer to create mnemonic schemes with displaying levels of liquid in the technological apparatus. By the attribute "Fill: color" you can change the bar filling color. By rotation this widget you can get all the needed combinations. To use it you need to add this widget to a mnemonic scheme, adjust for the geometry by the scale and link to the data source parameter.

Using — runtime
In the runtime mode, in the main field of the element, there are displayed a histogram bar, what related to the analog value.

Linking and configuring the attributes

Identifier | Name | Type | Configuration | Configuration template | Description
--- | --- | --- | --- | --- | ---
var | Value | Real | Input link | Parameter|var | Engineeric real value of the parameter.
max | Maximum | Real | Input link | Parameter|max | Upper limit value of the parameter.
min | Minimum | Real | Input link | Parameter|min | Minimum limit values of the parameter.
fillColor | Fill: color | Color | Constant |  |

## 2 Active elements, representing various technological devices

### 2.1 Discrete apparatus

The elements on Figure 2.1 is used to display the discrete apparatus' status on basis of the discrete signals, for use in pipelines. The elements commonly use and represent the representative structure of the DAQ-template of the discrete block in different visual variants.

Fig.2.1. Discrete apparatus' elements in the development and runtime modes (top to bottom).

The discrete apparatus' elements include, from the left to the right:

Name (identifier) | Version | License | Author | Processing period
--- | --- | --- | --- | ---
Compressor (Compressor), Compressor 1 (Compressor_1) | 1.2 | GPLv2 | Roman Savochenko, Maxim Lysenko | -1 ms (parent)
Ball crane (El_Kran_Sh), Bolt (El_Zadvizhka), Crane (Zadvizhka) | 1.2 | GPLv2 | Maxim Lysenko, Roman Savochenko | -1 ms (parent)

Using — development
These widgets can be used by the developer to create mnemonic schemes with displaying and control of the discrete apparatus. To use their you need to add these widgets to a mnemonic scheme, proportionally adjust for the geometry and link to the data source parameter.

Using — runtime
In the runtime mode, in the main field of the elements, there are represented the apparatus symbolic shape with a dynamic sign of the discrete status, what related to values of the discrete signals of the parameter and the attribute digStts configuration. At the hardware errors and non validity the data, it fills in the gray color.

In the active mode of the element, pressing the left mouse button in the widget body will cause to appear in the panels area for control panel of the parameter, and the selection of this widget will be displayed with the blinking structure color. The commands are duplicated in the context menu that appears when the right mouse button is pressed in the widget area.

The widget supports now of working with very big "Periodic processing" value and that value is set now to inherit from parent widget/page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.

Linking and configuring the attributes

Identifier | Name | Type | Configuration | Configuration template | Description
--- | --- | --- | --- | --- | ---
shifr | Parameter: code | String | Input link | Parameter|NAME | Short name of the parameter to be inserted in actions of the user-operator.
DESCR | Description | String | Input link | Parameter|DESCR | Description or long name of the parameter to be inserted in actions of the user-operator.
st_open | Parameter: state - "Opened" | Boolean | Input link | Parameter|st_open | The state "Opened" of the parameter or the common state of the switch at missing the state signal "Closed".
st_close | Parameter: state - "Closed" | Boolean | Input link | Parameter|st_close | The state "Closed" of the parameter.
digStts | Statuses | String | Input link | Parameter|digStts | Configuration of the parameter statuses with the structure {openedLabel}-{color};{closedLabel}-{color}, for the discrete block.
com | Parameter: command - "Open" | Boolean | Full link | Parameter|com | The command "Open" of the parameter or the common command of the switch at missing the command signal "Close".
close | Parameter: command - "Close" | Boolean | Full link | Parameter|close | The command "Close" of the parameter.
stop | Parameter: command - "Stop" | Boolean | Full link | Parameter|stop | The command "Stop" of the parameter, for cranes.
digComs | Commands | String | Input link | Parameter|digComs | Configuration of the parameter commands with the structure {openLabel}-{color};{closeLabel}-{color}, for the discrete block, and {com1Label}-{color};{com2Label}-{color};...;{comNLabel}-{color}, for the code status.

### 2.2 Analog apparatus

The elements on Figure 2.2 is used to display the analog apparatus' status and intended for use in pipelines. The elements commonly use and represent the representative structure of the DAQ-template of the analog PID-regulators in different visual variants.

Fig.2.2. Analog apparatus' elements in the development and runtime modes (top to bottom).

The analog apparatus' elements include, from the left to the right:

Name (identifier) | Version | License | Author | Processing period
--- | --- | --- | --- | ---
Crane with position (El_Kran_polozh) | 1.1 | GPLv2 | Maxim Lysenko, Roman Savochenko | -1 ms (parent)
Three-positioned crane (Kran_3_pos) | 1.0 | GPLv2 | Maxim Lysenko, Roman Savochenko

Using — development
These widgets can be used by the developer to create mnemonic schemes with displaying and control of the analog apparatus. To use their you need to add these widgets to a mnemonic scheme, proportionally adjust for the geometry and link to the data source parameter.

Using — runtime
In the runtime mode, in the main field of the elements, there are represented the apparatus symbolic shape with a dynamic sign, what related to values of the analog parameter.

In the active mode of the element, pressing the left mouse button in the widget body will cause to appear in the panels area for control panel of the parameter, and the selection of this widget will be displayed with the blinking structure color.

The widget supports now of working with very big "Periodic processing" value and that value is set now to inherit from parent widget/page/session (the value -1). That is possible by a mechanism of the events early processing and the possibility of control the processing periodicity from the procedure.

Linking and configuring the attributes

Identifier | Name | Type | Configuration | Configuration template | Description
--- | --- | --- | --- | --- | ---
out | Parameter: position | Real | Input link | Parameter|out |

## 3 Addition 1: Adjustment and fitting of elements, construction of complete pipelines

This library contains and is intended for the construction of integral pipelines of arbitrary configuration of its individual elements, which need to be visually connected to each other so that there are no obvious displacements along the common axis and the intervals between the connection of visual elements, especially for primary elements of the pipeline and with the ability to have an equally perfect appearance across a wide range of scales, ideally at all.

The need for wide-scale mnemonic schemes is relevant because of the unified construction of the mnemonic schemes in the resolution 900x600 and the ability to perform them on large resolutions of modern displays, when the zoom factor can now reach 10.

Therefore, all imperfections of the manual fitting there will immediately pop up and spoil the picture, since it is difficult to do without special means and on the initial screen of development it is impossible to see them.

Accordingly, the following rules are recommended for fitting the elements to obtain the desired result:

1. Aligning elements by axis should be performed by centering, since they are all unified in size 100x100 and at the condition of providing their systematic arrangement on the mnemonic scheme on the same scale, typically 0.2.
2. Perfect fit is more difficult because there is currently no tool to draw one element to the nearest border of another, and it is possible only at a separate calculation of the coordinates. Therefore, it is recommended to partially overlap one element to another, at 100% development scale, after the previous rule and according to the algorithm:
   - to pull up the second element to the first, in one pixel step (holding down Shift) until the visual gap disappears, that is, the maximum possible distance remaining there will be 1 pixel;
   - compensate this remain by another step of 1 pixel.

      When developing at a scale other than 100%, say 150%, we get a maximum compensation of 1*(150/100)=1.5, ie the compensation steps must be the larger whole (ceil) — 2.

The latter rule is obviously not perfect and for a translucent fill color will lead to another defect namely the unevenness of the final color in the connection locations, which can however be used for visual inspection in the design of opaque schemes. But if you still need such an opportunity without the need for separate calculations, then order-motivate the developers to create a tool for reaching out!

Applying these rules can be quite simple to get the result in the figure:

The mnemonic scheme sample with pipelines.

Libs/Mnemo_elements/en - GFDL | July 2026 | OpenSCADA 1+r3070