Professional Documents
Culture Documents
myDESIGNER
mySCADA Technologies s.r.o, JANUARY 2016
Introduction to myDESIGNER
All-in-one Development Platform
myDESIGNER is a powerful software tool used for development and setting of mySCADA projects on
supported devices - mobile phones, tablets, desktop PCs or servers.
mySCADA project is a collection of graphic visualisations - views, trends, alarms, data logs and scripts.
The aim of this tutorial is to give you a quick guide to the basic myDESIGNER functions.You will
learn the most essential techniques for developing your own projects. For more information you
can download myDESIGNER User’s Manual from our website www.myscada.org.
Workspace
Getting to know your workspace
All windows in myDESIGNER are organised into panes. You can move the windows arbitrarily as the
designer remembers positions of both automatically and manually closed windows until the next time
opening. You can undock the windows out of your workspace by dragging out, and dock them back
with the Alt+Shift+D key combination. If you wish to put all the windows into their default state, use
the Reset Windows command from the menu Window –> Reset Windows.
Moving windows:
Click on the window header and drag the window into the desired position, the
red preview box indicates where the window will appear once you drop it.
Shortcuts
You can reset all windows into their
default positions by selecting Shift+Escape Maximizes currently used windows.
Reset Windows Ctrl+Shift+W Closes all open documents in the Source Editor.
• Click on the New Project icon in the main toolbar or use the Project->Projects->New Project command.
• Select Empty Project or Project Wizard - this feature helps you create a functional base of your new
project step-by-step. It will create PLC connections, set up a simple screen with animations and pre-configure
alarms and data logging for you.
• With Import Project you can import projects from the MEP file - all exported projects from myDESIGNER
use this suffix, select the directory where data from of an imported project should be located and press
NEXT.
You can design own rich graphic visualisations with an integrated graphic editor.
5. Set the screen layout - Portrait (vertical) or Note: If your device uses a pop-up menu tool bar (iPhone, Smartphones..)
Landscape (horizontal) you can set up its width in pixels which will be automatically subtracted
from the final screen size.
Creating Graphics - Views
Creating Graphics
myDESIGNER contains a built-in database of default screen sizes of the most frequently used devices from
Apple and other manufacturers.
The page layout defines the content arrangement and style on the page. With myDESIGNER you can create
multiple user-defined layouts. Each view you create can use a different layout.
To use the Layouts, first you have to create Layout Views - they behave exactly the same as regular views
therefore you can apply any functionality, such as animations, effects and visual scripts.
Left side
Right side
The GUI Toolbar is the secondary bar located in the upper part of your the window, where you can find all
necessary functions for designing and animating the views.
undo, redo, save draw graphical objects
modify objects: align, distribute, rotate,
scale, trim, combine, flip, fill, stroke effects, scripts,
cut,copy,delete,paste group object together tags, live view
The properties bar is located rough below the GUI toolbar. If there is no object selected you can specify the
default properties for new objects to be created. If you click on an existing object you will see its current
properties that you can modify.
line thickness, line style, text colour, text family
line and boundary colour fill colour text style, text size
The options bar is located in the lower left part of your window.
repeat action grid rotate in discrete steps
In the DRAW section of the GUI Toolbar select the object type you want to draw - line,
poly-line, square, rectangle, circle, ellipse, text field, or you can insert a picture.
Drawing Poly-lines
Creating Graphics
With poly-lines you can create independent and continuous lines, arcs, splines or any of
their combinations.
1. click on the 2. click on the
Create line: click to set the start point, start point end point
move the mouse the end point of the line,
then click again.
1. click on the start point
and hold
finish drawing.
3. form the curve and
release the button
when finished
Drawing Poly-lines
Creating Graphics
end drawing by
You can finish poly-line drawing with a double-click double click
Adding a segment:
choose the segment you would like Close the path option in the
to add from the options menu. Click options bar: if it is active, all
on the control point of the poly-line poly-lines will close
where you want to add the segment. automatically when drawing is
Delete a segment:
finished
close the drawn path
choose “Delete segment” from the
options menu. Click on the end
control point of the segment you
would like to remove.
Active Areas
Creating Graphics
Active areas are the regions in views where you can show dynamic content. It can be another view, trend,
alarm window, data-log, or even external HTML page or a live video stream. Active area acts as an active
container for all those multiple options.
Click on the Ac=ve Area icon in GUI Toolbar
If no object is selected you can specify the default properties for all objects to be created. In the following
example all new objects will have transparent fill and black solid line stroke:
If you select an object the properties bar will show its current properties that you can easily modify. The
properties bar even works with multiple objects - you can change the properties of all objects at once.
Stroke width: Line style:
select
component
Each component or icon can be inserted into your screen and resized as
desired by dragging out the corners. It can also be configured in the
properties, just like any other graphic symbol using the ‘Properties’ window.
Custom Components - Master
Extending Your Graphics
This section shows all master components, used in the whole project. If you change properties of the master components
then all subordinate components will change too.
• Replacing master component for another will change all components in your project
Combining Objects
Creating Graphics
You can compose your final graphics from multiple simple objects, aligned above each other. Also, you can
merge or subtract your graphic objects to create one complex object of arbitrary shape and colour.
=> =>
=>
Fill and Stroke
Creating Graphics
The graphic objects can be filled or stroked with a solid colour, linear gradient, radial gradient or complex
pattern.
1. Select an object of which colour you want to
change.
Colour, Gradients and Patterns
2. Click on the Colour, Gradients and Patterns
button.
You can compose your graphics from multiple elements. Moving or copying these graphics could be difficult,
however, to simplify these operations you can group multiple objects together and use them as a single unit.
• If you group together more items within one layer, they form a group and act as one object, the ‘single-
layer’ group, indicated by blue colour.
• If you group together more items from multiple layers, they create a multi-layer group. All objects in the
multi-layer group will keep their position, in respect to each layer. This group is indicated by green colour.
Modifying Objects’ Graphical Properties
Creating Graphics
The visual properties of objects can be changed in the Properties window, located on the right side of
the screen. Here you can set up any parameter to change a visual appearance of your objects. If you
multi-select different types of graphic objects, you can change only the parameters the selected
objects have in common.
Rulers and Guides
Creating Graphics
The Smart Guides are temporary ‘snap-to’ guides Snap-to-points are temporary ‘snap-to’ bullet points
that appear when you are creating or manipulating that appear when you are creating or manipulating
with objects. They help you align, edit, and transform with objects.They help you to snap your object to
objects related to other objects by snap-aligning and the others.
displaying visual guides.
Enable Grid
You can change the grid parameters by opening the dialog box
from the GUI Menu -> Display -> Grid Settings.
The Layers
Creating Graphics
When creating complex visualisations it might get challenging to keep track of all your items on the canvas. The
smaller items might get hidden under the larger ones, and thus selecting the whole objects can become difficult.
Using the layers can help you manage all items of your artwork.
Think of the layers as of transparent planes glued together, each containing graphic items. If you change the
layers order you change the position (visibility) order of the items on your canvas. You can move the items
within one layer, or you can group together multiple items spread through several layers. If you copy objects,
then a new object is copied into the same layer as the original one.
If there is no object selected the active layer is displayed.
visibility
lock name
The objects placed within the layers use a hierarchical order. If two objects overlap, the one located in the
higher layer overlaps the object located in the lower layer. You can change the object order by rising up to the
top or lowering down into the background.
=>
Linking with a controller (PLC)
Creating Graphics
There are two options of linking your visualisation with the PLC:
Animations: - they match the visual appearance of graphic objects with real values read from the PLC - he
visual change is reflected immediately. You can for example display PLC tag / variables values in the text objects
or change the object’s fill colour, depending on the PLC values.
Effects: - mainly add dynamics to your graphic objects, they can be activated either by an evaluating tag /
variable from the PLC or by the user’s action (e.g. mouse click). The effect is a dynamic change of the object’s
visual appearance in a specified time sequence.
off time
Animation:
(color)
Effect:
(blink)
Linking with PLCs - Animations
Creating Graphics
Animations enable your objects to display actual states of the PLC in realtime.
If you want to link your visualisation with the PLC you have to enter the tag name or address you wish to read/
write data from. The tag syntax depends on the PLC type/brand you want to access.
tag / address
You do not have to enter full tag syntaxes all the time. Instead, you may use a simplified symbolic tag link,
called Alias. You can define Aliases in the tag database or you can create new ones, if desired.
Equations are used for scaling of the read PLC values or for solving more complex problems with multiple tags.
denotes equation
For equations writing you can use operators + - * /, and common mathematical functions such as ‘sin’, ‘cos’, ‘exp',
etc. You can also do a binary comparison and much more. Open the ‘Tag Dialog’ window and select ‘Equation’
to get the list of all options.
Test your equation
Enter equation for errors
Function groups
Apply Equation
Available functions
Creating Commands
Creating Graphics
View Name
Opening
parameters
Parametric Views are denoted by [PAR] after its name and can
be specified when you are creating a new view.
Concrete Motor Window
Parametric Views - Opening Parameters
Creating Graphics
Specifying opening parameters: You can set the opening parameters in Index
field (parameter can be a number or string). All parameters separate with
semicolon ‘;’.
You can access the parameter value by ‘$Number$’ notation, where the
number means parameter’s position . The first parameter in this example will
be accessed as ‘$1$’. You can set the parameter values together with tags.
DESIGN BEFORE VIEW OPENS LIVE DATA
Specify the tags when designing a view with When opening a view, tags will be Online view will read correct a real data
parameter values, denoted by $index$. Use automatically converted with from the PLC for a specific motor.
multiple parameters if necessary. parameter values.
Crain 1A;Basement;DB100;1
Parametric Views-Change Connections
Creating Graphics
Specify connection for the opened view: You can specify to which PLC your
view will link to in the Connections section:
$1$ means replace for S7_PLC connection
Again, you can define multiple replacements for your connections with the Index parameter. When setting more than
one connection replacement, use the semicolon ‘; ‘ to separate them.
text to replace
Visual Scripting
Creating Graphics
mySCADA provides plenty of tools for performing the most common data acquisition, display, animations and
effects without coding. However, for maximum flexibility mySCADA also includes a complete scripting language,
based on JavaScript, which in allows you to interact programmatically with most of mySCADA functions through
a high level scripting language.
Easy to learn:
Scripting can be used for all sorts of tasks. They can be as simple as setting a few output values to a pre-set
state or built complex animation scenarios. The possibilities are unlimited. Scripting is designed to be easy to
use, extending functionality of mySCADA.You need not to be an experienced programmer to be able to use
scripting. When using JavaScript language you do not have to worry about memory allocations, leaks, and other
more complex programming issues as programming is very simple and straightforward.
For each view you can use one visual script. When you edit the source code the editing window is shown:
variables window
Input variables read data from PLC Using variables in animations: you can use the script declared
Output variables write data to PLC
variables in animations. To tie a variable with an animation use the
equation editor as for the regular PLC tags.
memory variables
Trigger condition:
time
tag value
Delete Time Seq Rename Time Seq on click
Rename Time
New Time Seq Select Time Seq Sequence Duration, delay, …
Step 1: Open the Time Sequence Editor Step 2: Move the time slider and modify your objects
Modify timing:
•Overall duration of sequence
•Time offset of the sequence start
•Number of repeats (or choose continuous)
TIP: ‘Preserve state on finish’ will put your objects in the same state as they were at the end of animations.
Nesting Sequences:
• Create multiple sequences
• Set ‘start after’ for each sequence
Documents
Link HMI Elements with Your Documents
If your documentation is in an electronic form, then any graphic object on the HMI screen can be connected
with a PDF document, imported into your mySCADA project.
First, import your PDF Documents into the In the Properties window select the Open/Set tab, fill in the Open and select the document.
Documents folder in the Project Window. Right-
click on the Documents -> Import, and select a
document you want to import.
select Document
The table below shows all possible options for each defined alarm.
ID Automatically generated unique ID. You will need this ID when accessing alarms from Server-Side-Scripts.
Tag@Conn / *alias Tag (Address) or Equation specifying data read from the PLCs.
Severity is an unsigned integer value specifying the importance of a certain alarm. The lower the number,
Severity
the higher the priority is.
You can split your alarms by geographical or virtual area they belong to. The area is a string value you can
Area
use for alarms filtering.
Message The message of your alarm.
Device The name or description of the device this alarm belongs to. One device can have multiple alarms defined.
Check to invert an alarm (when a digital alarm is inverted it is active at the value 0, for an analog alarm the
Inv
activation area is reversed).
Enables alarm hiding from the user. This is useful when you use alarm as a condition in the triggered data-
Hide
log. Hidden alarm is not shown in the alarm window nor it is logged into the database.
Specifies the delay in milliseconds as long as the condition must be active before an alarm can activate. This
Delay
is time hysteresis function.
Specifies the refresh rate of your alarm.You can set 3 predefined groups: default, fast, slow. You can change
Refresh
the refresh values for each group in the Properties window.
email Sends an email upon each alarm activation or deactivation.
SMS Act Sends message upon each alarm activation.
SMS Deact Sends message upon each alarm deactivation.
G0 - G9 Checks an appropriate user group to receive alarms via email and SMS.
CAS Alarms - Analog Values
Complex Alarm System
The analog alarms are tied to analog values read from the PLC. Aside from common parameters which are
the same for digital and analog alarms you should specify minimum and maximum values for your tag or
equation.You can also specify the ‘dead-band region’ for any value to eliminate the false alarms.
dead-band region
dead-band region
alarm is active
The ‘dead-band region’ helps to eliminate nuisance alarms, caused by the tag’s value wandering above and below
the alarm limit.The tag enters the alarm condition only if the tag’s value exceeds the alarm limit. However, the point
will NOT go OUT of the alarm until the point’s value exceeds the dead-band.
Historical Data
Historical Data
• You can log and access a complete history of alarms, all users actions, and any technological data you want to
log. The historical data are grouped into logical sections called Data Logs.
• Data Log has many options you can setup to tune your logging options.You can optimise your data logs for
speed and storage.
• Data logs can be periodic or event driven. With using pre and post event buffers, you can save the collected
data before a specified event has happened.
Alarms Trends
System Actions
mySCADA
History
Data Logs
Historical Data
Practically, you can log any mySCADA data or information available. The data are grouped into data logs for an
easy access and user’s convenience.You can think of data logs as of similar data collections e.g.: set of
temperatures read from the PLC every second, motor start-up voltage and current logged each 100 milliseconds,
running hours of machinery process, operator actions, computed production statistics etc. You can also log any user
defined variables from Server-Side-Scripts via a virtual PLC.
Advanced
Trends
Tabular
Views
Advanced
Reports
Data Log
Definition
Statistics
Excel Export
Data Logs
Historical Data
trigger conditions
log period (save interval) log data before and
data log definition after the trigger
data logs
refresh period
tabular views
Data Logs
Historical Data
Data logs: are data sets grouped together. Each data log has a set of parameters, such as log period, pre and
post event buffers and so on. Every data log is defined by the data you wish to read and log. The data is a
collection of data points. The data points can be variables read from the PLCs, user defined variables or
computed statistics from the Server-Side-Scripts.
Data point: can be either a numerical value or array of values. The numerical value can be any numerical type
such as boolean, integer, float, double, signed or unsigned. The numerical values are always automatically converted
and logged as double values. Thus, you do not have to care about the data type and its conversions. The data
array can represent a set of numerical values, buffer, string or a date. Representing of an array is user-defined,
however, you can change the type any time later without data loss.You can freely combine the numerical values
and arrays in a single data log, so you can have values, strings and dates logged together.
Continuous data logs - data logged periodically without interruption, this data type is
useful mainly for persistent processes.
Data Log Triggered data logs - data logging data is dependent on some event - condition. The
Types condition is specified by alarm ID. This type of data log is useful
for repetitive or random processes where you can specify the
start condition.
Data Logs - Continuous
Historical Data
The purpose of the continuous data log is to log data periodically without interruption. This type of data log is
useful mainly for persistent processes.
The continuous data log defines the read refresh rate in milliseconds. With this period, all data defined in the
data log are read from the PLCs and logged into the database.You can define hysteresis for the data logging
of any data point. If hysteresis is enabled for a given data point, it will be read each reading cycle - defined by
the read period. However, it is logged only if its value has changed by more than of the defined hysteresis
value. This can be very useful, especially when you are logging analog data that do not change so often. When
you set the hysteresis for some data points in the data log, you can specify the log rate - this is the period in
which all data points in the data log are logged, regardless whether they have changed of not. By enabling
hysteresis, you can dramatically decrease a number of historical data logged while maintaining data precision
and time continuity.
The purpose of the triggered (event driven) data log is to log data depending on some event - condition. This
is useful for repetitive or random processes where you can specify the start condition. You can, for example,
log the production data only at the time when the production line is running, or log the data at the system
failure and use the logged data for diagnostic purposes. With the event driven data log you can specify the
start of an event by a condition. If the trigger condition is met, the system records the data.
Pre trigger buffering: you specify the number of time samples Post trigger buffering: the system will continue to log your
to log before the trigger condition is met.The system automatically data even after the trigger condition has stopped. You should specify
keeps the number of defined time samples in the memory. If the the number of time samples to log after the trigger condition has
event occurs, the system will flush all the buffered data into the ended. The time sample duration is equal to the read period.
database and continues logging.
To log data before or after the
trigger condition, you can use
all data are read data will be logged only if alarm
pre and post trigger buffering
every 20 seconds with id 4 is active
Data Logs - Tabular Views
Historical Data
Each data log can have defined multiple tabular views.You can define tabular views in the same window as you
define the data log. The tabular views enable displaying all captured data from your data log into a form or
table.
You can easily present your historical data in the form of a historical trend.
data log to read legend
data from data point - tag pen color
advanced trend
definitions
Tags Database
Manage your tags easily
This database is very useful for managing all your tags and connections. A flexible mySCADA engine does not
require you to use the tag database, however it can be a very powerful tool if you use it.You can start your
project with creating or importing a tag database and design the visualisation afterwards, alternatively you can
let myDESIGNER to interactively create a new tag database for your purposes as you enter new tags.
access your tags default formatting scale value or click to see where is
filter table
by alias name when showing value apply mat. equation this tag used
Tag syntax:
Tag: tag@connection_alias
Alias: *alias
Equation: =2*adr(H100@wago)+alias(offset)+sin(...
User Access
Protecting Your System
access level
Window: Trend:
Server-Side-Scripts
Powerful scripting tool
Server-side-scripting is easy to use, yet an extremely powerful option which extends functionality of your
mySCADA system. It uses JavaScript as a primary language for writing scripts. JavaScript is one of the most
simple, versatile and effective scripting languages that is relatively easy to learn. Also, you can find a lot of
resources and prepared libraries for JavaScript on the internet. This is the main reason why JavaScript has been
chosen as a server side script for mySCADA platform.
The execution of JavaScript is based on the V8 engine What you can achieve with the Server Side Scripts:
from Google. JavaScript alone is a powerful tool to use. • process and analyse data from the PLCs
To maximise the script potential and create a
complex programming environment, JavaScript is • compute statistical data
extended with Node.Js framework. • create reports
Node.js is a server-side software system designed for • serve content over a web server
writing scalable applications. Programs are written on • implement complex data handling
the server side in JavaScript, using event-driven, • communicate with devices via Ethernet or serial
asynchronous I/O, to minimise overheads and line
maximise scalability.
• implement your own protocol for special devices
Server-Side-Scripts - Node.js
Powerful scripting tool
Node.js is asynchronous and non-blocking, making it simple to write a complex communication library. It is
also very extensible - you can find and freely use this module for almost any task you require.
request tables
read/write list of tags from PLC
put here any kind of file such as config, txt, xls, ...
you can access files in this directory from your scripts
In this example, the task is to read and write data to the PLC 1. Create a PLC variable table and give it a
with 1 minute interval: name.
PLC variable table tag list to read/write from PLC
2. Fill in the tags you want to read from the
PLC. Alias is a variable name under which
you access your defined tag in the scripts.
3. Create a timed script and set refresh
period to 1 minute.
source code editor window 4. Fill in the code into the code window.
Server-Side-Scripts
Simple Example
Function readTable will read tags from PLC. The first parameter is a table name where tags are defined, the second parameter is a callback function.
variable err defines if read data from PLC ended with error
Important functions:
readTable('table_name',callback);
writeTable('table_name',callback);
writeTag(‘table_name.tag_name’,callback);
readActiveAlarms('max_severity',callback);
readAlarmStatus('severity',callback);
Server-Side-Scripts - Reports
Creating Reports
The report templates are created in Microsoft Word (and compatible text editors) using a simple syntax.
During the report processing all defined variables inside a Word document are replaced with data provided
from the script.
c) require “docxgen”
d) open the Word template file
e) generate report
f) save it to file
Downloading to Device
Managing Devices
When your project is prepared, you are ready to download it into your device. Any project designed in
myDESIGNER can be downloaded to multiple types of devices: Mobile, Compact, Operator Panels, Desktop and
Server mySCADA Box. 3. Check the devices you want to
1.Register your device in the Devices folder in the Project Window. download your project to and click
on Download to Devices
registered devices
online devices
No part of this document or of the mySCADA Products can be reproduced or transmitted in any form without a written permission of mySCADA
Technologies s.r.o. All information in this document is subject to change without notice, and is not binding in any way for mySCADA Technologies s.r.o.