Quick Start Openscada: Roman Savochenko Maxim Lysenko
Quick Start Openscada: Roman Savochenko Maxim Lysenko
Quick Start Openscada: Roman Savochenko Maxim Lysenko
Manual installation of DEB-packages of the first type is made by the following command, previously
having changed the working directory to the directory with the package:
# dpkg -i openscada-libdb.main-0.7.1-1_all.deb openscada-libdb.vca-0.7.1-
1_all.deb openscada-model.aglks-0.7.1-1_all.deb openscada_0.7.1-1_i386.deb
In the process of implementation it may cause bugs related to missing dependencies. The manual
installation of the packages means that you'll solve them manually, like installing packages of
OpenSCADA, or via the package manager of Linux distribution. To familiarize with the process of
installing software in RPM-package you can by the click on: http://skif.bas-
net.by/bsuir/admin/node51.html.
Fig. 3.1. Menu item of the desktop environment to start the demonstration of OpenSCADA.
Start also can be done from the console by the command:
# openscada_demo
Fig. 4.1.1. Adding the controller in the "ModBUS" module of the subsystem "Data acquisition".
Fig. 4.1.2. Dialog to specify the ID and name of the new object.
Fig. 4.1.3. The main tab of the controller's object settings of the ModBUS module.
Settings of the controller's object, as a rule, are specific for the different types of data sources and
protocols. To familiarize in details with the settings of the controller's object of the "ModBUS" module
you can using the link http://wiki.oscada.org/HomePageEn/Doc/ModBus#h871-13. We'll examine the
general configuration of the controller's object and the key settings for the "ModBUS" module.
With the help of the page of the controller's object in the section "Status" may be primarily assessed the
current state of the controller's object and the real state of connection with the physical controller, as well
as quickly to change it. For example, field "Status" contains the code of error and the textual description of
the current state of connection with the controller, in this case the controller's object is disabled. We are
able to enable it and start by setting the flags beside the appropriate fields. Enabled controller's object
initializes the parameters objects, the running one runs the task of inquiry and provides an opportunity to
transmit data to the controller through the attributes of the parameters. The DB field indicates which
database to store in the configuration of the object. We will store the data the main database, ie leave field
the default.
Fig. 4.1.4. Adding the outgoing transport in the module "Sockets" of subsystem "Transports".
Fig. 4.1.5. The configuration page of the outgoing transport of the "Sockets" module of subsystem
"Transports".
In the "Config" section the configuration of the transport object is contained:
• "ID" and "Name" contain the titles, which we entered when creating the object.
• "Description" may contain the detailed description and purpose of the object.
• "Address" specifies the type, address and mode of connection with the remote station. You can
view the record format in the tooltip. Let's set this field to the value "TCP:localhost:10502".
• "To start" indicates in what state to transfer an object at start of OpenSCADA. Let's set the field.
• "Timings" indicate the duration of waiting for the response from the remote station. You can
view the record format in the tooltip. Let us leave the value unchanged.
Let's save the transport and return to the configuration field "Transport address" of the controller's
object and select the address "Sockets.KM101". Setting the controller's object is finished. The next step is
configuration and choose the data you need to query from the controller. This setting is done by creating
an object "Parameter" of the controller. The "Parameter" object allows you to describe the list of data
obtained from the comptroller and to transmit them to the environment of OpenSCADA.
To add a new object of the parameter we will open in the configurator the page of our controller's
object and on the popup menu of item "KM101" we'll click "Add". The parameter's object we'll call
"AT101_1" and the name "AT 101_1".
Let's save the both objects of the parameter. Now we can enable and run our controller to initiate the
exchange. To do this, go back to the page of our controller's object and in the "Status" section let's set the
flag "Run". If we do not miss something, the exchange is successfully started and in the "Status" field we'll
get something like this, as it is shown in the Fig.4.1.7.
Fig. 4.1.7. The page of the controller's object if the exchange with the physical controller is successful.
Fig. 4.2.2. Tab "IO" tab of the configuration page of the template's object.
Let's save the resulting template and set the accessibility flag.
Now we'll create the controller's parameters' objects in the "LogicLev" module of subsystem "Data
acquisition". The controller and its parameters in the module "LogicLev" are identical to the previously
created in the module "ModBUS" and they are created on the page: "Demo station"->"Data acquisition-
>"Module"->"Logic level". The object of the controller and the parameters will be called identical to the
objects in the module "ModBUS".
Fig. 4.2.3. The main tab of the configuration of the object of controller of the LogicLev module.
Fig. 4.2.6. The "Template config" tab of the "LogicLev" controller's parameter page with the links details.
Fig. 4.2.7. The page of the controller's object if the calculation of the controller in the "LogicLev" module
is successful.
Fig. 4.2.8. The page of the attributes of the parameter AT101_1 of "LogicLev" module.
The configuration of data processing is complete.
Fig. 4.3.1. The "Archiving" tab of the AT101_1 parameter of the "LogicLev" module.
Fig. 4.3.2. The page of the archive's object of the "Ti" attribute of the AT101_1 parameter.
Fig. 4.3.3. The "Values" tab of the page of the archive's object of the "Ti" attribute of AT101_1 parameter.
If you foresee the existence of the attributes specified in the controller parameter's template as constant,
it will be possible to specify only parameter, and the attributes will be set automatically.
Fig. 5.1.6. The created group of graphs with the four signals linked.
Fig. 5.2.3. The view of the new frame and set attributes for the mnemonic scheme.
Fig. 5.2.4. The view of the new frame and set attributes for the mnemonic scheme.
This procedure of the creating the mnemonic scheme we'll consider to be finished. Save the new library
of widgets "KM101" and proceed to the stage of the placing our mnemonic scheme in the project's tree of
"Signal groups (template)".
Let's put our mnemonic scheme to the branch of the "Signal groups (template"->"Root page (SO)"-
>"Group 1"->"Mnemos" by selecting in the context menu for the "Mnemos" item the item "Library:
KM101"->"AT 101". The identifier for the new mnemonic scheme let's set to "2" and the name field let's
leave blank. Immediately after adding it is necessary to set the basic property of the mnemonic scheme
"Page:group" to the value "so".
Next you need to make an already familiar to us the operation from the previous chapter, namely the
setting of links to the created in the previous chapter the parameters of controllers. To do this let's open the
dialogue of the properties editing of the mnemonic scheme on the "Links" tab (Fig.5.2.5). On this tab,
we'll see the tree with the elements of "A1_Ti", "A1_To", "A2_Ti" and "A2_To". Unwinding any of the
Fig. 5.2.5. The "Links" tab of dialog of editing the properties of the mnemonic scheme.
Fig. 5.2.6. The created mnemonic scheme with four linked signals.
5.3.1. Creation the widget "Air cooler" on the basis of the primitive "Elementary figures".
The widget will be created in our previously made library "KM101". To do this we'll make right mouse
button click on this library and select the item "Library: originals"->"Elementary figures", as it is shown in
Figure 5.3.1.1. For a new element let's write the "air_cooler" identifier and the name "Air cooler".
Fig. 5.3.1.1. Adding the widget based on the primitive "Elementary figures" to the "KM101" library.
All the points in our case are specified in the static form, since it is not provided the dynamics and
change of coordinates in the mode of execution, and all the other parameters are left by default.
Fig. 5.3.1.4. The image corresponding to the "Elements' list" of the widget.
Fig. 5.3.2.1. Adding the widget based on the primitive "Elements box" to the "KM 101" library.
After confirmation, we'll have the new widget object with the name "Cooler". Select it in the widget
library "KM 101" and open for editing. Let us now set the width and height of the widget in the 250 and
200 pixels respectively in the "Attributes" tab in the "Geometry" section.
Fig. 5.3.2.2. Drag and Drop of the widget "air_cooler" to the widget-container "elCooler".
Fig. 5.3.2.4. Change the fill colors transparency in the inherited widget "cooler2".
Fig. 5.3.2.5. Adding the new element to the container, based on the primitive "Text."
Fig. 5.3.2.7. Changing the font size for the widget "Ti".
Fig. 5.3.2.8. Changing the field "Text" and an indication of the argument's presence in it for the widget
"Ti".
Fig. 5.3.2.9. The configuration of the argument for the "Ti" widget.
Fig. 5.3.2.11. Paste the copied widget to the widget-container "Cooler" of the library "KM 101".
Fig. 5.3.2.13. Adding the widget based on the primitive "Form's elements".
Fig. 5.3.2.14. Change the "Geometry" and "Element type" for the newly created widget.
Fig. 5.3.2.16. Adding the "dimension" widget, based on the primitive "Text" and changing of its settings.
Fig. 5.3.2.17. Adding the three attributes for the element "elCooler" of the library "KM 101".
Fig. 5.3.2.18. The enabling of the processing of the "value" attribute of the combo box "cw".
At the end let's set the user programming language for the program to the "JavaLikeCalc.JavaScript"
and write the program to process this widget:
Ti_arg0val = Ti;
To_arg0val = To;
ev_wrk=ev_rez="";
off=0;
while(true)
{
ev_wrk=Special.FLibSYS.strParse(event,0,"\n",off);
if( ev_wrk == "" ) break;
if( ev_wrk == "ws_CombChange:/cw" ) Cw = cw_value;
else ev_rez += ev_wrk+"\n";
}
cw_value = Cw;
cooler2_speed = Cw/5;
Attention! Place or edit the widget program does not close its compilation, and therefore no error
messages in the program if they have a place to be. This is due to the fact that the immediate execution of
the program and, hence, its compilation is carried out in the surroundings and the moment of launch to
project execution visualization. In this case any errors during compilation are displayed in a message
OpenSCADA, widgets with errors and not executed. View to messages archive OpenSCADA you can in
the main tab of the subsystem "Archives" or in a terminal run OpenSCADA, if the launch was from the
terminal or emulator.
Fig. 5.3.2.19. The resulting view of the Process tab of the "elCooler" widget of the "KM 101" library.
Let's close the dialogue of the properties of visual element editing, create an icon on the basis of our
element, close the inner editing window and save it all.
The development of the complex element is finished.
Fig. 5.3.3.1. The view of the mnemonic scheme with complex elements.
Fig. 5.3.3.2. The "Links" tab of the dialog of editing the properties of the mnemonic scheme.