You are on page 1of 778

Table of contents

About this help 3


Installation 9
Deployment 30
Architecture examples 34
Deploying server applications 45
Running the Supervisor as a Windows service 46
Choosing a service account 54
Roles of the web server and web back end 65
Using the Web Deployment Console 74
Getting started - The quick setup 82
Custom setup 88
Using certificates 97
Authorization 105
Deploying desktop applications 113
Deploying the Supervisor on a RDS host 116
Configuring the Supervisor to run in a RDS SessionHost session 121
Project related issues when deploying the Supervisor on a RDS Host 128
Known limitations when running the Supervisor in a RDS Session Host session 133
Deploying web and mobile client applications 136
Project and library overview 139
Using Central Project Management 151
Creating and managing project versions 153
How to select and load a version at start-up 161
The configuration environments 171
The HMI 172
The Application Explorer 180
The Smart Generator 188
The Application Architect 192
The Application Architect 201
Working with templates 210
Configuring templates 212
Adding configuration elements to a template 215
Adding variables to a template 216
Adding files to a template 238
Adding graphics to a template 244
Differentiation (Defining properties) 257
Defining a property by a global parameter 264
How to enter an expression 271
Instantiation 282
Examples 298
Keywords in an expression 299
Parameters 306
File and File Item 313
The Smart Generators 320
Azbil Harmonas 321
Import the HMI configuration 328
BACnet 337
Beckhoff TwinCAT 352
CAD 366
CAD Configuring the image generated from the CAD file 374
CAD Substituting blocks with the Supervisor's symbols 379
FL 386
FL Import variable options 390
Importing OPC configuration 395
FL Importing graphics 408
Generic XML 422

-1-
ISaGRAF 426
LNS 436
LNS Import variables dialog 439
OPC 445
Saia-Burgess 457
Schneider Unity 467
Siemens SIMATIC Step 7 478
Selecting the Step 7 data blocks 480
Configuring the communication 484
Configuring the variables 487
WAGO CoDeSys 494
WAGO DALI 505
What is generated? 513
Yokogawa Stardom 528
Importing variables 533
Importing the HMI 541
Managing previous imports 551
Programming languages 555
VBA 558
Using MS VBA 564
The VBA development environment 566
Developing VBA programs 568
Coding events dynamically using the Dim WithEvents statement 571
Developing code for use in symbols 572
Using variables in a program 577
Web and mobile client applications 585
TouchVue 588
Using TouchVue 592
WebVue 609
Configuring a project for WebVue 611
Using WebVue 632
WebScheduler 637
WebScheduler configuration 642
WebScheduler runtime 648
Using the Schedule Control 658
Web Services Toolkit 676
Extras and Add-ons 681
The VCR Facility 682
Configuring a VCR archive unit 685
Configuring the playback project 691
21CFR Part 11 698
Interpreting 21CFR Part 11 requirements in the Supervisor 700
Providing an audit trail 706
Ethernet/IP add-on 712
SNMP Agent add-on 720
KNX data acquisition driver add-on 726
Dynamic Busbar Coloring 733
Main concepts 735
The configuration tool 748
OPC UA Gateway 758
Troubleshooting 769
Log files 770
Third party products 777

-2-
About this help

-3-
About This Help
This help is for version 12.0 of the Supervisor.

What is not in this help?


The help for those VBA instructions that are specific to the Supervisor is integrated in the VBA environment
and can be displayed when the VBA Editor is open using function key F1.

Using the Index to find information on a tab, dialog or toolbar


The help Index contains a list of all the dialog boxes, tabs, toolbars and files mentioned in the help. If you
want help about a particular tab, dialog, toolbar of file just type in the first few characters of the title in the
search box at the top of the Index tab.

What style conventions are used in this help?

l A bulleted list is used for a list of items that has no particular order, and for lists of tab options.

1. A numbered list is used for a list that has a particular order, such as how to do something.
Text in a mono-spaced font and with a background color is used for
file fragments and data lists.
Show picture indicates a place where you can click to display a picture about the topic.

The following icons are used to signify:

An essential note.

A warning.

Suggestions for additions


If you find any obvious errors, anything missing, or have any suggestions for improvement to the help,
please contact your local reseller. Thank you - The Documentation Team.

-4-
About Searching for Help
There is more to a Help system than meets the eye. Many users of software systems know how to use a
Help system in a basic manner via the Contents, Index and Search tabs, yet are unable to locate the inform-
ation they need even when it is present in the Help.
This book gives an overview of the powerful search tools you can use for finding the information you require
in Microsoft-style Help systems. Show picture

For further information


This summary was adapted from Microsoft's Help for Help Viewer. The latest version is available from the
HTML Help Downloads page of the Microsoft Developer Network (MSDN) website: https://msdn.-
microsoft.com/en-us/library/ms669985.aspx.
Readers looking for further information should download HelpDocs.zip, which contains Viewhlp.chm, the
help for Help Viewer. This covers accessibility features, shortcut keys, keeping track of your favorite topics,
customizing a Help window and using an input method editor (IME) for text entry in East Asian languages.

-5-
Basic Search Features
The search string can use letters and numbers. The letters are not case-sensitive. Punctuation marks are
ignored except when within quotations (however you cannot search for quotation marks).

Using the drop down arrow adjacent to the search field, you can re-run or adapt previous searches.

Using wildcards in the search string


You can search for words using the simple wildcards, question mark and asterisk, mixed with other
characters.
To search for Example Topics containing
A single word visible The word 'visible' (also its grammatical variants
such as 'visibility').
A phrase "register variable" The phrase 'register variable' and its grammatical
variants such as "register variables".
Wildcard expressions gen* Terms starting with 'gen' such as 'genuine', 'gen-
eral', 'generic', 'generate', 'generator' etc.
gener?? Terms with any character in that position such as
'general' and 'generic'.

Focusing the Search


The Search tab includes some additional controls known as the Advanced Search Controls to help you refine
your search. Show picture

Control Action Example


Search previous res- Limit the search to the results of the pre-
ults vious search
Match similar words Find words that match a keyword or only 'add' will match 'added' or 'adding' but not
differ in having a commonly used suffix 'additive'.
Search titles only Only the titles of the topics will be
searched

-6-
-7-
Advanced Search Techniques
Using logical search expressions
The logical operators AND, OR, NOT and NEAR enable you to define your search precisely by relating several
search terms. You can type them directly or insert them using the right arrow button adjacent to the search
field.
Logical search expressions are evaluated left to right unless they contain parentheses (see below). The fol-
lowing table shows how you can use each of these operators.
To search for Example Topics containing
Both terms in the same alarm AND #t Both words 'alarm' and '#t'.
topic
Either term in a topic alarm OR #t The word 'alarm' or the word '#t' or both.
The first term without the alarm NOT #t The word 'alarm' but not the word '#t'.
second term
Both terms in the same alarm NEAR #t The word 'alarm' and the word '#t' within 8 words of each
topic, close together other.
If no operator is specified, AND is implied. For example, the query 'alarm display window' is equivalent to
'alarm AND display AND window'.

Using nested expressions


Nested expressions use parentheses '(...)' to construct complex searches.
The basic rules for searching help topics using nested expressions are as follows:

l The expressions in parentheses are evaluated before the rest of the query.
l The query is then evaluated from left to right.
l You cannot nest expressions more than five levels deep, e.g. '(level_1...(level_2...(level_3...(level_
4...(level_5...))))).

As you add levels and logical operators, a query quickly become unmanageable. It is simpler to
employ the option to search previous results, as described in Basic search features.
Example Operators Topics containing
alarm AND ((display OR win-'AND', 'OR', The word 'alarm' along with the words 'display' and 'select'
dow) NEAR select) 'NEAR', '(...)' close together; or 'alarm' along with 'window' and 'select'
close together.
alarm NOT display OR win- 'NOT', 'OR'; left- The word 'alarm' without the word 'display'; or the word 'win-
dow to-right rule dow'.
alarm NOT (display OR win- 'NOT', 'OR', '(...)' The word 'alarm' without either of the words 'display' or 'win-
dow) dow'.

-8-
Installation

-9-
Operating System and PC Requirements
Operating Systems
Only operating systems from the Microsoft® families of Windows 7, Windows 8.1, Windows 10, Windows
Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016 and Windows
Server 2019 are supported.
We recommend you to use Windows Client versions for operator stations and Windows Server versions for
server stations.
Supported and operational:

l Windows Workstation
l Windows 7 with SP1 - Professional, Enterprise and Ultimate editions
l Windows 8.1 - Professional and Enterprise editions
l Windows 10 version 1607 or later - Professional and Enterprise editions
l Windows Server
l Windows Server 2008 R2 with SP1 - Web, Standard, Enterprise and Datacenter editions
l Windows Server 2012 - Foundation, Essentials, Standard and Datacenter editions
l Windows Server 2012 R2 - Foundation, Essentials, Standard and Datacenter editions
l Windows Server 2016 - Foundation, Essentials, Standard and Datacenter editions
l Windows Server 2019 - Foundation, Essentials, Standard and Datacenter editions

All operational versions of Windows Server shall be installed with the ‘Desktop Experience’ option.

Operational but may have limitations in use:


Please contact your technical support before using:

l Windows 10 IoT Enterprise LTSB 2016 or later, Windows Server IoT 2019, Windows Server for Embed-
ded Systems and all other embedded systems
l Any operating systems hosted in a system virtual machine such as Microsoft® Hyper-V and VMWare®
virtualization products

NOT supported:

l All other versions of Windows 7, Windows 8.1 and Windows 10 - In particular Windows 10 version
1507 (RTM) and 1511 (Nov 2015 update) are not supported
l Windows 8
l Windows RT
l Windows 10 IoT Core, Windows Embedded Compact 7 and 2013
l Windows Server installation in Nano Server or Server Core mode

For all operational versions of Windows 7, Windows 8.1, Windows 10 and Windows Server 2008,
only the x64 processor architecture is supported.
For all platforms, we recommend that you apply any critical updates available from the Windows
Update website. Installation of the latest Windows Service Pack may be required on some operating
systems.

For any other Microsoft operating system, please contact your Technical Support.

WebVue - Supported Web browsers


The list of supported web browsers for WebVue is:

l Desktop web browsers:


l Google Chrome™ 43 and later
l Mozilla Firefox™ 45 and later
l Microsoft Edge™ 38.14393 and later
l Apple Safari® for MacOS®10.5 and later

- 10 -
l Mobile web browsers:
l Google Chrome™ for Android™ 46 and later
l Apple Safari® for iOS™ 10 and later
l Android WebView™ 5 and later

TouchVue - Supported Mobile operating systems


The list of supported platforms for the TouchVue mobile app is:

l Android™ 5.x to 8.x (RAM 2 Gb minimum)

Microsoft SQL Server


Using the HDS for database archiving with the Supervisor requires one of the following SQL Server versions:

l Microsoft SQL Server 2008 R2


l Microsoft SQL Server 2012
l Microsoft SQL Server 2014
l Microsoft SQL Server 2016
l Microsoft SQL Server 2017

Depending on your project requirements and their specific constraints, any of the following editions can be
used for each of the above: Express, Workgroup, Web, Standard, Business Intelligence, Enterprise or Data-
center.

Starting with Microsoft® SQL Server 2014, SQL Server does not support Windows Vista.

SQL Server administration requires Microsoft SQL Server Management Studio – For more inform-
ation and download, refer to https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-man-
agement-studio-ssms

Recommended MINIMUM PC configuration

l Processor - x64-compatible AMD or Intel CPU (or equivalent) - 1.4 GHz dual core minimum.
l System Memory* - 4 GB of RAM.
l Available hard disk space - At least 10 GB.
l Graphics - 1024×768 display for Windows Server platforms. In addition for Windows Client platforms,
support for DirectX 9 graphics device with WDDM driver.
l Network Interface Card - At least 1.
l Drive - A DVD drive, as appropriate, is required for installation from disc. An available USB port is
required for the hardware protection dongle.

*If you are using SQL Server, additional memory may be required. See the following topic in the main
online help for more information: Microsoft SQL Server related considerations.
*If you are using RDS (Remote Desktop Services) or IIS (web server), please contact your Technical Sup-
port for advice about memory requirements.
The above figures represent the minimum requirements. For advice on specific applications, please contact
your Technical Support.
For information about the Microsoft® Windows user privileges required to install and run the Supervisor,
see the following topic in the main online help: Operating system related considerations.

- 11 -
Operating System Related Considerations
This topic is to alert you to, and to describe, the steps you need to take to successfully install, deploy and
run the Supervisor with regards to the operating system platform and its security features. The steps are
not specific to the Supervisor, however you are liable to encounter them as you install, deploy and run the
software on a target computer.

User Account Control


By default, for security reasons, operating systems display a dialog whenever a user action requires a priv-
ilege elevation, for example when installing a program. This feature is designed to prevent undesired
actions from being executed by background processes such as virus, spyware and other potentially harmful
programs.
Accept the user privilege elevation if you are at the origin of the action and approve it.
The Supervisor complies with the User Account Control feature. It is strongly recommended to keep
it enabled at all times, for installing, configuring, deploying or running the application.

User privileges for installation


The user that installs the Supervisor must have Administrator privileges. This is mandatory for the install-
ation process to execute properly.
You must acknowledge the User Account Control (UAC) privilege elevation for the installation process to run
correctly.
Windows operating systems have a security feature called Data Execution Prevention (DEP) to help
prevent damage from viruses and other security threats. To run the Supervisor on installations
where DEP is enabled, once installed, you must add Sv32.exe (the Supervisor's main executable pro-
gram) and AIExplorer.exe to the DEP exception list. This is a configuration process normally under-
taken by the System Administrator.

User permissions for the installation folders


This paragraph describes general requirements for permissions on installation folders. More detailed
information can be found in the following topics:
Specific recommendations when running the Supervisor as a Windows service

l Options for selecting the Service Account


l Creating a Specific Service Account to Run the Supervisor
l How to run Services More Securely

Specific recommendations when running the Supervisor in a Remote Desktop environment

l Overview of Deploying the Supervisor Using a RD Session Host


l Configuring User Permissions for the Supervisor's Folders When Running on an RD Session
Host Session

The Windows user account that runs the Supervisor must have the Modify Permission for the installation
folders.
There may be differences in default permissions depending on the operating systems, in particular desktop
OS vs server OS. It also and mainly depends on the target partition and folder (system partition vs other par-
titions).
In most cases, permissions need to be changed because the installation was run by an administrator user
account and the software will be run afterward with standard user accounts.
For this reason, it is strongly recommended to create a dedicated User Group for all Windows user accounts
that are due to run the software. This allows for setting permissions on the installation folders once, and
ease user account changes. In addition, it securely isolates who can affect the Supervisor's files.
A tool is provided with the Supervisor that can be used to view the permissions of the current User
on selected folders. The tool is named ViewEffectivePermissions.exe and is found in the Supervisor's
BIN folder.

- 12 -
Running the Supervisor
During start-up, the Supervisor checks that permissions and security features are set correctly for the most
common uses.
For security reasons, it is strongly recommended to apply the least privilege principle by not running
the Supervisor with Windows administrator privileges.
If you have several versions of the Supervisor on the same computer, you must register the components
every time when switching from one version to another version, using the Component Registration tool. See
below for more information.
The Supervisor's start-up will be aborted if one of the following element is not set accordingly: Permissions,
DEP exception, missing or incorrectly registered components.

Registering a Previously Installed Version


This procedure is only necessary if you have two or more versions of the Supervisor installed
on the same computer.
When you install the Supervisor, its components are registered with Windows. If there was another version
of the Supervisor already installed, its registration is overwritten and it may no longer function correctly.
To overcome this problem a Component Registration utility is supplied with each version of the Supervisor.
Each time that you want to run a different installed version of the Supervisor, the corresponding Component
Registration utility must be run first. A shortcut to the utility can be found on the Windows desktop and in the
Start menu: Start.Program Files.SV.Tools.Component Registration where SV is the name of the Supervisor.
Show picture

- 13 -
Microsoft SQL Server Related Considerations
Microsoft's SQL Server and SSMS (SQL Server Management Studio) are required if you will be using the His-
torical Data Server (HDS) for either event logging and / or trend recording. See the topic Operating System
and PC Requirements for a list of supported SQL Server versions.
The use of the HDS is not mandatory. You can alternatively use the other types of archive units sup-
ported by the Supervisor for event logging and trend recording.

SQL Server Express Edition


Small to medium sized projects may find the free and download-able Express edition is suitable. The main
limitations of the Express edition are as follows.

l The maximum size of each relational database is 10GB


l The maximum memory that can be used by the SQL Server Database Engine is 1GB.
l The SQL Agent administration tool is not included in Express.
l The limit on the buffer cache for each instance is 1MB of RAM.
l The relational database engine is restricted to the lesser of 1 socket or 4 cores.

SQL Server Express can be downloaded from https://www.microsoft.com/sql-server/sql-server-downloads


SQL Server Management Studio can be downloaded from https://docs.microsoft.com/sql/ssms/download-
sql-server-management-studio-ssms

Installation recommendations
The installation process may vary depending on the exact version you are installing and the operating sys-
tem. The following is a recommendation for a typical installation of the Express edition.

1. Start the installation by running the installable executable. It will be named something like
SQLEXPRWT_x64_ENU.exe. The SQL Server Installation Center dialog is displayed. First run the Sys-
tem Configuration Checker to make sure the PC is ready to install SQL Server Express Edition.
2. A setup support check will run. If there is any error or warning, then that must be investigated and cor-
rected. When all rules in the System Configuration Check have passed, the dialog closes auto-
matically.
3. Click on Options at the SQL Server Installation Center. Confirm or select the architecture to install and
then click on Installation.
4. Select New SQL Server stand-alone installation or add features to an existing installation.
5. The SQL Server Setup will now appear starting at the License Terms. Read, and if you agree with them
tick the box I accept the license terms and click Next to continue.
6. If you have an Internet connection, the setup will then check for any product updates. Depending on
your IT strategy, you can choose to accept them or not.
7. Click Install to install the Setup Support Files.
8. In the Feature Selection dialog, select Database Engine Services and Management Tools - Complete
then click Next. Note the list of prerequisites displayed in the right pane.
9. In the Instance Configuration dialog, select a named instance for your installation. You can either spe-
cify a unique name or use the default instance. Click Next.
10. In the Server Configuration dialog, change the SQL Server Browser's Startup Type to Automatic and
then click Next.
11. In the Database Engine Configuration page, you can either use the default of Windows Authentication
Mode only or select Mixed Mode (SQL Server authentication and Windows authentication).
l Windows Authentication - Allows the user to connect to the database server without having to
enter a password. The Windows credentials (username and password) in use at connection time
are used. If this option is selected, SQL authentication is disabled. In the case of connecting to a
database through a network, the user must be known (i.e. have a domain) on both computers.
This method is recommended when the SQL Server is on the same PC as the Supervisor and you
are not using replication. (The replication process will not work in Windows Authentication
mode.)
l SQL Authentication - The user will have to enter a login and a password at connection time. If
this option is selected, the Windows Authentication remains active and you can still connect in

- 14 -
this way. If the SQL Server is not on the same PC as the Supervisor or you are using replication,
it is recommended that you use SQL Authentication. If you are using SQL Authentication, you
must select the option button Mixed Mode then enter and confirm the SQL Server system admin-
istrator (SA) password. Any blank or weak password will be rejected.
Before you can continue, you must also specify the groups that are to have unrestricted access to SQL
Server. Click Add... and select the group(s). We recommend that you at least add Administrators and
the current user. (Use Add Current User.) When you have finished, click Next. The installation then
starts.
12. You can monitor the setup's progress in the Installation Progress dialog. When the installation is fin-
ished, click Next.
13. Close the SQL Server Configuration Manager.

- 15 -
Before Starting the Installation
Before you begin
Never run two installation processes at the same time on a PC (whatever item of software you are
installing). In particular:

l Do not run the Supervisor's installation while Windows updates are being installed.
l Never launch or accept a Windows update installation while the Supervisor installation is running.

Before any installation, removal or maintenance operation on the Supervisor, you should back up
any project and library that you wish to retain. More generally, you should take backups regularly.
See the Deployment book for more information about how to backup and restore your projects and
libraries

If you are using any of the Supervisor's web based feature, that is WebVue, TouchVue, the WebScheduler or
the Web Services Toolkit, you need to install the following items:

l Web deployment tools, on the computer that will take the role of the web server.
l Supervisor station with the web back end role.

See Role of the Web Server and Web Back End and Web Deployment Console Overview for more inform-
ation.
The installation process depends on what is already on the PC and on the software you are going to install.

l Fresh installation, when the version is not yet installed.


l Maintenance mode, if you wish to repair your installation, add/remove features, or uninstall the Super-
visor.
l Updating the installation, when a previous build of the same version is already installed. Most of the
time updating is straightforward but occasionally you may be prompted to manually remove the
installed version before proceeding with installation of the updated version.

The installation media comes in a number of forms.

l Full DVD - Either as a DVD, or as a download, containing the full set of installation modules
including help in all languages and all add-ons and tools.
l Standard package - Containing the most commonly used modules. Can be used for a fresh
installation.
l Cumulative patches - Smaller packages designed to update an existing installation. Cannot be
used for a fresh installation.

Starting an initial installation


The set-up program guides you through the installation process by prompting you for information and auto-
matically determining your system configuration.

1. Check that enough disk space and memory are available on the target PC (as specified in System
Requirements).
2. Ensure no other installation or automatic update is running.
3. Check that the system and software meet the requirements.
4. Insert the Supervisor's media into the DVD drive. If you have Auto Run enabled, the set-up program
will start automatically, otherwise you can start the installation manually by locating and running
Setup.exe from the root of the DVD.
5. Follow the instructions on the screen as described in the topics after this.

Throughout the installation process, always restart the PC when requested to do so.

- 16 -
The Installation Menus
The Supervisor's installation process includes the following menus.

The Main menu


Displayed automatically when the media is inserted or by running Setup.exe.

l Install - Display the primary Installation menu.


l Read-me - Display Read-me file containing information about recent changes to the software.
l Add-ons, Drivers and tools - Display the Add-ons menu with driver options and complimentary
products from our partners.
l Browse - Open Windows Explorer to browse the contents of the distribution media folder.
l Exit - Quit the installation process.

The primary installation menu

l Installation Help - Display the installation Help content.


l Install Supervisor - Display the menu from where the roles and features are selected and the install-
ation is started.
l Install Web Deployment Tools - Install the Web Deployment Console.
l Back - Return to the previous menu.
l Exit - Quit the installation process.

The add-ons, drivers and tools menu


The exact list of add-ons, drivers and tools may vary but usually includes the following.

l License Utility* - Install the standalone License utility package that can be used independently of the
Supervisor.
l Sentinel Driver* - Install the hardware protection key drivers.
l Back - Return to the previous menu.
l Exit - Quit the installation process.

*Also installed during the installation of the Supervisor.

The roles and features pre-selection menu

l Web back end - The components required to run the Supervisor's web clients and / or apps.
l Libraries - The Supervisor's pre-configured graphic libraries.
l Quick Start project - A pre-configured project that can be used as a base to start your project.
l Demonstration project - A project that demonstrates the Supervisor's main features.
l Extra documentation - Supplementary documentation.
l Development Toolkits - The Supervisor's SDKs and their associated documentation, including the fol-
lowing toolkits: XML Generic Import, the SV Manager SDK, the CimWay driver SDK and the Web Ser-
vices Toolkit.
l Start the installation - Start the Supervisor's installation process.
l Back - Return to the previous menu.

Some of these components are a chargeable option. They can still be installed but, unless they are
enabled by the appropriate license, they will not run or they will run in demonstration mode with lim-
ited functionality.

- 17 -
Installing the Supervisor
Prerequisites installation
The prerequisites are components supplied by other software vendors that must be installed before the
Supervisor, or the Web Deployment Tools, can be installed and operate correctly. The necessary pre-
requisites are bundled in with the Supervisor and no additional licenses are required.
When either the Supervisor's installation, or Web Deployment tools installation is started, it first checks for
the existence of the prerequisites.
As of version 12, the prerequisites are installed as two bundles.

l Common prerequisites - Supporting components that are required for prerequisites to be installed
properly.
l Core prerequisites - The actual Supervisor's prerequisite.

The installation wizard


The Supervisor's installation automatically follows that of the prerequisites.
A wizard guides you through the installation process, prompting for information where necessary. The exact
process will depend on the options you choose, the operating system and what software components are
already installed on your PC but the main stages are as follows. At each step, after configuring any options
click the OK or Next button to proceed. Clicking the Cancel button at any time will abort the installation.

1. Select the installation language - Select the language in which the installation takes place. See the
important note below- About the installation language. Show picture

2. Welcome to the InstallShield Wizard - This is the first step of the installation proper. Click Next to con-
tinue. Show picture

3. License agreement - Before you can continue with the installation you should read the License Agree-
ment and select I accept... or I do not accept... as appropriate. Click Next to continue only if you
accept the agreement. Show picture

4. Products and Projects Folders - Suggests a destination folder for the Supervisor's executable software
and for the projects and libraries.
To install the software elsewhere, use the Change button to select another path; likewise for the

- 18 -
projects and libraries. Show picture

5. Setup Type - Select the setup type from the following options. Show picture

l Typical/Preselected - Installs the most common options for the software, taking into account the
selection made in the Features Selection Menu. For example, if you selected Web back end, the
additional components required for the Web back end role as well as the components required
for the basic Supervisor installation, will be selected for installation.
l Complete - Installs all of the features.
l Custom - Allows you to select exactly which components you want to install. The default selec-
tion is the same as for Typical/Preselected. Recommended for advanced users. Show picture

6. Ready to Install the Program - Asks whether you wish to complete the installation or to review or
change the options you selected. Up until this step you have only configured the installation process -
nothing has been installed or registered. Click Install to proceed with the installation, Back to return to
the options or Cancel to abandon the installation process. Show picture

- 19 -
7. Installing status: A series of time-bars indicates progress with installing each component, then a dia-
log confirms that the installation is complete. Click on Finish.

About the installation language


Upon project creation, the installation language is also used for the operating languages:

l The Supervisor's startup language (that is, the language for any text displayed before the project is
loaded).
l The first project language.
l The first display language.

The second project and second display language defaults to English. Once the Supervisor is running, you can
change the language settings as part of the project configuration.

Completing the installation


Once installation is completed, you may be prompted to re-boot your PC. This re-start is sometimes neces-
sary to register some of the files needed to run the Supervisor with the operating system.
The screen shot below shows the typical installed components in Windows 10. Show picture

Prerequisites appear as 2 bundles, and the components they include, can be seen in Programs and Features
in the Windows Control Panel. Show picture

- 20 -
Installing the Web Deployment Tools
The Supervisor's web deployment tools are required on the computer that has the role of web server.
Depending on the chosen architecture, this can be on the same or different PC to the Supervisor itself. The
main component of the web deployment tools is the Web Deployment Console.
When either the Supervisor's installation, or Web Deployment tools installation is started, it first checks for
the existence of the prerequisites. See the topic Installing the Supervisor.
A wizard guides you through the installation process, prompting for information where necessary. At each
step, after configuring any options click the OK or Next button to proceed. Clicking the Cancel button at any
time will abort the installation.

1. Select the installation language - Select the language in which the installation takes place. Show pic-
ture

2. Welcome to the InstallShield Wizard - This is the first step of the installation proper. Click Next to con-
tinue. Show picture

3. License agreement - Before you can continue with the installation you should read the License Agree-
ment and select I accept... or I do not accept... as appropriate. Click Next to continue only if you
accept the agreement. Show picture

4. Destination Folder - Suggests a destination folder for the installation. To install the software else-
where, use the Change button to select another path. Show picture

- 21 -
5. Ready to Install the Program - Click Install to proceed with the installation. Show picture

6. Installing status: A series of time-bars indicates progress with installing each component, then a dia-
log confirms that the installation is complete. Click on Finish.

The screen below shows the installed components in Windows 10. Show picture

- 22 -
Maintaining the Supervisor or the web deployment tools
Maintenance is the name given to the process of uninstalling, modifying, or repairing the software pro-
grams.

l Remove - Uninstall the software from the computer.


l Modify - Modify installed features, add or remove features.
l Repair - Repair any installed feature.

Essential notes to read before maintaining the Supervisor or the Web Deployment Tools

l Removing the Supervisor or Web Deployment Tools does not remove the prerequisites. See below
Maintenance of the prerequisite's installation for more information.
l Maintaining the Supervisor does not affect any projects that have been configured. However, as a pre-
caution, you should always backup any projects you have configured, and want to keep, before using
maintenance.
l Our policy of continuous improvement means that the shared libraries supplied with the Supervisor
are regularly updated. There may even be minor changes between different updates of the same ver-
sion of the Supervisor. The process that uninstalls the Supervisor will remove the shared libraries and
any library file or folder created by the installation, even if it has changed. If your project uses the
shared libraries it is essential that you make a backup before the uninstall process even if you are rein-
stalling another copy of the same version of the Supervisor

Maintenance of the Supervisor's installation


Maintenance can be started in one of two ways.

l Using Install the Supervisor or Install the Web Deployment Tools from the Primary Installation Menu
of the original installation media.
l Using the Modify or Repair modes available via the Windows Control Panel's Add/Remove program
tool (or the Apps & features settings).

After a Welcome dialog, the Program Maintenance dialog is displayed. Show picture

1. Select either Modify, Repair or Remove as appropriate.


2. Follow the sequence of dialogs to carry out the selected process.
l Modify guides you through adding or removing optional roles and features. Modify is not avail-
able for the Web Deployment Tools as there are no optional features.
l Repair Checks the installed features and re-installs properly any that could have been damaged.
l Remove Displays a confirmation dialog then starts the process of de-installation.

Maintenance of the prerequisite's installation


The prerequisites are installed as two bundles each containing one or more components. The bundles, and
the components they include, can be seen in Programs and Features in the Windows Control Panel. Show pic-

- 23 -
ture

Maintenance of any of the prerequisites is started by selecting it in Programs and Features list and then click-
ing Uninstall, Change or Repair as appropriate.

Uninstalling prerequisites
Uninstalling the prerequisites is only necessary if you wish to fully uninstall software components that were
installed as part of the Supervisor's installation. Uninstalling any of the prerequisites, whilst keeping the
Supervisor installed, will prevent it from running properly.
Uninstall the Common prerequisites and the Core prerequisites bundles does not uninstall the individual com-
ponents. However, you can completely uninstall the prerequisites by uninstalling the bundles as well as the
individual components. Uninstalling an individual component may fail if it is used by other software, or the
other software may fail to operate.

Changing prerequisites
You must not change any of the bundles or individual components.

Repairing prerequisites
You can repair a bundle or an individual component. If you repair a bundle, any missing components will be
installed and any already installed components will be repaired.

What to do if a component is missing?


Any missing components can be installed individually. However, the recommended solution is to repair an
entire bundle.

- 24 -
The Hardware Protection Key Driver
The Supervisor software is protected against unauthorized use by using a hardware device known as a
dongle or hardware protection key. Each new license of the Supervisor's software is delivered with the
appropriate Sentinel key. Two types of hardware protection key are available and drivers for both are
installed.

l Parallel port.
l USB port.

The type of key shall be specified when ordering the license.

USB hardware protection key models


The model of key used has changed overtime. You may be supplied one of the models as illustrated below.
Show picture

Replacing a previous version


The version of the Sentinel Protection driver that is currently supplied with the Supervisor is 7.5.9. It is com-
patible with all previous versions of the Supervisor since 6.04.
Under some circumstances, if an older version, 5.41.0, is present it may cause a malfunction. If that occurs,
you can solve it as follows.

1. De-install any installed version of the driver.


2. Re-boot the PC even if that is not requested.
3. Install or re-install the version of the driver supplied on the DVD. See below for more information.
4. Re-boot the PC again.

How to install the hardware protection key driver manually


The hardware protection key driver is installed automatically as part of the prerequisites when you install
the Supervisor software.
However if necessary you can install it manually.

1. From the Supervisor's Installation menu, select the Add-ons, Drivers and Tools menu and then select
Sentinel Driver. When the wizard for the Sentinel System Driver appears, select Next.
2. If a previous version of the Sentinel System Driver is already installed, a dialog will ask whether you
want to upgrade it. Click on Next.
3. A Welcome dialog appears. Click on Next.
4. The License Agreement dialog appears. Read the license agreement, select the option 'I accept...' to
continue only if you accept the agreement, then click on Next.
5. The Setup Type dialog is displayed. Select Complete then click on Next.
6. The Ready to Install dialog is displayed. Select Install to run the installation process.
7. An Installing dialog shows a progress time-bar. When it shows the message InstallShield Wizard Com-
pleted, click on the Finish button.

Troubleshooting the hardware protection key driver


Gemalto (formerly SafeNet), the manufacturer of the hardware protection key used for the Supervisor,
provides a diagnostic tool (Sentinel Advanced Medic) for use if you encounter a problem or wish to check the
protection status of any computer running Windows. It provides information on the Sentinel system driver
and the key limits for both and parallel port keys. The tool is provided on the Supervisor's distribution media
in the form of a self-extracting executable.
You can run the tool in standalone mode or across a network, regardless of whether the Supervisor is
installed on a particular PC:

- 25 -
1. Locate the self-extracting executable, SentinelAdvancedMedic.exe, on the Supervisor's distribution
media in the Add-ons and Tools folder, and run it. The diagnostic tool is installed and a shortcut,
Sentinel Advanced Medic, created on the desktop.
2. Start the tool using the desktop shortcut. Show picture

3. Select Troubleshoot to run the basic checks on the local system or Network Test to run checks over a
network. Each time a check fails the process halts and a message is displayed in the Hint box. You
must click Acknowledge to continue.
4. When the checks are complete click Done to close the diagnostic tool.

For further information, see the Gemalto web site.

- 26 -
License and Associated Features
This topic briefly describes the correspondence between license protection and application features as doc-
umented in this online Help.
The content below is given for information purposes only and is subject to change without notice.
Some modes, types and options, solely or combined, may only be available under specific conditions
and in geographical areas.

Please contact your reseller for more information.

The Supervisor license is mainly defined as follows:

l The run mode: Run time, Development or Complete.


l Size of the variables tree.
l The type of license: HMI station, SCADA station, Communication server etc.

Plus some features and options detailed below.

Modes of operation
There are three modes of operation:

Mode Features
Run time Designed for use in production. This allows an unlimited runtime usage, but with no con-
figuration capability.
Development Designed for stations used for project development and maintenance on a one-off basis.
Development mode is limited to four hours run time after which features are restricted.
Complete Designed for stations with mixed usage, production and maintenance. This brings together
Development and Runtime functioning without any limitation other than those brought about
through the installation and the other license options.

Size of the Variables Tree


This size limits the maximum number of variables beyond which the Supervisor will not be able to start the
project.
When evaluating the size in terms of the number of variables, only the I/O variables are counted, i.e. vari-
ables mapped onto data acquisition protocols, whether they are produced locally or by another station.
Some protocols may require the use of more than one variable for the same equipment data. In such a case,
the various variables are counted separately.

The type of station


The type of station defines the role a station can play in the architecture. For example, a station with a hard-
ware protection key having a license of the Client Station type is not able to act as a data acquisition server.
These are typical combinations of features available at the time of writing:
Station/server Comments
HMI Station Designed for stand-alone stations where data acquisition, archiving and user
interface are used jointly on a single station. It includes all main features, in
particular data acquisition, historical data and user interface.
SCADA Station Designed for all-in-one stations in networking architectures, it consists of all
the supervisory and control functions including inter-station communication
capability. It includes all main features, in particular data acquisition, his-
torical data and user interface.
Communication Server Designed for the role of data acquisition server, archival or gateway in a net-
working architecture.
Client Station Designed for the role of operator station in a networking architecture. It has a
user interface but does not allow data acquisition from field devices.
Network Client Station Designed for client stations that must run without a local hardware protection

- 27 -
key. The license is stored in a hardware protection key that is available on the
network. This type of license is used for client stations running in a Windows
Remote Desktop architecture.
Web Server Designed for the role of server for Web clients. (WebVue, TouchVue as well
as the Web Services Toolkit).
Engineering Station Designed for development and maintenance stations off from production. It
includes all main features, in particular data acquisition, alarms, historical
data, user interface and inter-node messaging. Runtime usage is limited to 4
hours.

Other features and options


Below is a non-exhaustive list of the other features and options that are license-protected:

l Inter-station messaging
l Communication channels for data acquisition including Modbus, S7, OPC-DA Client, OPC XML-DA Cli-
ent, SNMP Manager, BACnet, LonWorks, KNX, IEC 104 Client, IEC 61850 Client, DNP3 Client ...
l Number of simultaneous WebVue clients
l Number of simultaneous Web Services Toolkit clients
l Number of simultaneous TouchVue clients
l Database Manager and Replication
l Data Export
l SNMP Agent, OPC-DA Server, IEC 104 Server
l Dynamic Busbar Coloring
l Map Control
l ...

- 28 -
Running the Supervisor in trial mode
When you start the Supervisor, if it does not detect a hardware protection key it gives you the option of start-
ing it in Demonstration mode. Demonstration mode is similar in capability to an HMI station including all
data acquisition channels limited by time (trial mode).
It runs as a license of type complete with all features available but with the following restrictions:

l The maximum number of variables that can be mapped to a data acquisition channel is limited to 25.
l No inter-station messaging.
l Data acquisition runs for 1 hour in any one session
l Only two WebVue clients can be connected.

- 29 -
Deployment

- 30 -
Deployment Overview
This book explains the options for deploying the Supervisor.
Deployment is the process of allocating roles to workstations and servers, setting-up a web server and cli-
ent applications (web or desktop apps) to fulfill the system requirements in a given physical network archi-
tecture.
For the purpose of this topic, we will consider that the Supervisor has the following main functions.

l Data acquisition - The collection of real-time data, representing real-world or calculated values, using
a communication protocol such as Modbus, OPC...
l Historical data recording - The recording of real-time data so that it can be accessed at a later time by
either the Supervisor itself or a third party application.
l Alarms - Alarm generation and management.
l HMI - Human Machine Interface. The graphical interface that is the presentation layer and enables
operators to interact with the monitored system.
l Inter-station networking. The mechanism by which the Supervisor distributes real-time and historical
data between stations in networked architectures.
l Web server. Comprising components used to interface the Supervisor's core architecture with web
and mobile clients.
l Interface to 3rd party systems - Such as CMMS, GIS, ERP, MES...

Functions and roles allocation cannot be achieved independently from the licenses. For more information
about licensing, see the book about Licensing in the Installation section.

Further information in the help


Multi-station in general - The Application Explorer.Communication.Networked applications
Multi-station redundant and high availability - The Application Explorer.Communication.Networked applic-
ations.Using redundant configurations
Multi-station historical server - The Application Explorer.Archives.Using client-server archive units
Multi-station RDS - Deploying the Supervisor using an RDS host.
Web server - Role of the web server & web back end, Web Deployment Console Overview, Deploying the
WebVue client and Deploying the TouchVue app.
Other related topics:

l Operating System and PC Requirements,


l Operating System Related Considerations,
l Microsoft SQL Server Related Considerations,
l Using Central Project Management,
l Running the Supervisor as a Windows' service.

Architectures
The typical architectures are as follows:

l Standalone - All SCADA functions are incorporated into a single station.


l Multi-station architecture - The SCADA functions span across two or more stations in a client/server
architecture.
l High availability architecture - The SCADA functions and roles are distributed to offer better resilience
and scalability. Multi-station deployment includes the following particular scenarios.
l Data acquisition redundancy - Two or more stations are configured as redundant (hot standby).
l Historical data redundancy - Two or more stations are configured as redundant (hot standby).
l Mutualized servers.
l Three-level architecture - Using one or more stations as a gateway
l Engineering station with version management
l Web based - All-in-one deployment or Network isolation and DMZ.

Roles
The architectures above require allocation of the following roles:

- 31 -
l Data acquisition
l Communication with field devices,
l Real time data and alarm production,
l Serves real time data and alarms to other stations.
l Historical data
l Consume real time data and alarms produced by other stations,
l Handles data storage, the recording and replay of historical data,
l Manages connections to RDBMS,
l Serves historical data to other stations.
l Web back end
l Act as a gateway to provide data to the web server.
l Web server
l Runs Microsoft Internet Information Server,
l Hosts the Supervisor's web services required to serve the web & mobile applications,
l Consume real time data, alarms and historical data provided by the web back end station,
l Serves Web clients including WebVue clients, TouchVue clients, the WebScheduler and the Web
Services Toolkit clients.
l Gateway
l For the secure transfer of data between 2 networks
l Consume real time data, alarms and historical data produced by other stations on one network,
l Serves real time data, alarms and historical data to stations on another network.
l HMI
l Display mimics, graphics, alarm viewer, log viewer, trend viewer... to the user.

Depending on the combination of roles, the Supervisor's stations are better deployed on a desktop
operating system or a server operating system.
See the table below for more information.

Architecture Building Blocks


The Supervisor is available as the following building blocks.

Building block Typical roles Typical deployment mode


Standalone station
l Data Acquisition l As a Desktop Application
l Historical data l Under a desktop OS
l HMI
l Does not have the cap-
ability to exchange data
with other stations
SCADA station
l Data Acquisition l As a Desktop Application if it
l Historical data requires an HMI
l HMI l Under a desktop OS

Or

l As a Windows Service if an
HMI is not required
l Under a server OS
Data acquisition server l Data Acquisition l As a Windows Service
l Under a server OS

Client station

- 32 -
l HMI l As a Desktop Application
l Under a desktop OS
l Or with a server OS hosting
Remote Desktop Services com-
bined with lightweight ter-
minals used as operator
workstations
Historical data server
l Historical data l As a Windows Service
l Under a server OS

Web back end


l Web back end l As a Windows Service
l Under a server OS

Web server
l Web server l Requires Microsoft IIS
l Under a server OS

Web clients
l Remote monitoring and l Using a Web browser or a
control over the Internet Mobile App
or Intranet. l On a desktop PC or a mobile
l WebVue clients and device
TouchVue clients.
Engineering station
l Depending on the archi- l As a Desktop Application
tecture and project l Under a desktop OS
design, an engineering sta-
tion can have very dif-
ferent roles, ranging from
those of a data acquisition
server (for testing com-
munication with field
devices), to archive
server or just an HMI
workstation (to design
mimics).
l Project development and
maintenance.
l Project and libraries ver-
sion management.
l Interoperability with
third-party generation
tools.

- 33 -
Architecture examples

- 34 -
Standalone, Client-Server and Redundant Architecture Examples
This topic describes some of the most common architectures. Architectures based on a web server and web
clients are described in the topic Web Based Architecture Examples.
There are many variations to fit system requirements in term of:

l Number of users
l Type and number of operator stations (HMI)
l Availability
l Flexibility
l Scalability
l Resilience
l Maintenance and application life cycle management

Please contact the technical support for more information.

Standalone station
Show picture

Standalone stations are usually operator panels, it is the simplest architecture with all functions and roles
integrated into a single station.

Multi-station
Show picture

The simplest client/server architecture, to be employed as soon as more than one user seat is required.
A usual variation is to separate Data Acquisition and Historical Data production on 2 different servers, or to
have clients produce historical data locally.

Multi-station with a Remote Desktop Server for deploying client stations

- 35 -
Show picture
This architecture, from a Supervisor's networking point of view is the same as the previous one except that
as a way to rationalize the deployment of client station, RDS and lightweight terminals are used.

High availability
Show picture

When a higher availability and resilience are required, this architecture, more distributed, brings redund-
ancy and roles separation.
It is similar to the multi-station architecture but with data acquisition server and historical data server sep-
aration and redundancy.
A usual variation is to also include a Web Server and Web clients, thus combining permanent operator's
seats and one-off user connections.

Mutualized server

- 36 -
Show picture

The mutualized architecture is an interesting variation of the high-availability.


When you have to monitor and control multiple processes, production lines, plants, buildings, sites... and
can benefit from a reliable network, you can set up a high-end server that will be used as the standby server
for multiple other zones. By mutualizing the standby server, you achieve redundancy and availability while
minimizing the overhead of deploying and maintaining a fully duplicated set of servers.

Three level
Show picture

When network segmentation is a concern, a gateway can be added to the architecture.


Such an architecture is useful when, for example, the system spans over a Wide Area Network, or when
data consumers (client stations or data repository) are located in a less-trusted network.

- 37 -
Such a gateway can be deployed in a DMZ, and if necessary gateways can be redundant.

Engineering station with version management


Show picture

To make the maintenance and the deployment of a project easier and faster, central project management
can be used. Different versions of a project are centralized in a shared directory on the network. Usually a
dedicated engineering station is used to host the central project versions directory and to make the change
for a project. Any station can load and run automatically a version of a project from the central project dir-
ectory.

- 38 -
Web Based Architecture Examples
All in one
In this scenario the Supervisor's web back end station and the Supervisor's web server components are hos-
ted and run on the same computer. Show picture

Intended for simple deployment scenarios with the web and / or mobile client systems on the same network
as the Supervisor's web back end station. Typically used when the network is private and fully isolated from
outside access.
Should not be used when the network is open to incoming requests from outside networks or open for unpro-
tected access from unknown devices. In particular, do not use this deployment strategy when access from
web and mobile client on the Internet is required and there is no further means of network security (such as
VPN-tunneling for instance) available.

Network isolation and DMZ


In this scenario the Supervisor's web back end station and the web and / or mobile client are on different net-
works segregated by a DMZ. The inner network (LAN side of the DMZ) is seen as a private network. The
outer network (WAN side of the DMZ) is a less trusted network and typically an office network or the inter-
net. The Supervisor's web server components are hosted on a computer inside the DMZ and the Web back
end station is on the private LAN. This architecture provides the best integration into IT infrastructures and
allows for maximum compliance with IT policies and practices. Show picture

This architecture is recommended whenever the web and/or mobile clients are outside of the industrial auto-
mation network. This architecture provides maximum deployment security, in line with IT network

- 39 -
segregation practices, ensuring no un-controlled direct incoming connection from outside networks to the
inner industrial automation network.
This architecture should be used whenever possible.

Simplified NAT
This scenario has a single private LAN where the Web server, Web back end and, data acquisition server
reside. Internet access is used to server a few remote web clients. The Web & Mobile clients are distributed
across both sides of a NAT boundary provided by a set-top-box supplied and operated by the ISP.
This architecture is often the only option when a simple access from Internet is required with an ISP set-top
box. Because you do not operate the ISP-owned device, you should have limited trust in it, and add your
own network security appliance between the set-top-box and the web server. This appliance will act as a
router/firewall and VPN server, and will the de-facto be the boundary of the network you control.
Although it is technically feasible to deploy this architecture as is, it is not recommended without further
security measures.

l Use of a VPN and client address locking, in which case the architecture is logically equal to that
described as All-In-One.
l Using the network perimeter’s dedicated DMZ port for establishing a dedicated network segment, in
which case the architecture is a simplified version of Network Isolation and DMZ.

It is also recommended to separate the Web back end and the Web Server as described in Network Isolation
and DMZ.
Show picture

- 40 -
Starting the Supervisor for the First Time
After installation, the Supervisor is started by clicking on its icon in the Start Menu. The first thing that
appears is the loading window (the Event Viewer) that displays status and error messages while the various
software managers are being loaded. Show picture

Once the Supervisor is running, the Event Viewer is hidden by the main window. It can be moved in front of
the main window at any time (providing the Event Viewer is not minimized) using function key F7.
The first time you run the Supervisor, the Event Viewer opens in English. This start-up default language can
be changed by modifying the Languages settings.

Modes
If you try to start the software without a hardware protection key, a dialog will ask you to insert one. Show
picture

l To run the Supervisor in demonstration/evaluation mode, select Start in demonstration mode.


l To run the mode appropriate to the hardware protection key, insert the key and select Try again.
l To cancel startup, select Exit.

For details of versions of the Supervisor, see the Installation book.


The Event Viewer will display some more messages about loading and creating variables.

Creating or selecting a project

Starting and running a project on a networked disk drive is not supported.

You can create a new project or select an existing one as follows.

1. Select the menu Configure.Project.Select Project to open the Select Project dialog.
2. Either select an existing project from the list, or type in a new project name and select OK. Show pic-
ture

- 41 -
3. Before a new project is created, you are asked to confirm the action. Select OK.

The complete path for the project must not exceed 255 characters.

If you select a project created with an earlier version of the Supervisor a warning dialog is displayed
indicating that once the project has been run with the current version it will no longer be compatible
with the earlier version.
If you select a project created with an earlier version of the Supervisor, which uses an HDS data-
base, you may have to migrate the database prior to starting the project. See the document
HDS Database Migration.pdf in the documentation addenda.

- 42 -
Summary of the Supervisor's Tools
Several tools are installed as part of the Supervisor's installation. Some of the tools require the Supervisor
to be running whereas others are standalone. All can be accessed from the Tools folder in the Supervisors
Program Group.
The following list contains a brief description of the tools available at the time of writing and where to find
help about them.

For the administrator


Tool Help book or topic Description
Component Regis- Operating system A tool used to register the Supervisor's components with Win-
tration related considerations dows. If you have more than one version of the Supervisor
installed on the same PC, you must run this tool manually to
register the components of a version before launching it.
This tool can only be used with the Supervisor stopped.
Core Management Running the Super- A tool used to manage the Supervisor's deployment. It enables
Console visor as a service you to switch from deployment as a Desktop Application to
deployment as a Windows Service. It includes dialogs for con-
figuring the startup arguments and other settings related to
the deployment mode, as well as the ability to monitor the
Supervisor's running processes.
This tool can be used with or without the Supervisor running. If
running, only the monitoring tools can be used.
Web Deployment Con- Web Deployment Con- A tool used to manage the deployment of the Supervisor's web
sole sole overview services hosted in Microsoft IIS.
View Effective Per- Operating system A tool to display the effective Windows' permissions of the cur-
missions related considerations rent user on files and folders (ACL). It is useful to troubleshoot
file and folder access issues.
This tool can be used with or without the Supervisor running

The use of these tools requires Administrator privileges except the View Effective Permission utility,
designed to be run with under the identity for which you need to test permissions.

Tools for configuration and diagnosis


Tool Help book or topic Description
Application Architect Application ArchitectA tool used to the Supervisor's application (project) by defin-
ing and instantiating templates (application modeling) rep-
resenting real world objects from the process to be
supervised.
This tool can only be used with the Supervisor running.
Application Explorer Application Explorer A tool used to configure and troubleshoot the Supervisor's
application. It is a Windows Explorer style configuration tool.
This tool can only be used with the Supervisor running.
License Utility None A tool to manage the Supervisor's license: Get detailed inform-
ation about the license, manage updates and upgrades.
This tool can be used on a standalone PC where the Supervisor
is not installed.
Map Cache Creator Using the map cache A tool used to download maps from the Internet and store
creator them locally for use by the Supervisor's Map Control.
This tool can be used with or without the Supervisor running.
Smart Generator Smart Generator A tool for generating the Supervisor's project configuration
importing configuration elements in mass according to con-
figuration repositories from third party software such as PLC
programming packages or generic XML files.
This tool can only be used with the Supervisor running
Log Monitor None A tool to display logging information and trace messages from

- 43 -
the Supervisor. It enables users to monitor the Supervisor's
activity and identify normal and erroneous operation.
This tool can be used with or without the Supervisor running.

Other tools
Tool Help book or topic Description
Database Import Separate help book A tool used to import data in mass to HDS databases.
This tool can be used with or without the Supervisor running.
Database Manager Built-in help A tool used to view SQL Server database and table. It allows
the configuration of the HDS replication.
This tool can be used with or without the Supervisor running.

- 44 -
Deploying server applications

- 45 -
Running the Supervisor as a Windows service

- 46 -
Running the Supervisor as a Windows Service Overview
This book and topics assumes that the reader has some familiarity with running a Windows applic-
ation as a service. Suggested reading for those readers who want to refresh their knowledge is the
document Services in Windows published by Microsoft. At the time of writing this was available
using the following URL:
http://www.microsoft.com/whdc/system/sysinternals/windows-services.mspx.

What is a Windows Service?


A Windows Service is a program like any other intended to run on a Windows operating system. However,
programs intended to run as a Windows Service have particular characteristics.

l Expected to run continuously or at least for long periods


l Perform very specific functions
l Usually run with privileges of Local System, Local Service or Network Service built-in service account
privileges
l Interact with the Windows Service Control Manager:
l Register
l Start
l Stop
l Pause

The consequences of which is that they:

l Do not require user interaction


l Can be configured to start:
l Automatically on system start-up
l Manually as required

Typical roles of the Supervisor that may benefit from running as a Windows Service
Supervisor roles that may benefit from running as a Windows Service are those that require independence
from user sessions during normal operations.

l Data acquisition
l Historical data production
l Web server
l Gateway server

- 47 -
What you need to know when running the Supervisor as a Windows service
If you run the Supervisor as a Windows service, the following element are not available or cannot be used:

l There is no user interface. Therefore you need at least one other Supervisor station configured as a cli-
ent, or WebVue, to display mimics.
l No user interface means that the Event Viewer normally displayed using F7 is not available. Instead,
you need to monitor events from the logging and tracing sub-system, including the trace files. The Log
Monitor can be started from a shortcut in the Supervisor's program group in the Start menu.
l Only one instance of the Supervisor process can be executed at a time. You cannot start another
instance of the Supervisor if one is already running on the same computer.
l You cannot use:
l DDE communication (client or server)
l Graphical printing
l Anything that requires User interaction
l VBA - Scripts can be run but must be started by some method that does not require user
interaction, and they should not require any user interaction to go to completion. As an
example, any instructions that have an HMI (MsgBox for example) must not be used.
l SCADA Basic - Programs can be run but must be started by some method that does not
require user interaction. Any instructions related to the HMI or requiring user interaction
(Window for example) must not be used.
l External DLL called from VBA or SCADA Basic if they require user interaction.
l SV Manager extensions if they require user interaction.
l You cannot access resources using mapped drive letters. Instead, you must use the Universal Naming
Convention name. For example “\\MyServer\MyFolder”.
l You cannot start the Supervisor in a Remote Desktop Session. If your deployment includes usage of
RDS, the Supervisor must be configured for running as a desktop application on the computer that is
the RDS server. See Deploying the Supervisor on a RDS host for more information.

In particular, you are required to carefully monitor logging and tracing events related to the license
handling. By default, the Supervisor will start in Trial mode if it cannot access its license at startup,
and it will shut down automatically after the grace period it loses access to its license while running.

Historic Data Server


When running the Supervisor as a service the HDS also runs as a service. If you want to use SQL Server or
another RDBMS, it must be included as a dependency to make sure it is started in due time. See the topic
Additional Features Configurable in the SV Core Management Console.

Using the Supervisor's configuration and diagnostic tools


The Application Explorer, Application Architect and Smart Generators can all be used. They can be started in
an interactive session on the same computer than the Supervisor instance running as a Service. This is also
possible using a Remote Desktop session. They can be started by using the shortcuts provided in the Super-
visor's program group in the Start menu.
The same goes for tools and utilities for administrators such as the Core Management Console, the Log Mon-
itor or the License Utility.

- 48 -
Running the Supervisor as a Windows Service - Default Configuration and Oper-
ation
Running the Supervisor's Component Registration Utility resets all settings associated with running
the Supervisor as a service to the default, except those of the SV Core Management Console General
Properties tab.
The Supervisor's installation by default installs the components and generates the configuration required to
run the Supervisor as a service. The main components are:

l SV Core Daemon - The service that manages the Supervisor, and the HDS, when running as a service.
l SV Core Session Host - The service that manages the Supervisor when used in a Remote Desktop Ses-
sion.
l SV Core Management Console - A desktop application that collects together, in one easy to use dialog,
all the configuration elements required to run the Supervisor as a service.

Using the SV Core Management Console


The Management Console is started from a shortcut in the Supervisor's program group in the Start menu.
The following screenshot shows the Management Console in its default configuration. Show picture

The Overview tab collects together the main configuration settings in a read only format and provides tools
to start and stop the service manually. Most of the settings do not need to be changed for default operation
of the Supervisor as a service. The settings are grouped as follows.

l Service - Settings applicable to the SV Core Daemon service.


l Startup type - The startup as configured in the Service Properties tab. The default of Manual
means a user has to start the service.
l Log on as - The Service Account used to run the service. Configured in the User Accounts tab.
l Start, Stop and Restart buttons - Tools for the user to manually start the service.
l Other setting
l Startup arguments for the SV32 application - Configured in the General Properties tab. The syn-
tax is described in the Command Line Options topic. Only arguments that do not require input by
the user can be used.
l User account specified to run the DCOM application - The User Account used for DCOM. Con-
figured in the DCOM Applications tab.
l Mode to run SV core - Set to Desktop Application by default but must be changed to Service Applic-
ation to run the Supervisor as a service.

- 49 -
l Processes - Information about the Supervisor's running processes. The Session Id is 0 when running
as a service and non-zero when running as a desktop application. Show picture

The SV Core Management Console also provides convenient access to several related Windows con-
figuration tools.

Configuring the Supervisor to start automatically


To configure the Supervisor to start automatically on operating system startup, select the Startup Type in
the Service Properties tab as Automatic or Automatic (delayed startup).

The SV Core Management Console requires Administrator privileges.

The SV Core Management Console must not be used to change the run mode whilst the Supervisor is
running.

- 50 -
SV Core Management Console advanced use
General Properties tab
Show picture

l Startup arguments - Startup arguments for the Supervisor's core program Sv32.exe. The syntax is
described in the Command Line Options topic. Only arguments that do not require input by the user
can be used.
l Upon process exit - Behavior if the Sv32.exe process terminates intentionally or unexpectedly.
l Disabled (no report) - Process monitoring is disabled, and no reporting is performed.
l Report the termination - The failure will be noted in the Windows Event Log and also visible in
the Log Monitor.
l Stop the service - The SV Core Daemon service will terminate gracefully. This is the default
option.
l Terminate the service (hard exit) - The SV Core Daemon service will hard exit. This allows con-
trol to be handed back to the Service Control Manager and for a restart to be performed by it in
preference (See the Recovery tab of the Service Control Manager).
l Maximum shutdown delay - The period that the SV Core Daemon waits while the Sv32.exe and
HDS.exe processes attempt to shutdown gracefully. If the processes are still running after this period
the SV Core Daemon will force their shutdown.

User Accounts tab


Show picture

- 51 -
Used to select the account which is used to run the Supervisor's SV Core Daemon service and the DCOM
application - Defaults to Local Service.

It is mandatory to use the same account for both.

Service Properties tab


Show picture

Used to configure the startup of the Supervisor's SV Core Daemon and to select any dependent services.
The startup type can be selected from:

l Automatic - The service starts automatically during the startup of the operating system.
l Automatic (delayed startup) - The Service Control Manager starts services that are configured for
delayed automatic start after all of the automatic-start services have finished starting. On some older
computers, it may get necessary to delay the loading of a specific Windows service for the computer
to boot properly. At other times, you may want to be sure that a particular Service has started, and is
available for troubleshooting purposes, before the other Service is started. This is where the Auto-
matic (delayed start) option can help.
l Manual - The service must be started manually.
l Disabled - The service is disabled (cannot be started). Can be used to reduce the risk of malicious use
if the Supervisor is installed but not in use.

A dependent service is one that must already be running before the Supervisor's SV Core Daemon can start.
For example, if you were using the HDS with SQL Server, the SQL Server service should be added to the list.
The installed services are displayed in a drop down list box from where they can be selected and added to
the list.

GUI resources tab

- 52 -
Show picture

Used to tune Windows' resources when running the Supervisor as a service.

l Size of the desktop heap - Change the size of the desktop heap. Increasing this value can be useful if
the Supervisor is running as a service and has the web back end role, in order to server more WebVue
clients. It should only be increased with great care as a too high value can put the computer in a no-
boot situation.
l Maximum number of user objects - Change the maximum number of user objects.
l Maximum number of GDI objects - Change the maximum number of GDI objects.

Do not change these settings unless you fully understand the impact on the operating system. If in
doubt, contact your system administrator or your support authority.

Using the SV Core Management Console from a command prompt


The SV Core Management Console can be run from a command prompt where it can be used to configure the
run mode. Starting svCoreMgmt.exe without any options displays a list of the commands that are
available.Show picture

The SV Core Management Console requires Administrator privileges.

The SV Core Management Console must not be used to change the run mode whilst the Supervisor is
running.

- 53 -
Choosing a service account

- 54 -
Options for selecting the Service Account
A service account is a Windows user identity that is associated with a Windows service executable for the
purpose of providing a security context for that service.
Windows 7 and Windows Server 2008 R2 have two new types of service accounts called managed service
accounts (MSA) and virtual accounts. Managed service accounts and virtual accounts are designed to
provide crucial applications such as SQL Server with the isolation of their own accounts. These types of ser-
vice accounts are also a way to ease the administrative burden in managing service account passwords. The
downside about these types of service accounts is that because they are still so new, their use is not sup-
ported universally, especially by applications based on DCOM technology such as the Supervisor.

Managed service accounts and virtual accounts are not supported by the Supervisor (Sv32.exe) run-
ning as a service. Because of this, we will not include the use of managed service accounts and vir-
tual accounts in this book.
The SV DbConnect, another service introduced in version 12 to handle the SQL connections, can be
used with the virtual account NT SERVICE\svDbConnect.

When considering which account to use for a service there are two main choices.

l A built-in service account


l A local or domain user account

When choosing a Service Account to run the Supervisor (or any other service) the main criteria is to use an
account with the least possible privileges. This is to ensure that the service is run as securely as possible.

According to Microsoft, Windows administrators should choose service accounts based upon the following
hierarchy. This hierarchy is ordered from least privilege to greatest privilege:

1. The Local Service built-in service account


2. The Network Service built-in service account
3. A Local or domain user account
4. The Local System built-in service account
5. Local Administrator account
6. A Domain Administrator account

Options 5 and 6 represent “worst-case scenarios” in which a given service or application simply will not run
with a service account containing lesser privilege and permissions. Option 4, based on the Local System
account, cannot be used to run the Supervisor. For these reasons, only options 1 to 3 should be considered.
It is always preferable from a security perspective to run as your own service account that has precisely the
permissions you need to do what a service does and nothing else. However, the cost of this approach is set-
ting up your service account, and managing the password. It is a balancing act that each application needs
to manage.

Using a Local Service account


Local Service is a limited service account that is very similar to Network Service and meant to run standard
least-privileged services. However, unlike Network Service, it has no ability to access network resources
that require Windows authentication. However, it can still access network resources that do not require Win-
dows authentication such as a PLC using TCP/IP based communication. Therefore, if the Supervisor is not
accessing anything on the network requiring authentication at the Windows level, you should seriously con-
sider using the Local Service account.

Using a Network Service account


If the Supervisor requires authenticated network access, you might need to use the Network Service
account or a local user account with minimal privileges.

Using a Local or Domain user account

- 55 -
If the Supervisor must interact with network services, access domain resources such as file shares or if it
uses linked server connections to other computers running SQL Server for example, you might use a min-
imally-privileged domain account. Many server-to-server activities can be performed only with a domain
user account. This account should be pre-created by domain administration in your environment.

See About using a built-in Service Account and About using a User Account as a Service Account for more
information related to selecting the Service Account for running the Supervisor as a Windows Service.

- 56 -
About using a built-in Service Account
The following table summarizes the major aspects of the built-in operating system identities that are used
as default service accounts in Windows.
Account Name Actual name of the account Visibility Default Privilege Level
Local Service NT AUTHORITY\LOCAL SERVICE Local and Net- Low (as authenticated user)
work (network
access uses
anonymous cre-
dentials)
Network Service NT AUTHORITY\NETWORK SERVICE Network (uses Low (as authenticated user)
computer
account cre-
dentials)
Local System NT AUTHORITY\SYSTEM Local and Net- High
work (network
access uses com-
puter account cre-
dentials)
Some additional facts should be pointed out concerning the account identities.
You do not have to manage their passwords - Because these built-in identities are created by Win-
dows itself, the operating system manages their account passwords. In this respect these accounts function
like managed service accounts and virtual accounts.
The Local System account is very highly privileged - The Local System identity is granted system
privileges that make this account in many ways more powerful than the built-in Administrator account.
Although Local System was designed for access on a local computer only, this account can be associated
with services that move across your network. In this case, the credential that is presented to remote pro-
cesses is <DomainName>\<ComputerName>$.

The Local System account cannot be used to run the Supervisor.

Be wary of Local Service and Network Service account group membership - Again, the “Local” and
“Network” parts of these account names inform us that the Local Service and Network Service accounts are
targeted at local and network use, respectively.
However, you should always keep in mind that the Local Service account runs locally as a member of the
computer’s Local Users group (Domain Users on domain controllers) and runs remotely as an anonymous
connection.
By contrast, the Network Service account runs locally as a member of the localUsers or Domain Users
groups, and runs remotely as a member of the Authenticated Users group. In addition, Network Service
inherits any permissions that have been granted to the source computer account in Active Directory.
The fact that Local Service runs remotely as an anonymous connection means that any attempt to
use Windows hosted network resources will probably fail. However, it does not mean a TCP/IP con-
nection to a PLC would fail, as it does not normally require a Windows authentication.

In order to apply the principle of minimal privilege, the Local Service account is used in the Supervisor's
default configuration.

- 57 -
About using a User Account as a Service Account
You can sidestep some of the complexities of running services with the built-in service accounts by instead
using a local or domain user account. An important point to keep in mind is that Windows automatically
grants additional privileges (most notable the Log on as a Service and Log on as a Batch job privileges) to
user accounts that you associate with services. Show picture

In addition, the SV Core Management Console grants two additional privileges to the user account asso-
ciated with the SV Core Daemon service and the DCOM application.

l Log on as a service - This security setting allows a security principal to log on as a service. Any ser-
vice that runs under a separate user account must be assigned this right. Show picture

- 58 -
l Log on as a batch job - Any DCOM application that runs under a specific user account must be assigned
this right. Show picture

For this reason, it is imperative that you never use a service account for interactive logon. In other words, a
human being should never log on to a system by using a service account identity.

- 59 -
Creating a Specific Service Account to Run the Supervisor
A service account is a Windows account used to start a Windows Service as in when the Supervisor is run-
ning as a service. See the topic Options for selection the Service Account for background information.

Creating a service account


The most common local Service accounts used are LOCAL SERVICE and NETWORK SERVICE but you can cre-
ate a specific account that, for the purpose of this topic, we will call SV_SERVICE. To create a local account
you can open the Local Users and Groups console from the Windows Control Panel or directly from the SV
Core Management Console (Tools.Local Users and Groups). For security reasons, the user account SV_
SERVICE must belong to the Users group and never belong to the local Administrators group. Show picture

The basic security rule is always execute a Windows Service with the least possible level of user
rights.

Creating a user group


The purpose of this user group (SV_USERS for example) is to define the list of user accounts that are able to
access the sv32.exe and HDS.exe processes when they are running as a service. Show picture

This group must contain:

- 60 -
l Interactive Users or Users Groups that are able to start the Supervisors executables such as AiEx-
plorer.exe or SmartGenerator*.exe etc. Adding the Authenticated Users group is a simple way to per-
mit any user logged on this station.
l Service accounts used to run the Supervisor as a service (LOCAL SERVICE, NETWORK SERVICE or SV_
SERVICE for example).

Adding permissions to the Supervisor's installation folder


The properties of the Supervisor's installation folder must be changed so that the user group has Modify per-
missions. Show picture

After a new users group has been created or modified it is often necessary to restart Windows to
have the changes taken into account.

DCOM settings
The Supervisor uses DCOM to communicate between the main SV32 program and its components such as
the Application Explorer. DCOM is also used if the Supervisor's configuration includes an OPC server, even if
it is on the same computer. The Supervisor's installation creates a DCOM entry called SV_SERVICES that is
used to provide default security permissions for the Supervisor's executables. However, if you run the
Supervisor using a specific user account the DCOM configuration must be changed to reflect this.
Windows DCOM configuration can be accessed from the Windows Control Panel or directly from the SV Core
Management Console (Tools.Component Services). Using the Security tab you must set the Launch and Activ-
ation Permissions and Access Permissions to Customize, add the user or user group (SV_USERS for
example), and edit the permissions as follows. Show pictures

- 61 -
Remote Launch, Remote Activation and Remote Access permissions may also be required if the
Supervisor is to be used as an OPC Server from a remote OPC client.

- 62 -
How to run Services More Securely
The path to success in service security includes understanding the nature of the services available in the net-
worked environment and establishing procedures to protect the use of them. This topic provides some core
principles that you should follow when you plan to run services securely.

Know your system


Although this recommendation seems obvious, many organizations are not fully aware of the roles and ser-
vices that run on all their computers.

Use the principle of least privilege


Most security-related documentation discuss implementing the principle of least privilege. This principle is
simple, but the impact of its implementation greatly increases security and reduces risk. The principle of
least privilege states that you give an entity the least amount of access it requires to do its job and nothing
more. In Windows Server, this principle applies to both user accounts and computer accounts because in Act-
ive Directory both user accounts and computer accounts are security principals, which means that they can
both be assigned permissions and privileges.
One reason this principle works so well is that it forces you to assess your network resources and potential
security risks. You must learn the access privileges that are actually needed for a given computer or user
and then verify that only the required privileges are applied.
Running services more securely requires you to deploy services using a least privilege approach.

Apply the security principle of least service


The security principle of least service means, in a nutshell, if you do not absolutely require a specific Win-
dows service, disable it. Note that we say disable the service and not simply set its startup type to Manual.
More broadly, the principle of least service states that the operating system and the network protocols avail-
able on any networked device should run only the exact services and protocols required to support the tar-
geted deployment.
By performing this action, you not only conserve system and possibly network resources, but you also
reduce the number of attack vectors a malicious user can employ to penetrate your network.

Use separate domain user accounts for services and applications


The main reasons to use dedicated domain user accounts for service accounts instead of the built-in iden-
tities are as follows:

l Using domain user accounts consistently makes it easier to manage multi-tier application infra-
structures.
l By using domain user accounts as service account logons, you can more granularly audit access loc-
ally and across your network.
l Domain user accounts can be more definitively targeted with Group Policy.

Regarding Group Policy, you might want to ensure that your domain service accounts are denied the Log on
Locally user right at the very least. This measure will prevent a malicious user from succeeding in an inter-
active logon attempt by using a breached service account.

Be vigilant regarding the Everyone and Authenticated Users groups


Everyone and Authenticated Users are dynamic security principals, which means that their membership is
controlled by your network environment itself and that administrators cannot control membership to these
group identities.
The Everyone identity includes all authenticated and unauthenticated network users (this includes Local Ser-
vice).
The Authenticated Users identity includes all domain user and computer accounts who have successfully
authenticated to Active Directory. This group includes the Local System and Network Service built-in service
account identities.

- 63 -
Thus, a key point of security is to keep a careful eye on where and how we are assigning access permissions
to these two special groups.
You can control which accounts have which system privilege by using Local Security Policy that can be
accessed from the Windows Control Panel or directly from the SV Core Management Console using Tools.
Local Security Policy. The relevant Local Security Policy path is Security Settings\Local Policies\User Rights
Assignment. Show picture

System privileges are also called user rights. Either way, both refer to system-wide abilities such as
logging on as a service, logging on locally, changing the system time, and so forth.

- 64 -
Roles of the web server and web back end

- 65 -
Role of the Web Server and Web Back End
Role of the web server
The web server hosts the Supervisor's web apps and web services, and is based on Microsoft's Internet
Information Services. The web server can be on the same, or a different, computer to the web back end sta-
tion.

The web server role is mandatory if your application uses any of the following components.

l WebVue
l TouchVue
l The WebScheduler
l Web Services Toolkit clients - Including 3rd party tools and Add-ons based on the Web Services
Toolkit

The Supervisor's Web Deployment Console (WDC), the tool designed for the Supervisor's web server deploy-
ment, must be installed on the web server computer.

Role of the web back end


The web back end is a Supervisor station, its role is to Act as a gateway to provide data to the web server.
Deploying a web back end is required when one or more web or mobile app is used:

l WebVue
l TouchVue
l The WebScheduler
l Web Services Toolkit clients - Including 3rd party tools and Add-ons based on the Web Services
Toolkit

The Supervisor must be installed on the computer that is the web back end, and the application must include
the back end configuration. The web back end may, or may not, be on the same computer as the web
server.
In the previous versions of the Supervisor, the web back end was known as the Web Services Toolkit Server
or the Property Server.

- 66 -
All-in-one Deployment
See the topic Web based architecture examples for a schematic.

Requirements

1. The deployment of this architecture requires a minimum level of network expertise.


2. Requires all computers and mobile devices to be on the same subnet, typically the industrial network,
including web and mobile clients, the web server and the Supervisor's web back end station.
3. Web clients on this network are supposed to trust the Web Server machine without reservation as they
are on the same, and by definition, private network.
4. This architecture works with minimum requirements towards the trustworthiness of the web server
certificate. A certificate from a public certification authority is not mandatory to establish trust with
the Web Server.

Benefits

1. Only a single computer is necessary to host both the Supervisor's web back end station and the web
server.
2. The computer only requires a single network interface card.
3. Works out of the box when using the IP address of the web server computer to connect web and
mobile clients.
l A DNS is not required for name resolution on Windows platforms. The web server computer may
be addressed by its hostname from any Windows-based web clients.
l Can work with a Windows desktop operating system such as Windows 10 on the web server com-
puter if serving a limited number of users, although a server operating system is still recom-
mended.
l When using non-Windows client devices, Android, iOS, Linux etc, the presence of a DNS server
is necessary for name resolution. This can be achieved by using a Windows Server operating sys-
tem for the web back end station and the activation of the DNS server role.
4. While this cannot be recommended in production, usage of a self-signed certificate works out-of-box,
with the need to add a security exception on the client's web browser or to enable the option Ignore
Certificate Errors on mobile applications. If there is an Active Directory server accessible from the net-
work, a domain certificate can be issued from the Active Directory server and trusted by all the clients
of the domain (by domain policy or via a corporate MDM system).

Limitations

1. Expect limitations when hosting the web server on a Windows desktop operating system. In particular,
the maximum number of client connections that IIS can handle is limited.
2. Microsoft® Edge does not allow storing cookies if the hostname is not a FQDN. This causes troubles
with web components. It can be overcome by setting the web site binding to:
https://<hostname>.local
3. Limited performance may be experienced, particularly during WebVue client loading, when using
untrusted certificates because, in such circumstances, files are not cached by web browsers, and
therefore re-downloaded at each connection.

Web Deployment Console


The WDC must be installed on the same computer as the web back end station and the web server. The archi-
tecture is easily deployed using the Quick Setup wizard of the WDC, with all settings at their default value.

Firewall settings
The following table describes the allowances required for this architecture to be operational. It is recom-
mended that all other non-essential network traffic be denied. The port numbers listed here correspond to
the default settings. It must be verified that these ports are not in use by 3rd party applications.

Web Server
Name HTTPS
Type INBOUND

- 67 -
Source IP ANY
Source Port ANY
Destination IP Web Server IP address
Destination Port Port 443
Protocol TCP
Communication between the web back end and the web server can use the local loopback and requires no
further configuration. However, it is advisable to check that the following ports are not open to incoming con-
nections from other IP addresses.

l TCP 8090
l TCP 8091

Name resolution FAQ

1. Hostnames
l Can be used if a means is available for name resolution.
l NetBIOS will work if available and supported by web clients (Windows only, not a solution for
TouchVue on mobile operating systems such as Android and iOS).
l DNS is not essential but is highly recommended.
2. IP address
l For TouchVue. Works when addressing the web server computer by its IP address as for
TouchVue authorization no redirection between the authorization server and the app is required.
l For non-Windows WebVue web clients. Works when addressing the server by its IP address,
given that the redirection between the authorization server and the WebVue app is also con-
figured to be based on IP addresses.
l For WebVue web clients on mixed platforms i.e. Windows plus at least one other type of oper-
ating system. Use the WDC to create two different web sites on the web server, one with a bind-
ing for access by hostname and one with a binding for access by IP address.

- 68 -
Network Isolation and DMZ
See the topic Web based architecture examples for a schematic.

Requirements

1. The level of network and IT expertise required to deploy this architecture is intermediate to high.
2. A suitable network infrastructure planning and set-up to segregate the private network from the lesser
protected network. This includes a router and at least one firewall. Both common DMZ architectures,
single firewall setup and dual firewall setup, can be used.

3. Support of the end user’s IT department is likely to be required, to properly set up network segreg-
ation and name resolution. This includes the proper configuration of:
l DNS server
l Active Directory
l Routing
l NAT or Port Forwarding if necessary
4. In order to validate the identity of the web server computer on the lesser trusted network and to pre-
vent Man-in-the-middle attacks, usage of a fully trusted certificate is essential. This certificate can be
issued:
l By the IT department with their office network Active Directory server.
l By the IT department with a public CA, if accessed from external Web/Mobile Clients (Internet
access).
5. A DNS server is required on the lesser trusted network
6. A Windows Server operating system on the web server computer, and ideally also on the web back
end station
7. The web back end station must be accessible from the web server computer at least by its IP address.
Access via hostname is also possible, given that a mean of name resolution is present from within the
DMZ:
l A dedicated entry in the hosts file of the web server computer.
l A DNS server within the industrial automation network that is accessible from the DMZ. If not
already available, the activation of the DNS-Server role on the Windows Server operating sys-
tem of the web back end station can be a solution.

Allowing access from a computer within a DMZ into the private network can contradicts security
policies. For technical reasons however, TCP port 8090 (configurable) needs to be opened in that dir-
ection.

Benefits

1. This architecture allows for convenient access from less trusted networks, typically the Internet or
Intranet, by exposing the web and mobile services and applications of the Web Server under a Fully
Qualified Domain Name.
2. It allows maximum control over network traffic, in line with IT network segregation practices, making
sure that there are no un-controlled direct incoming connection requests from outside networks into
the industrial network.

Limitations

1. Connecting web / mobile clients also from within the Industrial Automation network to the web server
machine requires further configuration and routing and is outside of the scope of this chapter.
2. WINS cannot be used for name resolution as it cannot be used across a router.

Web Deployment Console

- 69 -
This architecture can be deployed by using either of the WDC setup wizards. However, the default settings of
the Quick Setup wizard will not be suitable in all situations. The WDC must be installed on the Web Server
computer.

Firewall Settings
The following tables describe the allowances required for this architecture to be operational. It is recom-
mended that all other non-essential network traffic be denied. The port numbers listed here correspond to
the default settings. It must be verified that these ports are not in use by 3rd party applications.

Firewall #1 - WAN side of the DMZ


Name HTTPS
Type N/A
Source IP ANY
Source Port ANY
Destination IP Router WAN IP address
Destination Port 443
Protocol TCP

Web Server - On the DMZ network


Name HTTPS
Type INBOUND
Source IP ANY
Source Port ANY
Destination IP Web Server IP address
Destination Port 443
Protocol TCP
Name
Type INBOUND
Source IP Web back end IP address
Source Port ANY
Destination IP Web Server IP address
Destination Port 8091
Protocol TCP
Name
Type OUTBOUND
Source IP Web Server IP address
Source Port ANY
Destination IP Web back end IP address
Destination Port 8090
Protocol TCP

Firewall #2 - LAN side of the DMZ


Name
Type N/A
Source IP Web Server IP address
Source Port ANY
Destination IP Web back end IP address
Destination Port 8090
Protocol TCP
Name
Type N/A
Source IP Web back end IP address
Source Port ANY

- 70 -
Destination IP Web Server IP address
Destination Port 8091
Protocol TCP

Web back end - On the LAN


Name
Type INBOUND
Source IP Web Server IP address
Source Port ANY
Destination IP Web back end IP address
Destination Port 8090
Protocol TCP
Name
Type OUTBOUND
Source IP Web back end IP address
Source Port ANY
Destination IP Web Server IP address
Destination Port 8091
Protocol TCP

Rules for Firewall #1 and Firewall #2 can be on the same device if a single firewall DMZ setup is
used.

- 71 -
Simplified NAT Deployment
See the topic Web based architecture examples for a schematic.

Requirements

1. The level of network and IT expertise required to deploy this architecture is low to intermediate.
2. It is assumed that the connection between the private network and the Internet is with a typical ISP-
provided set-top-box.
3. Network Address Translation (NAT), or Port Forwarding, configured on the network boundary.
4. To validate the identity of the Web Server computer on the lesser trusted network and to prevent Man-
in-the-Middle attacks, usage of a fully trusted certificate is necessary.
l This certificate can be issued by the IT department via a public CA. Necessary if the Web Server
is accessed by external Web and Mobile clients (typical access from the Internet by client
devices / computers not in a trusted relationship with the corporate network infrastructure).
5. The web server computer must be accessible by the Web and Mobile clients from both network seg-
ments.
l This can be achieved if the web server is well known on both network segments under the same
FQDN.
l If this is not the case the possibility for the Web and Mobile clients to directly connect to the web
server computer by using its FQDN without the Https requests having to leave the private net-
work is better. Usage of NAT Loopback / Hairpinning is suggested in this case.
l If none of these options is possible, it is recommended to create two different sites via the WDC,
which both connect to the same web back end station.

Benefits

1. This architecture allows for convenient access for Web and Mobile clients located on the industrial net-
work and on the internet.
2. This architecture is a first step in a migration process of legacy WebVue systems offering remote web
access.

Limitations
This deployment scenario offers limited network security if a specific device is not added to control the net-
work perimeter:

l You are relying on a set-top-box owned by an ISP to control the network perimeter and remote con-
nection.
l Consequently, a computer that is part of the Industrial Control System should be considered directly
exposed to the Internet.

In a worst-case scenario, potential security vulnerabilities on several levels could be exploited by an


attacker to gain access to the Industrial Control System.
Because you do not operate the ISP-owned device, you should have limited trust in it, and add your
own network security appliance between the set-top-box and the web server. This appliance will act
as a router/firewall and VPN server, and will be de-facto be the actual boundary of the network you
control.

Web Deployment Console


This architecture can be deployed by using either of the WDC setup wizards. The WDC needs to be installed
on the Web Server computer.

Firewall settings
The following table describes the allowances required for this architecture to be operational. It is recom-
mended that all other non-essential network traffic be denied. The port numbers listed here correspond to
the default settings. It must be verified that these ports are not in use by 3rd party applications.

Firewall
Name HTTPS

- 72 -
Type N/A
Source IP ANY
Source Port ANY
Router WAN or DynDNS IP
Destination IP
address
Destination Port 443
Protocol TCP

Web Server Station


Name HTTPS
Type INBOUND
Source IP ANY
Source Port ANY
Destination IP Web Server IP address
Destination Port 443
Protocol TCP

Communication between the web back end and the web server can use the local loopback and requires no
further configuration. However, it is advisable to check that the following ports are not open to incoming con-
nections from other IP addresses:

l TCP 8090
l TCP 8091

- 73 -
Using the Web Deployment Console

- 74 -
Web Deployment Console Overview
This help is for the Web Deployment Console (WDC). The WDC performs the following functions:

l Check that the Windows IIS Web Server is installed and that all the options required for the correct
operation of the Supervisor's web and mobile apps are selected. If required IIS modules are missing,
they can be installed automatically.
l Configure the IIS server for use by the Supervisor and its web and mobile apps.
l Configure and deploy the Supervisor's web services and web apps.
l Provide diagnostic tools to aid in fault finding of the web server and the Supervisor's web and mobile
apps.

In this version of the WDC, the following of the Supervisor’s apps are supported:

l WebVue web app,


l TouchVue mobile app,
l WebScheduler web app.

The WDC is intended for use by both expert and non-expert users.

l In the Quick setup mode, default configuration settings are used and a wizard is used to assist in the
configuration. This mode is recommended for the non-expert, typically on development and test serv-
ers off from production. See the topic How to Configure the Back End and Web Server.
l In the Custom setup mode, all settings are exposed to allow the user to change them. This mode is
recommended for the expert and fine-tuning. See the book Using the Custom Setup Wizard.

When installing the Web Deployment Console, a series of so-called Web Deployment Packages are
copied and stored on the web server (in addition to the WDC executable files). These packages, one
per web service and web application, contain the files that will be used when deploying a web site on
your web server.

Useful links

l Deployment overview
l Web architectures
l Role of the back end and web server

Summary of the Supervisor's Web Services and Apps


Service Description WebVue TouchVue Web Sched- Web Ser-
uler vices Toolkit
Registry Service registry management. Yes Yes Yes
Act as a directory of services
for web & mobile applications
OAuth Authorization management ser- Yes Yes Yes
vice. User authorization and Yes
security
ScheduleData Timetable access service Yes
GraphicalData Mimic access service Yes
SessionContext Session management service Yes
Realtimedata Real time data access service Yes Optional
HistoricalData Historical data access service Yes Optional
WebClient The WebVue web app Yes
WebScheduler The WebScheduler web app Yes

Terminology Used in the Supervisor's Web Apps


Web technology has many acronyms, some of which you will find in the help for the Supervisor's web apps.
The most common ones are listed below.

General terms

- 75 -
l Microsoft IIS - Internet Information Services. An extensible web server provided by Microsoft, used
by the Supervisor to provide access to web services and applications.
l Application pool - Application pools are used to separate sets of IIS worker processes that share the
same configuration and application boundaries. The application pool for the supervisor is named SV
Application Pool.
l HTTPS - Secure Hyper Text Transfer Protocol.
l OAuth - Open Authorization, an open standard for authorization delegation.
l SSL - Secure Socket Layer
l TLS - Transport Layer Security
l Site - Contain the web services and applications.
l Mobile app - TouchVue is a mobile app. Also known as an app.
l CA - Certification Authority. An entity that issues digital certificates.
l DNS - Domain Name System. A hierarchical decentralized naming system for computers, services, or
other resources connected to the Internet or a private network.
l FQDN - Fully qualified domain name. A domain name that specifies its exact location in the tree hier-
archy of the Domain Name System (DNS). It specifies all domain levels, including at least a second-
level domain and a top-level domain.
l DMZ - A DMZ or demilitarized zone (sometimes referred to as a perimeter network) is a physical or
logical network that contains and exposes an organization's external-facing services to an untrusted
network, usually a larger network such as the Internet. The purpose of a DMZ is to add an additional
layer of security to an organization's local area network (LAN).
l WINS - Windows Internet Name Service. Microsoft's implementation of NetBIOS Name Service
(NBNS), a name server and service for NetBIOS computer names.
l VPN - Virtual Private Network. A VPN extends a private network across a public network, and enables
users to send and receive data across shared or public networks as if their computing devices were dir-
ectly connected to the private network.

Specific to the Supervisor

l Web back end - A Supervisor station within the industrial network, which provides the Web Server
with information.
l Web server - A computer, running the IIS web server, which hosts the Supervisor's web services and
apps.
l Web Deployment Console - Software tool installed on the Web Server machine, which allows the user
to install, configure and manage the deployment of the Supervisor's web services and apps.
l Web and Mobile clients - WebVue is a web client in a web browser, TouchVue is a mobile client (native
mobile app) installed on a smart device.

- 76 -
Guided Tour of the WDC

Using the WDC requires administrator privileges.

Overview
The following screen shots show the WDC after it has been first installed and there is no configuration. Show
pictures

A. Tool bar - Quick access to some useful configuration and monitoring tools.
B. Web servers - Click to display the Web servers view.
C. Back ends - Click to display the Back ends view.
D. Click to Deploy a new server.
E. Click to Create a new back end endpoint.

Back ends view


The Back Ends view displays the list of back ends endpoints that have been configured in the WDC. A back
end endpoint includes configuration properties required for the web server to connect to the Supervisor's
web back end. Show picture

A. The configured back end. The information displayed includes the back end’s alias and the name of the
computer on which it resides. The following tools are provided.
l Edit - Edit the configuration of the back end.
l Remove - Remove the back end and its entire configuration.

Web Servers View


The Web Servers view displays the IIS web servers that have been configured and the sites that have been
deployed. The current version of the WDC supports only the local installation of IIS and hence there will only

- 77 -
ever be one web server displayed. Show picture

A. The configured web server. The information displayed include the server’s alias, the name of the com-
puter on which it resides and an icon indicating its status. The following tools are provided.
l New site - Start the wizard to deploy a new instance of a Supervisor's site and the cor-
responding roles - WebVue, TouchVue etc.
l Edit - Edit the configuration of the web server.
l Diagnostics - Run the diagnostics and display the results in the Diagnostics pane.
B. Authorization tools. The tools in this group are to configure and manage authorized clients.
l New client - Create an authorization for a new 3rd party application. See the New client topic.
l Clients - Display the authorized clients. A list of the clients appears in the right pane from where
their configuration can be accessed. See the Clients topic.
l Tokens - Display the authorization tokens that are currently active. See the Tokens topic.
l Grants - Display the authorized grants that are currently active. See the Grants topic.
C. Registry service.
l Configure - Configure the registry service. See the Registry service configuration topic.
D. Deployed site(s). The tools in this group are to configure and manage a particular site. In this
example, it has the alias SV Website. The following tools are provided. Further information can be
found in the Custom setup book.
l Bindings - Manage the HTTPS bindings. See the Quick Setup wizard topic.
l Certificates - Manage the certificate used by the site. See the Certificates.
l Roles and services - Manage the site's roles and services that are deployed. See the topic Roles
and services.
l Back ends - Manage the back end used by the site. See the Custom setup topic.
l Logging - Manage the logging and trace level in use. See the Logging topic.
l Data protection - Manage the data protection used by the site. See the Data protection topic.
l Service Configuration - Manage the services exposed by the site. See the Services Configuration
topic.
l Summary - Display a configuration summary of the deployed site.

- 78 -
How to the Install IIS Web Server and Select the Required Features
When you start the WDC, it first attempts to detect the presence of IIS on the local computer. If the WDC
fails to find it, a button is displayed which can be used to install IIS and select the features needed for IIS to
function as a web server for the Supervisor. IIS must be present before the WDC will allow you to set up the
web server.Show picture

Once IIS has been setup, the WDC will display the buttons to setup a new server or import the configuration
from a file.

Summary of the IIS features required


At the time of writing, the following IIS features are required by the Supervisor's web services and apps.
The screen shot was taken using Windows 10. The appearance of screen shots from other operating systems
may be different. Show picture

- 79 -
What is, and Why do I Need, a Certificate?
What is a certificate?
A certificate is a small data file that digitally binds a cryptographic key to an organization’s details. Using a
certificate allows a person, computer or organization to exchange information securely over the Internet
using a public key infrastructure (PKI). A certificate can also be referred to as a digital certificate or a public
key certificate.
A certificate provides identifying information, is forgery resistant and can be verified because it was issued
by a trusted party. The certificate contains the name of the certificate holder, a serial number, expiry dates,
a copy of the certificate holder's public key (used for encrypting messages and digital signatures) and the
digital signature of the certificate-issuing authority (CA) so that a recipient can verify that the certificate is
real. To provide evidence that a certificate is genuine and valid, it is digitally signed using a root certificate
belonging to a trusted party. Operating systems and browsers maintain lists of trusted CA root certificates
so they can easily verify certificates that the CA's have issued and signed. When PKI is deployed internally,
certificates are signed by the department operating the internal PKI (usually the IT department).

Why do I need a certificate?


For security, modern web client applications communicate with the web server using the HTTPS protocol.
HTTPS is the secure version of HTTP and it means that the identity of the server is verifiable and all com-
munications between client and server is encrypted. When a client requests a HTTPS connection, the server
will initially send its certificate to the client. The certificate contains the public key needed to begin the
secure session. Based on this initial exchange the client and browser initiate a handshake, which establishes
a uniquely secure connection between client and server.
The Supervisor's web client applications all require HTTPS and therefore the web server (IIS) requires a cer-
tificate. As each certificate is unique, it must be generated as part of the deployment of the web server.

What type of certificates are available?

l Self-signed certificate - A self-signed certificate is one that has been signed by the same entity whose
identity it certifies. As a self-signed certificate is not issued by an official Certification Authority (CA)
or trusted internal party, it is not secure and, must not be used a web server deployed in production. A
self-signed certificate also has the disadvantage that it will not be recognized by web browsers and an
exception will have to be created in the web browser's configuration. However, a self-signed cer-
tificate can be useful at the development and testing stages.
l Certificate from a Certification Authority (CA) - A certificate requested from, and issued by, a Cer-
tification Authority. Anyone with system administrator rights can request a certificate using the IIS
web server and it is a process generally managed by a company's IT department. Certificate author-
ities can be private (internal) or commercial ventures in which case the certificate is chargeable.
l Certificate from Let's Encrypt - A free, automated, and open Certification Authority (CA), provided by
the Internet Security Research Group (ISRG).
l Anyone who owns a domain name can use Let’s Encrypt to obtain a trusted certificate at zero
cost.
l Software running on a web server can communicate with Let’s Encrypt to obtain a certificate,
configure it for use, and automatically renew it. (Let's Encrypt certificates are only valid for
three months).

- 80 -
Web Server maintenance with the WDC
The Web Deployment Console is helpful for the initial set up of the Web Server, but it is also designed to be
used at later stages.
This topic addresses how the WDC can help you after the initial set-up.

Using the WDC to backup and restore the web server configuration
The settings you select when using the WDC are persisted in a configuration file named WebDeploy-
mentConfiguration.xml and stored in the Etc folder. This file is not removed when updating or uninstalling
the WDC.
Because keeping a backup copy of this file is important, the WDC offers an export feature that will allow you
to save it to another location for later use. In addition to the WDC configuration file, this feature also exports
all useful data and configuration files of web services and web applications as they are used by the elements
deployed at the time of export (mainly web.config files).
You can reuse the WDC configuration file to restore your web server and web sites settings at a later stage,
either on the same web server or on another one. If restoring on another server, you will want to change the
web server host information prior to deploying.

Using the WDC to update the web services and web applications
Because the WDC installation media includes the Deployment Packages for every web services and web
applications the WDC is able to deploy, updating the WDC on a regular basis is important to get updated
Deployment Packages that includes potential bug fixes, security hot fixes and evolutions.
Once an updated version of the WDC is installed on the web server, updating the deployed web services and
web applications is achieved by opening the burger menu of the web site, and clicking Re-deploy.
If the WDC detects an issue or that at least one Deployment Package is more recent than the date of
last deployment, then a warning sign is displayed on the affected web site toolbar to invite you to
run diagnostics or re-deploy the web site to update it.

- 81 -
Getting started - The quick setup

- 82 -
How to Configure the Back End and Web Server
Configuring the Back End and the Web Server must be completed before deploying any sites and apps. The
current version of the WDC can only configure a web server on the local computer.

How to Configure the Back End


The back end configuration defines the connection between the IIS web server and the Supervisor's back
end. If you change the back end configuration after you have deployed a site you must use the back ends
view in the site tile to re-deploy it.
The following explanation is for configuring a local back end that is the simplest case where the web server
is on the same computer as the Supervisor's Web back end.

1. Open the WDC and select Back ends. Select Create new back end endpoint. The back end configuration
view opens.Show picture

2. Enter the Alias for the back end. This is the name by which it will be known.
3. Select the network identity of the Host using the drop down list box. You can choose from Localhost,
127.0.0.1, the computer's hostname or IP address. In Windows, the hostname is normally the same
as the computer name.
4. Check that SV back end is enabled and confirm the port settings. The port setting must match those
configured on the Back end item in the Supervisor's project. The default setting is 8090.
5. Click Save to confirm the configuration.

How to configure the web server


Configuration of the web server is the first step of deploying any of the web services or apps. The current
version of the WDC can only configure a single web server and it must be on the same computer as WDC.

1. Open the WDC and select Web Servers. Select Deploy a new server. The Web Server configuration
view opens. Show picture

2. Enter the server alias. By default, the alias is the same as the hostname.
3. Click next to save the configuration and deploy the server. You are then given the option to deploy a
website. If you choose yes, the site deployment wizard opens. See the topic Using the Quick Setup wiz-
ard for site deployment using default settings, or the Custom Setup book for custom deployment. If
you choose no, the view closes and the new web server configuration is displayed in the WDC.

- 83 -
Using the Quick Setup Wizard
The Quick Setup wizard takes you through the steps to deploy a site, web services and web apps using
mainly default settings. The Quick Setup Wizard can be used if all services must be deployed on the same
web server. Show picture

The Quick Setup wizard guides you through the following steps.

1. Name - The name by which the site is known. The name appears in the Sites node of the IIS con-
figuration. The default is SV Website. Show picture

2. Bindings - The binding specifies the domain and port by which a web client or app can connect to the
web server. You can either use the default of the hostname, or the IP address. If you choose host-
name, the network must include a mechanism by which the hostname can be resolved, that is its IP
address found. Windows hosted clients can use the integrated Windows Internet Name Service
(WINS). For other hosts, Android for example, a DNS server must be available. For example, if you
enter <MyHostName> as the hostname, web clients will be able to connect to the WebVue on this web
server using the Url https://<MyHostName>/WebClient. Show picture

3. Certificate - Choose a certificate for the site using the Certificate drop down list box. You must have a
certificate in order to use HTTPS. You can either select an existing certificate or create a new one
using the + button. There are a number of certificate types that can be used. The type that is accept-
able will depend on the user's IT policy. See the book What is, and Why do I Need, a Certificate?.

- 84 -
Show picture

4. Back ends - Select the back end, which defines the connection between the IIS web server and the
Supervisor. Show picture

5. Roles - Select the role(s) that the site is to support. Show picture

6. Summary - The final step in which the configuration to be deployed can be reviewed. Clicking Deploy
completes the wizard and deploys the site. Show picture

- 85 -
7. When deployment has finished the wizard can be closed. The WDC will now show the newly created
site. Show picture

Clicking the Service configuration item of your site opens a panel with the list of deployed web services and
apps. Icons are available to launch directly the desired web application with your web browser.

- 86 -
Configuration of a remote web back end
One of the common requirements, often for security purposes, is to have the Web Server on a different com-
puter and sub-net to that of the Supervisor. This sub-net is often referred to as a DMZ (demilitarized zone)
and its purpose is to segregate the organization's private Industrial network from the office network or the
Internet. To accomplish this you install the WDC on the computer that is to be the web server and use the
WDC to configure the back end so that it points to the computer on which the Supervisor due to play the role
of Web back end resides.

Installing the WDC and checking the IIS configuration


Install the WDC on the computer that is to be the Web server using the Supervisor's installation media. Once
the WDC is installed, use it to check that the IIS web server is installed and correctly configured. See the
topic How to the Install IIS Web Server and Select the Required Features.

Configuring the back end


You must configure the back end so that it points to the computer on which the Supervisor's Web back end is
installed. To do this you manually enter the hostname or IP address of the computer on which the Super-
visor is installed. Show picture

See the topic How to Configure the Back End and Web Server for general information on configuring a back
end.
If you intend to deploy WebVue, please note that a TCP port must be open so that the Supervisor's
web back end can connect back to the web server for notifying data changes. This callback port is
the next available port, so if you have configured port 8090 as the outgoing port (for the connection
web server to web back end), then the port for the connection web back end to web server is likely
to be 8091.
If this second port is not open, users will be able to log in, put the loading of the first mimic will fail.

- 87 -
Custom setup

- 88 -
Using the Custom Setup Wizard
The Custom Setup wizard has additional steps to the Quick Setup wizard and takes you through all of the
steps to deploy sites and / or apps.Show picture

1. Name - The name by which the site is known. See the Using the Quick Setup Wizard for an explan-
ation.
2. Bindings - The bindings specify the domain and port by which a web client or app can connect to the
web server. See the Using the Quick Setup Wizard for an explanation.
3. Certificate - Choose a certificate for the site using the Certificate drop down list box. See the Cer-
tificates View for an explanation.
4. Back ends - Select the back end, which defines the connection between the IIS web server and the
Supervisor. See the Using the Quick Setup Wizard for an explanation.
5. Roles - Select the role(s) that the site is to support. The custom setup includes additional roles. See
the topic Roles view.
6. Services - The services that are deployed depend on the role(s) that have been selected and can be
customized. See the topic Services view.
7. Registry service - Configure the registry service. The registry service determines which web servers
provide which services. See the topic Registry Service view.
8. Data protection - Specifies the methods by which data is encrypted and validated. See the topic Data
Protection View.
9. Logging - Management of the range of information that is sent to the Log Monitor. See the topic Log-
ging View.
10. Summary - The final step in which the configuration to be deployed can be reviewed. Clicking Deploy
completes the wizard and deploys the site.

- 89 -
Roles View
The Roles View is displayed by both the Quick Setup and Custom Setup wizards and can also be opened by
clicking the Roles and Services button in a site's tile. The choice of role(s) also determines which services
are provided. Show picture

Roles settings

l Registry - Select to deploy the registry service.


l Authorization - Select to deploy the Supervisor's authentication service (OAuth).
l WebScheduler - Select to deploy the WebScheduler server role. The WebScheduler is used to manage
Supervisor's native schedules and those of BACnet devices.
l WebVue - Select to deploy the WebVue server role. WebVue is used to view the Supervisor's mimics
in a web browser.
l TouchVue - Select to deploy the TouchVue server role. TouchVue is a mobile app used to monitor the
Supervisor's variable values.
l Web services toolkit - Select to deploy the Web Services Toolkit server role. The Web Services Toolkit
is a web API that can be used to develop custom apps.
l Custom - Select if deploying a custom app and wish to deploy a customized list of services.

- 90 -
Services View
The Services View is displayed by the Custom Setup wizard and can also be opened by clicking the Roles and
Services button in a site's tile. The services that are deployed depend on the role(s) that have been selec-
ted. If you are using multi-server architecture, it is possible to distribute the services across several web
servers for the purpose of load balancing. See the topic Registry Service view. The following screen shot
shows the services required for WebVue. Show picture

- 91 -
Registry Service View
The Registry Service view is displayed by the Custom Setup wizard and can also be opened by clicking the
Configure button in the Registry Service group in the main dialog of the WDC. The registry service determ-
ines which web server provides which services. By default, the services are all provided by the local server.
Show picture

- 92 -
Logging View
The Logging View is displayed by the Custom Setup wizard and can also be opened by clicking the Logging
button in the tile of a site. The Logging view is used to manage the range of information that is sent to the
Log Monitor. The logging applies to all services. Show picture

The log range can be set from, and to, the following levels.

l Trace - General trace messages.


l Debug - Used for debugging queries.
l Info - Information about normal behavior.
l Warn - Incorrect behavior but the application continues.
l Error - Highest-level errors such as failures and exceptions.
l Fatal - Fatal errors, the application fails.

- 93 -
Data Protection View
The Data Protection View is displayed by the Custom Setup wizard and can also be opened by clicking the
Data Protection button on a site's tile. It is used to configure the methods by which data is encrypted and val-
idated. Show picture

Settings

l Validation method - Selection of the method used to validate data. The default is SHA1.
l Validation key - The key for the validation method. For security purposes a new key is generated each
time this view is opened - the actual key in use is never displayed. The new key can be manually
edited if required.
l Decryption method - Selection of the method used to decrypt (and encrypt) data. The default is AES.
l Decryption key - The key for the decryption method. For security purposes a new key is generated
each time this view is opened - the actual key in use is not displayed. The new key can be manually
edited if required.
l - Generate new decryption and validation keys.

- 94 -
Service Configuration View
The Services Configuration View is opened by clicking the Services Configuration button on a site's tile. It is
used to manage settings for each of the site's services. A list of the services is displayed in a slide out pane.
Show picture

To view the setting for a particular service click on its name. Many of the setting are read only as they are
generated automatically by the WDC and depend on the settings of other items. These are displayed in the
Information tile. Those settings that can be changed are displayed in the Settings tile. The following screen-
shot of the settings for the GraphicalData service. Show picture

Settings for the GraphicalData service

l ConnectionTimeout - The amount of time to leave the web socket connection open and waiting for a
response before closing it and opening a new connection. Defaults to110 sec.
l DisconnectTimeout - The amount of time to wait after a web socket connection is lost before raising
the Disconnected event. Defaults to 30 sec.
l KeepAliveInterval - The interval in seconds at which the Supervisor is pinged by the Graph-
icalDataSession to keep the session alive. Minimum value is 5, maximum 60, Default 25.
l WebSocketsoutBufferSize - Each time something changes in a mimic a message is sent from the
GraphicalDataService to the client. This setting defines how many of these messages are buffered in
case that there are more updates in a mimic than the client can handle. If the connection is slow, it

- 95 -
can help to increase the value of this setting, but it will also increase the memory consumption. The
minimum value is 32, maximum is 65535. The default will be 32.
l WebSocketsHubEnableDetailedErrorMessages - If it is set to true there are more detailed error mes-
sages in the client side logs, which can help to identify communication issues. The default is false.
Only change if requested to do so by your support authority.
l PropertyServerCallbackPort - The TCP port used by the Web back end to call the web server back to
notify about data changes. This port must be open (incoming) on the web server computer (default
8091).

Settings for the OAuth service

l AccessTokenExpirationTimeSpan - The access token is a short-term token used when accessing the
services. The default is 20 minutes.
l RefreshTokenExpirationTimeSpan - The refresh token is a long-term token used when renewing the
expired access token. Range 0 to 2147483647 minutes. The default is 10080 minutes.

Settings for the WebClient service

l IgnoreCertificateErrors - Ignore the errors generated if a certificate is not trusted. Set to true at the
time of deployment if the chosen certificate is not fully trusted, otherwise False.

- 96 -
Using certificates

- 97 -
Certificates View
The Certificates View is displayed by both the Quick Setup and Custom Setup wizards and can also be
opened by clicking the Certificates button on a site's tile. The view displays the selected site's certificate and
some basic information about it. The (+) command opens the New certificate view from where a new cer-
tificate can be generated or requested. Show picture

The WDC manages certificates stored in the LocalMachine certificate store of the Windows operating
system. If you use the WDC in conjunction with other certificate handling tools, make sure the cer-
tificates are available in this system store. If they are in another store, they will not appear in the
list of available certificates within the WDC.
See the following topics for information about how to generate and manage the supported certificate types.
Self-signed certificates
Request and import certificates

- 98 -
Self-signed Certificates
A self-signed certificate is one that has been signed by the same entity whose identity it certifies. As a self-
signed certificate is not issued by a recognized Certification Authority (CA) and therefore shall not be con-
sidered secure nor be used on an application in production. A self-signed certificate also has the dis-
advantage that it will not be recognized by most web browsers and a security exception will have to be
created in the web browser's configuration. However, a self-signed certificate can be useful at the devel-
opment and testing stages if you do not have access to a Certification Authority.
Most web browsers do not cache the contents of web sites that use a self-signed certificate. This can
result in reduced performance.

How to create a self-signed certificate with the WDC


You can create a self-signed certificate with the WDC, using the Certificate view of the deploy site wizard.
Show picture

1. Click the plus symbol (+) - the New certificate view opens. Show picture

- 99 -
2. Select self-signed. You are prompted to enter the hostname to which the certificate applies. The local
hostname is pre-configured by default. Show picture

3. Click save to continue. The certificate is created and you are returned to the deploy site wizard.

- 100 -
Request and Import a Certificate
Obtaining a proper certificate from a recognized Certification Authority (CA) for usage in production is a 3-
step process:

l Step 1 - Request a certificate, also known as generating a CSR or Certificate Signing Request,
l Step 2 - Send the CSR to the Certificate Authority,
l Step 3 - Import the certificate issued by the Certificate Authority into the web server.

The WDC is equipped to generate a CSR and help you in imported a certificate into the web server.
While the practical details vary, the 3 steps are similar for all Certificate Authorities, whether it is a
public trusted third party or an internal CA within your organization.

Certificate handling can be tricky, and mishandling in such a process can lead to security and com-
pliance issues. If you are not used to it, and do not have the authority to do so, it is a must to seek
assistance from the IT department of the organization where the web server is to be deployed.

Certificates are not valid forever. Depending on their type and issuer, they may be valid for a few
days (typically 30 days for a free test certificate), up to 2 or 3 years.
It is recommended to monitor the validity of certificates and plan renewal a few weeks in advance,
as the process can take time.

How to request a certificate - Certificate Signing Request


Prerequisite #1 - A 'proper' certificate means that it will be issued for a web server associated to a domain
name that can be validated by the Certificate Authority:

l If the CA is internal to the organization, the domain may only be local.


l However, if the CA is public, the domain must have been registered before any other attempt to obtain
a certificate, and only the organization owner of the domain can be delivered a certificate for a web
server associated to the domain.

Prerequisite #2 - The domain name that will be associated to the web server and its certificate has to be
used when defining the binding of the web site. Other than that, if for example you bind the web site on the
IP address or any other name, web browsers will not recognize the certificate as valid, because the domain
name on the certificate will not match the domain name you use to reach the web server.

You can create a Certificate Signing Request with the WDC, using the Certificate view of the deploy site wiz-
ard. Show picture

- 101 -
1. Click the plus symbol (+) - the New certificate view opens. Show picture

2. Select create request. You are prompted with the Create request form and will have to enter the fol-
lowing information: Show picture

a. Common name - Enter the domain name that was allocated for the web server, for example,
lab.example.com
b. Organization - Enter the name of your organization, and owner of the domain
c. Organizational unit - Usually optional
d. City
e. State
f. Country

And then click create request.

- 102 -
1. You are prompted to enter a password of your choice. Show picture

This password is the secret that will be required for all subsequent operations with the certificate,
including its import. You should choose a proper, secure, unique password, and store it in a safe place.
Please note that CA require a certain strength for the password, and will not deliver the certificate if
this criteria is not met. One of the strength criteria is the length (10 characters minimum is usual).
2. Upon clicking save, you will be prompted to select a directory where to save the files resulting from
the request: request.csr and requestKey.pkey.
l The .pkey file contains your private key, derived from your password. It must be stored in a
safe place and not be disclosed.
l The .csr file will be transmitted to the CA.

At that stage, your certificate request is ready.


The next step consists in transmitting the Certificate Signing Request to the CA of your choice.
The exact procedure vary, but you will be requested to fill in a form where you will confirm the information
entered for generating the CSR (Organization, Organization Unit, City, State, Country and the Common
Name), as well as the .csr file generated by the WDC.
After verification, a process that can take from a few minutes to a few days, you will be notified that the cer-
tificate is ready and can be downloaded.

How to import a certificate


You can import a certificate with the WDC, using the Certificate view of the deploy site wizard. Show picture

- 103 -
1. Click the plus symbol (+) - the New certificate view opens. Show picture

2. Select import a certificate. You are prompted to select the certificate file supplied by the Certificate
Authority. The WDC supports the following file formats for the import: PKCS#12 and PFX.
And then click open.
3. You are prompted to enter the password associated to the certificate.
4. Upon clicking save, the WDC imports the certificate, and you can select it in the list of available cer-
tificates of the web server.
5. Finalize the deployment of the web site.

- 104 -
Authorization

- 105 -
New Client View
In this context, the term Client designate a web application that is to be a client of the Authorization
server, i.e. using the authorization infrastructure to be granted access to a given web service in the
name of the user.
All web & mobile applications delivered with the Supervisor are automatically registered, you do not
need to add them manually.
The New client view is used to register a new (custom) client application that is to be managed by the WDC.
This action is important so that this new client can integrate itself in and take advantage of the Authorization
server infrastructure. Show picture

Settings and commands

l Name - The name of the client app. In the case of the Supervisor, the Name is the same as the ID.
l Client active - Can be set to Off for a client that is not currently in use but you do not want to delete.
The default is Active. If Off, the Client application will be refused any request for delegation of an
authorization.
l Client ID - The ID received after registering a client app with the OAuth server. The ID is considered
be public information. In the case of the Supervisor, the product name, WebVue, TouchVue... is used
as the ID.
l Client Secret - The Secret received after registering a client app with the OAuth server. The client
secret must be kept confidential.
l Client public - Specifies if the client app is confidential or public.
l Custom refresh token lifetime - The lifetime in minutes of the long-term token used when renewing
the expired access token. Range 0 to 2147483647 minutes. The default is 10080 min.
l Allowed origin - the domain origin from which clients are allowed to make requests. A list of domains,
separated by commas, can be used. The default of * means any domain origin is allowed.
l Redirect URL - The service will only redirect users to the registered URL, which helps prevent some
cyber-attacks. Any HTTP redirect URLs must be protected with TLS security, so the service will only
redirect to URLs beginning with HTTPS. This prevents tokens from being intercepted during the author-
ization process. Native apps can register a redirect URL with a custom URL scheme for the application,
which may look like demoapp://redirect.
l Save - Save the settings and close the view.
l Cancel - Close the view without saving the settings.

- 106 -
Clients View
View the clients that are registered with the OAuth service. Selecting Clients opens a pane from where a list
of the registered clients are displayed .Show picture

To view the settings for a particular client click on its name. The following screen-shot is for the WebVue cli-
ent. Show picture

Settings and commands


The settings and commands are the same as for the New Client view. See the topic New Client View.
In this context, the term Client designate a web application that is to be a client of the Authorization
server, i.e. using the authorization infrastructure to be granted access to a given web service in the
name of the user.
All web & mobile applications delivered with the Supervisor are automatically registered, you do not
need to add them manually.

- 107 -
Tokens View
Manage the tokens, issued by the OAuth service, and used by web & mobile applications to handle user ses-
sions. Show picture

Information and commands

l Token list - Valid tokens are displayed in a list including the following information
l USERNAME - For WebVue, TouchVue and the WebScheduler, the name of the user that started
the session that first generated the token.
l CLIENTID - The identity of the Web or Mobile application for which the token was generated. For
example, WebVue.
l EXPIRES - The token expiry time. If using the default settings this is seven days (10080
minutes) after the time it was issued.
l ISSUED - The time at which the token was issued.
l Details - Details of the selected token.
l Revoke - Click to revoke the selected token. The session for which the token was issued is imme-
diately disconnected without notice. If a user was actively using the web or mobile application, he/she
will have to log in again.

- 108 -
Grants View
Manage the grants, given by a user to a web or mobile client application, to access a web service in his/her
name. Show picture

Information and commands

l Grants list - The valid grants are displayed in a list including the following information
l USER - For WebVue, TouchVue and the WebScheduler, the name of the user that started the ses-
sion that accepted the grant.
l CLIENT - The identity of the Web or Mobile application to which the grant was given. For
example, WebVue.
l SCOPE - The web service to which the grant authorize access in the name of the user.
l ISSUED - The time at which the grant was given. There is no expiry time as grants have an
unlimited lifetime.
l Details - Details of the selected grant.
l Revoke - Click to revoke the selected grant. If a grant is revoked, the next time the user uses the web
or mobile application, he/she will be asked to grant again access to the web service in his/her name.

- 109 -
How to use the WDC's Diagnostics
The diagnostics are ran, and the results displayed in the Diagnostics pane. They are available at 2 levels, the
Web Server and for each deployed Web Site. Whilst the diagnostics are not exhaustive they are a useful aid
when fault finding.

Diagnosing the Web Server and installing missing IIS modules


To access the Diagnostics pane, click Diagnostics in the web server toolbar. Show picture

The diagnostics check that:

l All required Microsoft IIS modules are installed and properly configured,
l The Application Pool is properly configured,
l The authentication server is properly installed and configured.

Any discovered missing features are listed. You can correct the situation by clicking the Gear icon adjacent
to the IIS Settings entry and selecting Repair.Show picture

Diagnosing a web site


To access the Diagnostics pane, open the burger menu in the web site toolbar, and then click Diagnose
site.Show picture

The diagnostics check that the web site is deployed in accordance with the way it is configured. In particular,
the following items are checked:

- 110 -
l Bindings: At least one binding exists, with an existing certificate associated to it...,
l Certificates: Check that the certificate does not expire within 7 days,
l Binaries: Check that no newer version of the deployed services and applications is available,
l Roles and services,
l Back end endpoint configuration,
l Logging,
l Data protection,
l Services configuration.

Any discovered missing or incorrect item is listed. In general, you can correct the issues by re-deploying the
web site.

Additional features
When the diagnostics pane is open, you can re-run the verification by clicking Run Diagnostics.
The diagnostics pane allow you to export the diagnostics results to a text file or to the clipboard.

- 111 -
Role of the Gateway Server
Using the Supervisor as a gateway server brings a higher level of isolation between trusted and un-trusted
networks. All connections and messages between the Supervisor's stations in the un-trusted zone and those
in the trusted zone go through this single access point (can be redundant if necessary), making it easier to fil-
ter, control and monitor the traffic.
Such a gateway can be used in several architectures where there is the need for network segregation based
on a DMZ.

l As a gateway node in client/server systems. It can serve data to clients in the un-trusted zone (such
as Remote Desktop clients).
l As a data concentrator node in distributed systems. It can serve data to upper level central servers in
a separate zone (multiple geographically dispersed systems and one central system).
l As the Web Server for WebVue, TouchVue or the Web Services Toolkit. The Supervisor's web cap-
abilities are used to serve remote clients.

In computer security, a DMZ (De-Militarized Zone) is a physical or logical sub-network that contains
and exposes an organization's external-facing services to a larger and un-trusted network such as
the Internet or a Corporate network.

Summary of benefits

l Simplified connection and traffic control


l Isolation between trusted and un-trusted networks
l Easier monitoring of data flows

Suggested operating system: One of the supported Windows Server OS

- 112 -
Deploying desktop applications

- 113 -
Overview of deploying as a Desktop application

There are 2 options for installation and deployment of the operator workstations running the Supervisor in
order to access the runtime HMI:

l The Supervisor may be installed on each PC,


l The Supervisor may be installed on a Remote Desktop Server host and run remotely from lightweight
terminals used as operator workstations.

In both cases, the Supervisor will be running as a Desktop Application (in an interactive user session).

Suggested operating system: One of the supported Windows workstation OS, or one of the supported
Windows Server OS if deployment includes a Remote Desktop Server.

- 114 -
Licensing the Supervisor Using a Network Dongle
The network dongle (protection key) was originally conceived for multi-station systems where the project
requirements meant all the license information had to be located in one dongle. The network dongle is phys-
ically the same as a normal dongle but contains more than one license. Each additional license is held in one
of two slots along with other licenses of the same configuration.
The network dongle is plugged into a PC running an instance of the Supervisor known as the dongle owner.
This Supervisor is responsible for distributing the licenses to other copies of the Supervisor as they start,
and therefore must be started first.
When starting another instance of the Supervisor - either on another PC, a virtual machine, or in a Remote
Desktop Session - the Supervisor is instructed by a command line, or configuration option, to load its license
from the network dongle. The license is acquired each time the Supervisor is started.

How the licensing works in a network dongle


In a standard dongle, if you were able to view its properties it might look something like this.

You can see properties representing the dongle number, the number of allowed tags, its type etc.
In a network dongle, two additional sets of properties appear. If you were able to view its properties, it
might look something like this.

The BASE contains the license and properties for the Supervisor running on the PC to which the dongle is
physically connected. SLOT1 and SLOT2 contain licenses that may be accessed over a network.
SLOT1 and SLOT2 contain not only license properties but also the number of licenses. In the picture above
the dongle has the capability to run 7 instances of the Supervisor.

l 1 x 5,000 tag complete with networking (BASE)


l 2 x 2,000 tag run-time client (SLOT1)
l 4 x 1,000 tag run-time client (SLOT2)

A network dongle has only one number property and one version property hence all instances of the
Supervisor that are licensed from the dongle will appear to have the same dongle number and must
be the same version.

Using a network dongle when running the Supervisor on RD Session Host server
When running the Supervisor on a RD Session Host server it is likely that there will be several instances of
the Supervisor running concurrently on the same server. In such an architecture, a network dongle con-
taining multiple licenses must be used.
The network dongle will be located on another PC running another installation of the Supervisor, configured
as a license owner, connected to the RD Session Host server via a local area network.

The Supervisor periodically checks for the presence of a license. If the Supervisor distributing the
license is shutdown, after a period of time the other instances of the Supervisor will be unable to
find their license and will also shutdown.

- 115 -
Deploying the Supervisor on a RDS host

- 116 -
Overview of Deploying the Supervisor Using a RD Session Host
From Windows Server 2008 R2 onwards, Microsoft renamed many of the terms associated with the
long established Terminal Server. In particular, Windows Terminal Server has become Windows
Remote Desktop Session Host. This help frequently uses RD Session Host as a shortened form of this
term.

What is a Remote Desktop Session Host server (RD Session Host server)
Traditional PC operating systems such as Windows 7 are essentially single user. Each PC has a single mon-
itor, keyboard and mouse from which one user at a time interacts with the PC and any running applications.
Windows Server, when configured with Remote Desktop Services, allows several users to concurrently use
the resources of a single server and to execute applications installed on the server. A user interacts with
applications using a thin terminal connected to the server using a network. The process of a user connected
to Windows Server in this manner is called a Remote Desktop Session and uses a standard known as the
Remote Desktop Protocol (RDP). Thin terminals supporting RDP come in a variety of forms the most com-
mon of which is now a program running on another computer. Under Windows 7 for example, an RDP client
is available from the Start menu (Start.Programs.Accessories.Remote Desktop Connection).
In addition to running sessions using a remote desktop, Windows Server also runs a session using the local
monitor, keyboard and mouse. This is referred to as the local session (or sometimes as a console session or
interactive session).

Running the Supervisor on Windows Server configured with Remote Desktop Services
When running the Supervisor on a RD Session Host server, an instance of the Supervisor can be run from
each Remote Desktop Session and/or from the local session. Only a single copy of the Supervisor is
installed, but a license is required for each instance of the Supervisor that is running.
The deployment of the Supervisor on a Remote Desktop Server will be as a Desktop Application (as
opposed to a Windows Service), so that Remote Desktop sessions can run it interactively. If
deployed as a Windows Service, users in Remote Desktop Sessions will not be able to interact with
the Supervisor.

l When an instance of the Supervisor runs from a local session it behaves in much the same way as it
would on a traditional operating system, such as Windows 7, and obtains its license from the dongle
plugged into the local PC.
l When an instance of the Supervisor runs in a Remote Desktop Session it cannot obtain its license dir-
ectly from the dongle, instead it must acquire it via another instance of the Supervisor that has been
configured for that purpose. The Supervisor supplying the license is the license owner and the Super-
visor acquiring the license is the license renter.

A typical example of networking architecture can consist in a Supervisor instance running in the local ses-
sion configured as a data acquisition server, and instances running in Remote Desktop Sessions configured
as data clients. It is likely that the instance running in the local session is also configured as the license
owner.
Another example of networking architecture is that the data acquisition server runs on a standalone PC to
which the dongle is connected. In such a case, the Remote Desktop Session Host server would only host
data clients instances.

The SYSTEM.WTS system variable


The register variable SYSTEM.WTS is set to zero when an instance of the Supervisor is running in the local
session and one when running in a Remote Desktop Session.

- 117 -
Why Use Central Project Management When Deploying the Supervisor Using a
RDS Host?
The following text explains why the use of Central Project Management is essential when deploying the
Supervisor on a RDS Host and using the recommended option Use a different working folder for all Remote
Desktop Sessions in the station configuration.

With Central Project Management


If Central Project Management is used one of the command line switches -r, -x or -d is added to the com-
mand line that starts the Supervisor. The command line switch controls the behavior at startup.

l The -r command line switch causes the Reference versions (REF) of the project and libraries to be
automatically loaded.
l The -x and -d command line switches cause a dialog to be displayed at startup from where you can
select the version before starting.

In either case the project folder specific to the station, the common library, and the shared libraries are
automatically updated with the selected version of the project before the Supervisor starts.

l Project folder - USR\WTS\<ProjectName>_<StationName>


l Common library - WTS_LIBS\<ProjectName>_<StationName>\BMP, PRG, SYM, WIN, WTP &
TEMPLATES
l Shared libraries - WTS_LIBS\<ProjectName>_<StationName>\LIB

Without Central Project Management


If you do not use Central Project Management then the project folders and files, and library folders and files,
must be manually copied from the base project folder to the project folders specific to each station. As there
is nothing to indicate which folders are in use this can only be done safely with all copies of the Supervisor
shut down. Moreover, this must be repeated after any modifications to the project or libraries.

Conclusion
Without using Central Project Management:

l It is necessary to duplicate the project for every instance of networking station.


l It is necessary to duplicate the project before startup of the individual clients.
l It is necessary to duplicate the project after every modification.

Using Central Version Management should be considered essential to avoid errors managing
the project in this environment.

- 118 -
The Startup Process When Running the Supervisor in an RD Session Host Session
The following flow chart describes the Supervisor's startup process when running in a RD Session Host ses-
sion.

At the startup of the Supervisor

On the start of the project

- 119 -
Changes to the Management of Trace Files When Running the Supervisor in a RD
Session Host Session
On a single user installation of the Supervisor, the trace files that are a record of what appears in the trace
window (F7), are found under the Supervisor's root folder in 'bin\LogFiles' files.
When running a networked application on a RD Session Host server, the behavior is modified. The trace files
for instances of the Supervisor running in RD Session Host session are found in a sub-folder of 'bin\<Lo-
gFiles\WTS\<station_name>', where the sub-folder name is that of the station name (from the Supervisor's
network configuration) of the instance that created them.

- 120 -
Configuring the Supervisor to run in a RDS SessionHost session

- 121 -
RD Session Host Session Related Properties in Station Configuration
The following properties in the station configuration that are specific to using the Supervisor in a Windows
RD Session Host session.Show picture

l Run only in Remote Desktop session - If ticked then the Supervisor will only run this station in a
Remote Desktop Session. When starting, if the Supervisor identifies it is not in a Remote Desktop Ses-
sion and that this option is selected, it will display an error message and exit.
l Use the same working folder for all Remote Desktop sessions - The same working (project) folder is
used for all Remote Desktop sessions. This is the same behavior as with versions prior to 10.0 SP1.
l Use a different working folder for each Remote Desktop session - A different working folder is used
for each Remote Desktop session. See the topic Project path when using a RD Session Host for more
information.

These modifications were introduced to resolve issues related to sharing the same project between
several instances of the Supervisor. The use of Use a different working folder for each Remote
Desktop Session is highly recommended for all new projects.

Allocating Port Numbers When Running in a RD Session Host Session


Networked stations that are to run in a Remote Desktop session environment must have unique port num-
bers in the network configuration. It is recommended that the port number is based on the simple cal-
culation of 1981 (the default port number) + the station number. Show picture

We recommend using the networking wizard to configure your RDS architecture. For more inform-
ation, see the section Communication.Networked applications.Using the Network Wizard to configure
the network architecture.With remote desktop session host server in the Application Explorer book.

- 122 -
Settings Related to Running the Supervisor in a RD Session Host Session
These settings are found in the Servers Settings dialog. Show picture

l Check NTFS folders permissions for the Supervisor's folder, the project folder using -b and the project
versions central folder - Check the folder permissions on startup of the Supervisor. If the folders do
not have the correct permissions, a message is displayed and the startup aborted.
l Windows Remote Desktop session starting timeout (sec) - This property is the delay that is applied to
starting the Supervisor in a Windows Terminal Session when, at startup, another session is found to
be starting up. A pop-up message informs the user of the time remaining. If the property Use a dif-
ferent working folder for each remote desktop session has been selected the timeout is not used.

- 123 -
Configuring User Permissions for the Supervisor's FoldersWhen Running on an
RD Session Host Session
To use the Supervisor in a RD Session Host session you must configure the correct Windows user per-
missions (Full control) for the folders of the Supervisors project.
The affected folders are as follows.

l The root folder of BIN, ETC, USR and LIB. That is the topmost folder of the <SupervisorPath>.
l The topmost folder of the <ProjectPath> if the -b<ProjectPath> command line switch is used.
l The Central Versions folder if Central Project Management is being used.

You can change the permissions for individual users but the recommended method of doing this is to con-
figure permissions for the user group Remote Desktop Users that includes all Remote Desktop users.
When you change the user permissions of a folder, the permissions of all sub-ordinate folders are
also changed.

How to configure the permissions

1. Using Windows Explorer, locate the Supervisor's folder. Right-click on it and select Properties. The
Properties dialog is displayed. Select the Sharing tab. Show picture

2. Click the Share button to open the File Sharing dialog. Enter the name Remote Desktop Users and click
the Add button. The name appears in the list of names. Show picture

3. Change the permissions to Read/Write and then click Share. Assuming the process is successful the
dialog will close and will be replaced by a dialog displaying the message Your folder is shared.
Click the Done button to close it.
4. Select the Advanced Sharing button in the Properties dialog and, in the Advanced Sharing dialog,
check that the Share this folder property is ticked. Close the Advanced Sharing dialog.
5. Select the Security tab of the Properties dialog. Check that the entry for Remote Desktop Users has
Full control allowed. Show picture

- 124 -
6. Click Close to confirm the configuration.
7. Repeat the steps for all folders that require the permissions changing.

You can find more information about configuring the Remote Desktop Users Group on the Microsoft
website using the following URL: http://technet.microsoft.com/en-us/library/cc743161.aspx.

- 125 -
Using the Supervisor's RD Session Host Service
Starting with version 11.2, the former SV Terminal Server service application named svTS.exe is no
longer used. The services it provided are now implemented by the SV Core Session Host service,
which is installed and deployed as part of the Supervisor installation and deployment tools. See
Default configuration and operation for more information.
You must start the service SV Core Session Host to run the Supervisor when used in a Remote
Desktop Session.

- 126 -
Changing the Supervisor's Command Line When Running in a Remote Desktop
Session
The Supervisor's command line must be changed to run it in a remote desktop session.
It is recommended that you do not use the Supervisor in development mode when running in a
remote desktop session.

The command line switch -WTS


The -WTS command line switch informs the Supervisor that it is to run in a remote desktop session on Win-
dows Server. There are two syntaxes as follows.
-WTS ProjectName,ClientStationListName

l ProjectName The name of the project with which the Supervisor will start.
l ClientStationListName The name of a client station list (from Application Explorer-
.Communication.Networking.Stations.Lists). The station number for the instance of the Supervisor is
selected automatically. The station number in the file INI.DAT is ignored.
-WTS <ProjectName>,<StationName>

l ProjectName The name of the project with which the Supervisor will start.
l StationName The name of a specific station (from Application Explorer-
.Communication.Networking.Stations). The station number for the instance of the Supervisor is the
one defined in the configuration. The station number in the file INI.DAT is ignored.

If ProjectName or ClientStationListName contain spaces they must be placed within quotation marks
"".

The command line switch -station_number


The command line switch -station_number MUST NOT be used when the Supervisor is run in a Remote
Desktop session on Windows Server.

For further information, see the topic Command Line Options.

- 127 -
Project related issues when deploying the Supervisor on a RDS Host

- 128 -
Project Path When Using a RD Session Host Server
If the property Use a different working folder for each Remote Desktop session has been selected in a sta-
tion's configuration then a different working folder is used for each station name. By working folder, we
mean both the project folder and the library folder.
If the property Use same working folder for all Remote Desktop sessions is chosen, the project and
libraries on the host PC are shared by each supervisor running in a Remote Desktop session of the
PC.

Reminder about the project path for applications not running in a RD Session Host session
The project path, which for the sake of this explanation we will call <HostProjectPath> is either <Super-
visorPath>\USR or, if the -b<ProjectPath> command line switch is used, <ProjectPath>\USR.

Project path, local library folders, and the custom project library folder
The project path that we will call <SessionFullProjectPath> is calculated as follows.
<HostProjectPath>\WTS\<ProjectName>_<StationName>
The local library comprising of the folders, B, P, S, W and WT, is located under the <SessionProjectPath>.
The custom project library folder, LIB, is also located under the <SessionFullProjectPath>.

The common library folder and custom common library folder


The common library, comprising of the folders BMP, PRG, SYM, WIN and WTP normally found under the
Supervisors root, is relocated to:
<Path>\WTS_LIBS\<ProjectName>_<StationName>
Where <Path> is either the <SupervisorRoot> or <ProjectPath> if using the -b command line switch.
The custom common library folder LIB is also relocated to this path.

Example 1: Command line = –wts AP, WTSClientList


The Supervisor is installed in C:\SV and the name of the station within the list WTSClientList, is WTSClient1.

l The path for the project, local library folders and custom project library folder is:
C:\SV\USR\WTS\AP_WTSClient1
l The path for the common library folders and custom common library folder is:
C:\SV\WTS_LIBS\AP_WTSClient1

Example 2: Command line = -b D:\SV\Projects\10.0SP1 –wts AP, WTSClientList


The project path is D:\SV\Projects\10.0SP1 and the name of the station within the list WTSClientList, is
WTSClient1.

l The path for the project, local library folders and custom project library folder is:
D:\SV\Projects\10.0SP1 \USR\WTS\AP_WTSClient1
l The path for the common library folders and custom common library folder is:
D:\SV\Projects\10.0SP1\WTS_LIBS\AP_ WTSClient1

Example 3: Command line = -r -b D:\SV\Projects\10.0SP1 -wts AP, WTSClientList


The project path is D:\SV\Projects\10.0SP1 and the name of the station within the list WTSClientList, is
WTSClient1. The -r option specifies the use of Central Version Management and to download the reference
version if necessary.

l The path for the project, local library folders and custom project library folder is:
D:\SV\Projects\10.0SP1 \USR\WTS\AP_WTSClient1
l The path for the common library folders and custom common library folder is:
D:\SV\Projects\10.0SP1\WTS_LIBS\AP_ WTSClient1

Additional important notes


If the version in the project folder is not the reference version, or the folder is empty, then the reference
version of the project is copied from the central location.

- 129 -
If the version in the libraries folder is not the reference version, or the folder is empty, then the reference
version of the libraries is copied from the central location.
If the name of the station has changed, a new project and new libraries are created with a new path. The old
project and libraries are not deleted.
If the station is deleted the project and libraries are not deleted.

- 130 -
Managing Persistent Variables When Running the Supervisor in a RD Session
Host Session
Internal variables are configured as persistent using the Saved property in the variable's properties dialog.
If the variables configured as such are not assigned to a Server Station list (No producer list), the value is
saved when a project is stopped and restored on re-start. The values are saved in the following files.

l VariableSaved.dat for variables other than alarms


l AlarmSaved.dat for bit variables configured as alarms

The files are normally located in the project's PER folder although, for backwards compatibility, this can be
changed to the C folder by un-ticking the property Write the persistent files in the Per directory in the pro-
ject's compatibility settings.

Behavior when running in a Remote Desktop session and using the Use the same working
folder for all Remote Desktop sessions property
The location of the files is modified and depends on the behavior properties in the Variables Settings dialog.
Show picture

l Local association - The saved variables files are found in the folder:
<ProjectPath>\USR\<ProjectName>\PER\WTS\<StationName>
l User context - The saved variables files are found in the folder:
<ProjectPath>\USR\<ProjectName>\PER\WTS\<UserName>

Behavior when running in a Remote Desktop session and using the Use a different working
folder for each Remote Desktop sessions property

l Local association - The saved variables files are found in the folder:
<ProjectPath>\USR\WTS\<ProjectName>_<StationName>\PER
l User context - The saved variables files are found in the folder:
<ProjectPath>\USR\<ProjectName>\PER\WTS\<UserName>
This folder is not suffixed or prefixed by <StationName> because the value of these variables is
dependent on the user name rather than the station name. A user is only allowed to log on at one sta-
tion at any one time on the same project.

- 131 -
Optimizing the Project Size
To help keep the project size to a minimum you can configure the number of backup copies kept of the pro-
ject configuration files. (Project configuration files are those in the C folder. Backup copies are kept in the
CTEMP folder.)
By default, the number of backup copies is nine and is configured in the Miscellaneous section of the Project
Settings dialog. However, you can configure this per station using the Configuration backup files property in
the advanced tab of the Station dialog. Show picture

l Default means that the setting from the Project Settings dialog is used.
l 0 to 9 specifies the number of backup copies for a particular station.

- 132 -
Known limitations when running the Supervisor in a RDS Session Host session

- 133 -
Printing When Running the Supervisor in a RD Session Host Session
There are two main mechanisms for printing within the Supervisor.

l Graphical. You can print the contents of a window or the entire screen on the Windows' default printer.
This mechanism is used when producing screen dumps from SCADA Basic, using the built-in program
Hardcopy, when printing a report and when printing from the Print command on the file menu.
l Text only. You can print information in text format on any printer configured in the operating system,
either locally or over a network. This mechanism is used when printing events through the Log Filters,
Alarm and Log Viewers and when using the SCADA Basic instruction LPRINT.

Graphic printing
The mechanisms for graphical printing on the Supervisor that print to the Window's default printer operate
normally. Output appears on the printer configured as the default for the RD Session Host session.
Report printing does not work, as it does not use the default printer.

Text only
The mechanisms for text printing only works if the printer configuration within the Supervisor is set to print
to a file. Show picture.

In this case, for each event that is eligible for printing, there will be one line in the file for each Supervisor
session running the same project.

- 134 -
Issues Related to Sharing the Same Project
If you use the recommended method of configuring the Supervisor's stations (Use a different work-
ing folder for each Remote Desktop session) then many of the following points are not applicable.
If you are running more than one instance of the Supervisor on the same PC, sharing the same project, you
must take into account the following limitations caused by the possibility of more than one process trying to
access project files at the same time.

Development mode
It is recommended that you do not allow the Supervisor to be operated in development mode when running
in a Remote Desktop session. The best way to prevent this is ensure that the license used by the Supervisor,
when run from a Remote Desktop session, is run-time only.

Archive Units
In general, it is not recommended that instances of the Supervisor running in a Remote Desktop session
archive data directly because you could have several sessions running contiguously each trying to access
the same archive files. Instead, it is recommended that you use Client-Server archiving where any Super-
visor running from a Remote Desktop session behaves as an archive client and the Supervisor running from
the local session behaves as the archive server.

File access from SCADA Basic or VBA


If you are running SCADA Basic or VBA programs that have file access you must take into consideration that
more than one instance of a program may attempt to access the files at the same time.

Dynamic configuration using SCADA Basic


It is recommended that you do not use the features of SCADA Basic that allow dynamic configuration (for
example Temporary_DB). If these features are essential to your project, please contact Technical Support
before you use them.

Persistence of internal variables


The Saved property causes the Supervisor to remember the value of internal variables either periodically or
when the Supervisor is shut down.

l To save a separate value for each of the variables on each station, enable the option Vari-
ables.Internal variables.Behavior.Usr context in Application Explorer.Variables.

For details, see the Help topic on Application Explorer.Variable Settings.Settings.

- 135 -
Deploying web and mobile client applications

- 136 -
Deploying the WebVue Client
The WebVue app is distributed and deployed on the web server side with the Web Deployment Console.
It runs in a web browser and does not require any installation or deployment step on the web client side.
See the WebVue overview topic for an overview of WebVue.
See the Using WebVue book for information on starting, logging in to and logging out of WebVue.
See the What is, and Why do I Need, a Certificate? book for information on certificate management.
When the web server is updated and re-deployed, it is of prime importance to make sure WebVue
users empty the cache of their web browser. This ensure that they are using up-to-date resources
and javascript modules.

- 137 -
Deploying the TouchVue App
The TouchVue app must be downloaded and installed manually on the mobile device. The following is one of
the ways in which it can be done.
For this to be possible, the web server must have been deployed with at least the TouchVue role.

1. Change the Android security settings of the mobile device to allow installation of apps from an
unknown source.
a. Open the Settings app.
b. Select the category PERSONAL.Security.
c. Tick the option DEVICE ADMINISTRATION.Allow installation of apps from unknown sources.
d. Close the Settings app.
2. Download the TouchVue application.
a. Open a web browser and enter the URL of your web server:
http://<MyWebServer>/mobileapps
b. The TouchVue download screen opens. Touch Install. A Starting Download message will confirm
that the download is running.
c. After a few seconds, a download notification will appear in the Notification Area.
d. Close the web browser.
3. Install the TouchVue app.
a. Drag the Notification Area so that it becomes full screen. If the download was successful there
will be a new notification entry indicating that download is complete.
b. Start the installation.
c. A screen will appear summarizing what permissions the TouchVue app requires on the Android
device. Touch Install to continue with the installation. The TouchVue installation will start.
d. If the installation is successful, the screen will display the message App Installed. Touch Done to
close the screen or Open to start the TouchVue app.

After installing TouchVue, you may want to turn off the option to allow installation of apps from an
unknown source.
If you are familiar with Android, you may want to use another method to install the TouchVue app. The app,
com.arcinfo.maintenance.apk, can be found in the Web Deployment Console root folder in the sub folder
\Bin\WebDeploymentPackages.

- 138 -
Project and library overview

- 139 -
What is a Project?
A project (or application as it is sometimes known) is the configuration that is required to customize the
operation of the Supervisor for a particular use. A typical project will include mimics, variables, com-
munications, data recording, user configuration and programs.
You can create a new project or select an existing one using a dialog displayed by the Select Project com-
mand on the Configure.Project sub-menu. Show picture

How to create a new project

1. From the Project sub-menu, display the Select Project dialog.


2. Type the name of the new project into the text field at the bottom of the dialog. See below for lim-
itations that apply to project names.
3. Select the OK command button. The Supervisor will create the new project.
4. Shut down and restart the Supervisor. You can then select the new project for opening.

How to select an existing project

1. From the Project sub-menu, display the Select Project dialog.


2. Select the name of the project by double clicking on its name in the list of projects.
3. Select the OK command button.
4. Shut down and restart the Supervisor.

The project folder structure


Each project appears as a sub-folder under the project root folder, USR. Normally the project root appears
under the Supervisor's root folder although, using the -B option in the command line that starts the Super-
visor, it can be located elsewhere. Show picture

- 140 -
The use of the main folders is as follows. Note that some of the folders are for internal use and are therefore
not mentioned here.
Folder Usage
3D Three-dimensional mimics (if used).
B Images that appear in the local library.
C Main configuration files.
C1 Configuration files to be imported.
CTEMP Temporary copies of the configuration files (C plus C1) used while a project is
loading.
DataExports Default output folder for Data Export.
DataExportTemplates Default template folder for Data Export
HDS Historical Data Server files.
Lib Local libraries root folder. See the topic What is a library?.
P SCADA BASIC program files.
PER The files used for storage of persistent data, in particular the value of saved
variables, extended attributes and alarms.
R Recipe definition files.
S Symbols that appear in the local library.
SCR VBA files.
Templates Templates and parameters.
TH Archive unit files containing historic data.
TP Default location of any files used by SCADA BASIC.
W Window (mimic) definition files.
WEB WebVue resource files and image cache.
WT Window template files.

Project names
The following limitations apply to project names.

- 141 -
l The length, including the path, is limited to 200 characters.
l Project names cannot
l Contain any of the following characters /\?:*"<>¦
l Contain any control or wildcard characters
l Contain leading or trailing spaces
l Be '.' or '..'
l Be reserved system names such as 'AUX', 'PRN', 'NUL', 'COM1' ETC.

- 142 -
The Project Configuration Files
Much of the information entered by the application designer using the configuration tools is saved in either
comma-separated ASCII files or XML structured files. This has two benefits:

l The files can be easily examined off-line with a text or XML editor as appropriate.
l It is very easy to copy files to another project.

The ASCII files, which are all stored in the project’s C directory, are as follows:
File Use
ACTION.DAT Configuration of associated actions.
COMM.DAT Configuration of the communication networks, nodes and frames.
CRON.DAT Configuration of any Scheduler actions.
CYCLIC.DAT Configuration of any cyclic actions.
DB.DAT
DRAWDEFAULT.DAT Default properties for when a drawing element is drawn.
EVENT.DAT Configuration of any event driven actions.
EXPRM.DAT Expression models.
EXPRV.DAT Variable expressions.
FORMULA.DAT Configuration of any formulas used.
GPCONF.DAT
HDSCONF.DAT Historical Data Server configuration file.
HDSTREND.DAT Historical Data Server trends configuration file.
HISTO.DAT Configuration of the archive files, log filters and reports plus a list of all the vari-
ables that are recorded.
IMPORTREFERENCES.DAT Information about files imported by the Smart generator.
KEY.DAT The configuration of any keyboard actions.
LPRINTER.DAT Printer configuration.
MRUFILES.DAT List of the most recently used mimics.
OPTIONS.DAT Various configuration options.
PALCOL.DAT Color palette configuration file.
PARAM.DAT Project start-up configuration, preferences, user names etc.
PARAMWS.DAT Graphic workspace settings.
PREFCOL.DAT Color preferences.
POPU.DAT Population configuration.
RECIPE.DAT A list of recipes. The recipes are saved separately in the R folder.
SCRIPT.DAT
STATION.DAT Network configuration.
TSPREFS.DAT
UIVCONF.DAT
USER.DAT User names, passwords and rights configuration file. Depending on what option
has been selected, this file may be encrypted.
VARCONF.DAT Variable properties configuration file.
VAREXP.DAT Database configuration in extended file format
VARTREAT.DAT Special variable treatment configuration file.

The XML files, which are all stored in the project’s C directory, are as follows:
File Use
MAILCONFIG.XML Configuration for the Supervisor's e-mail sending capability.
SCHEDULER.XML Configuration for the HDS task scheduler.

- 143 -
What is a Library?
A library is the name given to the collection of folders in which the Supervisor keeps the files that define its
mimics, mimic templates, symbols, images and SCADA Basic programs. Whenever you open a mimic, paste
a symbol, load a program etc. you can select the library where it is located.
There are two distinct library types, differentiated by their location within the Supervisor's folder structure.

l Local libraries - Located in the folders specific to a particular project and only available to that project.
l Shared libraries - Located in the project's root folder (that is the root folder of all projects) and avail-
able to all projects.

About the local libraries


Show picture

By default, there is a single local library for each project identified by the name LOCAL. This library cannot
be deleted. When you are developing the HMI, if you do not change the library selection, everything is saved
in this library. The library is located in the project root folder and it is composed of the following folders.
Folder Contents
3D 3D mimics
B Images
P SCADA Basic programs
S Symbols
SCR VBA scripts
Templates Application Architect templates and parameters
W Windows (Mimics)
WT Window templates (Mimic templates)

- 144 -
Additional local libraries, created using the Application Explorer as part of the project configuration, are loc-
ated under the LIB folder that is located under the project root folder. There is one folder for each library
that is created. Each folder contains the same eight sub-folders as described in the table above.

The name by which a library is identified is not necessarily the same as its folder name.

About the shared libraries


Show picture

There is always at least one shared library for a project identified by the name COMMON. This library cannot
be deleted. It is composed of the following folders.
Folder Contents
BMP Images.
PRG SCADA Basic programs
SCR VBA scripts
SYM Symbols
WIN Windows (Mimics)
WTP Window templates (Mimic templates)
Additional shared libraries, created as part of the project configuration, are located under the LIB folder that
is located under the Supervisor's root folder. There will be one folder for each library that is created. Each
folder contains the same eight sub-folders as described in the first table above.
If you chose the Typical setup when installing the Supervisor, several other pre-defined libraries are
installed with names such as shared_ARROWS, shared_MOTORS etc. These libraries are also located under
the LIB folder that is located under the Supervisor's root folder.

The name by which a library is identified is not necessarily the same as its folder name.

If you use the shared libraries in your project, and you copy the project to another location, make
sure that you also copy the shared libraries you have used.

- 145 -
Changing the location of the shared library folders
The -b command line option changes the location of the shared library folders and the projects root folder.
See the topic Software installation.The Supervisor.Command line options.
Note the difference between the project root folder and projects root folder.

l The project root folder is a folder, with the same name as the project, located under the projects root
folder USR.
l The projects root folder is, by default, is located under the Supervisor's root folder.

Managing the libraries


The libraries are managed using the Application Explorer. Using the Application Explorer you can:

l Add new libraries.


l Remove libraries from the Supervisor's configuration and optionally delete the corresponding folders.
l Change a library's properties.
l Add images to a library.
l Delete individual mimics, mimic templates, symbols, programs or images from a library.

See the Libraries topics in the Application Explorer help book for further information.

- 146 -
Compatibility of Projects and Libraries with Other Versions of the Supervisor
This topic contains information about certain well-known limitations or precautions to be taken, with respect
to the project and libraries, when upgrading from one version of the Supervisor to another.
The on-line technical resources contains further information about migration strategies and best prac-
tices.

Backward compatibility
Backward compatibility, that is running a project with a more recent version of the Supervisor than with
which it was created, is fully supported unless otherwise stated.
In those rare cases that new functionality changes a specific feature so that it is not backward compatible,
wherever possible a compatibility setting is added to enable the previous behavior.
If you start a project and libraries configured with an earlier version of the Supervisor, a dialog is displayed
warning that once the project and libraries have been started with the current version they may no longer be
compatible with any earlier version.
It is the responsibility of the User to make sure regular backups of the project and libraries are
made. In particular, a backup should be made of the project and libraries before unin-
stalling, or starting an upgrade, of the Supervisor. See the topic Backing up and restoring pro-
jects and libraries

Forward compatibility
Forward compatibility, that is running a project with an older version of the Supervisor than that with which
it was created, or last used, is not supported and any attempt to do so is entirely at the User's own risk.

Specific issues with previous versions of the same generation of the Supervisor (6, 7, 8, 9 and
10)

1. Enhancement to the operation of the HDS means that the table structures used in version 9.0 and
earlier are not compatible with those in later versions. For information on how recorded data can be
migrated, see the topic Migration from 9.0 to 10.0 in the Archives book.
2. The shared libraries, supplied on the Supervisor's distribution media, are subject to continuous
improvement. In particular, a brand new set of libraries is supplied since version 11. Users with pro-
jects using the shared libraries must make sure that they take the necessary backup steps before
starting the upgrade process. If backups are available, the libraries can be simply re-introduced, once
the upgrade has taken place, using the procedure explained in the topic Backing up and restoring pro-
jects and libraries.

Specific issues with projects created with the previous (16-bit Windows 3.1) generation of the
supervisor (Versions 2, 3 and 4)
Projects created with the 16-bit version of the Supervisor are generally compatible. However, some of the
earlier releases of the 32-bit version have minor limitations in functionality. Also some of the protocols avail-
able in the 16-bit version have not been implemented due to lack of support from the manufacturers. If in
doubt, please contact technical support.
Once you have run an application with the 32-bit version it will not be compatible with the 16-bit ver-
sion.

Compatibility with DOS Projects


Projects created with the DOS version of the product are not directly compatible. However, a high per-
centage of the configuration information can be retrieved and the project converted using a migration utility.
For further details contact technical support.

Accessing the compatibility settings

1. Open the Application Explorer and select the topmost (Project) folder.
2. Select the Settings task. The Main Settings dialog opens. The compatibly settings are found in a folder
of the same name.

- 147 -
Backing up and Restoring Projects and Libraries
This topic is not a complete guide to backup and restore best practices. It includes the minimum precautions
you should take, as a User, to avoid losing any components necessary to run your project.
Having a backup process in place, and making sure that the backups are complete and useable to
restore your application, is an essential part of development.

Backing up
The contents that a backup of the Supervisor's application must contain as a minimum is:

l The project itself.


l Any shared libraries that are in use.

In addition, your application may require third-party applications, tooling and files specific to your system
set-up that are not described hereafter.

The use of Central Project Management can help you manage the backup of your projects. See the
book Using Central Project Management.
See also the important note about libraries in the topic Uninstalling The Software in the Installation
book.

How to backup a project


Each project is contained within a folder with the same name as the project in the folder ROOT\USR, where
ROOT is the project root. Show picture

The project root is normally the same as that of the Supervisor although it can be changed using the -b com-
mand line switch. If in doubt, check the properties of shortcut that you use to start the Supervisor.

l To backup a project use a compression tool to save the project contents as a single file.

If the project contains any additional local libraries these are included in the project folder structure.

- 148 -
How to backup shared libraries
Shared libraries are contained in the folder LIB located in the ROOT folder.

l To backup a shared library use a compression tool to save the library and its contents as a single file.

How to restore a project from a backup

l Decompress the project backup file into the folder ROOT\USR.

How to restore shared libraries from a backup

1. Decompress the LIB folder backup to a temporary location.


2. Replace (not merge) the installed LIB folder with the LIB folder you have just decompressed.

How to use both the shared libraries supplied with the current version of the Supervisor and
libraries from a backup

1. Decompress the LIB folder backup to a temporary location.


2. Copy the folders of each library that you need to the LIB folder of the current version.
3. Use the Library Manager in the Supervisor to add each of the libraries you have imported from the
backup to the project. See the topic How to add an existing library in the Application Explorer.Libraries
book.

- 149 -
Using a Template Project
A template project is a Supervisor project that is configured in the normal way but then copied to the tem-
plate folder. When the Supervisor starts, it looks for the template folder. If it finds it, the contents of the
template folder is copied to the running project's folder. ONLY FOLDERS AND FILES THAT DO NOT
ALREADY EXIST ARE COPIED. In that way, the contents of the template project is only used when a new
(empty) project is created, or when one of the files in the running project, that has an equivalent file in the
template project, is deleted.
To update the Supervisor's project after modifying any of the files in the TPL folder, you must stop
the Supervisor, delete the equivalent files in the project and restart the Supervisor.

How to create a template project

1. Create a project in the normal way and configure it as required.


2. Create a new folder called TPL to contain the project template. By default, the supervisor expects to
find the template folder in the project root folder. That is the folder that contains USR, LIB, ETC, etc.
3. Copy the sub-folders of the project (3D, B, C, etc.) to the TPL folder.

You can put the project template in any other storage location that is accessible to the Supervisor, but then
you must configure its path as described below.

Modifying the operation of the project template


You can modify the operation of the project template by adding parameters to the Supervisor's initialization
file, SV32.INI, located in the BIN directory.
Do not modify the SV32.INI file in any other way.

Parameters must be added in a section starting with the heading [Template Project]. It can contain either or
both of the following options.
Option Meaning
Disabled To disable the functionality (value 1) or to enable it (value 0, the default).
Dir To specify the folder of the Template Project. By default, it is:
% ProjectsDir%\TPL.
The path parameters designate folders as follows.

l An absolute path can identify any folder.


l % ProjectsDir%: the project root folder. That is the folder where the Supervisor was installed unless
the -b command line switch is being used to specify an alternative location.
l % ProgramFilesDir%: the program folder. That is, the folder that contains the programs and
resources of which the Supervisor comprises. Normally the BIN folder.

Examples of parameter settings in SV32.INI


Setting The project template is...
[Template Project] Not used.
Disabled=1
[Template Project] To be found in the folder C:\SV_TEMPLATE.
Dir=C:\SV_TEMPLATE
[Template Project] To be found in the sub-folder SV_TEMPLATE of the project
Dir=%ProjectsDir%\SV_TEMPLATE folder.
[Template Project] To be found in the sub-folder TPLPROJ of the Supervisor's pro-
Dir=%ProgramFilesDir%\TPLPROJ gram folder.

- 150 -
Using Central Project Management

- 151 -
Overview of Central Project Management
Central Project Management provides the capability of centrally managing project and library versions.
Using Central Project Management you can:

l Specify a central location where projects are stored.


l On a station, select a version of the project from the central project store, load it and run that version.
l Save the local version of the project to a central project folder either as a new version or as an update
to an existing version.
l Manage the status of project versions in the central project folder identifying them as development,
operational or reference (as explained below).
l Do all the above with the common and custom libraries.

You can manage any number of projects in the same central project folder. However, on a particular station,
you only see versions of the project that is currently loaded in the Supervisor on that station.

Saving and loading


The process of selecting and loading a different version of a project or a version of the libraries from the
central project store to a station takes place as the Supervisor starts up. It is enabled using command line
switches plus (for certain settings) separate dialogs for project and library versions.
The Supervisor always runs the local copy of the project.

The original and main use of Central Project Management is for centralized project management of a
networked, multi-station project but it may also be used for a single-station project or a project with
multiple, stand-alone stations.
When using Central Project Management it is essential to make sure that the time is synchronized on
all the stations involved.

About the folder used for the central project store


The folder can be located anywhere that all of the stations can access. A considerable amount of file copying
takes place when using Central Project Management, so it is best to choose a storage device that has a fast
access speed.
The folder path is limited to 80 characters.

Project version status


Each version of a project is classified as either developmental, operational or reference.
Status Meaning
DEV Under development, so it can be updated.
OPE Operational. By default, a project version marked as OPE cannot be updated.
REF The one operational version that is currently to be used on all user stations. There can only be one
reference version. By default, a version marked as REF cannot be updated.

Libraries
The facilities provided by Central Project Management can also be used with the Supervisor's common and
custom libraries.

What this is not


Central Project Management is not a general-purpose tool for centrally controlling the versions of software
and libraries. Such tools are available commercially and you can configure them to do what this does.
Neither is this a project archiving tool; it does not compress or do differential saving to economize storage
space. For information about using PKZIP25 for that purpose, see the Help topic Saving and Restoring Pro-
jects.

- 152 -
Creating and managing project versions

- 153 -
The Central Project Management Dialog
The Central Project Management dialog is displayed from the menu command Configure.Project.Versions.
When you select this for the first time, a dialog is displayed stating that the central project store has not
been set up. Click on OK to open the Central Project Management dialog.
Using the Central Project Management dialog, you can:

l Select the folder used for Central Project Management.


l Review the available project versions in the central storage.
l Create a new version based on the local project.
l Update a selected version by overwriting it with the local version.
l Change the status of a version, edit its description and add a comment to it.
l Apply similar functions in respect of library versions.

Selecting the folder used for Central Project Management

1. Select the General parameters icon in the in the left pane of the Central Project Management dialog.
2. Tick Enable central project management.
3. Enter the name of the folder in the Central versions folder field. You can either type in the name dir-
ectly or select it from a standard Windows browser dialog opened from the ellipsis button beside the
field. The folder path is limited to 80 characters.Show picture

4. To obtain access to a location that is networked but not currently available, click on the Map Network
Drive... button to open the Windows Map Network Drive dialog.

The folder can be located anywhere that all of the stations can access. As a considerable amount of file copy-
ing takes place when using Central Project Management, it is best to choose a location that has a fast access
speed.

Selecting which project folders and files are included when saving a version of the project

1. Select the icon Project.Included folders and files in the left-hand pane.
2. Tick and un-tick the project folders and files in the right-hand pane as required. To display the items
that a folder contains, click on the '+' control to the left of the folder name (NOT on the tick box next
to it). Show picture

- 154 -
Unless you have special requirements and are familiar with the project folder structure, it is recom-
mended that the default selection be used. If you have made changes but wish to restore the default
settings, select the Default button to do so.
To select which library folders are included, follow the same procedure selecting the Librar-
ies.Included folders icon.
When you have made changes and you select a different category (General Parameters, Project or Librar-
ies), a dialog asks you to validate those changes. Select OK to do so.

Displaying a list of the available project or library versions


To display a list of the available library versions select the Library icon in the left pane.
To display a list of the available project versions select the Project icon in the left pane. Show picture

How the project and library versions are numbered


The project versions are numbered using two digits. The major digit (also known as the series) represents
the major version, and the minor digit represents the minor version. For example 1.5 represents series 1,
minor version 5. The series number can be selected using when creating a new version using the Central Pro-
ject Management dialog. The minor version is incremented automatically each time that you create a new
version in that series.
The version number is also used to name the sub-folder in which the version is stored.
Version numbers are applied independently to projects and to libraries. For instance, Project XYZ
version 1.3 and version 1.3 of the libraries need not correspond to each other in any way.

- 155 -
Other settings in the Central Project Management dialog

l Enable updating of a version in OPE or REF status - Allow central project versions with OPE or REF
status to be updated. Normally only versions with DEV status can be updated.
l Always displayed on top - The dialog is always displayed on top of the Supervisor's workspace when it
is open.

- 156 -
How to Create a Project Version
The action of creating a new version copies the local project to the central project folder under a selected
version number. The new version is given the DEV (development) status and the local project version num-
ber is updated to reflect the version you have created.

1. Open the Central Project Management dialog and click on the Project section in the left pane. The right
pane changes to show details of the local project and of any versions of projects that are stored cent-
rally. Show picture

2. Select the button Create a New Version. The Create New Version dialog opens from where you can
choose a new major version number or use the existing one. The minor version number is generated
automatically as the next in the sequence and cannot be changed.
3. Click OK to start the copying process. The new version is created in the central project folder by copy-
ing the selected files from the local project. A dialog displays a time-bar of that progress.

For information on which of the project's folders and files are copied, and how to select them, see the topic
The Central Project Management dialog.
Project version information is saved in the file INFOS.DAT found in the project root. This file only
exists for projects using Central Project Management, and appears in both the local project and ver-
sions in the central project store.

- 157 -
How to Update or Delete a Central Project Version
Updating copies (saves) the local project to the central project folder under an existing version number.

Enabling updates
By default, you can only update a version that has Development (DEV) status. However, you can remove
that restriction as follows.

l In the Central Project Management dialog's General Parameters pane, check the option Enable to
update a version in OPE or REF.

Applying updates

1. Open the Central Project Management dialog and select Project in the left-hand pane.
2. In the right pane, select the version that you want to update.
3. Select the Update a Version button. A dialog asks whether you want to apply a full or partial update to
the version. Show picture

4. If you select the option Partial Update Since, click on the drop-down arrow in its box to display a cal-
endar.
5. In the calendar, select the earliest date and time for project contents to be copied.
6. The selected local files are then copied to the central project folder. Select OK to close each dialog.

When you select a column in the Central Project Management dialog, the arrowhead above it
arranges the whole list in ascending or descending alphabetic order of that column. Show picture

Deleting a version

1. Open the Central Project Management dialog and select Project in the left-hand pane.
2. In the right pane, select the version that you want to delete.
3. Select the Delete button. A dialog asks whether you want to delete it; select Yes.
4. Select OK to close each dialog.

- 158 -
How to Change the Status of a Project Version
The status of a version determines how it is treated by Central Project Management. By default, you can
select the status from the following options.
Status Meaning Instances Actions
DEV Development Any number. Load, update, delete.
REF Reference Only one for a project. Load only.*
OPE Operational Any number. Load only.*
*unless you enable updating (see How to Update a Central Project Version, section Enabling Updates).

To change a version's status, description or comment

1. Open the Central Project Management dialog.


2. In the list of versions, click on the version to be changed.
3. Select the button Change Version State to open the dialog Change the Version State.Show picture

4. Select the state to be applied to the version (DEV, OPE or REF).


5. You can modify the version's Description.
6. You can type a Comment into the lower pane or edit an existing comment.
7. Select the OK button to apply the changes and close the dialog.

If you apply the Reference option when a Reference version already exists, the previous version's
status is changed to Operational.
You cannot change straight from Development to Reference. You must first change the status to
Operational and then you can change it to Development.

- 159 -
Creating and Managing Library Versions
In addition to its use with projects, Central Project Management can also be used to create and manage ver-
sions of the common and custom libraries. The common and custom libraries are those that may be
accessed by all projects and are located in the project root folder.
The project root folder is the same as the Supervisor's root folder unless an alternative has been spe-
cified using the -b switch in the Supervisor's command line.
To use the Central Project Management dialog with the libraries, select the Libraries icon in the left pane.
The behavior is similar as when managing project versions. Show picture

Selecting which library folders are included when saving a version of the libraries

1. Select the Libraries.Included folders icon in the left pane.


2. Tick and un-tick the library folders as required. For the custom libraries, you can only select/de-select
an entire library. For the common library, you can select/de-select each sub-folder individually. Show
picture

- 160 -
How to select and load a version at start-up

- 161 -
How to Select a Project Version at Start-up
To select a particular version of a project at start-up you add a property (known as a switch) to the com-
mand line that starts the Supervisor. For example:
[InstallDir]\bin\sv32.exe -d
The Supervisor's software installation directory is, by default, at the root of the system partition,
usually C:\.

Command line switches


There are four switches associated with Central Version Management.
Switch Effect
-r Starts the Supervisor using the reference version. See the topic Using the -r or -r_delta command
line switch.
-r_delta Starts the Supervisor using the reference version. See the topic Using the -r or -r_delta command
line switch.
-x Allows selection of any operational or reference version at startup. See the topic Using the -x com-
mand line switch.
-d Allows selection of any version at startup. See the topic Using the -d command line switch.
As the use of -x and -d require user interaction at startup, when running the Supervisor as a Win-
dows Service with Central Project Management, only the -r switch should be used.

What happens when a version is copied from the central project store to the local folders

1. The folders of the selected project are copied to local temporary storage.
2. If that worked, the required folders are copied to the local station's project storage, overwriting the
previous one if any.
3. If the copying did not work, a network error message is displayed.
4. The required folders of the selected version are then copied to the local station.

If either of these steps fails, for instance, if the file system is damaged or the central store's hard disk is
full:

1. An error message is displayed.


2. Any copies made are deleted, the previous folders are restored and copies with the '.OLD' suffix are
deleted.
3. The original project is started.

If the error message is ignored the Supervisor starts up on a version of the project other than the
one intended.

- 162 -
Using the -r or -r_delta Command Line Switch
The -r or -r_delta command line switches start the Supervisor with the Reference version (REF) of the pro-
ject and/or libraries. No version selector dialogs are displayed before the Supervisor starts. On startup, the
Supervisor checks the local project's version number and creation time against that of the reference project
in the central versions folder. The following actions are then taken

l If the local and reference versions are different.


l If using the -r switch the entire reference project is copied from the central versions store to the
local station.
l If using the -r_delta switch only those files that have changed are copied from the reference pro-
ject in the central versions store to the local station. This may take some time, as the Super-
visor has to compare each file in turn.
l If the local and reference versions are the same, the Supervisor starts with the local version.
l If there is no reference version, the Supervisor starts with the local version.

For details of how copying takes place and of what happens in case of failure, see the topic How to Select a
Project Version at Start-up.

How does the Supervisor decide if the local and reference versions are different?
Different means when the version information in the local INFOS.DAT is different to that of the reference
project in the central versions store.
INFOS.DAT is only updated when using the Central Project Management dialog to create a new ver-
sion or update an existing version. It is not updated in any other circumstance. Modifying the local
project without then using the Central Project Management dialog does not update INFOS.DAT.

- 163 -
Using the -x Command Line Switch
Use of the -x command line switch causes two version selectors to open in succession before start-up of the
Supervisor, for choosing a central project and a set of libraries. These dialogs display information about the
version currently loaded in the local project folder plus a list of the Operational (OPE) and Reference (REF)
versions available.
If there are no Reference or Operational versions in the central project store, the dialogs are not displayed
and the Supervisor starts with the existing local version.

Using the existing local version of a project and libraries


To use the existing local version of the project and libraries, click the Startup button of the selector dialog.
The Supervisor continues the startup process using the existing version of the project and libraries.

To copy and run an Operational or Reference version of the project

1. The Project Version Selector dialog opens first. You can check the local project version details in the
upper pane. Show picture

2. Select a central version from the list and click the Download button. The version is copied to the local
project folder. Show picture

3. Click on Next to copy libraries or on Start to skip that step and start the Supervisor immediately.

To copy and run an Operational or Reference version of the libraries


This continues the process above.

1. The Libraries Version Selector dialog opens next. You can check the local version of the libraries in the
upper pane. Show picture

2. Select the required version from the list and click the Download button. The version is copied to the
Supervisor's root folder. A time-bar shows the progress of copying the files.
3. Click the Startup button. The Supervisor continues the startup process with whichever versions of the
project and/or libraries are now loaded.

For details of how the copying takes place and what happens in case of failure, see the topic How to Select a
Project Version at Start-up.

- 164 -
Using the -d Command Line Switch
The -d command line switch has the same effects as the -x switch except that Development versions of the
project and libraries can be selected as well as the Reference and Operational ones. Show picture

See the topic Using the -x Command Line Switch for details of how to select the central project and library
versions.

- 165 -
Central Project Management System Variables
The following system variables provide information about the version numbers of the project and libraries
that are loaded on the local station.

On networked stations
In each example below, StationName is the name of the station (from the network configuration).
For a project:
SYSTEM.StationName.VERSION.PROJECT
with variable type - TEXT: the version of the project that is currently loaded and running.
Example:
SYSTEM.SERVER_A.VERSION.PROJECT
For libraries:
SYSTEM.StationName.VERSION.LIBRARY
with variable type - TEXT: the version of the library that is currently loaded and running.
Example:
SYSTEM.SERVER_A.VERSION.LIBRARY

On a stand-alone station
In each example below, LocalHost is the name of the stand-alone station.
For a project:
SYSTEM.LocalHost.VERSION.PROJECT
with variable type - TEXT: the version of the project that is currently loaded and running.
For libraries:
SYSTEM.LocalHost.VERSION.LIBRARY
with variable type - TEXT: the version of the library that is currently loaded and running.

- 166 -
An Example of Central Project Management
The stations
An application has been live for some time but evolving requirements mean that its functions occasionally
have to be upgraded. The station architecture is as follows.

l 2 server stations, Station 10 and Station 11, are in an association (for hot standby), Association 20.
l 3 client stations are connected to the association.
l 1 file server (MYSERVER) holds the central project store.

Central Project Management is enabled on all stations with MYSERVER\DISK1\CENTRALSTORE nominated as


the central project store.
Station 11 has a complete (development and run-time) license and is started with the command line switch -
d.
All other stations have run-time licenses and are started with the command line switch -r.

The versions
The versions to be controlled are at various stages of the development cycle.
Version Description Status
1.7 The final version of the previous release, archived for troubleshooting pur- OPE
poses.
2.1 The version currently in use on Stations 1 to 3, but due for replacement REF
shortly.
2.2 Newly tested and designated as operational. OPE
3.0 Under development. DEV
All of the versions are stored in the central project store on the file server. Show picture

Controlling the versions

1. Development and testing occurs on Station 11. As the development PC, it can download any of the ver-
sions for comparison and troubleshooting as required.
2. When operational testing on a version is completed, it progresses to status OPE. Version 2.2 is cur-
rently in that state.
3. The operational stations (Stations 1 to 3) are configured with the -r switch to load the REF version
when they are restarted. Version 2.1 currently has that status so it is loaded automatically on start-up
of each station.
4. When the changeover to version 2.2 takes place, it is given REF status. Version 2.1 reverts to the OPE
status and remains available for regression.
5. When each operational station (Station 1 to Station 3) is next restarted, Central Project Management
automatically downloads version 2.2 onto it.
6. If there is a need to fall back temporarily, the administrator re-assigns the status of REF to version
2.1 then restarts the stations so as to load version 2.1 again. (This assumes that versions 2.1. and 2.2
are interchangeable technically and to serve the users' basic needs.)
7. In this example, the libraries remain unchanged in support of versions 2.1 and 2.2 of the project. Ver-
sion 1.7 is stored for technical reference only.

The result

- 167 -
After the changeover to version 2.2, the project versions are as follows.
Version Description Status
1.7 The final version of the previous release, archived for troubleshooting pur- OPE
poses.
2.1 The previous version available for fallback. OPE
2.2 The version currently in use on Stations 1 to 3. REF
3.0 Under development. DEV

- 168 -
Command Line Arguments
You can select various arguments that affect the Supervisor's operation by modifying the command line
from which the Supervisor is started. For example, to specify an alternative location for the Supervisor's
projects the command line might be:
"C:\<SV target folder>\BIN\SV32.EXE" -b "C:\My Project Root"
To access the command line (also known as the Target) right-click on the Supervisor's program icon and
select Properties. If necessary command line options can be combined. For example, the following would
cause the Select Project dialog to be displayed and also change the project root.
"C:\<SV target folder>\BIN\SV32.EXE" -s -b "C:\My Project Root"

If parameters within the command line contain spaces, they must be enclosed in quotation marks.

Command line options


Option Parameter Purpose More information
-ansi Interpret all project plain text files,
-ansip including the trace and audit files, as
ANSI. (Normally they are treated as
ASCII.)
-s Display the Select Project dialog
when the Supervisor starts.
-p Project name Run the project Project name. Project name can be up to
255 characters in length.
-b Project root Use the folder specified in Project
root for the Supervisor's projects.
-k KeyNum,SlotNum, To get a license from a network The syntax requires that
StationID dongle. there is no space after each
SlotNum identifies the address from of the commas.
which the license is obtained: Slot 1 This was mandatory when
(NETWORK1) or Slot 2 (NETWORK2). running the Supervisor in a
Keynum is always 1. session on an RDS host for
StationID is the number of the Super- Supervisor's version earlier
visor's station into which the dongle than 10.0 SP1. For later ver-
is plugged. sions, -k is deprecated for
this purpose.
See also: Deploying the
Supervisor on a RDS host.
It can also be used with a
classic architecture such as a
single client station with a
single server station that
holds the license key.
-WTS ProjectName, Run the Supervisor in a Windows The -WTS and -Station_Num-
ClientStationListName Remote Desktop Session on RDS, ber command line arguments
and automatically get the station cannot be used altogether as
number from the Cli- both set the station number.
entStationListName. See also: Deploying the
Supervisor on a RDS host.
-Station_Number StationNumber Run the Supervisor as station num- The -WTS and -Station_Num-
ber StationNumber. Overrides the ber command line arguments
station number in INI.DAT. cannot be used altogether as
both set the station number.
See also: Deploying the
Supervisor on a RDS host.

- 169 -
-r Start the reference version of the pro-See also: Using Central Pro-
ject. ject Management.
-r_delta Start the reference version of the pro-Only those files that have
ject. changed are copied from the
reference project.
See also: Using Central Pro-
ject Management.
-d Display the Version Selector dialog See also: Using Central Pro-
when the Supervisor starts. Here the ject Management.
Version Selector displays devel-
opment, operational and reference
versions.
-x Display the Version Selector dialog See also: Using Central Pro-
when the Supervisor starts. Here the ject Management.
Version Selector displays operational
and reference versions only.
-vcr Starts the Supervisor in VCR play- See also: The VCR facility.
back mode.
-i Opens the variable import dialog at
start-up.
-vcrrecordall Forces all variables to be recorded in See also: The VCR facility.
the VCR archive unit.

- 170 -
The configuration environments

- 171 -
The HMI

- 172 -
The Workspace
The Workspace is the name given to the area that the Supervisor occupies on the screen of your PC. The
workspace contains all the tools necessary to develop Supervisor applications and is the container for the
windows that form the User Interface at runtime. Within the workspace, you will find the following features:
Show picture

The Menu Bar


The Menu Bar provides access to the main development tools. The menu bar can be dragged with the mouse
and docked to any outside edge of the workspace, or it can be left floating anywhere on the screen. The
menu bar may be opened and closed from a pop-up menu displayed by clicking with the right mouse button
anywhere within the workspace background. A tick indicates that the menu bar is visible.

Toolbars
The toolbars give you quick access to the most commonly used tools for window development and run-time
operation. As with the menu bar, the toolbars may be floating or docked. You can select which toolbars are
open from a pop-up menu displayed by right-clicking anywhere on the menu bar. A tick indicates that a tool-
bar is open.

The Color Palette


The color palette is used to define and select colors for drawing and animation. It may be opened and closed
using the Display.Color Palette command.

The Properties List


The properties list displays a VBA style list of properties, methods and events for windows, native drawing
elements and ActiveX controls. It may be opened and closed using the Display.Properties List command.

Scroll Bars
The scroll bars are used to pan around a mimic window when it is larger than the Workspace.

Status Line
The status bar is located at the bottom of the workspace, above any toolbars you may have docked there. It
provides information on the current state of the workspace including the current cursor position and zoom
level of the active window.

Changing the Workspace Properties

- 173 -
The workspace appearance and behavior is changed using the Display.Workspace Properties command. The
following properties may be changed.

l The size of the workspace and its location on the screen.


l The workspace color.
l The appearance of the title bar and its contents.
l The tools that are available from the title bar.

- 174 -
Changing the Workspace Properties
The Workspace properties are changed from a dialog displayed by right clicking anywhere in the Workspace
(not on a mimic or toolbar) and, from the pop-up menu, selecting the Workspace Properties command.
Show picture

Changing the workspace size


By default, if you change the size or position of the Workspace, after it is restarted it will revert to occupying
the full screen. To change the Workspace size and position permanently you must un-tick the option, Full
screen, in the Workspace Properties dialog. Any changes that you then make to the Workspace size or pos-
ition are remembered when the HMI is restarted. You can change the Workspace size and position either by
entering new values for the Height, Width, Left and Top properties in the Workspace Properties dialog or by
dragging the workspace border and/or title bar with the mouse.

Changing the Workspace behavior


The Workspace behavior is affected by the following properties. The description applies to the behavior
when the option is ticked.

l Minimize - The minimize tool is displayed on the Workspace title bar. If you click the minimize button
the Workspace is hidden. To restore the Workspace you must click its icon on the Windows' taskbar.
l Maximize - If the Workspace does not occupy the entire screen the maximize button is displayed.
Clicking the maximize button changes the Workspace so that it occupies the entire screen. If the Work-
space occupies the entire screen, the restore button is displayed. Clicking the restore button returns
the Workspace to the size and position it had before the maximize button was used.
l Close - The close tool is displayed on the Workspace title bar. If you click the close tool, the HMI will
shut down (if the User's profile has exit rights).
l Move - The Workspace can be moved within the screen by clicking and dragging the title bar.
l Size - The Workspace can be sized by clicking and dragging its borders.
l Automatic scrollbars - If a mimic larger than the Workspace is displayed, scrollbars will be auto-
matically displayed on the Workspace borders.

Changing the size of the title bar


Display of the title bar is affected by the following properties.

l None - No title bar is displayed.


l Standard - A standard height title bar is displayed.
l Small - A reduced height title bar is displayed. If you choose a small title bar, only the close tool may
be displayed.

The Small title option is designed to use the workspace as a floating application and is not recom-
mended if you intend to use the Supervisor in a full-screen setup at runtime.
A side effect of choosing a small title bar is that the Workspace no longer appears in the Windows'
task list. Therefore, you cannot use Alt+Tab keys to switch between the Workspace and other applic-
ations that are running. In addition, the title bar is shorter (with an impact on full screen mimic
size), the application icon is not displayed and such a tool window does not have a system menu.
However, you can display the system menu by right clicking the title bar or by typing Alt+Space.

Changing the text in the title bar

- 175 -
If you enable the Customize (Title) option in the Workspace Properties dialog, you can enter your own text
to be displayed in the title bar. As well as fixed text, you may also use the following substitution characters
to display certain information about the system.
Substitution characters Information to display
#h The current hour as two digits.
#m The current minute as two digits.
#s The current second as two digits.
#D The current date as two digits.
#M The current month as two digits.
#Y The current year as two digits.
###Y The current year as four digits.
#PRJ The name of the project.

- 176 -
Keyboard Keys Specific to the Supervisor
Several of the keyboard keys have standard actions within the Supervisor. In addition, some of the key-
board keys can be programmed to have other actions. See the Function Keys book in the Application
Explorer help.
Key Standard action
Ctrl+D Switch selected mimic to Design mode.
Ctrl+G Open the Smart Generator.
Ctrl+R Switch the selected mimic to Run mode.
Ctrl+T Open the Application Architect.
F1 Online help
F2 Logon / logoff dialog
F3 User account management dialog
F4 About dialog
F6 Display menu
F7 Display (bring to front) Event Viewer
F8 Hide menu
F9 Display Program Management dialog
F10 Shut down the Supervisor
F11 Display the data Export dialog
F12 Display the VCR dialog
PgDn Next window
PgUp Previous window
Right arrow Next control zone
Down arrow Next control zone
Left arrow Previous control zone
Up arrow Previous control zone
Home First control zone
End Last control zone

- 177 -
IntelliMouse Support
The Supervisor has built in support for the Microsoft IntelliMouse. In addition to the normal two buttons, the
IntelliMouse has a centrally mounted wheel that can be used to zoom, scroll and pan around the Super-
visor's Workspace and windows.

Mimic zoom - Default: Ctrl + wheel


Zooms the view of a mimic in and out.

Mimic manual panning - Default: Shift + middle button down + drag


Pans a mimic within its container window. (Only operational if the mimic is larger than the container win-
dow.)

Mimic automatic panning - Default: Ctrl + middle button click + drag


Pans the mimic within its window. (Only operational if the mimic is larger than the container window.

Mimic and workspace scroll - Default vertical: Wheel, Default horizontal: Shift + wheel
Scrolls the mimic within its window. (Only operational if the mimic is larger than the container window.)
Then, when the mimic is at its limits, scrolls the workspace within its window. (Only operational if the work-
space is larger than the container window and scrollbars are enabled).

Workspace automatic panning - Default: Shift + middle button click + drag


Pans the workspace within its window. (Only operational if the workspace is larger than the container win-
dow and scrollbars are enabled).

- 178 -
Using the Workspace Regions
The Workspace can be divided into up to four equally spaced horizontal or vertical regions. When opening a
window you can then specify the region in which it is opened. Regions are most commonly used when run-
ning the Supervisor on a PC that has multiple screens when you would create as many regions as you have
screens. A window can then be opened on a specific screen.
The number of regions is selected using the Regions tab of the Workspace properties dialog. Show picture

How to configure the Workspace regions

1. Right click anywhere in the Workspace and select Workspace Properties from the pop-up menu. The
Workspace Properties dialog is displayed.
2. Select the Regions tab.
3. Using the Region System drop down list box select the number of regions.
4. Using the Orientation drop down list box select the region arrangement as either vertical or horizontal.
5. Select the Startup Region by clicking on the corresponding icon. The startup region is the default
region in which a window is opened if no region has been specified.

What is the difference between Screen or Workspace resolution

l Screen resolution - Determines the size and location of the regions according to the resolution of the
entire Windows' desktop.
l Workspace resolution - Determines the size and location of the regions according to the resolution of
the Supervisor's workspace.

- 179 -
The Application Explorer

- 180 -
What is the Application Explorer?
The Application Explorer is a Windows Explorer style configuration tool that replaces the configure 'one item
at a time' tools available from the configuration menu. The Application Explorer is opened from the menu
using the command Configure.Application Explorer. Show picture

If you click on the Supervisor's HMI workspace while the Application Explorer is open, the Applic-
ation Explorer is sent to the background and remains open. You can bring the Application Explorer to
the foreground using the same commands that are used to open it.
The following configuration items are available from the Application Explorer.

l General
l Domains
l Natures
l Labels
l Line printers
l File references
l Data connections
l Communication
l Data acquisition
l OPC
l Equipment
l IEC 60870-5-104
l DNP3
l IEC 61850
l LonWorks
l BACnet
l DDE
l SNMP
l Networking
l Stations
l Lists
l Associations
l Servers
l Web & Mobile back ends
l OPC server
l Mobile server
l IEC 60870-5-104
l Variables
l Variable tree
l Populations

- 181 -
l Expressions
l Alarm synthesis
l Archives
l Archive units
l Databases
l Trend groups
l Actions
l Messages
l Events
l Cyclics
l Function keys
l User accounts
l Users
l Profiles
l Data analysis
l Data exports
l Libraries
l Local libraries
l Shared libraries

The help for those configuration items not available from the Application Explorer is included in the
Application Explorer help book in order that the help follows a logical order.

- 182 -
The Application Explorer Workspace
The Application Explorer consists of the following major components. Show picture

Main menu [A]


The menu bar displays commands relevant to the general operation of the Application Explorer.

l File.Save - Force a save of all the configuration elements that have been changed.
l File.Exit - Close the Application Explorer.
l View.Toolbars.Tasks - Toggle display of the main task pane.
l Windows.New window - Open a new (additional) configuration window.
l Windows.Tile horizontal - Arrange the configuration windows so they are displayed one above each
other.
l Windows.Tile vertical - Arrange the configuration windows so that they are displayed side by side.
l Windows.Cascade - Arrange the configuration windows in a cascade pattern.
l Windows.Close window - Close the active configuration window.
l Help - Display the Supervisors help.

Main toolbar [B]


The main toolbar displays icons relevant to the general operation of the Application Explorer.
Icon Task
Navigate to the previous folder that was selected in the configuration tree.
Navigate to the next folder that was selected in the configuration tree. (Only operational if Previous
has already been used)
Move the selection up one level in the configuration tree.
Close the Application Explorer.
Toggle display of the configuration tree (folders).
Configure how the information in the contents pane is displayed and selected the details (the
columns that are displayed).

Task pane [C]


Displays tasks relevant to both the selected configuration folder and the item selected in the contents pane.

Configuration window [D]


The main configuration window from which the configuration tree is navigated and the configuration mod-
ified. Several configuration windows can be open at the same time each displaying a different aspect of the
configuration. Maximizing the configuration window using either the maximize button or double clicking the
title bar causes the window borders and title bar to be hidden.

Configuration tree [E]

- 183 -
The configuration tree displays all of the Supervisors configuration items, available to the Application
Explore, in a tree display with each major configuration area represented by a folder. Selecting a folder dis-
plays configuration items subordinate to it in the contents pane.

Contents pane [F]


The contents pane displays the contents (either configuration sub folders or configuration items) of the
folder currently selected in the configuration tree.

Tool bar [G]


Displays icons representing the tasks that are relevant to both the selected configuration folder and the item
selected in the contents pane. In general, a copy of what is displayed in the task pane.

Behaviors pane [H]


Only displayed when the Variables Tree is selected in the configuration tree. Displays any associated beha-
vior for the variable selected in the contents pane. (Events, trending etc.)

Behaviors tool bar [I]


Only displayed when the Behaviors Pane is displayed. Displays icons that represent the tasks that add,
modify and delete behaviors on a variable.

The right click context menu [Not displayed in picture]


Right clicking in either the pane occupied by the configuration tree, or the contents pane, displays a context
sensitive menu.

l On a folder in the configuration tree - Displays tasks relevant to that folder as also displayed in the
task pane.
l On any white space in the contents pane - Displays a list from where the details that are displayed in
the contents pane can be selected.
l On any item in the contents pane - Displays tasks relevant to that item as also displayed in the task
pane.

- 184 -
Using Cut, Copy and Paste in the Application Explorer
The cut, copy and paste tasks can be used on many of the configuration objects in the Application Explorer
and can be a major aid to speed up the development of your application. The cut, copy and paste tasks are
particularly useful when configuring the Variables Tree as you can use them on entire branches including
variables and their behaviors.
The cut and copy tasks are context sensitive. They only appear in the task pane when the configuration
object selected in the contents pane supports them. Show picture

The paste task is also context sensitive. It only appears when a folder relevant to the cut or copied object is
selected in the configuration tree. For example if you copy a branch from the variables tree, the paste
branch task will only appear when Variables Tree folder, or one of its subordinate branch folders, is selec-
ted. Show picture

Cut, copy and paste cannot be used on all Application Explorer configuration objects. See the topic
Application Explorer objects supporting cut, copy and paste for a list of the main objects that are sup-
ported.
For information about the operation of cut, copy and paste for specific configuration objects, see the
help topics for those objects.

Keyboard and context menu shortcuts

- 185 -
When a configuration object supports cut, copy and paste, the usual Windows keyboard shortcuts Ctrl+X,
Ctrl+C and Ctrl+V can also be used. The Cut, Copy and Paste commands also appear in the right click (con-
text menu) of supported objects.

What happens when I paste a configuration object?


When you paste a configuration object, a new object is created with the same configuration as the object
that was cut or copied. The name for the new configuration object is suggested in a dialog that opens during
the process of the paste. If, where you are pasting the object, an object of the same name already exists
then a new name will be suggested, otherwise the original name will be used. Show picture

Where an object has sub-ordinate objects these will be included in the paste. For example, if you copy an
OPC Server with two OPC Groups, when you paste to create a new OPC Server, it also will contain two OPC
Groups.
Where an object has the name of other objects as part of its configuration it may be necessary to make
manual changes to the new object after the paste process. For example, with a register that has four depend-
ent threshold variables, you will have to manually change the name of the threshold variables after the
paste. This is explained in the help topics for the objects concerned.

Reminder about the difference between copy and cut

l Copy makes a copy of the selected configuration object. It can be pasted any number of times.
l Cut makes a copy of the selected configuration object. It can only be pasted once. After the paste, the
configuration object that was cut is deleted.

Does the Supervisor use the Windows clipboard?


During the cut and paste or copy and paste process, the Windows clipboard is used to store the name and
type of the object. It is not used to store the entire object's configuration. If you paste the contents of the
clipboard into a third party application, Notepad for example, you will just get the name of the object.

- 186 -
Application Explorer Configuration Objects That Support Cut, Copy and Paste
The following is a list of configuration objects and their support for cut, copy and paste. Limitations or restric-
tions connected to cut, copy and paste of particular objects can be found in the help topics for those objects.
Data acquisition Support
OPC Yes
Equipment No
IEC 60870-5-104 Yes
DNP3 Yes
IEC 61850 Yes
LonWorks Yes
BACnet Yes - Some limitations
DDE Yes

Networking Support
Stations No
Lists No
Associations No

Variables Support
Variables tree Yes - Some limitations
Domain Yes
Nature Yes
Expressions Yes - Some limitations
Alarm synthesis Yes

Archives Support
Archive units Yes*
Databases Yes
Trend groups Yes
* Not the VCR unit as only one is allowed per project.

Actions Support
Messages Yes
Events Yes - Some limitations
Cyclics No

- 187 -
The Smart Generator

- 188 -
What is a Smart Generator?
A Smart Generator is a software tool for generating the Supervisor's project configuration by importing it
from files created by third party software such as PLC programming packages or generic XML files. It works
by communicating directly with the Supervisor's Configuration Explorer to generate the configuration. Show
picture

The importing of files from third party software is managed by a Smart Generator, one for each of the sup-
ported import types. This version has the following Smart Generators.

l Azbil Harmonas
l BACnet
l Bechkoff TwinCat
l CAD: import of data objects in the formats used by AutoDesk's AutoCAD software.
l FL: the HMI and SCADA software suite.
l Generic XML: from a file formatted in XML (Extensible Markup Language).
l ISaGRAF: a control software environment that enables you to create local or distributed control sys-
tems.
l LNS: the network management software for Echelon's LonWorks-based networks.
l Saia-Burgess
l Schneider Unity
l Siemens SIMATIC Step7.
l WAGO CoDeSys: the programing tool for the WAGO programmable coupler.
l WAGO DALI: used for control of lighting systems in buildings and infrastructures.
l Yokagowa: Stardom.
l OPC Server
l MOXA ioLogik
l Siemens TIA Portal

About the Smart Generators that import configuration data from third party packages
In general, these Smart Generators are limited to generating variables and communication links. However,
the Smart Generators are not just simple conversion tools. They allow you to filter, convert and modify the
structure of the data so that it is applicable to the Supervisor. Using the Smart Generators, you can:

l Filter the variables to be imported


l By name using a lexical filter
l By data type
l By variable type (numeric, text or boolean)

l Manage the variable names


l Automatically prefix a branch name
l Automatically create branch separators
l Manually edit the names of variables to make them compatible with the Supervisor's variable
naming scheme.

l Synchronize the Supervisor's database with the third party project file
l Update variables changed since the previous import
l Add or remove variables in the Supervisor's database that have been added or removed in the
third party project file since the previous import.

- 189 -
About the generic XML Smart Generator
The Smart Generator that imports information from an XML file is a straight conversion tool, converting the
data in the XML file into configuration for the Supervisor's project. There is no capability to filter or modify
the data in any way. The generic XML Smart Generator is designed so that it can import any aspect of the
Supervisors configuration although in this version you are limited to the following.

l Domain and Nature


l OPC Servers and OPC Groups
l Database variables and branches.

- 190 -
The Smart Generator Workspace
The Smart Generator workspace is started from the Supervisor's menu using the command Configure.Smart
Generator. The Smart Generator workspace contains a menu, a task list and a pane displaying a list of
imports. Show picture

The import list


The right-hand pane is known as the import list and contains a list of imports that have been executed.
Selecting a line representing an import will display the commands available in the Task List.

The task toolbar


The task toolbar contains a list of the available Smart Generators.

Menu
The menu bar contains two entries.

l File.Exit - to close the dialog.


l View.Toolbars - to open or close the toolbars.

- 191 -
The Application Architect

- 192 -
What is the Application Architect
The Application Architect is a tool to generate the Supervisor's application (project) by instantiating tem-
plates (also known as models) representing real world objects from the process to be supervised. A tem-
plate can represent anything from a simple on-off switch to a complete process plant.
The Application Architect is a tool to structure part or all of an application (project) by designing and instan-
tiating templates. A template is a representation of a real world object in terms of the Supervisor's con-
figuration elements.
Templates and instances can include:

l Configuration elements
l Variables
l Bit
l Register
l Text
l Variable behaviors
l Trends
l HDS
l Proprietary
l ODBC
l Free
l Event
l Program
l E-mail
l Expression
l Alarm synthesis
l Threshold
l Chronometer
l Counter
l Discrepancy
l Alarm behavior
l Acknowledgement transmission
l Program action
l Window action
l Masking by variable
l Masking by expression template
l IEC 104 outstation datapoint
l HMI Variables
l Cyclic actions
l File objects
l File
l File item
l Attribute
l Associated labels
l Archive units
l Database
l Proprietary
l ODBC
l Free
l Vcr
l Log list
l Database
l Proprietary
l ODBC
l Free

- 193 -
l Communication
l SNMP
l Network
l Unmanaged device
l SNMP device
l Polling group
l BACnet
l Device
l Log
l Notification Class
l Calendar
l Schedule
l OPC
l OPC server
l OPC group
l XML-DA OPC server
l XML-DA OPC group
l IEC 60870-5-104
l Network
l Device
l Sector
l IEC 61850
l Device
l Monitoring object
l Dataset
l Data report
l Data group
l DNP3
l Network
l Device
l Graphic elements
l Mimics
l Graphic symbols

- 194 -
The Application Architect Workspace
The Application Architect Workspace consists of the following major components. Show picture

l Left pane and toolbar - Displays the available templates or parameters. Although this area has the
appearance of a configuration tree, it is a toolbar. Double clicking on an object (either a template or
parameter) will insert an instance of it under the object selected in primary configuration tree dis-
played in the right pane.
l Right Pane - Contains three tabs - Instances, Templates and Parameters.
l Instances - See the topic The Instances Tab.
l Templates - See the topic The Templates Tab.
l Parameters - See the topic The Parameters Tab.
l Pop-up menu - A context sensitive right click pop-up menu is available from the configuration trees.
The commands on the pop-up menu are repeated on the tool bar.
l Main toolbar - The tools that are available reflect the configuration object that is selected in the con-
figuration tree. Toolbar commands are repeated on the right click pop-up menu.
l Menu - Non-context sensitive commands - see list below.

You can resize any of the Application Architect's panes by positioning the cursor over the border and clicking
and dragging. Changes that you make to the Application Architect's look and feel are persistent - that is they
are remembered even after the Supervisor has been shut down and restarted.
When you first open the Application Architect's workspace, all configuration trees are collapsed. All
branches will have a + sign against them indicating that there are further branches - even there are
none. This is because the Application Architect only loads the configuration of a branch when you
attempt to expand it. If the Application Architect loaded the configuration of all branches when it was
opened, it could take a considerable time and add an unacceptable delay.

Menu commands

l File.Save (Ctrl+S) - Save the current configuration.


l File.Exit (Alt+F4) - Close the Application Architect. Any changes that have been made are saved.
l View.Toolbars.Parameters - Enable display of the parameters tool bar in the left pane.
l View.Toolbars.Templates - Enable display of the templates tool bar in the left pane.
l Tasks.Check (F5) - Check the topography of the configuration.
l Tasks.Generate (F7) - Generate the application.

Using the libraries to store templates and parameters


Folders representing the Supervisor's project libraries appear in both the Templates and Parameters tabs.
This allows you to choose where you want to save the configuration of any Templates or Parameters that
you create. If that way you can build libraries of templates and parameters in the same way that you might
build libraries of symbols. Templates and parameters are both saved in the Templates folder of a library.

- 195 -
A reminder about libraries

l The contents of the Local Library is only available to the current project.
l The contents of the Common Library is available to all projects.
l You can create custom libraries that are either only available to the project or are available to all pro-
jects.

For more information on libraries, see the book on Developing the HMI.

- 196 -
The Templates Tab
The Templates tab is used to display, create, edit and organize templates. Show picture.

In common with the Instances and Parameters tab, it is divided into two panes. The left pane contains the
main navigation tree from where templates can be selected, added and organized. The right pane contains a
secondary navigation tree (representing the template selected in the left pane) and a properties grid from
where the properties of the selected configuration object can be viewed and edited.

The main navigation tree pop-up menu


The main navigation tree pop-up menu is displayed when right clicking on any folder, category or object.
The menu is context sensitive and the commands that are displayed will depend on what is selected.

l Cut - Cut the current selection.


l Copy - Copy the current selection.
l Paste - Paste a previously cut or copied item thereby creating either a new category or template.
l Add a category - Add a category (sub folder) to a library folder or category.
l Add a template - Add a new template to the selected folder or category.
l Add an inherited template - Add a new inherited template to the selected template.

For all commands that add an object, there is a corresponding remove command. Removing an object will
also remove all of its instantiations.

The secondary navigation tree pop-up menu


The secondary navigation tree pop-up menu is displayed when right clicking on any folder or object. The
menu is context sensitive and the commands that are displayed will depend on what is selected.

l Unselect - Flag the current selection so that it is not taken into account when the application is gen-
erated. The configuration remains in the tree.
l Select - Turn off the Unselect flag (see above).
l Copy - Copy the current selection.
l Paste - Paste a previously cut or copied item thereby creating either a new category or template.
l Add a variable - Add a variable to a template.
l Add a trend - Add trending (historical data recording) to the selected variable.
l Add an event - Add an event (which triggers a program) to the selected variable.
l Add alarm synthesis -
l Add an embedded template - Add an embedded template to the selected template.
l Add mimic - Add a mimic to template.
l Add symbol - Add a graphical symbol to the template (instantiated in the mimic).

For all commands that add an object, there is a corresponding remove command. Removing an object will
also remove all of its instantiations.

What is a category?
A category is just a convenient way of organizing templates. Creating a category does not create a physical
sub-folder within the projects library structure.

- 197 -
The Parameters Tab
The Parameters tab is used to display, create, edit and organize parameters. Show picture.

In common with the Instances and Templates tab, it is divided into two panes. The left pane contains a nav-
igation tree from where parameters can be selected, added and organized. The right pane contains a single
properties grid from where the properties of the selected parameter can be viewed and edited.

The navigation tree pop-up menu


The navigation tree pop-up menu is displayed when right clicking on any folder, category, or parameter. The
menu is context sensitive and the commands that are displayed will depend on what is selected.

l Cut - Cut the current selection.


l Copy - Copy the current selection.
l Paste - Paste a previously cut or copied item thereby creating either a new category or parameter.
l Add a category - Add a category (sub folder) to a library folder or category.
l Remove a category - Delete the selected category including its contents.
l Add a parameter - Add a new parameter to the selected folder or category.
l Remove a parameter - Delete the selected parameter and all of its instantiations.

What is a category?
A category is just a convenient way of organizing parameters. Creating a category does not create a phys-
ical sub-folder within the projects library structure.

- 198 -
The Instances Tab
The Instances tab is used to display, create, edit and organize instantiations of the templates. Show picture.

In common with the Templates and Parameters tab, it is divided into two panes. The left pane contains the
main navigation tree from where the instantiation of templates is managed. The right pane contains a prop-
erties grid for the selected instantiation, a secondary navigation tree (representing the template of the selec-
ted instantiation) and a second properties grid from where the evaluated and/or named properties of the
selected configuration object can be viewed and edited.

The main navigation tree pop-up menu


The main navigation tree pop-up menu is displayed when right clicking on the folder representing the root,
any template instantiation, or a topology element. The menu is context sensitive and the commands that are
displayed will depend on what is selected.

l Cut - Cut the current selection.


l Copy - Copy the current selection.
l Paste - Paste a previously cut or copied item thereby creating either a new category or template.
l Add a topology element - Add a topology element.
l Add a template - Add a new instance of a template.

For all commands that add an object, there is a corresponding remove command.

The secondary navigation tree pop-up menu


The secondary navigation tree pop-up menu is displayed when right clicking on any folder or object. The
menu is context sensitive and the commands that are displayed will depend on what is selected. Its main
use is to create exceptions to an instance of a template.

l Unselect - Flag the current selection so that it is not taken into account when the application is gen-
erated. The configuration remains in the tree.
l Select - Turn off the Unselect flag (see above).
l Add a variable - Add a variable to a template instance.
l Add a trend - Add trending (historical data recording) to the selected variable instance.
l Add an event - Add an event (which triggers a program) to the selected variable instance.
l Add mimic - Add a mimic to a template instance.
l Add symbol - Add a graphical symbol to a template instance.

For all commands that add an object, there is a corresponding remove command.

- 199 -
The Properties Grid
The properties of all the Application Architect's configuration objects (templates, parameters etc.) are dis-
played in a tabular format known as the Property Grid. Properties are grouped together according to their
use. Show picture

Main features

l To expand/collapse the display of a group of properties click the +/- sign adjacent to its name.
l To change the value of a property click in the right column. Most values can either be entered directly
by typing in a new value, or selected from a list displayed by clicking the down arrow button on the
right side of the field.
l Properties that are read only are displayed in a dimmed typeface.
l Properties that have been manually edited are displayed in a bold typeface.

Properties are displayed in alphabetical order rather than in any logical order.

The Properties Grid pop-up menu


The Properties Grid pop-up menu is displayed by right clicking anywhere in the left column. It provides the
following commands.

l Description - Toggles the display of additional information about the selected property in an area
below the Properties List.
l Advanced - Toggles the Properties List advanced mode. Depending on which configuration object is
selected, advanced mode may display additional properties for the object.
l Reset - Resets the property value to its default.
l Substitute - Allows the value of a property to be substituted with either an expression or parameter.
Substitute is not available for all properties.

- 200 -
The Application Architect

- 201 -
Application Architect Overview
The Application Architect is a tool to structure part or all of an application (project) by designing and instan-
tiating templates. A template is a representation of a real world object in terms of the Supervisor's con-
figuration elements. Templates (and instances thereof) can include:

l Configuration elements
l Variables
l Bit
l Register
l Text
l Variable behaviors
l Trends
l HDS
l Proprietary
l ODBC
l Free
l Event
l Program
l E-mail
l Expression
l Alarm synthesis
l Threshold
l Chronometer
l Counter
l Discrepancy
l Alarm behavior
l Acknowledgement transmission
l Program action
l Window action
l Masking by variable
l Masking by expression template
l IEC 104 outstation datapoint
l HMI Variables
l Cyclic actions
l File objects
l File
l File item
l Attribute
l Associated labels
l Archive units
l Database
l Proprietary
l ODBC
l Free
l Vcr
l Log list
l Database
l Proprietary
l ODBC
l Free
l Communication
l SNMP
l Network
l Unmanaged device
l SNMP device
l Polling group

- 202 -
l BACnet
l Device
l Log
l Notification Class
l Calendar
l Schedule
l OPC
l OPC server
l OPC group
l XML-DA OPC server
l XML-DA OPC group
l IEC 60870-5-104
l Network
l Device
l Sector
l IEC 61850
l Device
l Monitoring object
l Dataset
l Data report
l Data group
l DNP3
l Network
l Device
l Graphic elements
l Mimics
l Graphic symbols

A template can represent anything from a simple on-off switch to a complete process plant.
The object-oriented approach of templates encourages and helps the developer to structure applications in a
way that makes modification and maintenance much easier and quicker. Templates can be stored in a lib-
rary so they can be reused in many applications thereby significantly reducing configuration time.
An application can be designed using a mix of configuration elements created by the Application Architect,
the Application Explorer and Smart Generators. Configuration elements can even be created via the Applic-
ation Architect and modified using the Application Explorer.
Access to the Application Architect is affected by a user's rights. See the book on User Accounts for
further information.

- 203 -
Application Architect Terminology
Template
A template is a representation of a real world object (for example a pump or a HVAC unit) made up of the
Supervisor's configuration elements.

Inherited template
An inherited template is a template that has another template as its parent. The same parent template can
have any number of inherited templates. That is, there is a one to many relationship between parent and
inherited templates.

Included template
An included template is an instance of a template that is embedded in another template. You can have one
or more templates embedded in the same template. That is, there is a one to many relationship between the
container template and its included templates.

Parameter
A parameter is a container for a value that can be used instead of a fixed value in any object property. For
example, you could create a parameter called pMaximum to be used for a register variable's Maximum prop-
erty. There are two types of parameter, Input and Expression.

l Input parameters contain a value. A default value can be entered for the parameter, or the value
entered (input) when it is associated to a template. The same parameter can have different values
each time it is used.
l Expression parameters contain an expression. The expression is evaluated when a template in which
the parameter has been associated to is instantiated.

Global parameter
A global parameter is a container for a value that is used instead of a fixed value for a specific property
type. There is a one to one relationship between each global parameter and a specific property type. For
example, you could create a global parameter called gServerList that is used whenever an object containing
the property Server Station List is instantiated. There are two types of global parameter, Input and Expres-
sion.

Topology element
A topology element is used to create additional structure (and hence variable branches) when instantiating
templates. It could be considered as the instantiation of a template that is empty (has no configuration ele-
ments of its own).
At any time, a topology element can be transformed into an instance of a template.

Category
A category is just a convenient way to organize templates and parameters. (Similar to using a folder to
organize documents.) For example, you could create a category called Lighting. Categories do not have any
impact on the structure of the application.

Instance
An instance is an occurrence, some sort of a named "copy" of a template. When the Supervisor's con-
figuration is generated, each instance will result in the production of one or more configuration elements
(variables, symbols, mimics etc.). A template and its instances do have the same configuration elements
attached to them, but potentially with different property values (see Differentiation).

Differentiation
Differentiation is the art of identifying and defining the properties whose values will differ from an instance
to another instance of the same template. It is the name given to the process of using a parameter or an
input, instead of a fixed value, for a property.

- 204 -
Application Architect Methodology
There are two generally accepted approaches to modeling known as top-down and bottom-up.

l Top-down - In a top-down approach an overview of the system is produced, defining first-level sub-
systems but not detailing base elements. Each subsystem is then refined in yet greater detail, usually
by a breakdown in many additional subsystem levels, until the base elements of the entire system can
be defined.
l Bottom-up - In a bottom-up approach, the individual base elements of the system are first specified in
great detail. These elements are then linked together to form larger subsystems, which then in turn
are linked, sometimes in many levels, until a complete top-level system is formed.

Whichever approach you choose, the general procedure within the Application Architect will follow these
steps:

l Identify templates.
l High-level templates first corresponding to sub-systems if using a top-down approach.
l Base elements first if using a bottom-up approach.
l Identify parameters.
l Identify dependencies (instantiation rules, what is child of what).
l Define templates.
l Define global parameters. That is those that affect a big percentage of a particular property type. (Typ-
ically Station Lists, Network Name, Domain, Nature...).
l Associate global parameters with those templates for which they affect all instances.
l Define parameters. That is those that affect a smaller percentage of one or more properties. (For
example, the range (Max & Min) for all registers representing a temperature.) Associate parameters
with templates.
l Differentiate properties by defining them by a global parameter, parameter, an expression or an input
l Create any topology elements. In particular, in a bottom-up approach, higher level subsystems that
are not yet be identified / defined as templates.
l Instantiate templates.
l Associate global parameters with the elements of the topology to which they are relevant (tree, topo-
logy element, template instance included templates).
l Define parameters' and inputs' values.
l Generate.
l Refine by iteration.

- 205 -
Application Architect Settings
The Application Architect's settings can be displayed either from the project settings in the Application
Explorer or from Tasks.Settings in the Application Architect menu. Show picture

l Show generation option box - Show the Options dialog when generating the configuration elements.
l Consistency checking
l Allow blank branch - Allows an empty (blank) branch at instantiation.*
l Allow duplicate branch - Allows the use of duplicate branches within the same tree.*
l Allow recursive property - Allows one property to be used in the expression of another para-
meter. See below. Must also be enabled if a parameter or expression is used in the Description
property of any of the elements.
l Type of synchronization
l Full synchronization - Uses full synchronization when generating the application. See the topic
on Generation for details.
l Fast synchronization - Uses fast synchronization when generating the application. See the topic
on Generation for details.
l Time optimization - Options to improve the responsiveness of the Application Architect's HMI.
l Skip reference calculations in the Application Architect's HMI - This setting affects the templates
tab. Selecting it means that the calculation of properties requiring access to an Excel function
(by parameter, expression, combination of two etc.) are not made. The properties are displayed
as empty.
l Skip reference calculations for generation - This setting affects the generation of properties
requiring access to an Excel function. The properties are not generated in the output from the
Application Architect. The affected properties do not exist - they are not just empty. This is to
ensure the correct synch when de-selecting the option.**
l Expand template composition one level only - This setting affects the templates tab. When dis-
playing the composition of a template, if this setting is selected, the tree view is only expand to
one level. So, for example, you will see variables but not the trends associated with the vari-
ables. This is used to improve the display of the Application Architect's HMI when the template
contains many elements for which and the user does not need to see the entire expanded tree.
l Do not display detail of included templates for instances - This setting affects the instances tab.
If not selected when you click on a template instance, the inputs, input parameters and expres-
sions appear in the lower part of the screen for both the selected instance and any child objects
particularly those from included templates. If set, inputs, inputs parameters and expressions for
the included templates are not displayed. This is used to improve the display of the Application
Architect's HMI, particularly for templates including other templates that have many para-
meters to evaluate.

* If you enable these settings it may result in the generation of duplicate variables.

** If you select, and then at a later time, de-select the Skip reference calculations for generation
and then do a synchronization, it can be equivalent to a full synchronization if there are many prop-
erties affected.

Allow recursive property


The Allow recursive property setting should be used with caution as it can cause an infinite loop during gen-
eration. This is best explained by two examples.
Example 1 - The following can only be evaluated if Allow recursive property were enabled.
Parameter01: "=3 + 4"
Parameter02: "=Params["Parameter01"] + 7"

- 206 -
Example 2 - The following would cause an infinite loop if Allow recursive property is enabled.
Parameter01: "= Params ["Parameter02"] + 4 "
Parameter02: "= Params ["Parameter01"] + 7 "

Bilingualism and the Application Architect


If the Enable bilingual text strings setting, in Project Settings dialog, is ticked the Description property found
in many Application Architect configuration elements becomes bilingual. Show picture

The Description property is found in the following configuration elements.

l Instances tree
l Tree root
l Instances
l Topological elements
l Global parameters
l Templates
l Categories
l Templates (simple, inherited and included)
l Parameters
l Categories
l Parameters

If bilingual is used the Description must be entered text, it cannot be defined by an expression or
parameter.

Displaying thumbnails of the graphic elements


Use the View.Display thumbnails command in the menu to enable the display of any graphic elements con-
figured in the Application Architect as thumbnails. Show picture

By doing so, you will be able to graphically preview any mimic or symbol.

l In the Templates tab, for each template.


l In the Properties sub-tab, clicking on the Graphic elements node will display all configured
graphic elements as thumbnails. Show picture
Clicking on an individual element under the Graphic Elements node will display a thumbnail for
just that element.

- 207 -
l In the Documentation sub-tab, all graphics elements are always displayed except for mimics
that are only displayed as a thumbnail if they use a mimic template. Show picture

l In the Instances tab for each instance.


l Clicking on any single graphic element (symbol or mimic) will display the corresponding thumb-
nail. Show picture For mimics that have been generated the thumbnail is of the actual generated
mimic including any symbols. For mimics that have not been generated the thumbnail is of the

- 208 -
mimic template.

- 209 -
Working with templates

- 210 -
Templates Overview
Templates are the building blocks of the Application Architect. The mechanism of identifying the necessary
templates for an application is known as modeling. Templates can be saved in the Supervisor's libraries so
that they can be re-used in further applications.

What is a template?
A template is a model of a real world object (for example a pump or a HVAC unit) made up of the Super-
visor's configuration elements.
A template can contain the following configuration elements:

l Parameters - Named parameters, containing either an expression or a value.


l Included templates.
l Variables - Only the final part (leaf) of the variable name is specified, the remaining branches coming
from the topology of the template instantiation. Variables can include trends, events, thresholds,
alarm synthesis...
l Mimics - The name of the mimic that will contain any symbols that are instantiated.
l Symbols - Representing the template, and requiring instantiation in a mimic of higher level.
l Communication - SNMP Network, Devices and Polling Groups.
l File elements - An element that describes a file to be generated.
l File objects - An element that describes an entry in a file.

Template configuration includes a Documentation tab from where the developer can add a textual
explanation of its intended use, and where its dependencies are displayed.

Inherited template
An inherited template is one that has another template as its parent. The same parent template can have
any number of inherited templates. That is, there is a one to many relationship between parent and inher-
ited templates. When the inherited template is instantiated, the instance will contain both its elements, and
those of the parent template (if the parent template is instantiated it contains only its own elements).
Example - The LIGHT template has one variable called STATUS. The DIMMER LIGHT template has one vari-
able called LUX and is inherited from the LIGHT template. When the DIMMER LIGHT template is instantiated,
the instance will have both the STATUS and LUX variables.
The concept of inheritance allows the definition of one or more specialized templates sharing a com-
mon base.

Included template
An included template is an instance of a template that is embedded in another template. You can have one
or more templates embedded in the same template. That is, there is a many to one relationship between the
included and container templates. When the container template is instantiated, it has both its own elements
plus those of its embedded templates (if the embedded template is instantiated it contains only its own ele-
ments).
The concept of inclusion can produce complex templates by aggregating much simpler ones (like
building bricks).
Example - The OFFICE template has one variable called TEMPERATURE. The LIGHT template has one vari-
able called STATUS. The OFFICE template includes four (embedded) instantiations of the LIGHT template
(LIGHT_1, LIGHT_2 etc.). When the OFFICE template is instantiated, it will contain one TEMPERATURE vari-
able plus four instances of the STATUS variable (LIGHT_1.STATUS, LIGHT_2.STATUS etc.).

- 211 -
Configuring templates

- 212 -
How to Define a Template
1. In the right-hand pane of the Application Architect, select the Templates tab.
2. Using the templates configuration tree select the library and/or category in which the template will be
saved. (A category is always subordinate to one of the libraries.)
3. Select Add a template. A new template with a default name is created.
4. Edit the name to one appropriate to your application. You can either edit the name directly by clicking
on it in the configuration trees or edit it in the Name field in the properties grid. The name of a tem-
plate must be unique within a library (even if it is in a separate category).Show picture

5. Add a description using the Description field in the properties grid. The description is optional.
6. Configure the other properties (see below).

The name of the template is for reference only and does not affect the structure of the generated
application.

About the Can be instantiated property


If Can be instantiated is set to No there are several effects.

l The template cannot be directly instantiated although it can still be included in another template,
which can be instantiated or derived by inheritance.
l It does not appear in the menu or toolbars when adding an instance.
l Where the template has been configured with inherited templates, it does appear in the menus and
toolbars but is dimmed and cannot be selected. Show picture

Using the automatic naming properties


The Automatic Naming Properties can be used to modify the naming process when instantiating the tem-
plate. For example using the automatic properties configured as follows:

l Instance base name - LUMINAIRE


l Start value - 100
l Fixed digits - 3
l Step - 5

- 213 -
The first instance created would be named LUMINAIRE100, the second LUMINAIRE105, the third
LUMINAIRE110 etc. If the name already exists the Application Explorer automatically selects the next avail-
able in the series.

Adding a category
Categories are a convenient way to organize your templates. For example, you could create a category
called BMS in which you placed all templates relating to building management systems. Categories do not
have any impact on the structure of the application that will be generated, nor do they appear in an applic-
ation's folder structure in the Windows file explorer (unlike a library).

1. In the right pane of the Application Architect, select the Templates tab.
2. Using the templates configuration tree select the library and/or category under which the new cat-
egory will be saved.
3. Select Add a category. A new category with a default name is created.
4. Edit the name to one appropriate to you application. You can either edit the name directly by clicking
on it in the configuration trees or edit it in the Name field in the properties grid.
5. Add a description using the Description field in the properties grid. The description is optional.

- 214 -
Adding configuration elements to a template

- 215 -
Adding variables to a template

- 216 -
How to Add Variables to a Template
1. In the right pane of the Application Architect, select the Templates tab.
2. Using the templates configuration tree select the template to which the variable will be added.
3. Using the secondary navigation tree select the Configuration elements folder.
4. Select Add a variable followed by the type of variable to create. You can add a (I/O or internal) vari-
able or an HMI variable. Show picture A new variable with a default name is created.

5. Edit the name to one appropriate to your application. You can only edit the name directly by clicking
on it in the configuration tree. Show picture

6. Configure the variables properties (see below).

The name of the variable appears in the generated application as part of the generated variable's
name.

l If the name does not include a branch separator (full stop) then it becomes the final element
(leaf) of the variable's name.
l If the name includes one or more branch separators then it becomes the final branches and

- 217 -
leaf of the variable's name.

Configuring a variable's properties


To configure a variable's properties, select the variable in the secondary navigation tree and its properties
appear in the properties grid. Show picture The properties that are available are the same as those if you
were configuring variables singly using the traditional configuration tools. See the book about Variables for
information.

For information on property differentiation, see the book Differentiation.

Configuring a variable's advanced properties


By default, only the basic properties are displayed. To display the advanced properties, right click in the
properties grid and, from the context menu, select the Advanced command.

To display a variable's extended attributes set the Use extended attributes property to Yes.

Some properties are context sensitive. For example, the alarm level that only appears if a bit has
been configured as an alarm.

- 218 -
How to Add Associated Behavior to a Variable
This topic explains, in general terms, how to add associated behavior to a variable using the Application
Architect. For detailed information about associated behavior, see the variables help in the Application
Explorer book. Using the Application Architect, you can add the following behaviors.
Icon Behavior Reg Text Bit Alarm Description
Threshold Yes Set up to four bits when the value rises
above or falls below specified values.
Chrono Yes Measure the period for which a bit has
been set.
Counter Yes Count how many times a bit has been
set.
Alarm - Acknowledge Yes Send an acknowledgement trans-
mission.
Alarm - Program Yes Add a program action.
Alarm - Window Yes Add a window action.
Alarm - Masking by var Yes Mask an alarm with a bit.
Alarm - Masking by exp Yes Mask an alarm with an expression.
Event - Program Yes Yes Yes Yes Run a program on change of value.
Event - Email Yes Yes Yes Yes Send a message (Email or SMS) on
change of value.
Trend Yes Yes Yes Record the variable in an archive unit
for future replay through a Trend
Viewer.
Discrepancy Yes Configure discrepancy behavior com-
paring the value of the bit with another.
Only available if the Command property
is set to Yes.
IEC 104 outstation datapoint Yes Yes Yes Yes Define the variable instances as
exposed by an IEC 104 outstation.
Configured behaviors are shown in the secondary navigation tree subordinate to the variable with which
they are associated.
The behaviors are context sensitive. For example Alarm - masking is only available if a bit has been
configured as an alarm.

How to add associated behavior

1. In the right pane of the Application Architect, select the Templates tab.
2. Using the templates configuration tree select the template and then, using the secondary navigation
tree, select the variable.
3. Using the task bar select the behavior to be added. A new behavior with a default name is created.
4. Edit the name to one appropriate to your application. You can only edit the name directly by clicking
on it in the configuration tree.
5. Select the behavior and configure its properties using the properties grid. The properties that are avail-
able are the same as those available if you were configuring the behavior using the Application

- 219 -
Explorer. Show picture

Any variables referenced in the properties of behaviors must be defined elsewhere (for example the
EnableVarName in the above screenshot). They are not created as a result of appearing in the beha-
vior's configuration. (Except for thresholds - see below)
Before you add trending behavior, you must first configure the archive unit in which the recording
will take place.

Adding a threshold
Adding a threshold behavior requires a special mention as, unlike the other behaviors, it creates a number
of bit variables, one for each threshold. The process to add a threshold is similar to adding any other beha-
vior. However, once it is created the appearance in the Application Architect is different as the bit variables
set by the thresholds are displayed subordinate to the Thresholds behavior. The bit variables are created
with default names with the same format as if they were created using the Application Explorer.Show pic-

- 220 -
ture

To edit the properties of the threshold select it in the secondary navigation tree. The threshold properties
appear in the properties grid.
To edit the properties of any of the bits that form the threshold, select it in the secondary navigation tree
and its properties appear in the properties grid.

- 221 -
How to Add an Expression to a Variable
This topic explains how to add an expression to a variable using the Application Architect.

Expressions cannot be added to a Text variable.

How to add an expression

1. In the right pane of the Application Architect, select the Templates tab.
2. Using the templates configuration tree select the template and then, using the secondary navigation
tree, select the variable. This variable will contain the result of the expression.
3. Using the tool bar or context menu select the Expression task. An expression with a default name is
created.
4. Edit the name to one appropriate to your application. You can only edit the name directly by clicking
on it in the configuration tree.
5. Select the expression and configure its properties using the properties grid. The properties that are
available are the same as those available if you were configuring an expression using the Application
Explorer. The expression itself can be entered using a standard Expression dialog opened by clicking
the ellipsis button adjacent to the Expression property.Show picture

Any variables referenced in the expression must be defined elsewhere. They are not created as a res-
ult of appearing in the expression's configuration.

- 222 -
How to Add an Event to a Variable
This topic explains how to add an event to a variable using the Application Architect.

How to add an event

1. In the right pane of the Application Architect, select the Templates tab.
2. Using the templates configuration tree select the template and then, using the secondary navigation
tree, select the variable. This variable triggers the event.
3. From the tool bar or context menu select the Add event task followed by Program or E-mail as appro-
priate. An event of the selected type and with a default name is created. Show picture

4. Edit the name to one appropriate to your application. You can only edit the name directly by clicking
on it in the configuration tree.
5. Configure the event's properties (see below).

Configuring an events properties


To configure an event's properties, select the variable and event in the secondary navigation tree and its
properties appear in the properties grid. Show picture The properties that are available are the same as
those if you were configuring an event using the traditional configuration tools. See the book about Actions

- 223 -
for information.

For information on property differentiation, see the book Differentiation.

Configuring an event's advanced properties


Some of an event's properties are only available if the Advanced option is selected in the property grid. To
select the Advanced option, right click on any of the property names in the property grid and, from the con-
text menu, select Advanced.

- 224 -
How to Add Alarm Synthesis to a Variable
This topic explains how to add alarm synthesis to a variable using the Application Architect.

To add alarm synthesis to a register variable it must have the Command property set to Yes.

How to add an alarm synthesis

1. In the right pane of the Application Architect, select the Templates tab.
2. Using the templates configuration tree select the template and then, using the secondary navigation
tree, select a register variable. This variable will contain the result of the alarm synthesis.
3. Select the Alarm Synthesis task. A drop down list with the various alarm synthesis types is displayed.
Select the one appropriate to your requirements. A new alarm synthesis with a default name is cre-
ated. Show picture

4. Edit the name to one appropriate to your application. You can only edit the name directly by clicking
on it in the configuration tree.
5. Select the alarm synthesis and configure its properties using the properties grid. The properties are
the same as those available if you were configuring an alarm synthesis using the Application Explorer.

- 225 -
Show picture

- 226 -
How to Add Cyclic Actions to a Template
This topic explains how to add a cyclic action to a template using the Application Architect.

How to add a cyclic action to a template

1. In the right pane of the Application Architect, select the Templates tab.
2. Using the templates configuration tree select the template to which the cyclic action will be added.
3. Using the secondary navigation tree select the Configuration elements folder.
4. Select Add a cyclic. A new cyclic with a default name is created.
5. Edit the name to one appropriate to your application. You can only edit the name directly by clicking
on it in the configuration tree. Show picture

6. Configure the cyclic action's properties (see below).

Configuring a cyclic action's properties


To configure a cyclic action's properties, select the cyclic action in the secondary navigation tree and its
properties appear in the properties grid. Show picture The properties that are available are the same as
those if you were configuring a cyclic action using the traditional configuration tools. See the book about

- 227 -
Actions for information.

Configuring a cyclic action's advanced properties


There are no advanced properties for a cyclic action.

- 228 -
Adding Communication to a Template
The following communication elements can be configured in a template. They match the corresponding data
acquisition driver’s configuration items.

l SNMP Manager
l Network
l Unmanaged device
l SNMP device
l Polling group
l OPC Client
l OPC server
l OPC group
l XMLDA OPC server
l XMLDA OPC group
l IEC 60870-5-104 Client
l Network
l Device
l Sector
l DNP3 Client
l Network
l Device
l IEC 61850 Client
l Device
l Monitoring object
l BACnet Client
l Device
l Log object
l Notification class
l Calendar
l Schedule

How to add communication to a template


The principle to add any data acquisition channel is the same. You add the element representing the Network
(or Server in the case of OPC), followed by the sub-ordinate elements, Device, OPC Group etc. For detailed
information about specific communication properties, see the Data Acquisition book in the Application
Explorer help (The Application Explorer.Communication.Data Acquisition). The following explanation is for
SNMP communications - the others are similar.

1. Navigate to the supporting template and select the Communication Elements folder.
a. In the right pane of the Application Architect, select the Templates tab.
b. Using the templates configuration tree select the template to which the communication is to be
added.
c. Using the secondary navigation tree select the Configuration elements folder.

- 229 -
2. Create a new SNMP Network. Show picture

a. Select Add communication > SNMP > Add a network. A new SNMP Network with a default name
is created.
b. Edit the name to one appropriate to your application. You can only edit the name directly by
clicking on it in the configuration tree.
c. Configure the SNMP Network properties. Select the network in the secondary navigation tree
and its properties appear in the properties grid. The properties that are available are the same
as those if you were configuring the network using the traditional configuration tools.

- 230 -
3. Add an SNMP device to the template. Show picture

a. Using the secondary navigation tree select an existing SNMP Network within the
Configuration elements folder.
b. Select Add an SNMP device. A new SNMP Device with a default name is created.
c. Edit the name to one appropriate to your application. You can only edit the name directly by
clicking on it in the configuration tree.
d. Configure the SNMP Device properties. Select the device in the secondary navigation tree and
its properties appear in the properties grid. The properties that are available are the same as
those if you were configuring the device using the traditional configuration tools.

- 231 -
4. Create a new SNMP Polling Group. Show picture

a. Select Add communication > SNMP > Add a polling group. A new Polling Group with a default
name is created.
b. Edit the name to one appropriate to your application. You can only edit the name directly by
clicking on it in the configuration tree.
c. Configure the Polling Group. Select the network in the secondary navigation tree and its prop-
erties appear in the properties grid. The properties that are available are the same as those if
you were configuring the network using the traditional configuration tools.

An SNMP Device is always sub-ordinate to an SNMP Network. However, to allow for the possibility
where an SNMP Network has been configured outside of the Application Architect (using the Applic-
ation Explorer), an SNMP Device can be positioned so that it is not sub-ordinate to an SNMP Network
and instead the name of the previously configured SNMP Network is entered in its Network Name
property. (The Network Name property is not displayed if a device is positioned sub-ordinate to a
network.)

Polling Groups are independent of, and not sub-ordinate to, an SNMP Network.

- 232 -
Adding Associated Labels to a Template
This topic explains how to add associated labels to a template using the Application Architect. There are
three types of associated label

l Bit - Used to associate text strings with a bit variable's values.


l Alarm - Used to associate text strings with an alarm variable's values.
l Enumerated - Used to associate text strings with pre-defined discrete numeric or text values.

For an explanation of their use, see the help for the Application Explorer and HMI.

How to add a bit or alarm associated label to a template

1. Navigate to a template's Configuration elements folder.


a. In the right pane of the Application Architects select the Templates tab.
b. Using the templates configuration tree select the template to which the associated label will be
added.
c. Using the secondary navigation tree select the Configuration elements folder.
2. Add and configure the Associated label.
a. Select Add associated label and then the label type (Bit or Alarm). A new associated label with a
default name is created.
b. Edit the name to one appropriate to your application. You can only edit the name directly by
clicking on it in the configuration tree.
c. Configure the associated label's properties, in particular the series of custom labels you require.
Show picture

- 233 -
How to add an enumerated associated label to a template

1. Navigate to a template's Configuration elements folder.


2. Add and configure the Associated Label.
a. Select Add associated label and then the Enum label type. A new enumerated associated label
with a default name is created.
b. Edit the name to one appropriate to your application. You can only edit the name directly by
clicking on it in the configuration tree.
3. Populate the list of discrete values and their labels.
a. Right click the Enumerated Label and, from the context menu, select Add a label. A new label is
created.
b. Configure the label. You must at least configure the Enum value and Value (Value is a text
string).
c. Repeat a. and b. for all the enumerations that are required. Show picture

After they have been created, the order in which the labels are listed can be changed by right clicking and
selecting Up or Down from the context menu.

Configuring an associated label's advanced properties


There are no advanced properties for an associated label.

- 234 -
Adding an Archive Unit to a Template
This topic explains how to add an archive unit to a template using the Application Architect. There are five
types of archive unit.

l Database (HDS)
l Proprietary
l ODBC
l Free
l VCR

For an explanation of their use, see the help for the Application Explorer.

How to add an archive unit to a template

1. Navigate to a template's Configuration elements folder.


a. In the right pane of the Application Architect, select the Templates tab.
b. Using the templates configuration tree select the template to which the associated label will be
added.
c. Using the secondary navigation tree select the Configuration elements folder.
2. Add and configure the Archive Unit.
a. Select Add archive unit and then the archive unit type. A new archive unit with a default name is
created.
b. Edit the name to one appropriate to your application. You can only edit the name directly by
clicking on it in the configuration tree.

- 235 -
c. Configure the archive unit's properties. The properties that are available will depend on the type
of archive unit. Show picture

- 236 -
Adding a Log List to a Template
This topic explains how to add a Log List element to a template using the Application Architect.
A Log List element can either be added sub-ordinate to an Archive Unit element or as an independent ele-
ment. The type of Log List element must match the type of archive unit with which it will be used.
For an explanation of the use of Log Lists, see the help for the Application Explorer.

How to add a log filter to a template

1. Navigate to a template's Configuration elements folder.


a. In the right pane of the Application Architect, select the Templates tab.
b. Using the templates configuration tree select the template to which the associated label will be
added.
c. Using the secondary navigation tree select the Configuration elements folder.
2. Add and configure the Log List.
a. Select Add log list and then the log list type. A new log list with a default name is created.
b. Edit the name to one appropriate to your application. You can only edit the name directly by
clicking on it in the configuration tree.
c. Configure the log list's properties. The properties that are available will depend on the type. If
you configure a Log List as an independent element, the Archive Unit property must be con-
figured. This property does not appear if the Log list is sub-ordinate to an Archive Unit. Show pic-
ture

- 237 -
Adding files to a template

- 238 -
Using Files With Templates
Application developers often define and use files for specific purposes within the application. Typical
examples include SCADA Basic and the population of form controls. The purpose of this feature is to allow
the generation of such files from the Application Architect.
Files can be generated in one of three formats.

l Pre-defined - Text files with a format specifically for the form controls.
l XML - Text files with an XML compliant structure.
l Text - Text files with free format.

To configure and generate the files two configuration elements are used.

l File - Describing the file properties (name, format etc.) and an optional header and footer.
l File item - Describing data to include in the file and its format.

All file, and file item, configuration properties support, wherever possible, the use of expressions and para-
meters. Several properties of both the file and file item are specific to the chosen file format, others are
common. See the topics:
File and File Item common properties
File and File item properties specific to the pre-defined format
File and File item properties specific to the XML format
File and File item properties specific to the text format
To determine if a file item should be included in a file (or not) a tagging system is employed. See the topic
Controlling instantiation using tagging.

Changes to the Application Architect to assist with the support of file generation
The following changes were made, from version 12 of the Supervisor, to support file generation.

l Items are sorted alphabetically before generation. This has the effect of presenting generated ele-
ments in the same order as the display.
l The root of the application is now a topological element. It can be transformed into a template and
therefore contain any configuration element including files and file items.

- 239 -
File and File Item Common Properties
The following properties are common to all File and File Item objects independent of the file format in use.

File
Property Description Default value or example
Name The name of the element. File01, File02 etc.
Description The description of the element.
Format The type and format of the output file. Either Default: Predefined
Text, XML or Predefined.
Folder The location for the generated file. The loc- Default: The project's TP folder
ation can be an absolute or relative folder,
or one of the Supervisor's project folders.
File name The output file name without the extension.
Extension The output file extension. Default: TXT, XML or Nothing (dependent on
file format)
Tags to include Tags to control instantiation of file items.

File item
Property Description Default value or example
Name The name of the element. FileItem01, FileItem02 etc.
Description The description of the element.
Format The type and format of the output file. Either Default: Predefined if file item is not sub-
Text, XML or Predefined. ordinate to a file element, otherwise the
same as the format of the file element.
Tags to include Tags to control instantiation.

- 240 -
File and File Item Properties Specific to the Predefined Format
The following properties are for File and File Item objects when using the predefined format. This format is
to support the Supervisor's form controls: combo box, list box, tree view...
The tree-view is the most complex because it can manage the tree structure with hierarchy and behaves in a
similar manner to the XML format.
XML is a hierarchical format but it should not be confused with the hierarchy of the AA. While in the
AA there is a direct hierarchical link between parent and child (for example Building and Floor), this
does not imply a direct hierarchical link between an XML element positioned on Building and an XML
element positioned on Floor.

File
There are no file properties specific to the predefined format.

File item
Property Description Default value or example
UserData Example: =Me.Name
Text lang 1 Example: =Me.DescriptionLang0
Text lang 2 Example: =Me.DescriptionLang1
Default selection Default: 0
(0 or 1)
Child of The name of the parent element. If empty, it See note
will be the last hierarchically.

Animations and the tree view control


Only the following animations are currently supported by the file item when used with a tree view.

l Link open
l Send program
l Send bit
l Send register
l Send text
l Send macro
l Recipe

The animation is created as child of a file item object. If multiple animations are added to the same object,
they are processed in alphabetical order. Any animations added manually using the Supervisor's mimic
editor will be lost at the next generation.

- 241 -
File and File Item Properties Specifc to the XML Format
The following properties are for File and File Item objects when using the XML format.
XML is a hierarchical format but it should not be confused with the hierarchy of the AA. While in the
AA there is a direct hierarchical link between parent and child (for example Building and Floor), this
does not imply a direct hierarchical link between an XML element positioned on Building and an XML
element positioned on Floor.

File
Property Description Default value or example
Encoding Character encoding. Default: UTF8
UTF8, UTF16 BE, UTF16 LE
Specific instruc- Text multiline. Used to specify XML Schema,
tion line DTD, XSL… This property will be saved as a
metadata and will be written as is (without
any checking) after the header.
Root element Name of the root element. Default: <root>

File item
Property Description Default value or example
Element name Name of the XML element Example: Building
Element value Value of the XML element Example: =Me.Description
Child of The name of the parent element. If empty, it See notes.
will be the last hierarchically.

Attribute
Property Description Default value or example
Attribute name Name of the attribute Example: Id
Attribute value Value of the attribute Example: =TemplateInstance.Name
Attribute of The name of the parent element. If empty, it See notes.
will be the last hierarchically.

Notes on using the ChildOf property


The ChildOf property makes it possible to have grouping that does not depend on the topological hierarchy.
If using this property, it is strongly advised that all applicable items use it.

When using the ChildOf property, the Parent element must have a unique name within the file.

- 242 -
File and File Item Properties Specific to the Text Format
The following properties are for File and File Item objects when using the text format.

File
Property Description Default value or example
Encoding Character encoding. Default: ANSI
ANSI, UTF8 without BOM, UTF8, UTF16 BE,
UTF16 LE
Header Text for the beginning of the file before any Example: “= Title : Building list of Area ” +
items. Can be fixed or contain expressions me.Description
and / or parameters.
Footer Text for the end of the file after any items. Example: “This is the end of the file”
Can be fixed or contain expressions and / or
parameters.
Separator Field separator. Default: semicolon
None, semicolon, comma, tab, space.

File item
Property Description Default value or example
Text String to store in the file. can contain mul- Example: Me.Name + « , » + Me.description
tiple data (name + description for example)
Line position Position of the line with the file.
Intermediate, start lie, end line.

- 243 -
Adding graphics to a template

- 244 -
Using Graphics with Templates
Graphic elements can be added to a template so that when the application is generated instantiations of a
template produce not only the variables tree, but also the corresponding graphic elements.
You can add both mimics and symbols to a template. For example, a template representing a light may
require a symbol representing the light. However, a template representing an entire office, at the next level
up in the configuration tree, may require just a mimic representing the office, which would then be pop-
ulated with instantiations of the light symbol.
When you add a mimic to a template, one mimic is generated for each instantiation of the template. The
mimics are created using default settings although you can optionally select a mimic template and some
other properties such as the mimic title.
When you add a symbol to a template, the symbol must already exist in the Supervisor's libraries. The vari-
ables used in the symbol should match those of the template. Each instantiation of a template containing a
symbol will generate an instance of the symbol in one more mimic generated from a template higher up or
equal in the instances tree. As you may not want a symbol to appear in all mimics, a simple filter system
can be used to control symbol instantiation. See the topic Controlling Symbol Instantiation Using Tagging.
When using mimics and symbols in the Application Architect the mimic and symbol file formats, in
the HMI Options dialog, must be set to Ascii format.

- 245 -
How to add a Mimic to a Template
When you add a mimic to a template, one mimic is generated for each instantiation of the template. The
mimics are created using default settings unless you select a mimic template.

1. In the right-hand pane of the Application Architect, select the Templates tab.
2. Using the templates configuration tree select the template to which the mimic will be added.
3. Using the secondary navigation tree select the Graphic Objects folder.
4. Select Add mimic. A new mimic with a default name is created.
5. Edit the name to one appropriate to your application. You can only edit the name directly by clicking
on it in the configuration tree. Show picture

6. Configure the mimic properties.

Mimics generated by the Application Architect use the ASCII file format. If they are manually edited,
they must be saved in the same format or there will be errors the next time the Application Architect
is run.

Mimic properties
To configure a mimic's properties select the mimic in the secondary navigation tree and its properties
appear in the properties grid. Show picture

l Description - A description of the mimic. Only used within the Application Architect and has no effect
on the application itself. Optional

- 246 -
l Location - The library in which the mimic is to be saved selected from Local (Default), Common
(Default), Shared Libraries or Local Libraries. If Shared Libraries or Local Libraries is selected an addi-
tional property, Library, is displayed from where you can select the library name.
l Mimic title - The title that is to appear in the mimic title bar. Optional
l File extension - An optional file extension to be used when creating the mimic file from the mimic
name.
l Tags to include - See the topic Controlling Symbol Instantiation Using Tagging.
l Mimic template - The name of a mimic template which will be attached to all instantiations of the
mimic and hence define its look and feel. Optional.
l Use context branch - If set to Yes the context branch will be set to the branch of the template that con-
tains the mimic and the local branch will be set to the property of the symbol. No specific con-
catenation is done. Show picture If set to No generates the symbol without a context branch and the
local branch is set to that configured in the symbol. Show picture

How the mimic name is calculated


So as to ensure the mimic name uniqueness, mimic name is prefixed with the context branch with any
branch separator replaced by an underscore.

- 247 -
How to add a Symbol to a Template
When you add a symbol to a template, the symbol must already exist in the Supervisor's libraries. The vari-
ables used in the symbol should match those of the template. Each instantiation of a template containing a
symbol will generate an instance of the symbol in one or more mimics generated from an instance higher up
or equal in the instances tree. As you may not want a symbol to appear in all mimics, a simple filter system
can be used to control symbol instantiation. See the topics Controlling instantiation using tagging and Con-
trolling symbol instantiation using manual deselection.

1. In the right pane of the Application Architect, select the Templates tab.
2. Using the templates configuration tree select the template to which the mimic will be added.
3. Using the secondary navigation tree select the Graphic Objects folder.
4. Select Add symbol. A new symbol with a default name is created.
5. Edit the name to one appropriate to your application. You can only edit the name directly by clicking
on it in the configuration tree. Note that this name is only used internally by the Application Architect.
Show picture

6. Configure the symbol properties.

Configuring a symbol's properties


To configure a symbol's properties select the symbol in the secondary navigation tree and its properties
appear in the properties grid. Show picture

- 248 -
l Description - A description of the symbol. Only used within the Application Architect and has no effect
on the application itself. Optional
l Local branch - Local branch for the symbol. Used in conjunction with the mimic property Use context
branch to set the Local and Context branches in the symbol instantiation. See explanation in the topic
How to add a Mimic to a Template.
l Tag - See the topic Controlling Symbol Instantiation Using Tagging or Selection/De-selection.
l Layers - The drawing layers in which the symbol will be visible. By default, it will be visible in all lay-
ers.
l Symbol - The name of a symbol from the Supervisor's libraries. The ellipsis button adjacent to the
field displays the library browser from where the symbol can be selected.
l Visibility - The zoom range in which the symbol will be visible. By default, it will be visible for all zoom
ranges.
l Position X and Position Y - The symbols location within the mimic. If specified with overwrite the pos-
ition defined in the symbol.

Substitutions
The Substitutions dialog (opened from the ellipsis button adjacent to the Substitutions property) allows you
to substitute the variables defined in the symbol with others - typically those that will be generated by the
template. Show picture

If the symbol is modified and any of the substituted variables are removed, these will appear in a separate
list - Nonexistent variables - in the Substitutions dialog.

- 249 -
Adding Parameters to a Template
See the topic Defining a property by a parameter.

- 250 -
Using the Naming Rule Property
To ensure uniqueness of the names of generated elements, by default, the name includes branch segments
from all levels of the instantiation tree.
However, for some elements, this is not essential or desirable and the naming rule is relaxed allowing the
possibility to define shorter names, or even names generated using an expression. The way in which the
naming is implemented is defined by the Naming Rule property, which has the following options. Show pic-
ture

l Full branch - Generate the full name including all branch segments. This is the default.
l Short branch - Generate the name using the primary instance. That is the branch segment of the
instance containing the element that will be generated.
l Leaf only - Generate the name using only the name of the element as defined in the template.

Alternatively, you can enter an expression in the naming rule that will be used to generate the name.
If using a naming rule other than Full Branch is used, it is the user that must ensure the uniqueness
of the generated name.
The Naming Rule property is available for the following configuration elements.

l Cyclic
l Expressions
l Alarm synthesis
l Associated labels
l All communication objects
l Mimics

- 251 -
Template Documentation
The Templates' Documentation tab provides the opportunity for the developer to include information explain-
ing each template's design and intended use. It also provides a tree display of a template's dependencies
and thumbnails of any graphic elements it references. Show picture

You can add independent documentation items to each of the following elements of a template's con-
figuration.

l Template node
l Parameters node
l On each parameter
l Included templates node
l On each included template
l Configuration elements node
l Graphic elements node

Documenting a template is an essential part of its configuration to make it maintainable in the long
run and easily reusable. This is particularly true in collaborative environments when different people
from different teams will have to be able to share and understand how and why templates are
designed.

Documentation pane
The Documentation pane includes a RTF (Rich Text Format) editor to enter and format the text. The text will
typically contain what the template was designed for, its basic functionality and its dependencies on other
configuration elements. Text is saved in the template's configuration file along with the other template prop-
erties. Show picture

The Save to documentation button saves your modifications in memory. Documentation is only
saved to disk when you use the File.Save command.

Dependencies tree

- 252 -
The dependencies tree displays where the template is used, both where it has been included in other tem-
plates and its instances. Show picture

- 253 -
Included Templates
An included template is an instance of one template that has been included in another. One or several
instances of a template may be included. For example, the template SMALLOFFICE includes two instances of
the template LUM and once instance of the template AC. When the application is generated, any instantiation
of SMALLOFFICE will generate not only its own configuration objects but also two instantiations of objects
from template LUM and one instantiation of objects from template AC.

When to use and when not to use included templates


Included templates are most useful when the element represented by the template has a regular structure.
For example, you have a building with three small offices and one big office. The three small offices are
identical and each have two lights and an air conditioning unit. The big office has four lights and an air con-
ditioning unit. You could create a template for a light (LUM) and one for an air conditioning unit (AC).
Another template could be created (SMALLOFFICE) including two instantiations of LUM and one of AC, and a
final template (BIGOFFICE) with four instantiations of LUM and one of AC. Three instantiations of
SMALLOFFICE and one of BIGOFFICE would complete the configuration. Show picture

Included templates are not so useful if the application has an irregular structure. For example a building
with four different offices - they have different numbers of lights and one does not have an air conditioning
unit. In this case, you could not use multiple instantiations of a template that included the lights and air con-
ditioning unit. Instead, it would be necessary to create a template (OTHEROFFICE) with no embedded tem-
plates. Then the correct number of lights and air conditioning units would have to be added to each instance
of OTHEROFFICE during the instantiation process. Show picture

How to add an included template

- 254 -
1. In the right pane of the Application Architect, select the Templates tab.
2. Using the templates configuration tree select the template to which the embedded template will be
added.
3. Using the secondary navigation tree select the Included templates folder.
4. Select Add an included template
5. Double click the template to be included. A new instance will appear in the Included Templates folder.
6. Select the newly added template. Its properties will appear in the properties grid. Show picture
7. Edit the Name of the new instance to one appropriate to the application.
8. Edit the Branch of the new instance to one appropriate to the application.

- 255 -
Inherited Templates
An inherited template is one that has another template as its parent. When the application is generated, an
instantiation of the inherited template will generate not only its configuration elements, but also those of its
parent from which it is derived.
Adding an inherited template does not affect the parent template in any way. When the application is
generated, any instantiation of the parent template will only generate any configuration elements
that it contains.
If the parent template includes symbols, an instance of the inherited template will include those as
well as any of its own. This can be avoided by using tagging to control the symbol instantiation.

An example of an inherited template


The template LUM represents a simple light and contains one variable called ON. The template DIMMER is
inherited from LUM and contains one variable called LEVEL. An instantiation of DIMMER will produce two vari-
ables, ON and LEVEL. An instantiation of LUM will produce one variable, ON. Show picture

How to add an inherited template

1. In the right pane of the Application Architect, select the Templates tab.
2. Using the templates configuration tree select the template to which the included template will be
added.
3. Select Add an inherited template. A new template with a default name is created.
4. Select the new template and use the properties grid to change the Name to one appropriate to your
application. You can also add an optional Description.
5. Configure the template in the same way as any other adding variables, parameters etc.

- 256 -
Differentiation (Defining properties)

- 257 -
Differentiation Overview
By default the value for each property of an element is defined at the template level and is fixed - all
instances will have the same value for that property. In practice, some properties will require a different
value on a per-instance basis - a variable's Description for example.
Differentiation is a general name given to the various mechanisms by which the value of a property can be
different for each instantiation of a template.
There are several ways in which properties can be differentiated.

l Input - The property is defined as an Input and no value is given at the template level. The value must
be entered each time the template is instantiated. A typical use of an input parameter is for the range
(Min and Max) of a register variable. A property defined in this manner is marked with a small red
icon .
l Expression - The property value is defined by an expression that is evaluated each time the template
is instantiated. An expression can include fixed values and context sensitive operands such as Tem-
plate.Name. A typical use is to calculate a variable's Description property. A property defined in this
manner is marked with a small green icon .
l Parameter - The property value is defined by the value of a parameter. The same parameter can be
used any number of times in one or more templates. A property defined in this manner is marked with
a small blue icon . A named parameter can be one of two types.
l Input - The parameter behaves as a container for a value. It can have different values for each
instance of the template to which the parameter is attached.
l Evaluated - The parameter contains an expression that is evaluated for each instance of the tem-
plate to which the parameter is attached.
l Global parameter - Similar to a parameter except that a global parameter has a one to one link with a
specific type of property. For example, you could create a global parameter called gServerList that is
used, as a default, to generate the value whenever an object containing the property Server Station
List is instantiated. As with parameters, a global parameter can be of Input or Evaluated type.

The value of an input parameter that is associated with a template is to be entered for each instance
of this template and propagated to any sub-ordinate instances. It can however be overwritten at any
level by declaring it again and entering a different value.
The value of an Expression parameter is re-evaluated for each property in which it is used.

- 258 -
Defining a Property by an Input
When a property value is defined by an input no value, is entered. Instead, the value must be entered for
each instance of the template.

How to define a property by an input

1. Select the Templates tab.


2. Navigate the templates configuration tree and open the properties grid that contains the property to
be defined.
3. Right click on the property name (left column) and, from the pop-up menu, select Define by and Input.
The value of the property will change to {?} and it will be marked with a red icon . Show picture

How to enter a value for an input (at instantiation)

1. Select the Instances tab.


2. Navigate the instances configuration tree and select a template instance. The input are listed in the
lower right pane.
3. Select an input and enter the value. Show picture

- 259 -
Defining a Property by an Expression
When a property is defined by an expression, the property value is replaced by an expression that is eval-
uated for each instance of the template. An expression can include fixed values and context sensitive oper-
ands such as the instance name or its description.

How to define a property by an expression

1. Select the Templates tab.


2. Navigate the templates configuration tree and open the properties grid that contains the property to
be substituted.
3. Right click on the property name (left column) and, from the pop-up menu, select Define by and
Expression. The value of the property will change to the equality sign and it will be marked by a green
icon . Show picture

4. Click the down arrow button adjacent to the value field and enter the expression. See the topic How to
enter an expression.

When the template is instantiated, the value that is produced by the expression is specific to the prop-
erty for which it has been used and is not propagated anywhere else.

- 260 -
Defining a Property by a Parameter
A parameter is a container for a value that can be used instead of a fixed value in any object property. For
example, you could create a parameter called pMaximum to be used for a register variable's Maximum prop-
erty. There are two types of parameter, Input and Expression.

l Input - An input parameter allows setting a value at a certain level of the instantiation tree. The level
at which the value has to be set is defined by the template to which the input parameter is attached.
The value for an input parameter declared in the Parameters folder of a template is propagated to all
subordinate templates. For example, if a parameter is associated to the Building template, the value
will have to be entered for each Building instance, but will be propagated to subordinate floors and
offices of building instances. See the topic How the value of an input parameter is resolved.
l Expression - An expression parameter is a container for an expression. The expression is of the same
form that can be entered directly in a property. If you use a parameter to contain an expression, you
can re-use the same expression many times without having to re-enter it each time (you just enter
the name of the parameter instead). Unlike Input parameters, the value that is produced by the
expression is not propagated anywhere else, but is re-evaluated for each property where it is used.

How to create a parameter

1. Select the Parameters tab and navigate the parameters configuration tree to select the folder under
which the parameter is to be created.
2. Select Add a parameter followed by clicking the Enter key on the keyboard. A new parameter is cre-
ated with default properties.
3. Enter a name for the parameter. You can edit either the name in the parameters configuration tree or
the Name property in the properties grid. Show picture

4. Enter a Description for the parameter. The description is optional.


5. Select the Data type. See Using the Data type property below.
6. Select the Type from either Input or Expression. The configuration that is now required depends on
what you have selected.
a. For Input type. Enter a default value. This is the value that the parameter will have if it is not
assigned a specific value when it is associated with a template or an instance. Optional
b. For Expression type. Enter the expression that will define the value of the parameter. See the
topic How to enter an expression. You can also configure the Evaluation mode. See below.

Using the Data type property


The Data type property allows you to typecast a parameter for use in an expression. The result of this can
be illustrated using a simple example.
Expression =Params("Parameter01")+3. Parameter01 is given a value of 5.

- 261 -
l If Parameter01 were typecast as a string, the result would be 53. (The + operator is treated as con-
catenation.)
l If Parameter01 were typecast as an integer, the result would be 8. (The + operator is treated as addi-
tion.)

Using the Evaluation mode property


The Evaluation mode property determines the level within the instances tree topology at which the expres-
sion is evaluated.

l Once - The expression is calculated at the level in the topology at which it is assigned and the value is
propagated to all child elements. For example, the global parameter called gDomain, linked to the
Domain property and with the expression "Dom_ " + " Me.name", is assigned to an instance of the
Building template. The expression produces the value Dom_Building01 that is then used as the value
for the Domain of all variable instantiations sub-ordinate to the Building instance.
l On each instance - The parameter's expression is evaluated for each property where it is used. For
example, for the variable Bit01 the expression produces Dom_Bit01 that will be used as the Domain.
(The variable Register01 would have a Domain of Dom_Register01.)

Using the Must match property property


The Must match property property allows you to restrict the value of the Parameter so that it respects the
same rules that are applied to the property for which it will be used. To do this, Must match property is set
to Yes and two new properties, Element type and Property, become visible. Show picture

l Element type - Selects the configuration element type, for example Variable.
l Property - Selects a property within the selected element, for example Alarm Priority.

When you enter a value for the parameter (NOT the Default value), you are presented with the same value
entry dialog that you would see if you were entering the value directly into the original property. For
example if the parameter was used for Alarm Level, when instantiating the user can only enter a value in
the range 0 to 29.
This only works when the property where the parameter is independent - that is its range of values
does not depend on the value of another property.

l An example of a property that is not independent is the list of tables in a database, which is
dependent on the database.
l An example of a property that is independent is Domain, which will always have the same list
of values no matter what the context.

How to add an input parameter to a template


Adding an input parameter to the Parameters folder of a template defines at which level, within the template
hierarchy, that the parameter value is entered.

1. Select the Templates tab, navigate the templates configuration tree and select the template.
2. Select the Parameters folder.
3. Select Add a parameter. The menu will expand to display the available parameters. Select the para-
meter that is to be added.

For more information see the topic How the value of an input parameter is resolved.

How to define a property using an Input or Expression parameter

1. Select the Templates tab and navigate the templates configuration tree to open the properties grid
that contains the property to be substituted.

- 262 -
2. Right click on the property name (left column) and, from the pop-up menu, select Define by and then
Parameter and follow the menu levels to select the name of the parameter. The value of the property
will change to the name of the parameter.

The previous three properties that you selected are always repeated (in blue) at the top of the list
and can be used as shortcuts so that you do not have to drill down through the list every time.

- 263 -
Defining a property by a global parameter

- 264 -
How to Create a Global Parameter
A global parameter is a container for a value that is used instead of a fixed value for a specific property
type. There is a one to one relationship between each global parameter and a property type. For example,
you could create a global parameter called gDomain that is used whenever an object containing the property
Domain is instantiated. There are two types of global parameter, Input and Expression.

l Input - An input global parameter allows the setting of a value at a certain level of the instantiation
tree. The level at which the value is set is defined by the instantiation level to which the input para-
meter is attached. The value is propagated to all subordinate levels (subject to the scope). For
example, if a global parameter is associated with an instance of a building, the value will be propag-
ated to subordinate floors of the building and subordinate offices of the floors. See the topic How the
value of an input parameter is resolved.
l Expression - An expression global parameter is a container for an expression. The expression is of the
same form that can be entered directly in a property. When using a global parameter to contain an
expression there are two possible scenarios for calculating the value.
l The value is calculated only once at the instance on which the global setting has been asso-
ciated. This value is propagated to all sub-instances.
l The value is calculated for each instance of the property type with which it has been linked.

Creating a global parameter and configuring the general properties

1. Select the Parameters tab and navigate the parameters configuration tree to select the folder under
which the parameter is to be created.
2. Select Add a global parameter followed by clicking the Enter key on the keyboard. A new global para-
meter is created with default properties.
3. Enter a name for the parameter. You can either edit the name in the parameters configuration tree or
edit the Name property in the properties grid. Show picture

4. Enter a Description for the parameter. The description is optional.


5. Select the Data type. The Data type property allows you to typecast a parameter for use in an expres-
sion. See below.
6. Select the Type from either Input or Expression. The configuration that is now required depends on
what you have selected.
a. For Input type. Enter a default value. This is the value that the parameter will have if it is not
assigned a specific value when it is associated with a template or an instance. Optional.
b. For Expression type. Enter the expression that will define the value of the parameter. See the
topic How to enter an expression. You can also configure the Evaluation mode. See below.

Using the Data type property


The Data type property allows you to typecast a parameter for use in an expression. The result of this can
be illustrated using a simple example.

- 265 -
Expression =Params("Parameter01")+3. Parameter01 is given a value of 5.

l If Parameter01 were typecast as a string, the result would be 53. (The + operator is treated as con-
catenation.)
l If Parameter01 were typecast as an integer, the result would be 8. (The + operator is treated as addi-
tion.)

Using the Evaluation mode property


The Evaluation mode property determines the level within the instances tree topology at which the expres-
sion is evaluated.

l Once - The expression is calculated at the level in the topology at which it is assigned and the value is
distributed to all child elements. For example, the global parameter called gDomain, linked to the
Domain property and with the expression "Dom_ " + " Me.name", is assigned to an instance of the
Building template. The expression produces the value Dom_Building01 that is then used as the value
for the Domain of all variable instantiations sub-ordinate to the Building instance.
l On each instance - The expression is evaluated at every instantiation. For example, for the variable
Bit01 the expression produces Dom_Bit01 that will be used as the Domain. (The variable Register01
would have a Domain of Dom_Register01.)

Configuring the Impacted Elements


The properties of the Impacted Elements group are used to select the element and property with which the
parameter is associated, and the scope of the association.

l Overwrite mode - Selects the conditions under which the parameter is used as the property value.
l Only if nothing is defined - The value generated by the global parameter is only used if the
impacted property is not already defined. This is the default mode.
l Force - The value generated by the global parameter is always used.
l Element type - The configured element in which the property, that is to be defined by the global para-
meter, is used. For example Variable. A few properties (currently just Server Station List and Client
Station List) appear in more than one configuration element in which case you can select Any.
l Property - The property type to be defined by the global parameter.
l Selected elements - A filter, using the type and source of a variable, to select which of the elements
will be affected by the global parameter. Show picture

Only available for elements related to some aspect of variable configuration and therefore not the fol-
lowing:
l Cyclic
l Graphic elements (Mimics and symbols)
l SNMP (Network, Device and Polling Group)

Where a filter is for a child of a variable element (for example, a trend, an event, a threshold ...), the filter
is applied according to the properties of the parent variable. For example, a global parameter is created for
a property of a Trend. If the Selected elements filter is configured to select only alarms, then only the
Trends of alarm variables will take into account the global parameter.

- 266 -
Positioning a Global Parameter
The position of a global parameter determines where its value is used and, for an expression type, when it is
calculated. See the topic How to create a global parameter for further information. Global parameters can
be positioned on a particular template, or at any level in the instances tree.

How to add a global parameter to a template


When a global parameter is positioned at a template, all instances of the template are impacted by the para-
meter.

1. Select the Templates tab, navigate the templates configuration tree and select the template.
2. Select the Parameters folder.
3. Select Add a parameter. The menu will expand to display the available parameters. Select the global
parameter that is to be added.
4. Configure the properties of the added global parameter. Show picture

a. Enter a Description. By default, the Description of the global parameter is used but this can be
changed if required.
b. Enter the Value if it is an input type parameter. The value entered here is a default and can be
overwritten at each instantiation if necessary.
c. Select the Scope. A parameter with a Template scope is only active within the instances of the
template (and instances of included templates) but not for child instances (For example, active
for the Building but not for the Floors.). A parameter with a Topology scope is active within both
instances of the template and child instances. The scope type cannot be overwritten when instan-
tiating.

How to add a global parameter to the instances tree


A global parameter can be positioned at various levels in the tree topology.

l At the tree itself. Any global parameter here will apply to the entire application subject to its Selected
Element filter.
l At a topology element.
l At a template instance.
l At an included template.

1. Select the Instances tab and navigate to the node at which the global parameter is to be added.
2. Select the Parameters folder.
3. Select Add a global parameter. The menu will expand to display the available parameters. Select the
global parameter that is to be added.

- 267 -
4. Configure the properties of the added global parameter. Show picture

a. Enter a Description. Optional.


b. Enter the Value if it is an input type parameter.
c. Select the Scope. A parameter with a Template scope is only active within the instances of the
template (and instances of included templates) but not for child instances (For example, active
for the Building but not for the Floors.). A parameter with a Topology scope is active within both
instances of the template and child instances.

For all elements other than included templates, you can add a global parameter directly to the
instances tree. For an included template, you can only add a global parameter by selecting the
Global Parameters folder in the center right (Composition) pane.

The Impacted Elements group of properties are read only and inherited from the global parameter's
configuration

The icons used in the Instances Tree are modified when a global parameter is added.

When a global parameter is added to a template instance a plus sign is displayed, adjacent to the
global parameter icon, to indicate that it is independent of the template. If, at a later time, the same
global parameter is added to the template the independent parameter of the instance is auto-
matically linked to that of the template and the plus sign is removed.

- 268 -
Removing a Global Parameter
This topic applies to removing a global parameter itself, or removing an instance of a global para-
meter that has been added to a template or the instances tree.
When you remove a global parameter you are given the choice of resetting, or not, the values of the
impacted properties. The choice is made from a dialog that is displayed during the removal process. Show
picture

l Remove parameter immediately - The parameter is removed immediately. Properties that have been
affected by the parameter are not reset.
l Remove parameter after generation - The parameter is marked for removal. Properties that have
been affected by the parameter are reset to their default value at the next generation after which the
parameter is removed. Parameters that are marked for removal are marked with a modified icon.

Example
A global parameter, gDomain, affects the Domain property of all variables. The parameter is positioned on
the instances of the Office template giving variable's domain properties values such as OFFICE01, OFFICE02
etc.

l If you remove the property using Remove parameter immediately, the variable's keep the domain val-
ues OFFICE01, OFFICE02 etc. even if they are re-generated.
l If you remove the property using Remove parameter after generation the variable's domain values
are reset at the next generation followed by the removal of the parameter.

Restoring a parameter that has been marked for removal in error


If you have incorrectly marked a parameter for removal, you can stop the removal process by right clicking
the parameter and selecting Remove delete flag from the context menu. Show picture

- 269 -
Using the Do not overwrite default value Option
The Application Architect treats a property using its default value as undefined. Therefore if you create a
Global Parameter for a property, even if you select the overwrite mode as Only if value is undefined, if the
property is left set to its default value it will be overwritten by the global parameter.
To overcome this, in situations where you want some uses of a property to remain at the default value you
can use the option Do not overwrite default value available from the context menu displayed when right
clicking a property. Show picture

A good example of this is where you want to keep the Domain property empty on some variables while you
have created and applied a global parameter that affects Domain. An empty value, being the default for
Domain, will be overwritten by the global parameter. To keep it empty, you can explicitly configure that you
do not want to overwrite this default value on a per variable basis.
A property with the Do not overwrite default value option is indicated by a pen icon adjacent to the prop-
erty name.
To reset Do not overwrite default value on a property use the Reset command from the context menu.
If the Do not overwrite default value icon appears adjacent to a property for which it has not been
explicitly requested it is because the property has been restored to its default value by typing it in
rather than using the Reset command. To avoid this always use the Reset command to reset a prop-
erty to its default.

- 270 -
How to enter an expression

- 271 -
How to Enter an Expression
When entering an expression in a parameter, or directly in a property, you can either type in the expression
directly or use the Expression Editor dialog. The Expression Editor dialog is displayed by clicking the down
arrow button adjacent to the right of the field. Use of the Expression Editor dialog is recommended as it
includes keyword auto-completion that helps to prevent errors.

Expression syntax
An expression always starts with the equality operator (=) and will contain one or more of the following ele-
ments.

l String value - A string delimited by quotation marks. For example, "Tank level".
l Numeric value - For example 100.
l Operators - See the topic Function and Operator Reference.
l Functions - See the topic Function and Operator Reference.
l Excel reference - See the topic Referencing an Excel file in an expression.
l The value of another parameter - The syntax is Params("ParamName"). For example Params("pDo-
main").
l A property of a configuration element - The syntax is Navigation.Property. For example Tem-
plateInstance.Name. See below for the possible values of Navigation and Property.

Navigation is used to navigate through the template hierarchy to select the element that is to be ref-
erenced.
Property selects the required property of that element.

In expressions, some special characters needs to be prefixed by the backslash ("\") escape char-
acter so that they are interpreted correctly:

\\ for the backslash


\' for the simple quote
\" for the double quote
\t for the tab
\r for the carriage return
\n for the new line

For example to include a simple quote in an expression:


"Light " + Parent.Name + " doesn\'t work"

Using the Expression Editor dialog


The expression editor dialog includes keyword auto-completion.
Pressing the Ctrl+Space keys simultaneously displays a pop-up window containing a list of keywords includ-
ing functions and properties. If you type one or more characters on a line before using Ctrl+ Spacebar, the
list will automatically scroll to first relevant keyword. The required keyword selected using either the Enter
or Tab keys or by clicking with the mouse. Show picture

On typing a full stop, the editor checks the preceding text. If the text is identified as a navigation keyword,
the Property pop-up opens displaying a list of properties for that keyword. The required property is selected

- 272 -
using either the Enter or Tab keys or by clicking with the mouse. Show picture

The small tool in the toolbar can be used to select and enter the value of other parameters. Show picture

Navigation keywords
The navigation keywords are used to navigate within the instances or modeling tree to the element from
which you want to retrieve the property. Navigation keywords can be linked using the full stop character.
Keyword Description
Current item. This keyword is optional and if no positioning keyword is specified, this
Me
corresponds to the use of "Me".
Parent This keyword is used to go to an upper level in the hierarchy of items.
TemplateInstance OR This keyword will allow us to go back up to the root of a template instance, but never
Inst leave it, the template is included or not.
This keyword is a shortcut to be positioned directly on the root template, in modeling
Template OR Tpl
mode, but never leave it, the template is included or not.
This keyword is used to position on the highest root template, it means by going over
TopTemplateInstance
the included template. The highest root template is the template instantiated by the
OR TopInst
user.
TopTemplate OR This keyword is used to position on the highest root template, in modeling mode, it
TopTpl means by going over the included template.
Origin This keyword is used to position on the item used to instantiate the current item

Property keywords
Keyword Description
Name The name of the element.
ShortName The name of the element up to and including the primary template.
Fullname The name of the element up to and including the root of the tree.
Branch The branch of the element.
ShortBranch The branch of the element up to and including the primary template.
FullBranch The branch of the element up to and including the root of the tree.
Description The description of the element.
NamingRule The Naming Rule of the element
For more information on the keywords and examples of their use see the book Keyword examples.

- 273 -
Application Architect Expression Function and Operator Reference
Numeric functions
Syntax Return
Abs(num1) Absolute value of num1.
Atan(num1) Angle whose cosine is num1.
Asin(num1) Angle whose sine is num1.
Atan(num1) Angle whose tangent is num1.
Ceiling(num1) Smallest integer greater than or equal to num1
ChildCount( eCountType[, str1, See explanation below.
num1])
Cos(num1) Cosine of num1.
Exp(num1) E raised to power of num1.
Floor(num1) Largest integer less than or equal to num1.
IEEERemainder(num1, num2) Remainder resulting from the division of num1 by num2
Log(num1) Natural logarithm num1.
Log10(num1) Base 10 logarithm of num1.
NumIndex(str1[, bool1]) Returns an integer representing the right or left digits of the string
depending on the value of bool1. By default bool1 is false and the func-
tion returns the right index.
Max(num1, num2) Larger of two num1 and num2.
Min(num1, num2) Smaller of num1 and num2.
Pow(num1, num2) Num1 raised to the power of num2.
Round(num1, num2) Rounds num1 to the nearest integer or, if given) num2 decimal places.
Example: Round(3.222, 2) = 3.22
Sign(num1) Value indicating the sign num1. -1 if it is negative +1 if it is positive.
Sin(num1) Sine of the angle num1.
Sqrt(num1) Square root num1.
Tan(num1) Tangent of the angle num1
Truncate(num1) Integer part of num1

ChildCount parameters
eCountType
_ctInst All child instances -> filter is on the name
_ctInst_ByType All child instances -> filter is on the model type
All child embedded instances -> filter is on the
_ctEmbedded
name
All embedded instances -> filter is on the model
_ctEmbedded_ByType
type
All child embedded and instances -> filter is on
_ctInstAndEmbedded
the name
All child embedded and instances -> filter is on
_ctInstAndEmbedded_ByType
the model type
_ctVar All var
_ctVarBit All var type bit
_ctVarReg All var type register
_ctVarText All var type text
_ctMimic All mimics
_ctSymbol All symbols

Str1 Filter using a like syntax


* Matches any character set
? Matches any character

- 274 -
# Matches any number
[abc] Matches one character among {a; b; c}
[!abc] Matches one character other than {a; b; c}
[a-z] Matches one character between a and z
[!a-z] Matches a character not between a and z

Num1 Depth level for search


Nothing (or -1) Current instance including its embedded. Where
the default (Nothing) means all child instances.
Except for counters (_ctInst, _ctInst_ByType, _
ctEmbedded, _ctEmbedded_ByType, _ctIn-
stAndEmbedded, _ctInstAndEmbedded_ByType)
0 Current instance including its embedded
Nothing Number of child instances

String functions

For all functions, position 0 corresponds to the first character of the string.

Syntax Return
BranchSegment(num1[, bool1]) Same as NameSegment except that it works on the FullBranch string.
See below.
NameSegment(num1[, bool1]) Returns a string that contains the substring of the current FullName at
the given zero based position (num1) in string parameter that is delim-
ited by “.”. By default bool1 is false and the zero based position is left.
If bool1 is true the zero based position is right.
StrIndex(str1[, bool1]) Returns a string representing the right or left digits of the string
depending on the value of bool1. By default, bool1 is false and the
function returns the right index.
StrIndexOf(str1, str2) The index of the first occurrence of the string str2 in the str2.
Returns -1 if str2 is not found.
StrLastIndexOf(str1, str2) The index of the last occurrence of the string str2 in the str1.
Returns -1 if str2 is not found.
StrSubstring(str1, num1) Sub-string from the str1. The sub-string starts at the index position
provided by num1.
StrSubstring(str1, num1, num2) Sub-string from the str1. The sub-string starts at the index position
provided by num1 and has a length of num2.
StrRemove(str1, num1) Str1 minus the characters from the start position num1 to the end of
the string.
StrRemove(st1, num1, num2) Str1 minus the characters from the start position num1 to the end pos-
ition num2.
Example: StrRemove("abcdefgh", 3, 2) = "abcfgh"
StrLeft(str1, num1) The leftmost num1 characters of the string str1.
StrRight(str1, num1) The rightmost num1 characters of the string str1.
StrTrim(str1) Str1 with all leading and trailing white space removed.
StrTrim(str1, str2) Str1 with all leading and trailing occurrences of a set of characters spe-
cified in str2 removed.
Example: StrTrim(" *abcdefgh* ", " *a") = "bcdefgh"
StrTrimEnd(str1, str2) Str1 with all trailing occurrences of a set of characters specified in
str2 removed. For example, if str1 "123abc456xyz789" and str2 is
“123456789”, the TrimEnd function returns "123abc456xyz"
StrTrimStart(str1, str2) Str1 with all leading occurrences of a set of characters specified in
str2 removed
StrPadLeft(str1, num1, chr1) Left aligns the characters of str1, padding on the left with the char-
acter chr1 to the specified total length num1.

- 275 -
Example: StrPadLeft("abcdef" , 10 ,'x') = xxxxabcdef
StrPadRight(str1, num1, chr1) Right aligns the characters of str1, padding on the right with the char-
acter chr1 to the specified total length num1.
Example: StrPadRight("abcdef" , 10 ,'x') = abcdefxxxx
StrToUpper (str1) All characters of str1 as upper case.
StrToLower (str1) All characters of str1 as lower case.
StrReplace(str1, str2, str3) Str1 with all occurrences of str2 replaced by str3.
StrExtract(str1, chr1, num1) String that contains a substring of str1 from the position num1 delim-
ited by the characters chr1.
Example: StrExtract("My.name.is.John", ".",1) = “name”
Example: StrExtract("My.name.is.John", ".",2) = “is”
StrReverseExtract(str1, chr1, num1) String that contains a substring of str1 from the reverse position num1
delimited by the characters chr1.
Example: StrExtract("My.name.is.John", ".",1) = “is”
Example: StrExtract("My.name.is.John", ".",2) = “name”
StrCompare(str1, str2) Compares Str1 and Str2 and returns an integer that indicates their
relationship to one another in the sort order.
Example: StrCompare("str1", "str2") =-1
Example: StrCompare("str1", "STR1") =-1
Example: StrCompare("str1", "str1") =0
StrCompareNoCase(str1, str2) Compares Str1 and Str2, ignoring their case, and returns an integer
that indicates their relationship to one another in the sort order.
Example: StrCompareNoCase("str1", "STR1") =0
Example: StrCompareNoCase("str1", "str1") =0
StrEqual(Str1, Str2) Compares STR1 and Str2 and returns a boolean depending on their
equivalence.
Example: StrCompare("str1", "str2") =False
Example: StrCompare("str1", "STR1") =False
Example: StrCompare("str1", "str1") =True
StrEqualNoCase(Str1, Str2 Compares STR1 and Str2, ignoring their case, and returns a boolean
depending on their equivalence.
Example: StrEqualNoCase("str1", "str2") =False
Example: StrEqualNoCase("str1", "STR1") =true
Example: StrEqualNoCase("str1", "str1") =True

Operators
Expressions can be combined using operators. Where several operators are present, they are executed in a
strict precedence.
Precedence Syntax Operation
1 () Parenthesis
2 ! or NOT Logical NOT
2 ~ Bitwise NOT
3 & Bitwise AND
3 | Bitwise OR
3 ^ Bitwise XOR
3 << Left shift
3 >> Right shift
4 * Multiplication
4 / Division
4 % Modulus
5 + Addition (Or concatenation when used with strings)
5 - Subtraction
6 == Equality
6 = Equality

- 276 -
7 != Inequality
7 < Less than
7 <= Less than or equal
7 > Greater than
7 >= Greater than or equal
7 || or OR Logical OR
7 && or AND Logical AND

- 277 -
Referencing an Excel File in an Expression
The expression engine is able to access the cells of an Excel spreadsheet using the following syntax’s. To
use a spreadsheet in this manner a File Reference must be configured in the Application Explorer. The File
Reference configures how the file is managed and specifies the alias Name, which is used to reference the
spreadsheet in an expression.

General information
The supported Excel file formats are XLS, XLSX, XLSM. Cells are accessed using their numerical address.
Addresses such as “A1” and “A1:E5” are not supported. The cell index is 1 based.

Expressions
See section below for a detailed explanation of the parameters.
If the optional parameters oNullData, szSeparator or svHSeparator are not specified the defaults
from the File Reference are used.

=ExcelGetCell (szReference, szSheetname, iRow, iCol[, oNullData])


Return the contents of the specified cell.

=ExcelHTextJoin (szReference, szSheetname, iRow[, iFirstCol, iLastCol, szSeparator, oNullData, szEn-


closureChar])
Return a string containing the contents of a row cells. If the cell values include characters normally used as
cell separators, the szEnclosureChar parameter can be used to enclose the cell values. If iFirstCol is not set
or set to zero, the join starts at the first column. If the iLastCol is not set or set to zero, the join ends at the
last cell containing a value.

=ExcelVTextJoin (szReference, szSheetname, iCol[, iFirstRow, iLastRow, szSeparator, oNullData, szEn-


closureChar])
Return a string containing the contents of a column of cells. If the cell values include characters normally
used as cell separators, the szEnclosureChar parameter can be used to enclose the cell values. If iFirstRow
is not set or set to zero, the join starts at the first row. If the iLastRow is not set or set to zero, the join ends
at the last cell containing a value.

=ExcelTextJoin (szReference, szSheetname, iFirstCol, iFirstRow, iLastCol, iLastRow[, szHSeparator, szVSe-


parator, bVertical, oNullData, szEnclosureChar])
Return a string containing the contents of an area of cells. If the cell values include characters normally
used as cell separators, the szEnclosureChar parameter can be used to enclose the cell values.

=ExcelHLookup(szReference, szSheetname, iHLookupIndex, szHLookupValue, iHValueIndex[, iOptimise,


oNullData])
Searches a given row of an array and returns the value of the indicated cell. If iOptimise is set to 0 or not
specified, there is no optimization. If iOptimise is set to 1 then column optimization is used (the column
retains the same value).

=ExcelVLookup (szReference, szSheetname, iVLookupIndex, szVLookupValue, iVValueIndex[, iOptimise,


oNullData])
Searches a given column of an array and returns the value of the indicated cell. If iOptimise is set to 0 or not
specified, there is no optimization. If iOptimise is set to 1 then row optimization is used (the row retains the
same value).

=ExcelLookup(szReference, szSheetname, iHLookupIndex, szHLookupValue, iVLookupIndex, szVLook-


upValue[, iOptimise, oNullData])
Return the contents of a cell from an array by searching for a key value in a row and column. If iOptimise is

- 278 -
set to 0 or not specified, there is no optimization. If iOptimise is set to 1 then row optimization is used (the
row retains the same value). If iOptimise is set to 2 then column optimization is used (the coloumn retains
the same value).

=ExcelHMatch (szReference, szSheetname, iHLookupIndex, szHLookupValue)


Looks up a value in a row and returns the cell index or 0 if no match.

=ExcelVMatch (szReference, szSheetname, iVLookupIndex, szVLookupValue)


Looks up a value in a row and returns the cell index or 0 if no match.

Parameters
bVertical Area scan type.
0 or not specified = horizontal scan
1 = vertical scan
iCol Index of column to retrieve.
iFirstCol Index of the first column to retrieve.
iFirstRow Index of the first row to retrieve.
iHLookupIndex Index of the row to search.
iHValueIndex Index of the row for which the corresponding value is to be returned.
iLastCol Index of the last column to retrieve.
iLastRow Index of the last row to retrieve.
iOptimise Search optimization.
0 or not specified = no optimization
1 = column optimization (the col retains the same value)
iOptimise Search optimization. 0 or not specified = no optimization
iRow Index of the line to retrieve.
iVLookupIndex Index of the row / column to search.
iVValueIndex Index of the column for which the value is to be returned.
oNullData Optional parameter containing the value to return if a cell is empty. If not specified,
and a cell is empty, the characters from the Default substitution characters property
in the File Reference are used.
szEnclosureChar The character used to enclose cells’ values in the return string
szHLookupValue The value to search for.
svHSeparator Intercell separator. If not specified the character from Default row separator prop-
erty in the File Reference is used.
szReference Identifier (name) of the file
szSeparator Intercell separator. If not specified the character from Default column separator prop-
erty in the File Reference is used.
szSheetName The sheet name
szVLookupValue The value to search for
szVSeparator 0, “NULL”, “\””

Examples
See the topic Excel file Referencing Examples.

- 279 -
How the Value of an Input Parameter is Resolved

The manner in which Global Input Parameters and Input Parameters are resolved is different.

A reminder of the three steps of using an Input Parameter

1. Define the parameter.


2. Add the property to the Parameters folder of a template to define at which level the parameter value
is to be entered at instantiation time. A Global Input Parameter can also be added to a template
instance or the tree root.
3. Use the parameter to define the value of one or more properties.

The same parameter can be assigned to several templates on one or more levels. A different input
value can be entered for each use.

How the value of an Input Parameter is resolved


The value of an input parameter is resolved starting at the leaves of the instance tree moving through the
hierarchy to the root.
If no value is found in the tree for the parameter (instances or parent templates), the default value of the
parameter is used. A value is considered to be found if it was entered by the user and not left empty.
In practice, the easiest way to explain and understand how a parameter is resolved is by example. Consider
the following representation of an instance tree.

l BUILDING1 - An instance of the template BUILDING.


l FLOOR1 - An instance of the template FLOOR and subordinate to BUILDING1.
l LIGHT1 - An instance of the template LIGHT and subordinate to FLOOR1.
l CMD - A variable of the template LIGHT.

A parameter used in the variable CMD is resolved as follows.


If a value was entered for the parameter in the variable CMD then
Use this value
Else
If a value was entered for the parameter in the instance LIGHT1 then
Use this value
Else
If there is a default value for the parameter in the template LIGHT then
Use this value
Else
If a value was entered for the parameter in the instance FLOOR1 then
Use this value
Else
If there is a default value for the parameter in the template FLOOR then
Use this value
Else
If a value was entered for the parameter in the instance BUILDING1 then
Use this value
Else
If there is a default value for the parameter in the template BUILDING then
Use this value
Else
The value is unresolved.

How the value of a Global Input Parameter is resolved


For Global Input Parameters a value found in the tree is considered valid even if it is empty, and it replaces
the previous value. If it is empty, the default value is used. This mechanism can be used to limit the propaga-
tion of the value of a global parameter (in conjunction with the parameter's Impacted Elements con-
figuration).

- 280 -
In practice, the easiest way to explain and understand how a global parameter is resolved is by example.
Consider the following representation of an instance tree.

l INSTANCES ROOT.
Global parameter gParam positioned on INSTANCES ROOT with value of RootValue.
l BUILDING1 - An instance of the template BUILDING.
l FLOOR1 - An instance of the template FLOOR and subordinate to BUILDING1.
Global parameter gParam positioned on FLOOR1 with value of no input value.
l LIGHT1 - An instance of the template LIGHT and subordinate to FLOOR1.
l CMD - A variable of the template LIGHT.

The global parameter gParam is resolved as follows.

l Objects of BUILDING1 will take the value RootValue for gParam.


l Objects of FLOOR1 (and subsequent instances) will take the default value for gParam. (The parameter
gParam found at the instance FLOOR1 overwrites that defined at the BUILDING1 instance. If a value
was entered at FLOOR1, that value becomes the value of the parameter. If no value is entered then
the default value of the parameter is used.)

- 281 -
Instantiation

- 282 -
About Instantiation
Instantiation is the process of defining the instances tree from which your application will be generated. Dur-
ing the instantiation process, you will do some or all of the following.

l Add and name template instances


l Add and name multiple template instance
l Create and name topology elements
l Enter input values
l Create exceptions (after instantiation)

The instances tree


The instances tree has the same name as that of the project. You can change its properties from the prop-
erties grid. Show picture

l Description - A description of the root of the instances tree. Only used within the Application Architect
and has no effect on the application itself. Optional
l Branch - If configured, the Branch is added as a branch to the root of all configuration elements.
Unless you have a specific requirement (such as merging two or more applications), this should be left
at the default which is an empty string.

If the root node has a non-empty branch, it creates an explicit branch in the variables tree. If a
Description is entered, it is used as the branch description.

- 283 -
Instantiating Templates
The tree structure developed during template instantiation defines the final structure of the application, in
particular the variables tree. Much of the time spent using the Application Architect will be instantiating tem-
plates and managing the template instances and so it is worth understanding in detail the mechanisms
involved.
There are two methods to instantiate templates.

l From the context menu or main toolbar using Add instance.


l From the Templates toolbar in the left pane, using either drag and drop or double click.

How to instantiate a template using the Add instance task

1. In the right pane, select the Instances tab.


2. In the primary configuration tree, select the configuration root, instance or topology element under
which the new instance is to be placed.
3. Select Add instance. An expanding menu of available templates is displayed. Select the template to be
added. Show picture
4. An instance is inserted in the instances tree with default properties.

How to instantiate a template using the Add multiple instance task


The Add multiple instance task allows you to add several instances of a template in one action.

1. In the right pane, select the Instances tab.


2. In the primary configuration tree, select the configuration root, instance or topology element under
which the new instance is to be placed.
3. Select Add multiple instances. The Multiple Instances dialog opens. Show picture
4. Expand the templates tree in the left pane and select the template to instantiate.
5. Using the right pane configure the instances. The properties will be initially populated by the Auto-
matic naming properties of the template.

- 284 -
6. Click the Instantiate button to start instantiation.

How to instantiate a template using the Templates toolbar (left pane)

1. In the right pane, select the Instances tab.


2. In the instances tree, select the root, instance or topology element under which the new instance is to
be placed.
3. In the left pane select the Templates toolbar.
4. Expand the tree and locate the template to be instantiated. Double click the template.
5. A template instance is inserted in the instances tree with default properties.

This method permits inserting quickly a large amount of instances as soon as the default name fits.

You can also instantiate a template from the templates toolbar using drag and drop.

Displaying and changing the properties of a template instance


To display or change the properties of an instance, select it in the instances tree of the Instances tab. The
properties are displayed in the properties grid.

l Description - A description of the instance. Only used within the Application Architect and has no effect
on the application itself. Optional
l Name - The name of the instance. Only used within the Application Architect and has no effect on the
application itself.
l Branch - The branch that will be used during application generation for all configuration elements that
the instance contains.

The Branch property creates an explicit branch in the variables tree. If a Description is entered, it is
used as the branch description.

Managing properties defined by an input, expression or parameter


The properties grid in the lower part of the right pane displays a list of the properties, of the selected
instance, that have been defined by an input, expression or parameter. The grid is used to view and edit val-
ues. See the topic Managing properties defined by an input, expression or parameter for more information.

Managing instances
The following tasks are available to help you manage instances.

l You can move an instance and all elements subordinate to it using drag and drop.
l You can copy and paste an instance and all elements subordinate to it using the standard keyboard
shortcuts (Ctrl + C and Ctrl + V) or using Copy and Paste. Be careful when pasting that you first select
the element under which it is to be pasted.
l You can delete an instance and all elements subordinate to it using the Delete key or Remove. A con-
firmation dialog is always displayed when deleting.

- 285 -
Adding Topology Elements
A topology element can be considered similar to the instance of a template that has no configuration ele-
ments. Its purpose is to add structure to the Instances tree and, as a result, a branch to the variables tree.

How to add a topology element

1. In the right pane of the Application Architect, select the Instances tab.
2. Using the instances tree, select the node at which the topology element library will be added.
3. Select Add topology element. A new topology element with a default name is created.
4. Edit the name to one appropriate to your application. You can either edit the name directly by clicking
on it in the configuration trees or edit it in the Name field in the properties grid. Show picture

5. Add a description using the Description field in the properties grid. The description is optional.
6. Add a branch using the Branch field in the properties grid. The Branch is used for any variables when
generating any configuration elements from instances below the topology element.

Once you have added a topology element you can add instances and create topology elements sub-ordinate
to it in the same way that you would for an instance of a template.
The Branch property creates an explicit branch in the variables tree. If a Description is entered, it is
used as the branch description.
The name of the topology element is for reference only and does not affect the structure of the
application.

- 286 -
Managing Properties Defined by an Input, Expression or Parameter
The properties grid in the lower right pane of the Instances tab displays information about the properties of
an instance that are defined by an input, expression or parameter. Show picture

Only properties of elements of the selected instance (including any included templates) are listed. To
see parameters for any sub-ordinate instance you must select it from the configuration tree.
The information is listed according to how the property value and parameter were defined.

Expressions
Displays properties where an expression has been used. This includes properties where an expression has
been entered directly, or where the property value has been defined by a parameter or global parameter
containing an expression. The property is identified using the following syntax.
<Included template>.<Element name>.<Property name> - The reference to the included template only
appears if the object is in an included template. The values are read only.
For a global parameter, what is displayed depends on the setting of the Evaluation Mode property.

l Once - The result of the expression is displayed.


l On each instance - The expression itself is displayed.

Expressions are only displayed if advanced display mode has been enabled.

Inputs
Displays properties that have been defined as an input. The property is identified using the following syntax.
<Included template>.<Element name>.<Property name> - The reference to the included template only
appears if the object is in an included template.
To enter or change a value use the value field adjacent to the property name.

Input parameters
Displays parameters and global parameters, configured as input type, that have been added to the Para-
meters folder of the template and/or any included templates, and elements where a property has been
defined by an input parameter. The following syntax is used.
<Parameter name> - Where the parameter or global parameter has been added to the Parameters folder of
the template.
<Element name>.<Parameter name> - Where the parameter is used to define a property of the element.
<Included template>.<Parameter name> - Where the parameter has been added to the Parameters folder
of the included template.
<Included template>.<Element name>.<Parameter name> - Where the parameter is used to define a prop-
erty of the element of the included template.

- 287 -
To enter a value for an input parameter enter it in the value field adjacent to the parameter name. For fur-
ther information see the topic How the value of an Input Parameter is resolved.
In normal display mode, only parameters that have been added to the Parameters folder of a tem-
plate (or included template) are displayed.
In advanced display mode, parameters defining a specific property are also displayed.

Changing a value
You can change the value of an Input Parameter or Input by clicking in the value field and entering a new
value. If you change the value of a parameter associated at the template level it will be propagated to every-
where the parameter is used in that instance of the template. Values that have been changed are displayed
in a bold typeface. Values coming from the propagation of an input value at a higher level are displayed in a
regular typeface.

Expression to be checked
Displays a list of properties based on expressions whose evaluation triggered an error or require the user's
attention.

- 288 -
Creating Exceptions
When you are modeling your application, unless you are very fortunate, you will find some equipment that
does not conform to the rules.
For example, you have a building with four offices. You would like to represent all the offices with the same
template that has four lights, an air conditioner and a fire detector. But one office has a different air con-
ditioner with an extra variable, and another does not have an air conditioner at all. You can either create
three different templates or use one template, creating exceptions when it is instantiated.
There are a number of exceptions that you can create for an instance.

l Add an element. You can add a variable, mimic or symbol directly to an instance. You can add beha-
viors to a variable (trend, event, alarm synthesis etc.).
l Deselect an element. A deselected element is not generated. You can deselect a topology element, a
template instance, or any of the following elements of a template instance.
l Variable
l Variable behavior (trend, event, alarm synthesis etc.)
l Mimic
l Symbol
l Included template
If you deselect a topology element or template instance all subordinate elements are also deselected.
l You can change the value of a property defined by an input or input parameter.

By combining exceptions you can, for example, replace one element with another, or remove a complete
sub-assembly of a physical component by deselecting the corresponding included template.
Show picture

How to create an exception by adding an element to an instance

1. In the right pane, select the Instances tab.


2. Expand the instances tree and select the instance to which the element is to be added.
3. Expand the secondary configuration tree and select the included template or element to which the ele-
ment is to be added.
4. Select the appropriate task to add the element (Add variable, Add mimic or Add symbol if you are
adding to an instance, Add trend, Add event or Add alarm synthesis if you are adding to a variable).
The added element is marked by a small green addition sign.
5. Select the new element and the properties grid in the lower right of the instances tab will be updated
to display the available properties.

- 289 -
6. Configure the element using the properties list. Show picture

How to create an exception by deselecting an element from an instance

1. In the right pane, select the Instances tab.


2. Expand the instances tree and select the instance from which the element is to be deselected.
3. Expand the secondary configuration tree and select the element to be deselected.
4. Select Deselect. The deselected element is marked with a small red subtraction sign. Show picture
Next time the application is generated the element will be excluded.

As well as deselecting an instance’s element, you can also deselect an instance as a whole. This can
be useful when designing and tuning your templates.
You can also Deselect in the template tab to deselect an element from a template, deselecting the
element from all instances when the application is generated.

- 290 -
Controlling Instantiation Using Tagging
Tagging can be used with the following configuration elements.

l Symbols to be included with Mimics


l File Items to be included with Files.

Consider the following example for mimic and symbol generation


Templates have been created to represent the floor of a building (FLOOR), the offices within that floor
(OFFICE), and the lights within the office (LUM). LUM generates an instance of a symbol, OFFICE and FLOOR
both generate mimics. The template structure looks like this. Show picture

The requirement is that the symbol representing the lights (generated by LUM) is only displayed in the
mimic generated by OFFICE and not in the mimic generated by FLOOR. Without filtering, there will be two
instances of the light symbol in each of the OFFICE mimics and all six in the FLOOR mimic.

How to configure tagging


Tagging works by comparing the Tags property of the symbol with the Tags to include property of the mimic.
If there is a match then the symbol is instantiated in the mimic. Taking the above example, the Tags and
Tags to include properties for both the OFFICE mimic and the LUM symbol is fOffice. The Tags to include
property for the FLOOR mimic is fNone. As the Tags property of the symbol for LUM matches the one of the
mimic for OFFICE, the symbol for LUM will be instantiated in the mimic for OFFICE. As it does not match the
Tags to include property of the mimic for FLOOR, no instantiations of the symbol for LUM will be made in the
mimic for FLOOR. Show picture

Multiple tag strings can be defined by separating them with a semi-colon. For example, fOf-
fice;fStairwell;fEntrance;fMaintenance.
It allows generating multiple mimics with different symbols for different purpose.
For example, one may need to have a monitoring and control mimic for each floor, including sym-
bols designed for this purpose, and a maintenance mimic for each building, with another dedicated
graphic representation (another symbol), but for the exact same lighting devices (and therefore
defined in the same template).

- 291 -
Controlling Symbol Instantiation Using Manual Deselection
When you need several possible graphical representations of an object, you can include several symbols in
the corresponding template. The symbol that is generated is determined by de-selecting those that are not
required, either in the template itself or during instantiation. Commands to do this are available from the
right click context menu. Show picture

- 292 -
Transforming Objects in the Instances Tree
How to transform a topology element into an instance of a template
A topology element can be replaced by an instance of a template. The main properties (Description, Name
and Branch) of the topology element are retained.

1. In the right pane of the Application Architect, select the Instances tab.
2. Select a topology element and select Transform into a template instance.
3. Expand the menu of available templates and select the template to replace the topology element.

How to transform a topology element into an instance of a new template


A topology element can be converted into an instance of a new template. The main properties (Description,
Name and Branch) of the original topology element are retained.

1. In the right pane of the Application Architect, select the Instances tab.
2. Select a topology element and select Transform into a template instance.
3. Expand the menu and select the New template... command. The Templates Selector dialog is dis-
played
4. Select the parent for the new template.
5. Enter the template name and confirm with the OK command.

A topology element will need to be converted to an instance of a template if the application changes
so that configuration elements, graphics or parameters are required at that level.

Transforming the tree into template instance


It is possible to transform the top level of the instances tree, representing the project, into a template
instance. This makes it possible to place objects, such as File and File Item, at the highest level.

Transforming a template instance into a topology level


A template instance can be transformed into a topology level.

1. In the right pane of the Application Architect, select the Instances tab.
2. Select a template instance and select Transform into a topology level.

The entire contents of the template instance will be lost (objects, parameters, etc.).

- 293 -
Locating the Original Template or Parameter
The Locate Original task enables you to quickly navigate to the original of a template or parameter instance.
The task is available from the context menu displayed under the following conditions.

l From the Instances tab by right clicking on any of the following items in the secondary configuration
tree.
l Template instance. Show picture

l Included template.
l Global parameter positioned at the top of the tree, on a topology element or template instance.
l From the Templates tab by right clicking on any of the following items in the composition tree (right
pane).
l Parameter or global parameter. Show picture

l Included template.

- 294 -
Making Multiple Copies of a Configuration Object Using Copy and Paste
Depending on the object that has been copied, it is possible to paste multiple copies using the Multiple Paste
command. The Multiple paste command is available from the context menu only when a supported object
has been copied.

How to paste multiple copies of an object

1. Copy the object in the normal manner using Ctrl+C or the Copy command.
2. Right click the location in the configuration tree where the object is to be pasted and, from the context
menu, select Multiple paste. The Multiple Copy dialog opens. Show picture

3. Configure the multiple copies. The following rules are used if the name of the object to be copied ends
in a number.
l The number is removed to generate the Name prefix.
l The number plus one is used as the Start value.
l The number of numeric characters digits is used as the number of Fixed digits (else set to two).
4. Click Paste to generate the objects.

Objects supported by the Multiple Paste command

l Template instance
l Topology element
l All configuration objects
l Mimic
l Symbol
l Embedded template
l All configuration sub objects except those that can only be configured once.

Objects not supported by the Multiple Paste command


In general any configuration object that can only be configured once on a given parent is not supported my
multiple paste. This includes the following variable sub objects.

l Expression
l Chronometer
l Counter
l Alarm masking
l Discrepancy check
l Alarm acknowledge trace
l Alarm program associated action
l Alarm window associated action
l Alarm synthesis
l Threshold

- 295 -
Generation
Generation is the process of producing the Supervisor's configuration elements from the Application Archi-
tect. Generation can be started from the menu using the Task.Generate command, or by using the keystroke
F7.
The Application Architect generates the configuration in the Supervisor by using the Smart Generator Gen-
eric Import (although the Smart Generator itself is not visible during the process). First, an XML file is pro-
duced based on the information that has been entered, then the Application Architect starts the
synchronization phase of the Generic Import. During this phase, the Generic Import compares the XML file
with the previous version and, depending on the differences, creates, modifies or deletes elements of the
Supervisor's configuration.

The Generation Options dialog


The Generation Options dialog is displayed at the start of the generation process. Show picture

l Check consistency before generation - Execute the consistency checks before generation as con-
figured in the Application Architect Settings dialog. If the consistency checks fail, generation is aban-
doned.
l Generate graphical elements - Generate any graphical elements defined in the Application Architect.
l Fast synchronization - see below.
l Full synchronization - see below.

Full synchronization
The XML import file created by the Application Architect is compared with the previous file that was impor-
ted and all new elements are created and those that no longer exist are deleted.
All properties that have been given a value in the Application Architect are generated in the Supervisor's
application. Any of these properties that have been manually changed in the Supervisor since the previous
generation process will be overwritten. Properties that do not have a value or that do not exist in the Applic-
ation Architect are not affected.
Full synchronization can take several minutes as, even if you have only changed a single element, all ele-
ments are regenerated.

Fast synchronization
Fast synchronization is similar to full synchronization except that ONLY properties that have been changed
are updated. This is the normal mode that should be used for generation, as it is much quicker than full syn-
chronization.
The first time that you run generation, as there is no previous file to compare, all elements and prop-
erties are generated.
Properties left undefined in the Application Architect (e.g. left at their default value), are never
affected by the generation process whatever their type. It is so possible to define certain properties
via the Application Explorer or Smart Generators without having the Application Architect over-
writing them.

Generation results

- 296 -
The generation results can be displayed by clicking the >> button in the generation dialog. Results can be
sorted by clicking on the appropriate column header. Show picture

- 297 -
Examples

- 298 -
Keywords in an expression

- 299 -
Keywords Examples
The keywords used when referring to elements and properties of the Application Architect's structure in an
expression can be difficult to understand when first used. The following example illustrates their use.

Modeling
A template named VALVE (Description: Regulating valve) including the following elements. Show picture
Type Properties Sub elements
Variable Name:CMD
Variable Name: POSITION Behavior: TREND
Description: Valve Position

A template named PUMP including the following elements. Show picture


Type Properties Sub elements
Variable Name: FLOW Behavior: TREND
Included template Name: INLETVALVE (VALVE)
Branch: INLETVALVE
Description: Inlet valve
Included template Name: OUTLETVALVE (VALVE)
Branch: OUTLETVALVE
Description: Outlet valve

Instantiation
A topology element named AREA_WEST (branch AREA_W) with a single instantiation of PUMP named PUMP_
A (Branch: PA, Description: Pump A). Show picture

- 300 -
- 301 -
Example of the use of Navigation Keywords
The following example refers to the structure illustrated in the topic Keyword examples.

Me
Me is the current item. If no keyword is specified then it defaults to Me.

Parent
Points to one level up in the hierarchy.
Origin Keyword Refers to
PUMP_A.INLETVALVE.POSITION Parent PUMP_A.INLETVALVE
Parent.Parent PUMP_A
Parent.Parent.Parent AREA_WEST
PUMP_A.INLETVALVE.POSITION.TREND Parent INLETVALVE.POSITION
PUMP_A.FLOW Parent PUMP_A

The Parent keyword can be used to navigate in both the instance and modeling trees. In the mod-
eling tree, the template is the highest level. In the instance tree, when used in a template, this
keyword can navigate back to the instance of the template that contains it.

TemplateInstance
Points to the root of the template instance, but never above it.
Origin Keyword Refers to
PUMP_A.INLETVALVE.POSITION TemplateInstance PUMP_A.INLETVALVE
TemplateInstance.Parent PUMP_A
PUMP_A.INLETVALVE.POSITION.TREND TemplateInstance PUMP_A.INLETVALVE
PUMP_A.INLETVALVE TemplateInstance PUMP_A.INLETVALVE
PUMP_A TemplateInstance PUMP_A
PUMP_A.FLOW.TREND TemplateInstance PUMP_A

Template
Points directly to the root of the template, but never above it.
Origin Keyword Refers to
PUMP_A.INLETVALVE.POSITION Template VALVE
PUMP_A.OUTLETVALVE.POSITION Template VALVE

TopTemplateInstance
Points to the highest root template instance above any included template.
Origin Keyword Refers to
PUMP_A.INLETVALVE.POSITION TopTemplateInstance PUMP_A
TopTemplateInstance.Parent AREA_WEST
PUMP_A.INLETVALVE.POSITION.TREND TopTemplateInstance PUMP_A
PUMP_A.INLETVALVE TopTemplateInstance PUMP_A
PUMP_A TopTemplateInstance PUMP_A
PUMP_A.FLOW.TREND TopTemplateInstance PUMP_A

TopTemplate
Points to the highest root template above any included template.

- 302 -
Origin Keyword Refers to
PUMP_A.INLETVALVE.POSITION TopTemplate PUMP
TopTemplate.Parent ERROR - Unable to resolve
PUMP_A.INLETVALVE.POSITION.TREND TopTemplate PUMP
PUMP_A.INLETVALVE TopTemplate PUMP
PUMP_A TopTemplate PUMP
PUMP_A.FLOW.TREND TopTemplate PUMP

Origin
Points to the element from which it is instantiated.
Origin Keyword Refers to
PUMP_A.INLETVALVE.POSITION Origin POSITION (Variable)
Origin.Parent VALVE
Parent.Origin INLETVALVE (Included template)
PUMP_A.INLETVALVE.POSITION.TREND Origin TREND
PUMP_A.INLETVALVE Origin VALVE
PUMP_A Origin PUMP

- 303 -
Example of the use of Property Keywords
The following example uses the template structure illustrated in the topic Keyword examples.

Name
Return the last part of the element name.
Origin Expression Returns
PUMP_A.INLETVALVE.POSITION Name POSITION
Parent.Name INLETVLALVE
TemplateInstance.Name INLETVALVE
TopTemplateInstance.Name PUMP_A
Origin.Name POSITION
Template.Name VALVE

ShortName
Return the name of the element starting at the root template. That is, the template that has been instan-
tiated.
Origin Expression Returns
PUMP_A.INLETVALVE.POSITION ShortName PUMP_A.INLETVALVE.POSITION
Parent.ShortName PUMP_A.INLETVLALVE
TemplateInstance.ShortName PUMP_A.INLETVALVE
TopTemplateInstance.ShortName PUMP_A
ERROR: Unable to resolve
Origin.ShortName
ShortName.
ERROR: Unable to resolve
Template.ShortName
ShortName.

FullName
Return the name of the element starting at the root.
Origin Expression Returns
PUMP_A.INLETVALVE.POSITION FullName FACTORY.AREA_WEST.PUMP_A.
INLETVALVE.POSITION
Parent.FullName FACTORY.AREA_WEST.PUMP_
A.INLETVALVE
TemplateInstance.FullName FACTORY.AREA_WEST.PUMP_
A.INLETVALVE
TopTemplateInstance.FullName FACTORY.AREA_WEST.PUMP_A
Origin.FullName ERROR: Unable to resolve
FullName.
Template.FullName ERROR: Unable to resolve
FullName.

Branch
Return the last branch of the element. (Or the leaf as it is sometimes known.)
Origin Expression Returns
PUMP_A.INLETVALVE.POSITION Branch POSITION
Parent.Branch INLETVALVE
TemplateInstance.Branch INLETVALVE
TopTemplateInstance.Branch PA
Origin.Branch ERROR: Unable to resolve

- 304 -
Branch.
Template.Branch ERROR: Unable to resolve
Branch.

ShortBranch
Return the branch of the element starting at the root template. That is, the template that has been instan-
tiated.
Origin Expression Returns
PUMP_A.INLETVALVE.POSITION Branch PA.INLETVALVE.POSITION
Parent.Branch PA.INLETVALVE
TemplateInstance.Branch PA.INLETVALVE
TopTemplateInstance.Branch PA
Origin.Branch ERROR: Unable to resolve
ShortBranch.
Template.Branch ERROR: Unable to resolve
ShortBranch.

FullBranch
Return the branch of the element starting at the root.
Origin Expression Returns
PUMP_A.INLETVALVE.POSITION Branch AREA_
WEST.PA.INLETVALVE.POSITION
Parent.Branch AREA_WEST.PA.INLETVALVE
TemplateInstance.Branch AREA_WEST.PA.INLETVALVE
TopTemplateInstance.Branch AREA_WEST.PA
Origin.Branch ERROR: Unable to resolve
FullBranch.
Template.Branch ERROR: Unable to resolve
FullBranch.

Description
Return the description of the element. Except for instantiation of a template, all descriptions are configured
during modeling and so for simplicity it is the description of the element in modeling that is returned.
Origin Expression Returns
PUMP_A.INLETVALVE.POSITION Description Valve Position
Parent.Description Inlet Valve
TemplateInstance.Description Inlet Valve
TopTemplateInstance.Description Pump A
Origin.Description Valve Position
Template.Description Regulating Valve

- 305 -
Parameters

- 306 -
Parameter Examples
Example 1
The requirement is to configure the maximum temperature setting for all heating and ventilation units
(HVAC) in a number of buildings. The temperature setting must be the same for all HVAC units in a par-
ticular building, but it must be possible for it to be different for each building.
The solution is to create a parameter, pMaxCmd, to define the Command.Maximum property of a register
variable. We do not want to affect the Command.Maximum of all register variables, only those representing
the Temperature of an HVAC unit. The parameter can have a default value but it should be capable of having
a different value for each building if necessary.

1. Create the parameter pMaxCmd. Show picture

2. Define the Command.Maximum property of the register variables representing the HVAC temperature
using the parameter pMaxCmd. Show picture

- 307 -
3. Define where the parameter value will be set. In this case, it is at the Building template. Show picture

4. Enter the actual value for each building during the instantiation process. The value is propagated to
each sub-ordinate use of the parameter (the Command.Maximum property of the Temperature
register variable). Show picture

Example 2
The requirement is to use two standard display formats, long or short, for register variables in a project.
The choice is to be specific to each variable and does not depend on the variable structure or the topology.
The actual format for each of the two standards must be easily changed and propagated throughout the pro-
ject. Instead of entering the display format directly in each register's Format property, it will be defined by
two parameters pShortFormat and pLongFormat. The appropriate parameter is then used to define the
Format for each register. Changing the long or short format across the entire project can then be done by
changing the respective parameter and regenerating.

- 308 -
1. Create the parameters pShortFormat and pLongFormat. Show picture

2. Define the Format property of the register variables using the appropriate parameter. Show picture

- 309 -
Global Parameter Examples
Example 1
The requirement is to set the Domain property of all variables to a value based on their location within the
top-level branch of the topology. Show picture

The most efficient way to do this is to create a global parameter that is linked to the Domain property. By
positioning the global parameter at the building level in the topology, we can also take advantage of using
an expression to automatically calculate the Domain property using the name of the instance.

1. Create the global parameter gDomain. Show picture

2. Position the global parameter gDomain assigning it to the Building template. The value, which is the
result of the expression Me.Name, automatically takes the Name property of the Building template.
By configuring the assignation of the parameter to have a Topology scope, it applies not only to the
variables of the Building template but also to the variables of all sub-ordinate templates. Thus, all vari-
ables sub-ordinate to Building01 will have the Domain Building01, all variables sub-ordinate to Build-

- 310 -
ing02 will have the Domain Building02, etc. Show picture

3. When the Building template is instantiated, the resulting values of the gDomain parameter can be
seen. As its value is the result of an expression, it cannot be manually entered. Had the global para-
meter been an input type, the user could have entered a value (or overwritten it if it had a default
value).Show picture

Note that the icon representing the Building nodes has changed to indicate the use of a global para-
meter at this level.

Example 2
The requirement is to assign the same server list to all element instances. This can be simply achieved by
positioning, at the top level of the instantiation tree, a global parameter gServerList impacting the property
Server station list of all elements.

1. Create the global parameter gServerList. As the parameter is to affect all elements that have the
Server station list property, the Element type is set to Any. Show picture

- 311 -
2. The global parameter gServerList is added directly to the Instances Tree at the top level and using
Topology scope. All elements having the ServerList property take the value entered for the parameter
at the top level. Note the plus sign adjacent to the global parameter icon, which indicates the para-
meter has been added at the instances level, not at the temple level. Show picture

- 312 -
File and File Item

- 313 -
File Example (text format)
Example of text file generation using the Application Architect using the File and File Item configuration ele-
ments.

Desired output
My Header
Buiding01;Floor01;Floor02;Floor03
Buiding02;Floor01
Buiding03;Floor01;Floor02
My Footer

Topology

File configuration element on Project template

File Item configuration element on Building template

File Item configuration element on Floor template

- 314 -
File Example (XML format)
Example of XML file generation using the Application Architect using the File and File Item configuration ele-
ments.

Desired output
<?xml version="1.0" encoding="UTF-8"?>
-<Root>
-<BUILDING Id="Building01">
<FLOOR>FloorIncluded1</FLOOR>
<FLOOR>FloorIncluded2</FLOOR>
<FLOOR>Floor01</FLOOR>
<FLOOR>Floor02</FLOOR>
<FLOOR>Floor03</FLOOR>
</BUILDING>
-<BUILDING Id="Building02">
<FLOOR>FloorIncluded1</FLOOR>
<FLOOR>FloorIncluded2</FLOOR>
<FLOOR>Floor01</FLOOR>
<FLOOR>Floor02</FLOOR>
</BUILDING>
</Root>

Topology

Building template

Floor template

File configuration element on Project template

File Item and File Attribute configuration elements on Building template

- 315 -
File Item configuration element on Floor template

- 316 -
File Example (predefined format)
Example of predefined file generation using the Application Architect using the File and File Item con-
figuration elements. The result, in a tree view control, is as follows.

Desired output
ASCII32,05,08,2016,11:48,27
FONTS,BEGIN
FONTS,END
COLORS,BEGIN
COLORS,END
CI,BEGIN,0,"UData_Building01","Building01","Building01",0
CI,BEGIN,0,"UData_Floor01","Floor01","Floor01",0
CI,END
CI,BEGIN,0,"UData_Floor02","Floor02","Floor02",0
CI,END
CI,END
CI,BEGIN,0,"UData_Building02","Building02","Building02",0
CI,BEGIN,0,"UData_Floor01","Floor01","Floor01",0
CI,END
CI,BEGIN,0,"UData_Floor02","Floor02","Floor02",0
CI,END
CI,BEGIN,0,"UData_Floor03","Floor03","Floor03",0
CI,END
CI,END
CI,BEGIN,0,"UData_Building03","Building03","Building03",0
CI,BEGIN,0,"UData_Floor01","Floor01","Floor01",0
CI,END
CI,END

Topology

File configuration element on Project template

File Item configuration element on Building template

File Item configuration element on Floor template

- 317 -
- 318 -
Excel File Referencing Examples
Excel sheet used for the examples
1 2 3 4 5 6 7 8 9
1
2
3 Property01 Property02 Property03 Property04 Property05 Property06
4 Var01 V01-P01 V01-P02 V01-P03 V01-P04 V01-P05 V01-P06
5 Var02 V02-P01 V02-P02 V02-P03 V02-P04 V02-P05 V02-P06
6 Var03 V03-P01 V03-P02 V03-P03 V03-P04 V03-P05 V03-P06
7 Var04 V04-P01 V04-P02 V04-P03 V04-P04 V04-P05 V04-P06
8 Var05 V05-P01 V05-P02 V05-P03 V05-P04 V05-P05 V05-P06
9 Var06 V06-P01 V06-P02 V06-P03 V06-P04 V06-P05 V06-P06
10 Var07 V07-P01 V07-P02 V07-P03 V07-P04 V07-P05 V07-P06
11 Var08 V08-P01 V08-P02 V08-P03 V08-P04 V08-P05 V08-P06
12 Var09 V09-P01 V09-P02 V09-P03 V09-P04 V09-P05 V09-P06
13 Var10 V10-P01 V10-P02 V10-P03 V10-P04 V10-P05 V10-P06
14
15

Examples
Expression Result
=ExcelGetCell("FileRef01", "Sheet1", 7,
V04-P01
3)
=ExcelHTextJoin("FileRef01", "Sheet1", NULL:Var01:V01-P01:V01-P02:V01-P03:V01-P04:V01-P05:V01-
4) P06
=ExcelVTextJoin("FileRef01", "Sheet1",
Var01:Var02:Var03:Var04:Var05:Var06:Var07:Var08:Var09:Var10
2, 4)
=ExcelTextJoin("FileRef01", "Sheet1", 4, "V01-P01":"V01-P02":"V01-P03"\"V02-P01":"V02-P02":"V02-
3, 6, 5, ":", "\\", 0, "NULL", "\") P03"\"V03-P01":"V03-P02":"V03-P03"
=ExcelHLookup("FileRef01", "Sheet1",
V05-P02
"Property02", 8)
=ExcelVLookup("FileRef01", "Sheet1",
V03-P02
"Var03", 4)
=ExcelLookup("FileRef01", "Sheet1", 3,
V04-P02
"Property02", 2, "Var04", 1)
=ExcelHMatch("FileRef01", "Sheet1", 3,
4
"Property02")
=ExcelVmatch("FileRef01", "Sheet1", 2,
6
"Var03")

- 319 -
The Smart Generators

- 320 -
Azbil Harmonas

- 321 -
Overview of the Harmonas Smart Generator
The Smart Generator for Harmonas generates the Supervisor's project configuration by importing files from
the Azbil Harmonas RTC Editor tool. Some or all of the following configuration items are generated.

l OPC communication between the Supervisor and the Harmonas Controller.


l Natures (from the Harmonas Groups)
l Variables including their Domain and Nature, source (OPC) and trending (if applicable).
l Archive units.
l Project mimics.
l One or more empty graphic mimics.
l One or more trend mimics.
l One or more populated control group mimics.

Prerequisites for the import process


Before you are able to start an import process you must ensure that the following files are available.

l The Harmonas project - The files exported from the Azbil Harmonas RTC Editor tool, in IEC 61131-3
(ASCII) format.
l The Supervisor's global library (HAS) for Harmonas.
l The Supervisor's project template folder (TPL) for Harmonas.
l If a multi-station project is being generated, the network configuration including the station lists must
be manually configured before the Smart Generator is used.

About the Harmonas project


The Harmonas Smart Generator uses several files from the Harmonas project which it interprets to create
the Supervisor's project. The files that are required are from the IT and EB folders.
The following files are read from the IT folder.
File name Content
ENUM.CSV The associated labels configured by points.
NODE.CSV The list of devices declared in the RTC Editor.
TAG.CSV The list of all points declared in the RTC Editor.
UNIT.CSV The list of all units declared in the RTC Editor.
The files in the EB folder are created manually using the export feature of the RTC Editor. There is one file
for each point type, for each device. The file naming format is <Device name><Point type>.EB. For
example PL2011DI.EB.

About the HAS library and the template project


The Harmonas library (HAS) and the Harmonas project template (TPL) are not installed by default. To make
them available you must:

1. Copy the Harmonas Library folder (HAS) to the Supervisor's Global Library folder (LIB) found in the
Supervisor's root folder.
2. Open the LIBRARY.DAT file in the LIB folder with a text editor and check that there is an entry for the
HAS library and that it is not commented out. It should read:
LIBRARY,HAS,"HAS","HAS",1,0,0,0,1,1
You can manually enter it if is not there.
3. Copy the project template folder (TPL) to the Supervisor's root folder.

The template project is a sub-set of folders and files from an actual project. If, when creating a new project,
the Supervisor finds a template project it will copy the contents into the new project replacing the default
configuration.

About the HMI generated by the Harmonas SG


The HMI mimics and other graphic objects are designed for a display resolution of either XSGA (1280 x 1024
pixels) or Full HD (1920 x 1080 pixels). The required resolution is selected during the process of generating
the application using the Smart Generator.

- 322 -
The mimics that are generated are WebVue compliant, moveable (except for the menus), sizeable (except
for the Toolbox and menus) and have the property Scale mimic to fit window set.

Starting the Smart Generator


The Harmonas Smart Generator is started from the Smart Generator Management dialog using New Har-
monas Import command on the Task Toolbar. Show picture

Once you have selected the Harmonas project from which the import is to take its input, the Smart Gen-
erator guides you through the steps to configure the import. For details see the remaining topics in this
book.

- 323 -
The Harmonas HMI Library
The Smart Generator uses one of the Supervisor's global libraries, specially created for Harmonas, to
provide the components for the HMI.

l System mimics including the Toolbox.


l Process mimics.
l Graphic symbols representing each type of Harmonas Data Point.
l Function key settings.
l Programs scripts and other objects.

The folder in which the Harmonas library (HAS) is stored, is in the Supervisors global library folder LIB.
The Harmonas Library only become available after you apply the procedure described in the topic
Overview of the Harmonas Smart Generator.
The Supervisor's applications are bilingual - that is text strings can be configured with two altern-
ative texts representing two languages. You can dynamically switch between the languages at run
time. The text elements used in the Harmonas graphics and symbols use Japanese as the first lan-
guage and English as the second language.

Process mimics
Each process mimic is generated using a mimic template from the Harmonas library. You can generate mim-
ics of the following types:

l Trend mimics.
l Control Group mimics (populated using the Data Point symbols.
l Graphics mimics (free mimics).

Two mimic templates are available for each mimic type to support either the Full HD and XSGA screen res-
olutions. The Harmonas import will use one or the other according to the screen resolution selected in the
HMI Options.
Each mimic generated is also based on a mimic model from the Harmonas library.

Graphic symbols
Here are graphic symbols for each of the Harmonas data point types. They are automatically instantiated in
the Control Group Mimics as part of the Smart Generator's configuration process.
If you manually create any mimics and want to display a Data Point you should use the corresponding sym-
bol instantiated using the correct branch from the variables tree.

For further information


Details of the objects in the library are given in the Harmonas Library specification.

- 324 -
The Select Harmonas Project Dialog
The Select Harmonas Project dialog selects the folders from which the configuration is to be imported. Show
picture

1. Import name - Enter a reference name for the import. This will appear in the list of imports when the
Smart Generator is next opened.
2. Select or enter the name of the IT folder. The ellipsis button adjacent to the files opens a browser dia-
log.
3. Select or enter the name of the EB folder. The ellipsis button adjacent to the files opens a browser dia-
log.
4. Click Next to continue the import process.

The IT and EB folders are stored together and the default name of the EB folder is automatically
filled in when you complete the IT folder box.

The Options dialog

l Select the Options button to open the Options dialog. Show picture

l In the Export files encoding section, select the encoding of the input files. By default it matches the
encoding of the Supervisor's presentation language.
l In the Archive units format section, select Proprietary or SQL Server storage format for the des-
tination. The default setting is Proprietary.

- 325 -
The Harmonas Select Points Dialog
The Select Points dialog lets you select the Data Points that are to be imported. Show picture
The Data Points are displayed in the dialog in a tree structure as follows.
o Device (Controller)
o Point type
o Point instance

The Harmonas Units are not shown in the structure. Each imported Data Point will generate several vari-
ables in the Supervisor's project.

1. Select the items that are to be imported. To select all items in a device or point type, tick its box.
2. Right-click on a device node to open a pop-up menu to select the IP address of the device. This is man-
datory and used by the Supervisor's OPC configuration.
3. Using the same pop-up menu select the Server List and Client List. These are only required for multi-
station applications. Show picture

4. In the dialog, click Next to continue.

How the Supervisor's variable naming relates to the Harmonas configuration

l Variables related to a Harmonas Unit.


<Device name>.<Unit name>._COMMON.<__INFO or CONTROL_OFF or CONTROL_ON>
l Variables related to a Harmonas Unit and particular point instance.
<Device name>.<Unit name>.PARAMETERS.<Point instance>.<TEXT or VALUE or STATE>
l Variables not directly related to the Harmonas configuration but necessary to the operation of the
Supervisor's project are found under the GENERAL branch.

- 326 -
The Harmonas Import Type Dialog
The Harmonas Import Type dialog enables you to select whether the data points and/or HMI elements are to
be imported. Show picture

l Import data - Import only the configuration necessary to generate the Supervisor's variables tree.
l Import HMI- Import only the configuration necessary to generate and structure the Supervisor's mim-
ics (HMI).
l Full import - Import the configuration and generate both the variables tree and mimics (HMI).

After selecting the type of import:

l Click Next to continue.

The following dialog, Harmonas HMI Configuration, does not have a Back button and so you must be
sure that the configuration is correct before you click the Next button.

- 327 -
Import the HMI configuration

- 328 -
Harmonas HMI Configuration Dialog
The Harmonas HMI Configuration dialog allows you to configure the structure, and some of the contents, of
the mimics that form the HMI. The dialog contains three main areas.Show picture

l The Menu and Toolbar


l In the left pane, the Categories configuration tree. Right clicking on a node in the configuration tree
will display a context menu.
l In the right pane, the properties for the item selected in the Categories tree.

The Toolbar
Reading from left to right the tools are:
Expand all - to expand all nodes in the Categories tree.
Collapse all - to collapse all nodes in the Categories tree.
Add - to add a category.
Create categories from Harmonas units - to create one category for each Unit in the Harmonas con-
figuration.
Apply - to save the configuration.
Delete - to remove a category.
HMI options - see below.
The same tasks are also available from the menu bar.
After making any changes to the properties of an item in the categories tree, you must use Apply
before selecting another item or selecting Finish. Failure to do so will result in the loss of any
changes you have made.

The HMI Options dialog


The HMI Options dialog allows you to select the size of the mimics as either suitable for SXGA (1280 x 1024)
or Full HD (1920 x 1080). The main effect of this, other than changing the space available in the mimics, is
the number of Points that can be allocated to a Control Group.

l SXGA - Eight Points


l Full HD - Sixteen Points

If you change from FullHD to SXGA then the configuration of all Control Group mimics is reset. A con-
firmation dialog is displayed to allow you to cancel the action.

- 329 -
Harmonas HMI - Category Configuration
Use the Apply tool after you make changes to each category or they will be lost.

The mimics generated by the Harmonas Smart Generator are arranged in groups called Categories. Cat-
egories are displayed and selected at run-time using the Toolbox mimic. One Category is automatically gen-
erated for each Harmonas Unit. By default, each Category contains one Control Group (mimic), one Trend
(mimic), and one Graphic (process mimic).
The Category configuration is displayed in the right pane whenever a category is selected in the categories
tree. Show picture

Adding a category
To add a category, click in the category tree and then click the Add tool or the Add categories command on
the menu. A new category, with default properties, is added to the end of the category tree. A maximum of
1000 categories can be created. Category ID's are assigned automatically and cannot be edited.

Deleting a category
To delete a category, select it by clicking on it and then using the Delete tool or the Remove category com-
mand on the menu. The category and all its mimics are deleted.
The order in which categories appear in the menu mimics at run-time is the same as configured in
the categories tree. Be careful when adding or deleting categories as there are no specific tools to
re-order them.

Category properties
To change the properties of a category, select it in the category tree.

l Name - Language 1 - The identity of the category, if language 1 is selected, that will appear in the
menu mimics at run-time. Up to 20 characters or ideograms.
l Name - Language 2 - The identity of the category, if language 2 is selected, that will appear in the
menu mimics at run-time. Up to 20 characters or ideograms.
l Number of control groups - The number of control group mimics in the selected category. Range 1 to
1000.
l Number of graphics - The number of process mimics in the selected category. Range 1 to 1000
l Number of trends - The number of trend mimics in the selected category. Range 1 to 1000

If you reduce the number of nodes below that previously configured a dialog warns you that related
mimics will be deleted. Deleted mimics are moved to the project's sub folder \W\BAK.

- 330 -
Harmonas HMI - Control Group Configuration
Use the Apply tool after you make changes to each Control Group or they will be lost.

A control group (mimic) can contain up to 8 faceplates (in XSGA) or 16 faceplates (in Full HD) according to
the resolution you select. Each faceplate is represented by a particular symbol from the HAS library accord-
ing to the point type, and is instantiated in the mimic with an appropriate branch.
The Control Group configuration is displayed in the right pane whenever a control group is selected in the cat-
egories tree. The pane is subdivided into a representation of the mimic with positions for the faceplates, and
the points tree. The display of the points can be filtered according to point type using the Filter drop down
list box.Show picture

Adding points to the control group


There are two methods to add points to the control group.

1. Select the faceplate position. The selected position is highlighted.


2. Double click the point to be added in the points tree.

Or

1. Select the faceplate position. The selected position is highlighted.


2. Enter the name of the point in the text box above the highlighted faceplate. An auto-complete mech-
anism aids entering the name.

Whichever method is chosen the symbol corresponding to the point type is automatically selected although
this can only be seen after the mimic has been generated.

Removing points from the control group


To remove points from the control group double click in the corresponding faceplate position.

Other control group properties

l Name - Language 1 - The name of the control group. The name appears in the menu mimics at run-
time when language 1 is selected. Up to 20 characters or ideograms.
l Name - Language 2 - The name of the control group. The name appears in the menu mimics at run-
time when language 1 is selected. Up to 20 characters or ideograms.

How to add a new control group

1. In the Categories tree in the left pane, select the node representing the category to which the control
group is to be added.

- 331 -
2. From the menu use the command Control groups.Add control group. A new control group with default
properties will be created.

- 332 -
Harmonas HMI - Graphics Configuration
Use the Apply tool after you make changes to each Graphic or they will be lost.

The Smart Generator creates the graphic mimics but they are empty with the exception of a number of nav-
igation buttons (mimic links). The application developer must manually configure the graphics, after the
Smart Generator has completed, using the Supervisors standard drawing elements, animations and sym-
bols.
The Graphic configuration is displayed in the right pane whenever a graphic is selected in the categories
tree. Show picture

Configuring the mimic links


You can configure links with up to six other mimics, two each of control groups, graphics and trends, within
the category. For each link you can configure the following properties.

l Link - Tick box to enable or disable button.


l Name - A drop down list box containing the names of the control group/graphic/trend to be opened.
l Branch - The branch (if any) for the link.
l Title Language 1 - The text that will appear on the button at run-time if using language 1.
l Title Language 2 - The text that will appear on the button at run-time if using language 2.

By default the two links for graphics are populated with the previous and next mimic in the category.

Other graphic properties

l Name Language 1 - The name of the graphic. The name appears in the menu mimics at run-time when
language 1 is selected. Up to 20 characters or ideograms.
l Name Language 2 - The name of the graphic. The name appears in the menu mimics at run-time when
language 1 is selected. Up to 20 characters or ideograms.

How to add a new graphic

1. In the Categories tree in the left pane, select the node representing the category to which the graphic
is to be added.
2. From the menu use the command Graphics.Add graphics. A new graphic with default properties will be
created.

- 333 -
Harmonas HMI - Trend Configuration
Use the Apply tool after you make changes to each Trend or they will be lost.

The Smart Generator creates the trend mimics. Each mimic contains a single un-configured Trend Viewer.
The application developer must manually configure the Trend Viewer, after the Smart Generator has com-
pleted.
The Trend configuration is displayed in the right pane whenever a graphic is selected in the categories tree
Show picture

Trend mimic properties

l Name Language 1 - The name of the trend. The name appears in the menu mimics at run-time when
language 1 is selected. Up to 20 characters or ideograms.
l Name Language 2 - The name of the trend. The name appears in the menu mimics at run-time when
language 1 is selected. Up to 20 characters or ideograms.

How to add a new trend

1. In the Categories tree in the left pane, select the node representing the category to which the trend is
to be added.
2. From the menu use the command Trends.Add trends. A new trend with default properties will be cre-
ated.

- 334 -
Harmonas HMI at Run Time
Shortcuts
The following shortcut keys are available at run time.

l The Right Arrow key opens the next mimic in the current category.
l The Left Arrow key opens the previous mimic within the current category.
l The Ctrl+Space key combination closes all mimics except the Toolbox.
l The Space key opens Variables Selector.

The Toolbox
The controls are as follows.

Tool Description
1. Alarms counters All: All alarms
PRC: All Process alarms
SYS: all System alarms
2. Graphic, Trend, C Group Display the menu for selection of a Graphic, Trend or Control Group mimic
respectively.
3. Alarm Display the main alarm mimic.
4. System Display the System overview mimic.
5. User1, User2 Spare buttons for configuration by the developer.
6. PrevWindow Open the previous window (mimic).
7. ClrWindow Close all mimics except the Toolbar.
8. Event Viewer Open the Supervisor's Event Viewer.
9. Search tools l Combo: Select the Category to search
l Text field: Type the object to search.
l Button: Start search

Syntax:
obj:<ObjectID>Search any object matching that e.g. CGR_0001
cgr:<Control Group viewer name> e.g. MyControlGroup
gra:<Graphic viewer name>e.g. MyGraphic
trd:<Trend viewer name>e.g. MyTrend
pnt:<Point instance name> e.g. PDIC100_I
For all types of search, the action is to open the corresponding mimic.
10. Logon Button to logon and the name of the current User.
11. No Station number.
12. Alarm Ack Acknowledge the displayed alarm.
13. No beep Mute audible alarm.
14. Alarm viewer showing the most recent alarm only.

Control group mimic


The following screenshot shows a typical control group mimic as produced by the Smart Generator. Show
picture
If necessary Points can removed, or added by instantiating the appropriate symbol from the HAS symbol lib-
rary.

- 335 -
- 336 -
BACnet

- 337 -
Overview of the BACnet Smart Generator
The BACnet Smart Generator imports a BACnet configuration file from which it generates the following con-
figuration objects for the Supervisor.

l Variable definitions.
l BACnet communication network and devices.
l Mapping of variables to the properties of the BACnet device objects.

For a comprehensive list of configuration objects that can be generated see the topic BACnet Generated Con-
figuration Elements.
The following file types are supported.

l EDE (Engineering Data Exchange) - A file format promoted by the BIG-EU organization. (BACnet
Interest Group - Europe). The Smart Generator supports EDE version 2.2.
l IEIEJ - a file format specified by the Institute of Electrical Installation Engineers of Japan.

Backing up the Supervisor's variables configuration


Before you start the import process it is recommended that you back up the Supervisor's variables con-
figuration. Then, if you encounter any problems during the import process, it is simple to restore the pre-
vious version of the variables tree. Its configuration is stored in the file VAREXP.DAT in the project's C
folder. Before copying the file make sure that the Supervisor is shut down.

Starting the Smart Generator


The BACnet Smart Generator is started from the New BACnet import task in the Smart Generators Man-
agement dialog. Show picture

- 338 -
The Smart Generator guides you through the following steps. Show picture

1. Selecting the BACnet project type (EDE or IEIEJ). Select Project Type dialog
2. Selecting the project file from which the variables are to be imported. Select Project dialog
3. Variable branch management. Branch Management dialog
4. Selecting the devices and notification classes to be imported. Select Devices and Notification Classes
dialog
5. Selecting the import type from either Full or Custom. Select Import Type dialog
6. Selecting the variables to import if you selected Custom Import in the previous step. Select Variables
dialog
7. Generating the variables. Generate Variables dialog
8. Renaming any variables with invalid names. Rename Variables dialog
9. End

- 339 -
BACnet Select Project Type Dialog
The Select BACnet Project Type dialog is the first step of the Smart Generator BACnet wizard. It is used to
select the type of BACnet project file from which the variables are to be imported. You can select either an
EDE or IEIEJ (Institute of Electrical Engineers of Japan) formats. Show picture

Click Next to proceed to the next step Select Project Dialog.

- 340 -
BACnet Select Project Dialog
The Select BACnet Project dialog is the second step of the Smart Generator BACnet wizard. It is opened
from the Next button in the Select Project Type dialog. It is used to select the BACnet project file from which
the variables are imported and the configuration of the communication objects generated. Show picture

How to select the BACnet project file

1. Enter the full path and name of the file in the File name field. The ellipsis button adjacent to field
opens a standard File Select dialog.
2. To import a Units Definition File select the Include unit definition file property and enter the name of
the file. See below
3. Click the Advanced button if you need to change any of the advanced properties. See the Advanced
Options topic.
4. Click Next to proceed to the next step Branch Management dialog.

About the Units Definition file


A Units Definition file can be used to convert the BACnet units reference number into a meaningful string for
use in the Supervisor. The file must be in CSV format with each line containing a BACnet units number fol-
lowed by the string for the Supervisor. The character used as the separator must be the same as for the
BACnet project file.

Example of a Units Definition file


# Unit Texts Reference
#Code,Unit Text
"0","SqMeters"
"1","SqFeet"
"2","Milliamperes"
"3","Amperes"
"4","Ohms"
"5","Volts"
"6","Kilovolts"
"7","Megavolts"
"8","VoltAmperes"
"9","KilovoltAmperes"

- 341 -
BACnet Advanced Options Dialog
The Advanced Options dialog is opened from the Advanced button in the Select Project dialog of the BACnet
Smart Generator. Show picture

Click OK to confirm any changes the options and return to the Select Project dialog.

Networking list
The networking lists are used to control the behavior of the Supervisor's variables for multi-station projects.
You can configure the network lists for variables imported by the Smart Generator as follows.

1. Click on the Advanced button to open the Networking Lists dialog.


2. Use the first drop-down box to select the server list.
3. Use the second drop-down box to select the client list.
4. Select OK to return to the Select Project dialog.

The lists of servers and clients must already have been created in the Supervisor and the local sta-
tion must appear in the servers list.

Options tab
The Options tab allows you to view and change the equipment properties and enable the use of custom attrib-
utes. Show picture

l Network name - The name given to the BACnet network created in the Supervisor.
l CSV delimiter - The character used to delimit fields in the imported files. The default is the character
specified as list separator in your system’s Region and Language settings.
l CSV encoding - The character encoding used in the imported files. Clicking in the field displays a drop
down list box from where the selection is made. The default is the encoding for your system’s current
ANSI code page.
l Default write priority - The BACnet default write priority. The default is 16.

- 342 -
BACnet Branch Management Dialog
The Branches Management dialog is the third step of the Smart Generator BACnet wizard. It is opened from
the Next button in the Select Project dialog. It is used to modify variable names imported from the selected
file so that they conform to the Supervisor's hierarchical naming scheme.Show picture

How to modify the variable names imported from the file

1. To prefix all variable names with a branch or branches enter it into the Global branch field.
2. To structure variable names by inserting a branch separator after any number use Use numeric char-
acters as branch separator.
3. To structure variable names by replacing a particular character or character sequence with the branch
separator use Use character sequence as branch separator and enter the Sequence.
4. Click Next to proceed to the next step Devices and Notification Classes dialog.

Example of the use of the number separator

l WORD1DEFAULT1 becomes WORD1.DEFAULT1


l ZONE12PUMP1STOP becomes ZONE12.PUMP1.STOP

A branch separator is not added when there is a numeric character at the end of the name.

Example of the use of the character sequence separator


The underscore character has been selected as the branch separator.

l CONTROLROOM_COMMAND becomes CONTROLROOM.COMMAND


l CONTROLROOM_STATUS becomes CONTROLROOM.STATUS

A branch separator is not added when the character sequence is at the end of the name.

- 343 -
BACnet Devices and Notification Classes Dialog
The Devices and Notification Classes dialog is the fourth step of the Smart Generator BACnet wizard. It is
opened from the Next button in the Branches Management dialog. It is used to select those devices and noti-
fication classes that are to be imported. Show picture

The Replace button can be used to open a search and replace dialog which can be used to change the names
of the devices or notification classes.
Click Next to proceed to the next step Import Type dialog.

- 344 -
BACnet Import Type Dialog
The Import Variables dialog is the fifth step of the Smart Generator BACnet wizard. It is opened from the
Next button in the Devices and Notification Classes dialog. It is used to select either a Full Import or Custom
Import. At this stage of the wizard the import file has been read and the number of variables are displayed
in the dialog. Show picture

l To import all variables select Full Import and click the Next to proceed to the next step Generate Vari-
ables dialog.
l To view the available variables and select those to import select Custom Import and click Next to pro-
ceed to the next step Select Variables dialog.

- 345 -
BACnet Select Variables Dialog
The Select Variables dialog is the sixth step of the Smart Generator BACnet wizard. It is opened from the
Next button in the Import Variables dialog. It is used to display and select those variables from the symbol
file that are to be imported.Show picture

Filtering the variables


The variables that appear in the Available Items list can be filtered using the following criteria.

l Using the Bit, Register and Text tick boxes to select the type of variable (as it will be converted to in
the Supervisor).
l Using the name filter. Wildcards * (matches any string) and ? (matches a single character) are sup-
ported. For example:
l 'Pump1' would only match a variable called 'Pump1'.
l 'Pump?' would match 'Pump1' or 'Pump2' etc. but not 'Pump10'.
l 'Pump*' would match 'Pump1', 'Pump2' and 'Pump10' but also 'Pumpkin'.

The filter is applied using the Apply button.

Selecting the variables


The Available Items list supports the standard Window's selection methods (Click, Shift + Click etc.). Selec-
ted variables are moved to the Selected Items list using the -> button. The Selected Items list supports the
same selection methods. Variables can be removed by selecting them and using the <- button. Click Next to
proceed to the next step Generate Variables dialog.

- 346 -
BACnet Generate Variables Dialog
The Generate Variables dialog is the final step of the Smart Generator BACnet wizard. It is opened from the
Next button in the Select Variables dialog. It is used to review and edit the names of the variables before
they are generated. Show picture

Why are some variables displayed in red?


A variable name is displayed in red if is invalid for use in the Supervisor.

l The length of the variable name exceeds 255 characters.


l The number of branches exceeds 12.
l The name of any element (branch or final leaf) is empty (length =0) or exceeds 255 characters.
l The name of any element contains a character that is not a letter, a digit or the underscore.
l The variable name is duplicated.

How to display and change the properties of a single variable


You can display and change the properties of a single variable using the Variable Properties dialog which is
displayed by double clicking on the variable's name. You can use it to change the variable name. Show pic-
ture

How to select and change the name of some or all variables, or all invalid variables

l Click the Rename Invalid button to open the Rename Variable dialog with a list of all variables with
invalid names.
l Click the Rename Selected button to open the Rename Variable dialog with a list of selected variables.

Generating the variables


Once the variables have their final names they can be generated in the Supervisor by clicking the Finish but-
ton. During the generation process a dialog is displayed indicating the progress.
Any variables in the Smart Generator that already exist in the Supervisor are discarded. The cor-
responding variables in the Supervisor are not overwritten or updated in any way.
Any variables appearing in red when the Finish button is clicked will not be imported.

- 347 -
BACnet Rename Variables Dialog
The Rename Variables dialog is opened from the Import Variables dialog or Select Variables dialog and is
used to rename variables before generation. Show picture

The left hand column contains the full name of each variable. The other columns show the name of the vari-
able separated into branches. The final column on the right hand side displays the number of characters in
the name. Variables that appear in red have a name that is invalid for use in the Supervisor and must be
modified before they can be imported.
Using the Rename Variables dialog you can:

l Edit the name of a single variable.


l Delete one or more branches of one or several variables.
l Merge two or more branches of one or several variables.
l Search and replace text in one or more branches for one or several variables.

When you have finished editing the variable names click OK to confirm or Cancel to cancel the editing. In
either case you will return to the Generate Variables dialog.

How to edit the name of a single variable


To edit the name of a single variable, double-click on its full name in the left hand column of the list. The
Edit Name dialog will be displayed from where you can edit and change the name.

How to delete one or more branches

1. Select one or more variables in the left column. You can use Shift+click to select a group of adjacent
variables or Ctrl+ click to select several individual variables. Ctrl+a selects all of the variables.
2. Select the branch or branches to be deleted by clicking on the column header.
3. Click the Delete button to delete the branches from the variable name.

How to merge one or more branches

1. Select one or more variables in the left column. You can use Shift+click to select a group of adjacent
variables or Ctrl+ click to select several individual variables. Ctrl+a selects all of the variables.
2. Select two or more branches that are to be merged by clicking on the column header. You can only
merge consecutive branches.
3. Click the Merge button to delete the branches from the variable name.

How to search and replace text in one or more branches

1. Select the variables and branches to be searched as above.


2. Click the Replace button to open the Replace dialog.

- 348 -
3. Enter the strings to search and replace.
4. Click OK to perform the search. Only text in the selected variables and branches is modified.

- 349 -
BACnet Generated Configuration Elements
The Supervisor's configuration elements are generated from the BACnet configuration elements as follows.

BACnet network
Configuration element and/or property in the
From input file From user input
Supervisor
Network name BACnet network
Server list Network Servers list

BACnet device (EDE file)


Configuration element or property in the Super-
From input file From user input
visor
obj-name of device-obj Device name
objdeviceinstance of device-
Device ID
obj
description of device-obj Device description

Variables (EDE file)


Configuration element or property in the Super-
From input file From user input
visor
obj-name Name
objdeviceinstance and obj- Mapping
instance (Keyname)
description Title
obj-type Type
commandable / settable Command ("Y"/"N")
min-present-value Minimum
max-present-value Maximum
vendor-specific-deadband Deadband
unit-code (reference to unit Units
file)
supports COV COV setting ("Y" / "N")
Domain Domain
Nature Nature
Server List Server List
Client List Client List

Supported object types (obj-type)


Code Object type
0 Analog input
1 Analog output
2 Analog value
3 Binary input
4 Binary output
5 Binary value
6 Calendar
7 Command
11 Group
12 Loop
13 Multistate input
14 Multistate output
15 Notification class*
17 Schedule

- 350 -
18 Averaging
19 Multistate value
23 Accumulator
24 Pulse converter

* Notification class is treated in a special manner. See the help for the Supervisor's BACnet driver.

An EDE import references the Keynames in the EDE file instead of directly mapping the address on
the device. The EDE files are copied into the TP project folder.

BACnet device (IEIEJ file)


Configuration element or property in the Super-
From input file From user input
visor
Filename Device name
Filename Device ID

Variables (IEIEJ file)


Configuration element or property in the Super-
From input file From user input
visor
Object-name (Code 77) Name
Object-Instance (Code -1) Mapping
Object-Type (Code 79) Title
Minimum-Value (Code 69) Type
Maximum-Value (Code 65) Command ("Y"/"N")
Unit-Name (Code 117) Units
Domain Domain
Nature Nature
Server List Server List
Client List Client List

- 351 -
Beckhoff TwinCAT

- 352 -
Overview of the TwinCAT Smart Generator
The Beckoff TwinCAT Smart Generator imports a TwinCAT project file, *.tpy, from which it generates the fol-
lowing configuration objects for the Supervisor.

l Variable definitions.
l Communication network (Ethernet TwinCAT), node and frames.
l TwinCAT Variable Definition files. As the addressing in TwinCAT frames is alias (name) based, and
those in the Supervisor are address based, an additional file is generated for each frame which
provides a link between the Twincat alias and the Supervisor's address.
l Links between the variables and the communication frames.

About the TwinCAT Project File


The TwinCAT project file *.tpy as generated by the TwinCAT programming environment versions 2.11, 3.0
and 3.1 is supported.
For 3.x versions of TwinCAT only the legacy IEC-61131 standard is supported. The latest additions to the
TwinCAT 3.x standard as well as sophisticated data types including OOP, C++, C and Simulink cannot be
taken from this file. TwinCAT 3.x instead offers a different symbol file with the extension *.tmc.

Supported data types and limitations


The TwinCAT Smart Generator supports both standard and complex data types. For a list of the supported
data types see the topic TwinCAT Variable Types.

Custom attributes
The TwinCAT Smart generator allows the definition of custom attributes for data point symbols in the *.tpy
file. The information is stored in the comment field of the TwinCAT symbol which is used for passing meta
data from TwinCAT to 3rd party systems. See the topic TwinCAT Custom Attributes.

Backing up the Supervisor's variables configuration


Before you start the import process it is recommended that you back up the Supervisor's variables con-
figuration. Then, if you encounter any problems during the import process, it is simple to restore the pre-
vious version of the variables tree. Its configuration is stored in the file VAREXP.DAT in the project's C
folder. Before copying the file make sure that the Supervisor is shut down.

Starting the Smart Generator

- 353 -
The TwinCAT Smart Generator is started from the New TwinCAT import task in the Smart Generators Man-
agement dialog. Show picture

The Smart Generator guides you through the following steps. Show picture

1. Selecting the TwinCAT project file from which the variables are to be imported. Select Project dialog
2. Variable branch management. Branch Management dialog
3. Selecting the import type from either Full or Custom. Select Import Type dialog
4. Selecting the variables to import if you selected Custom Import in the previous step. Select Variables
dialog
5. Generating the variables. Generate Variables dialog
6. Renaming any variables with invalid names. Rename Variables dialog
7. End

- 354 -
TwinCAT Select Project Dialog
The Select TwinCAT Project dialog is the first step of the Smart Generator TwinCAT wizard. It is used to
select the TwinCAT project file from which the variables are imported and the configuration of the com-
munication objects generated. Show picture

How to select the TwinCAT project file

1. Enter the full path and name of the *.tpy file in the File name field. The ellipsis button adjacent to field
opens a standard File Select dialog.
2. Enter an Alias for the equipment. This is the name by which the equipment will be known in the Super-
visor.
3. Click the Advanced button if you need to change any of the advanced properties. See the Advanced
Options topic.
4. Click Next to proceed to the next step Branch Management dialog.

- 355 -
TwinCAT Advanced Options Dialog
The Advanced Options dialog is opened from the Advanced button in the Select Project dialog of the TwinCat
Smart Generator. Show picture

The lists of servers and clients must already have been created in the Supervisor and the local sta-
tion must appear in the servers list.

Networking list
The networking lists are used to control the behavior of the Supervisor's variables for multi-station projects.
You can configure the network lists for variables imported by the Smart Generator as follows.

1. Click on the Advanced button to open the Networking Lists dialog.


2. Use the first drop-down box to select the server list.
3. Use the second drop-down box to select the client list.
4. Select OK to return to the Select Project dialog.

Options tab
The Options tab allows you to view and change the equipment properties and enable the use of custom attrib-
utes. Show picture

l Equipment
l AMS Net ID - The AMS Net ID as imported from the TwinCAT Symbol file. Edit to change the
value generated in the Supervisor.
l Port - The port number as imported from the TwinCAT Symbol file. Edit to change the value gen-
erated in the Supervisor.
l Input file
l Use custom attributes - Enable the use of custom attributes. See the topic TwinCAT custom
attributes.

If Use Custom Attributes is set any symbol in the imported file, that does not have the keyword SV_
Import set to True, will not be imported.

- 356 -
TwinCAT Branch Management Dialog
The Branches Management dialog is the second step of the Smart Generator TwinCAT wizard. It is opened
from the Next button in the Select Project dialog. It is used to modify variable names imported from the
symbol file so that they conform to the Supervisor's hierarchical naming scheme.Show picture

How to modify the variable names imported from the symbol file

1. To prefix all variable names with a branch or branches enter it into the Global branch field.
2. To structure variable names by inserting a branch separator after any number use Use numeric char-
acters as branch separator.
3. To structure variable names by replacing a particular character or character sequence with the branch
separator use Use character sequence as branch separator and enter the Sequence.
4. Click Next to proceed to the next step Import Variables dialog.

Example of the use of the number separator

l WORD1DEFAULT1 becomes WORD1.DEFAULT1


l ZONE12PUMP1STOP becomes ZONE12.PUMP1.STOP

A branch separator is not added when there is a numeric character at the end of the name.

Example of the use of the character sequence separator


The underscore character has been selected as the branch separator.

l CONTROLROOM_COMMAND becomes CONTROLROOM.COMMAND


l CONTROLROOM_STATUS becomes CONTROLROOM.STATUS

A branch separator is not added when the character sequence is at the end of the name.

- 357 -
TwinCAT Import Type Dialog
The Import Variables dialog is the third step of the Smart Generator TwinCAT wizard. It is opened from the
Next button in the Branch Management dialog. It is used to select either a Full Import or Custom Import. At
this stage of the wizard the symbols file has been read and the number of variables are displayed in the dia-
log. Show picture

l To import all variables select Full Import and click the Next to proceed to the next step Generate Vari-
ables dialog.
l To view the available variables and select those to import select Custom Import and click Next to pro-
ceed to the next step Select Variables dialog.

- 358 -
TwinCAT Select Variables Dialog
The Select Variables dialog is the fourth step of the Smart Generator TwinCAT wizard. It is opened from the
Next button in the Import Variables dialog. It is used to display and select those variables from the symbol
file that are to be imported.Show picture

Filtering the variables


The variables that appear in the Available Items list can be filtered using the following criteria.

l Using the Bit, Register and Text tick boxes to select the type of variable (as it will be converted to in
the Supervisor).
l Using the name filter. Wildcards * (matches any string) and ? (matches a single character) are sup-
ported. For example:
l 'Pump1' would only match a variable called 'Pump1'.
l 'Pump?' would match 'Pump1' or 'Pump2' etc. but not 'Pump10'.
l 'Pump*' would match 'Pump1', 'Pump2' and 'Pump10' but also 'Pumpkin'.

The filter is applied using the Apply button.

Selecting the variables


The Available Items list supports the standard Window's selection methods (Click, Shift + Click etc.). Selec-
ted variables are moved to the Selected Items list using the -> button. The Selected Items list supports the
same selection methods. Variables can be removed by selecting them and using the <- button. Click Next to
proceed to the next step Generate Variables dialog.

- 359 -
TwinCAT Generate Variables Dialog
The Generate Variables dialog is the final step of the Smart Generator TwinCAT wizard. It is opened from
the Next button in the Select Variables dialog. It is used to review and edit the names of the variables before
they are generated. Show picture

Why are some variables displayed in red?


A variable name is displayed in red if is invalid for use in the Supervisor.

l The length of the variable name exceeds 255 characters.


l The number of branches exceeds 12.
l The name of any element (branch or final leaf) is empty (length =0) or exceeds 255 characters.
l The name of any element contains a character that is not a letter, a digit or the underscore.
l The name of a variable is duplicated.

How to display and change the properties of a single variable


You can display and change the properties of a single variable using the Variable Properties dialog which is
displayed by double clicking on the variable's name. You can use it to change the variable name. Show pic-
ture

How to select and change the name of some or all variables, or all invalid variables

l Click the Rename Invalid button to open the Rename Variable dialog with a list of all variables with
invalid names.
l Click the Rename Selected button to open the Rename Variable dialog with a list of selected variables.

Generating the variables


Once the variables have their final names they can be generated in the Supervisor by clicking the Finish but-
ton. During the generation process a dialog is displayed indicating the progress.
Any variables in the Smart Generator that already exist in the Supervisor are discarded. The cor-
responding variables in the Supervisor are not overwritten or updated in any way.
Any variables appearing in red when the Finish button is clicked will not be imported.

- 360 -
TwinCAT Rename Variables Dialog
The Rename Variables dialog is opened from the Import Variables dialog or Select Variables dialog and is
used to rename variables before generation. Show picture

The left hand column contains the full name of each variable. The other columns show the name of the vari-
able separated into branches. The final column on the right hand side displays the number of characters in
the name. Variables that appear in red have a name that is invalid for use in the Supervisor and must be
modified before they can be imported.
Using the Rename Variables dialog you can:

l Edit the name of a single variable.


l Delete one or more branches of one or several variables.
l Merge two or more branches of one or several variables.
l Search and replace text in one or more branches for one or several variables.

When you have finished editing the variable names click OK to confirm or Cancel to cancel the editing. In
either case you will return to the Generate Variables dialog.

How to edit the name of a single variable


To edit the name of a single variable, double-click on its full name in the left hand column of the list. The
Edit Name dialog will be displayed from where you can edit and change the name.

How to delete one or more branches

1. Select one or more variables in the left column. You can use Shift+click to select a group of adjacent
variables or Ctrl+ click to select several individual variables. Ctrl+a selects all of the variables.
2. Select the branch or branches to be deleted by clicking on the column header.
3. Click the Delete button to delete the branches from the variable name.

How to merge one or more branches

1. Select one or more variables in the left column. You can use Shift+click to select a group of adjacent
variables or Ctrl+ click to select several individual variables. Ctrl+a selects all of the variables.
2. Select two or more branches that are to be merged by clicking on the column header. You can only
merge consecutive branches.
3. Click the Merge button to delete the branches from the variable name.

How to search and replace text in one or more branches

1. Select the variables and branches to be searched as above.


2. Click the Replace button to open the Replace dialog.

- 361 -
3. Enter the strings to search and replace.
4. Click OK to perform the search. Only text in the selected variables and branches is modified.

- 362 -
TwinCAT Variable Types
TwinCAT variables are converted to Supervisor variables as follows.

Standard data type


TwinCAT Supervisor CimWay
Type Variable type Minimum Maximum Mapping type
BIT BIT 0 1 Bool
BOOL BIT 0 1 Bool
BYTE REGISTER 0 255 Unsigned 8 bit byte
WORD REGISTER 0 65535 Unsigned 16 bit integer
DWORD REGISTER 0 4294967295 Unsigned 32 bit integer
SINT REGISTER -128 127 Signed 8 bit byte
USINT REGISTER 0 255 Unsigned 8 bit byte
INT REGISTER -32768 32767 Signed 16 bit integer
UINT REGISTER 0 65535 Unsigned 16 bit integer
DINT REGISTER -2147483648 2147483648 Signed 32 bit integer
UDINT REGISTER 0 4294967295 Unsigned 32 bit integer
REAL REGISTER Float.Min Float.Max Signed 32 bit float
LREAL REGISTER Double.Min Double.Max Signed 64 bit float
STRING TEXT /0 Terminated string
TIME REGISTER 0 Float.Max Unsigned 32 bit float
TIME_OF_DAY REGISTER 0 Float.Max Unsigned 32 bit float
DATE REGISTER 0 Float.Max Unsigned 32 bit float
DATE_AND_TIME REGISTER 0 Float.Max Unsigned 32 bit float

Complex types

l Supported
l STRUCT
l ARRAY (single dimension)
l Not supported
l LINT
l ULINT
l ARRAY (multi dimension)

- 363 -
TwinCAT Custom Attributes
The TwinCAT Smart generator allows the definition of custom attributes for each data point symbol in the
*.tpy file. The information is stored in the comment field of the TwinCAT symbol which is used for passing
meta information from TwinCAT to 3rd party systems.
The syntax of the custom attributes consists of a set of key/value pairs in typical TwinCAT format. The syn-
tax has been selected so as not to interfere with other items that use the comment field.
The following keywords are supported.
Name Values Types Description
SV_Import true | false Standard and complex Indicates if it is to be used in the
import. If the property Use cus-
tom attributes is set the fol-
lowing logic is used to include or
exclude symbols. If used on a
complex type all included vari-
ables are affected.

l If one or more variables is


flagged (SV_Import:
true), then only those vari-
ables flagged (SV_Import:
true) are imported. Those
flagged (SV_Import:
false), if any, are not
imported.
l If no variable is flagged
(SV_Import: true), then
all variables not flagged
(SV_Import: false) are
imported.
SV_VariableName string Standard Replaces the variable name.
SV_Branch string Complex Passes a branch name to a struc-
tured type where it is used with
concatenation of the variable
name of the nested standard
types.
SV_BranchDescription string Complex Passes the branch description to
a structured type where it is
used as prefix for all the vari-
able descriptions in this branch.
SV_VariableDescription string Standard Text to be used as variable
description.
SV_Alarm true | false Standard (Boolean only) Sets the Alarm property of the
variable.
SV_Log true | false Standard (Boolean only Sets the Log 0>1 and Log 1>0
properties of the variable.
SV_Command true | false Standard (Boolean only) Sets the Command property of
the variable.
SV_Domain string Standard and complex Sets the Domain property of the
variable. If used on a complex
type all variables are affected.
SV_Nature string Standard and complex Sets the Nature property of the
variable. If used on a complex
type all variables are affected.

- 364 -
String values are not required to be enclosed in quotes.

Example of TwinCAT file with custom attributes


Show picture

- 365 -
CAD

- 366 -
Overview of the CAD Smart Generator
The CAD Smart Generator imports information from two of the most commonly available CAD file formats.

l DWG, AutoCAD’s efficient native format for storing 2D and 3D design data and metadata in binary
files.
l DXF (Drawing eXchange Format), defined by AutoDesk Inc. for transferring CAD files between sys-
tems with different native formats, via ASCII encoded files.

AutoCAD versions are supported as follows: 12, 13, 14, 2000, 2004, 2007. 2010 and 2011.
Some of the more recent object types are not documented, or only partially documented, for the
DXF format.
The Smart Generator for CAD can be used under 64 bit (x64) operating systems.

The Smart Generator converts the contents of the CAD file into an image (WMF, JPG, BMP or PNG) and cre-
ates a mimic in which the image is displayed. This mimic is known as the primary mimic. Additional mimics
(and corresponding images) can be created from the same CAD file showing different views, zoom levels,
layers etc. These mimics are known as sub-mimics. Each time that you create a sub-mimic, a corresponding
link-open animation is automatically generated in the primary mimic. Show picture

What components of a CAD file are used by the Smart Generator?


Component Description How it is used by the CAD Smart Generator
Layer Each CAD drawing contains one or The contents of the layers are used to generate the
more layers. All drawing elements image. The layers used can be filtered and they can be
are attached to one of the layers. rendered in their original CAD colors or a single select-
(Layer 0 by default). Each layer is able color.
given a color which is used when the
CAD drawing is rendered. Layers
can be turned on and off to aid visu-
alization.
Block and A block is a group of drawing ele- Blocks can be filtered to decide which instances of them
Block ref- ments similar to a symbol in the (block references) will appear in the generated image.
erences Supervisor's libraries. In addition a block can be substituted by one of the
A block reference is an instance of a Supervisor's symbols. Each block reference is then
block similar to an instance of a sym-replaced with an instance of the symbol using a con-
bol in a Supervisor's mimic. figurable variables branch.
Block attribute A part of the definition of a block. It A block attribute is interpreted as a branch name for a

- 367 -
has a name and a value that may symbol.
apply across all of its all blocks of a
particular type or to a single block.
X-Ref A reference to another CAD file. The X-Ref CAD files are used to provide additional detail
for the main CAD drawing. For example the main CAD
file might show a building's structure whilst one or more
X-refs might provide detail on services, lighting etc. X-
refs can be filtered and selectively included in the gen-
erated image.

Starting the Smart Generator

l Start the Smart Generator from the New CAD Import command on the Task Toolbar. Show picture

The Smart Generator assists you with the following steps.

l Opening the CAD drawing file and creating the primary mimic.
l Creating sub-mimics.
l Adjusting the resulting image in various ways (colors, crop, zoom, rotate etc.).
l Substituting CAD blocks and block attributes with the Supervisor's symbols.
l Selecting output options.
l Generating the mimics.

You must start a new CAD import for each CAD drawing that you want to import.

- 368 -
Opening a CAD Drawing File and Creating the Primary Mimic
The CAD Import dialog is displayed via the New CAD Import command from the left pane of the Smart Gen-
erator workspace. In it you can select the CAD file to import and you can configure the size and location of
the image that will be stored within the primary mimic.Show picture

How to configure a new import


You can import from CAD files with either a DWG or DXF extension.

1. Enter the path of the CAD file. The ellipsis button '...' opens a Windows file selector dialog for doing
so.
2. Enter the size (shown in the picture, to the right and below the drawing) and position (of the top left
corner) of the image. The mimic will be sized to fit the image if you are not using a mimic template.
3. If your project uses mimic templates, use the field Default mimic template to enter the template
name. The ellipsis button opens a browser dialog that displays a list of templates that are available.
4. Click the OK button. The CAD Smart Generator opens and the primary mimic is created.

What is the Link button for?


The Link button , located at the bottom right of the image size settings, lets you link the width (X) and
height (Y) dimensions of the image to maintain the original ratio. When the button is selected, if you change
the width the height automatically adjusts and vice versa. By default, the Link button is not selected.

- 369 -
The CAD Smart Generator Menus and Toolbar
After you open a CAD drawing file, the main CAD import dialog is displayed. Show picture

The dialog is complex and contains many controls to manipulate the contents of the CAD file before it is
imported into the Supervisor as a mimic. It is important to understand these controls before completing an
import.

The left pane


The left pane is divided into two parts.

l The top part lists the mimics that will be generated in the Supervisor from the CAD file. In the
example there are two mimics, LaDefense - the primary mimic, and LaDefense2 - a sub-mimic in
which the image of the CAD file has been zoomed and cropped.
l The lower part displays the properties of the mimic that is currently selected. Some of the properties
can be changed directly from here, for example, the layers that are displayed.

The center pane


The center pane displays a representation of how the generated mimics will appear in the Supervisor. Each
mimic is displayed in its own window. The Windows command on the menu can be used to change how the
windows are arranged.

The right pane


The right pane is used when substituting CAD blocks with the Supervisor's symbols and is divided into two
parts.

l The top part displays a list of blocks that have been imported. In the example there are two, R and
Regulator.
l The lower part displays the properties of the block that is selected. Some of the properties can be
changed directly from here, for example, the symbol that is to be substituted for the block.

The toolbar
The toolbar tools are used to create and manipulate additional mimics (sub-mimics) based on the CAD file.
Some of the tools are not displayed as standard and must be first enabled using commands from the Con-
figuration.View menu.

- 370 -
Tool Use
Create new mimic Create a new sub-mimic.
Save the configuration (zoom, crop and rotation) of the CAD file within the selected
Save mimic
sub-mimic.
Restore the original view of the CAD file within the selected mimic. Resets any
Restore settings
zoom, crop or rotation operations.
Symbol preview Display a preview of the symbols.
Save all mimics Save the configuration of the CAD file within all mimics.
Crop mode Changes the crop mode.

l Free - allows any ratio of width (X) and height (Y).


l Ratio - uses the width (X) and height (Y) ratio entered in the toolbar.
CAD zoom Directly enter the zoom level for the CAD file within the mimic.
Rotation angle Directly enter the rotation angle of CAD file within the mimic.
Mimic zoom Directly enter the view zoom of the mimic.

The menu

l File
Save
l

Quit
l

l Configuration Show picture

l Global filters - Display and apply filters to the Xrefs, layers and blocks of all sub-mimics. For
details, see the topic Selecting the colors, layers and blocks.
l View - Change the options available from the toolbar. For details, see the topic Zooming, crop-
ping and rotating the drawing. Show picture

Options - General options related to mimic generation. For details see the topic Mimic Gen-
l

eration Options Dialog.


l Generate
l Generate mimics - Generate the configured mimics within the Supervisor. For details, see the
topic Generating the mimics.
l Windows - Change the way in which the windows containing the mimics are displayed: Cascade, Tile
vertical or Tile Horizontal. Show picture

- 371 -
The CAD Smart Generator Mimic Generation Options Dialog
You can open the Options dialog from the CAD Smart Generator's main menu Configure.Options. Show pic-
ture

l Graphical settings
l Global rotation angle - To set the angle of rotation of all graphics, in degrees.
l Display texts - Tick to display the texts in the graphics, or un-tick to hide them.
l Generated mimics
l Format of image output - Select the format to be used for all background images.
l File extension of mimic output - To put a suffix on all mimics' names, enter it here.
l Use mimic name as mimic title - Set the mimic title to its file name.
l Generate mimic links - Tick to generate the mimics' links, or un-tick to omit them.
l Display mimic name in tooltip - Tick to provide tooltips to display the mimics' names, or
un-tick to omit them.
l Symbol position reference - Select where the reference of each of the Supervisor's symbols is
to be positioned. Either at the center or at the anchor of each block.

- 372 -
Creating Sub-Mimics
In addition to the primary mimic you can create one or more sub-mimics from the CAD drawing. The image
of the CAD drawing in the sub-mimics can be zoomed, cropped and rotated. (The image in the primary
mimic is always created at 100% and cannot be rotated.) Each time you create a sub-mimic, a Link-Open
animation is automatically created in the corresponding area of the primary mimic. Show picture

To create a sub-mimic:

1. Click and drag the cursor to select the required part of the main drawing.
2. Click the Create new mimic tool on the toolbar. You will be prompted to enter the name of the mimic
and the size and location of the image. Show picture

- 373 -
CAD Configuring the image generated from the CAD file

- 374 -
Zooming, Cropping and Rotating the CAD Drawing
You can pan, zoom, crop and rotate the view of the CAD drawing. This is useful when you want the gen-
erated mimic to only include part of the original CAD drawing.
Although you can zoom, crop and rotate the CAD drawing in the Smart Generator's display of the
primary mimic, this is only for convenience of viewing. It is not taken into account when the mimic
is generated. For information on creating other mimics from the same CAD drawing see the topic
Creating sub-mimics.

Panning
To pan the CAD drawing (change its center relative to the center of the mimic), click and hold the right
mouse button and drag. When the mouse button is released the view of the drawing will move following the
cursor movement.

Zooming
You can zoom the CAD drawing using these methods.

l Using the scroll wheel on your mouse. Rotating the wheel forward increases the zoom level, back-
wards decreases it.
l By entering the zoom level in the CAD zoom field of the toolbar.

Cropping
You can crop the CAD drawing as follows.

1. Click and hold the left mouse button and drag the cursor. A dashed rectangle appears indicating the
crop area.
2. When the mouse button is released the view of the CAD drawing will zoom and pan to display only the
area contained within the rectangle.

You can choose these methods of cropping.

l Free - Allows any ratio of width and height.


l Ratio - Uses the width to height ratio entered in the toolbar. The default is the shape of the container
mimic.

Rotating
To rotate the CAD drawing, enter the new rotation angle in the Rotation angle field of the toolbar.
You can also click on the center button of the mouse, which may also be its center wheel:

l To rotate the image clockwise, click the center button and move the mouse to the right.
l To rotate the image counter clockwise, click the center button and move the mouse to the left.
l Click again to leave the rotation mode.

- 375 -
Selecting the Colors, Layers and Blocks
The colors, the displayed layers and the displayed blocks of a CAD drawing can all be changed before an
image is generated. These properties are identified and can be modified from the Image section in the left-
hand pane of the CAD Smart Generator's configurator dialog. Show picture

Changing the drawing color


Typically in any CAD drawing, a different color is used for each layer. Using the CAD Smart Generator you
can select a single color that will be applied to all layers when the image is generated.

1. In the left pane click on the property Image.Drawing color. An ellipsis button '...' will appear on right
side of the row. Click the ellipsis button and the Supervisor's color palette opens.
2. Select the new color for the layers. The color is applied to all the layers when the color palette is
closed.

To restore the original colors follow the same procedure selecting the transparent color.

Changing the background color


The background color of a CAD drawing is normally rendered in black which may not be suitable for use in
the Supervisor's mimics. Using the CAD Smart Generator you can select a new color that is then used when
the image is generated.

1. In the left pane click on the property Image.Background color. An ellipsis button will appear on right
side of the row. Click the ellipsis button and the Supervisor's color palette opens.
2. Select a new color or the transparent option for the background. The color is applied to the back-
ground when the color palette is closed.

Selecting the layers


CAD drawings can be made up of many layers. The use of each layer will depend on the design requirements
when the CAD drawing was produced. Using the CAD Smart Generator you can select the layers that are dis-
played with only the visible layers being used when the image is generated.

1. In the left-hand pane, click on the property Image.Layers. An ellipsis button will appear on right-hand
side of the row. Click the ellipsis button '...'to open the Smart Generator's Layer Filter dialog. Show
picture

- 376 -
2. Tick or untick the layers as required. The affected layers are displayed or hidden immediately.
3. Click OK to close the dialog.

Selecting the blocks


CAD drawings frequently use re-useable groups of drawing elements known as blocks (similar to the Super-
visor's symbols). Using the CAD Smart Generator you can select the blocks that are displayed with only the
visible blocks being used when the image is generated.

1. In the left-hand pane, click on the property Image.Blocks. An ellipsis button will appear on right side
of the row. Click the ellipsis button '...' to open the Smart Generator's Blocks Filter dialog. Show pic-
ture

2. Tick or untick the blocks as required. The affected blocks are displayed or hidden immediately
3. Close the dialog.

- 377 -
Configuring the Image Size and Location
By default the image that is generated from the CAD drawing is sized so that it fills the entire mimic. Any
space not occupied by the CAD drawing is filled with the background color. This is not always convenient if
you want to add other drawing elements in the mimic once it has been generated.
You can change the size and location of the image from the Mimic section in the left-hand pane of the CAD
Smart Generator. Show picture

To change the size or location click into the relevant field, for example Height, and type in the new value.
After you modify the image size the CAD drawing is automatically scaled to fit - you may then need to manu-
ally change this to suit your requirements.
You cannot change the image size or location of the image in the primary mimic. For information on
creating other mimics from the same CAD drawing see the topic Creating sub-mimics.

- 378 -
CAD Substituting blocks with the Supervisor's symbols

- 379 -
Substituting CAD Blocks with the Supervisor's Symbols
You can substitute the blocks in a CAD drawing with a symbol from the Supervisor. When the mimics are gen-
erated, each block reference is replaced by an instance of the symbol and an optional branch. The symbol is
overlaid on the image at the position of the original block reference.

Example
This CAD drawing contains several instances of a block called LB representing a lighting ballast. In the fol-
lowing picture the block appears as a white rectangle with vertical lines. Show picture

The Supervisor is to read the status of each ballast from the lighting control PLC. A symbol, including vari-
ables to display the status, is used to represent each of the ballasts in the Supervisor's mimics. Using the
CAD Smart Generator, the CAD block LB is replaced by the symbol LB1. Each instance (block reference) of
the block is replaced with an instance of the symbol and a variable branch so that it references the correct
variables in the Supervisor's variables tree.

How to substitute CAD blocks with the Supervisor's symbols


The following explanation assumes that you have already opened a CAD drawing using the CAD Smart Gen-
erator. By default the substitutions you make will occur in all mimics generated from the CAD drawing.

1. Right-click in the top right-hand pane of the CAD Smart Generator and select Import CAD Blocks from
the pop-up menu. A dialog opens displaying the list of blocks available in the drawing. Show picture

2. Un-tick those blocks that are not to be substituted by one of the Supervisor's symbols. You can un-tick
all the blocks by right-clicking and selecting Unselect all from the pop-up menu.
3. Click OK to close the dialog and confirm selection of the blocks. A list of the selected blocks is now dis-
played in the top right pane.
4. Select one of the blocks listed there. The lower right-hand pane displays the selected block's prop-
erties. Show picture

- 380 -
5. Select the property Default symbol association.Symbol name. An ellipsis button '...' appears to the
right of the property. Click it to open a dialog displaying a list of the Supervisor's symbols. Select the
symbol that is to replace the block and click OK.
6. To change the mimic layers in which the symbol will be visible use the property Default symbol asso-
ciation.Layers. By default a symbol will be visible in all layers.
7. To change the visibility bound (the mimic zoom level at which the symbol is visible) use the property
Default symbol association.Visibility bound. By default a symbol is visible throughout the Supervisor's
zoom range.
8. To add a variable branch that will be used with all instances of the symbol use the property Symbol
instantiation.Branch. The branch is entered as an expression. See the topic Block symbol branch
expression. The expression is set to BlockReferenceName() by default.
9. Repeat steps 4 to 9 for the remainder of the blocks in the top right pane.

Configuring the individual block references


Once you have configured which of the CAD drawing's blocks are to be replaced by the Supervisor's symbols
you can configure the individual block references that are replaced with instances of the symbols.

1. Select one of the blocks in the top right pane. The lower right pane displays the block's properties.
2. Select the property Imported CAD blocks.References. An ellipsis button '...' appears to the right of the
property.
3. Click that button to open the References Editor dialog. The left-hand pane contains a list of the block
references and the right-hand pane contains the properties of the selected block reference. Show pic-
ture

4. Un-tick those block references that are not to be substituted by one of the Supervisor's symbols. You
can un-tick all the blocks by right clicking and selecting Unselect all from the pop-up menu.
5. In the left-hand pane, select each of the ticked block references in turn. In the right-hand pane con-
figure the variables tree branch to be used with the instance of the symbol for that reference. The
branch is constructed by concatenating the Inherited branch (from the block properties - see above)
with the Branch property. The Branch is entered as an expression. See the topic Block symbol branch
expression..
6. Repeat steps 1 to 5 for the remainder of the blocks in the top right-hand pane.
7. Click the OK button to close the References Editor dialog.

- 381 -
When you select a reference in the References Editor, a white rectangle appears around the corresponding
block on the map. Conversely when you click on a block's position on the map, its reference is highlighted in
the Reference Editor's list. Show picture

Changing the symbol used for a particular mimic


By default, when you substitute a block with one of the Supervisor's symbols, the substitution applies to all
mimics that are generated from that CAD drawing. Using the mimic properties displayed in the CAD Smart
Generator's lower left-hand pane, you can change the symbol, the mimic layers and the mimic zoom level at
which it is visible, for a particular mimic. Show picture

- 382 -
CAD Block Symbol Branch Expression
When a symbol is instantiated its branch is concatenated from two properties.

l The Symbol instantiation.Branch property entered in the properties grid where a symbol is substituted
for a block. Show picture

l The Symbol instantiation.Branch property entered in the properties grid for each instantiation of a
symbol. Show picture

In the properties grid for each instantiation of a symbol, the first Symbol instantiation.Branch property is
shown as the Inherited branch.
In both cases the branch is entered as an expression which can contain the following elements.

l Fixed strings - For example "BUILDING_01.".


l Variable branches - Selected from the variables tree but becoming a fixed string in the expression.
l Block attributes - Any of the CAD block's attributes entered as Attribute("Name"). For example Attrib-
ute("NUMBER").
l BlockReferenceName - The reference name of the CAD block.
l Functions - A mathematical or string function. For example StrToLower.
l Operators - An operator such as + (addition or concatenation depending on the context).

The expression is entered using the Symbol Branch Editor dialog which is opened from the Ellipsis button
adjacent to the branch field. Show picture

l Fixed strings are typed directly into the dialog. They must be enclosed in quotation marks.
l Variable branches can be typed in directly or selected from a dialog opened using the tool.

- 383 -
l Block attributes can be selected from a dialog opened using the tool. Show picture

l Functions can be typed in or selected from a context menu that is displayed using the key combination
Ctrl+Space. Show picture

l Operators are typed directly into the dialog.

For a complete list of functions see the topic Application Architect.Differentiation.How to enter an
expression.Function and Operator reference.

- 384 -
Generating the Mimics
Generating the mimics is the final step of the CAD drawing import process. For each mimic a corresponding
image is generated. The following options affect the generated output. To configure them, you open a dialog
via the Configuration.Options command in the CAD Smart Generator.

l Image format - The format in which the image is generated.


l WMF & EMF - Generated at the same resolution as the original CAD drawing and then scaled to
fit the specified size. No loss of detail but can generate very large files. Transparent background
color is supported.
l BMP - Generated at the specified size, so this has considerable potential for loss of detail. Gen-
erates a medium sized file. Transparent background color is supported.
l JPG - Generated at the specified size so this has considerable potential for loss of detail. Gen-
erates a small file. Transparent background is not supported.
l PNG.
l File extension of mimic output - The file extension to be added to the name of the generated mimic
file. The default is none.
l Use mimic name as mimic title - The mimic is generated with the same title (displayed in the title bar)
as the mimic file name.
l Display texts - Render any text strings that appear in the original CAD drawing in the image that is pro-
duced.

Generating the mimics

1. In the main menu of the CAD Smart Generator menu, click on Generate.Generate Mimics.
2. If you have not saved your recent changes you are prompted to do so after which the Select targets to
generate dialog is displayed. Show picture

3. Un-tick any mimics that are not to be generated. For convenience, you can choose Unselect All or
Select All using a right click. Click on OK to start the generation. A progress dialog is displayed.
4. When the generation is complete, the Close button becomes active. Click on it to return to the CAD
Smart Generator.

- 385 -
FL

- 386 -
Overview of the FL Smart Generator
The FL Smart Generator imports a FL project from which it generates the following configuration objects for
the Supervisor.

l Variable definitions (including array variables, alarms, historical, OPC and Modbus configuration).
l OPC configuration elements (OPC servers and OPC groups).
l Links between variables and OPC configuration elements.*
l Math and logic procedures.**
l Mimics and mimic templates.
l Local library (symbols and images).
l Shared libraries (symbols and images). Imported as the Supervisor's global libraries.

* Only if you intend to use the FL OPC server with the Supervisor.
** Copy only - no automatic conversion.

The import process


Here is a simplified flow-chart of the import process. Show picture

About the FL project files


This version of the Smart Generator can only import project files generated with version 7.5 of FL. FL must
be present on the same PC as the Supervisor for the import to operate, otherwise this warning is displayed.
Show picture

Backing up the Supervisor's project


It is recommended that you back up the Supervisor's project before starting the Smart Generator.

Installing the Smart Generator FL Connector


This module is mandatory for using the FL Smart Generator. It is linked with the library CfgPak7 from FL to
enable browsing of the FL tags and export of them to a file.

l Install the Supervisor via a Custom installation in which you select this module.

- 387 -
An entry for the Smart Generator for FL is then added to the Smart Generators menu.

Preparing the mimic and symbol files


The Smart Generator can only import ASCII formatted files. If the project's mimic and symbol files are not
already in ASCII format, you must use the Client Builder's library converter to convert them.

l In the FL Client Builder, select the menu Display/Library Converter then follow its process.

Starting the Smart Generator

l Start the Smart Generator from the New FL Import command on the Task Toolbar. Show picture

The Smart Generator guides you through the following steps.

l Selecting the FL project folder from which the variables are to be imported.
l Selecting a full or custom import.
l Selecting the variables to be imported if you have chosen custom import.
l Optionally renaming the variables and managing the branches.
l Generating the variables.
l Importing graphical items from the Client Builder project.

By default the FL data structure for variables is transferred to the Supervisor's variables tree. Tools
for managing branches are available via the Rename Variables step.
For ECS elements you must first convert the graphics to Client Builder using ECSCONVERT, a tool in
the FL package.

- 388 -
The FL Select Application Dialog
The Select Application dialog enables you to select the FL application folder from which the variables are to
be imported. Show picture

How to configure the Select Project dialog

1. In the Application/Path box, enter or select the path to the FL application folder.
2. In Branch Separator, enter the character used by FL that will be converted to the Supervisor's branch
separator of '.'. The default for FL is underscore '_'.
3. In the Variables section, use the drop-down box to select how the variables will be imported into the
Supervisor. They can be imported as Internal or OPC variables.
4. If you have selected the variables as OPC type you can choose to use FL as the OPC server by ticking
the option Use FL as an OPC Server. See below for more information.
5. Configure any options. See the topic FL Import Options for more information.
6. Click Next to display the Import Variables dialog.

Using FL as OPC Server


If you tick the option Use FL as an OPC Server, the Smart Generator automatically configures the OPC
Server, OPC Group and OPC Item name in the variable definition when importing to the Supervisor.

- 389 -
FL Import variable options

- 390 -
The FL Import Variables Options Dialog
The Options dialog is opened from the Options button in the Select Application dialog.

The Networking list tab


The networking lists are used to control the behavior of variables for multi-station projects. You can select
the network lists to be used with variables imported by the FL Smart Generator as follows.

1. Open the Networking List tab.


2. Use the Server list drop-down box to select the server list.
3. Use the Client list drop-down box to select the client list.
4. Select OK to return to the Select Application dialog.

The lists of servers and clients must already have been created in the Supervisor and the local sta-
tion must appear in the servers list.

The Options tab


The Options tab contains all the options affecting the import of variables. Show picture

l Tags
l Import "SHARED" tags only - Shared tags are those FL tags that share a common value on a
multi-station application.
l Import "USER" tags only. User tags are those that do not share a common value on a multi-sta-
tion application
l Import both "SHARED" and "USER" tags. This is the default setting.
l Domains
l Generate USER and SHARED domains - Create the USER and SHARED domains and add the rel-
evant domain to each of the imported variables.
l Arrays - See the topic Importing array variables.
l Alarms - See the topic Importing alarms.
l Historical - See the topic Importing historical configuration.
l OPC configuration - See the book Importing OPC configuration.
l Modbus configuration - See the topic Importing Modbus configuration.
l Math and logic - See the topic Importing math and logic procedures.
l Reports configuration - See the topic Importing reports configuration.
l Variables
l Initialize bit tags to 0 - Sets the option in the Supervisor to initialize internal bit variables to a
value of 0.
l Import default values - Sets the option to save variables so that their value is maintained
through a shutdown and restart. Creates the corresponding persistence file.
l Generate cross reference file - Causes the Smart Generator to create a CSV formatted file con-
taining, for each of the tags, the original FL tag name and the name of the corresponding vari-
able in the Supervisor. Not used by the application but a useful reference for debugging after the
import.

The options and resulting actions are described in the subsequent topics.
When you have configured the options, select the Next button to open the Array Format dialog.

- 391 -
Importing FL Array Variables
FL allows the use of single and multi-dimensional array variables in its projects. As array variables are not
supported by the Supervisor, when an array variable is imported the array index is converted to a variable
branch. For example a single dimensioned array in FL called PUMP_STATUS might be converted to the vari-
ables PUMP.STATUS.0, PUMP.STATUS.1 etc. in the Supervisor.
The way in which the array index is converted to the branch is controlled by the following properties in the
Arrays section of the Import Options dialog.

l Array formats
l Standard arrayname.[dimension 1]...[dimension n]
- for example in the Supervisor PUMP.STATUS.1
l Reversed [dimension 1]...[dimension n].arrayname
- for example in the Supervisor 1. PUMP.STATUS
l Import multi-dimensional arrays - Allow the import of arrays with more than 1 dimension. The max-
imum theoretical number of dimensions is 5 (the Supervisor's variables can have a maximum of 6 ele-
ments).
l Add a leaf variable for a standard format array - Adds a specified leaf (final element) to the generated
variable name, for example PUMP.STATUS.1.VAL. This is useful when you want to use the array vari-
ables in a symbol. The leaf is referenced within the symbol and the remainder of the variable name
used as the branch when the symbol is instantiated.

- 392 -
Importing FL Alarms
You can import FL alarms that are generated from either digital or analog tags.

l If the FL tag is digital then a bit variable with the Alarm property set will be generated.
l If the FL tag is analog then the alarms can be imported as either an expression attached to a bit vari-
able, or as a register with the threshold system enabled. How analog alarms are imported depend on
the options selected when importing and the actual alarm conditions configured in FL.

Exactly how alarms are imported is best illustrated by an example. Consider the following Alarm Definition
Information dialog from a particular FL configuration.

FL alarm using a digital tag


VALVEA_AL is a FL digital tag. The Smart Generator generates the Bit variable BIT VALVEA.AL with the
Alarm property set. The alarm will be configured to be active when the value is 1 as determined by the
Condition having a value of ON.

FL alarm using an analog tag (as an expression)


TANKA_INS is an analog tag. It is configured to produce an alarm when its value is NOT 0. The Smart Gen-
erator creates an expression TANKA.INS != 0 attached to the new Bit variable TANKA.INS_NE_0. The bit will
have the Alarm property set and be configured to be active when the value is 1.

FL alarm using an analog tag (as a threshold)


TEMP_VALUE is an analog tag and appears in four alarm conditions. The Smart Generator creates a new
register variable TEMP.VALUE with a threshold value for each condition.

Additional properties generated when importing alarms


Smart Generator also creates the following properties.

l A domain for each alarm group.

It will also store the following information in the extended attributes of the generated variable.Show picture

l Attribute 3: the alarm label.


l Attribute 4: the alarm group name.
l Attribute 5: the variable that represents the condition.

Smart Generator also sets these properties.

l Alarm level (depending on the FL alarm's Priority)


l Alarm mask (depending on the FL alarm's Hide tag)
l Alarm acknowledgment bit (depending on the FL Alarm Status tag)

Alarm import options


The following properties of the Import Options dialog affect how the Smart Generator processes FL alarms.

l Import alarms - Enable the import of alarms.


l Log alarm transitions - Set the Log to 0 and Log to 1 properties of the generated bit variables so they
are eligible to be logged.
l Generate a domain for each alarm group - Generate a Domain for each FL alarm group.
l Import alarm message text as variable title - Import the FL alarm message text as the generated vari-
able's Description property.

- 393 -
l Import alarm status.
l Import alarm mask.
l Import analog alarms as
l Expressions only - Create an expression and bit for each alarm condition.
l Thresholds only - Create a register variable with thresholds for each alarm condition.
l Expressions or thresholds according to the alarm condition - Create an expression and bit, or
register with thresholds as applicable to the alarm condition.

Importing the FL Historical Configuration


The configuration of both FL Data Point Logging and Database Logging can be imported as trend recording in
a proprietary archive unit.

Example of data point logging


Three FL tags are logged in a table, where the database alias name is MYDPLOG. Show picture

Smart Generator generates a proprietary archive unit MYDPLOG and the corresponding trend objects. Show
picture

Example of database logging


Here is a database logging configuration. Show picture

Smart Generator generates a proprietary archive unit named MYTREND and the corresponding trend
objects. Show picture

- 394 -
Importing OPC configuration
Importing a FL OPC Configuration
You can import FL configuration elements for OPC communication, irrespective of the types of variables to
be generated (OPC or internal).

l OPC client.
l OPC ODX.

Example
Here is an OPC client configuration to consider. The OPC Servers and Groups are as follows. Show picture

An OPC tag is defined as follows. Show picture

The FL tag OPCTAGS_VAR1 is mapped onto the OPC server OPCDAServer.ModbusExplorer.1 (localhost). The
OPC Item ID is Device1.Default.01 and the OPC Group is GROPC1 (update rate = 100 ms).
From these configuration elements, the Smart Generator will generate the following.

l An OPC Server OPCDAServer.ModbusExplorer.1. Show picture

l An OPC Group GROPC1 with update rate of 100 ms. Show picture

- 395 -
l An OPC Variable tag OPCTAGS.VAR1. Show picture

Importing a FL ODX Configuration


The import process for ODX (OPC Data eXchange) configurations elements is similar to that for OPC.

Example
Here is a configuration with three OPC server aliases: DIDI_IN, DIDI_OUT and FS. Show picture

An ODX tag is defined as follows. Show picture

The FS alias represents a local ModbusExplorer OPC Server. An OPC group, GR1, has been configured.
Attached to group GR1 are two FL tags mapped on the same OPC item ID. Show picture

The Smart Generator generates:

- 396 -
l Three OPC servers and their associated OPC groups. Show picture

l OPC variables. Show picture

Importing FL Modbus Configuration


You can import the FL configuration for Modbus TCP.

- 397 -
Importing FL Math and Logic Procedures
FL IML (Interpreted Math & Logic) procedures are similar to the Supervisor's own SCADA Basic programs.
Many Math and Logic procedures can be converted to SCADA Basic via a manual process. To assist with this,
any Math and Logic procedures found by the Smart Generator are processed as follows.

l Shared procedures are copied to the Math and Logic (SHARED) sub-folder of the projects P folder.
l User procedures are copied to the Math and Logic (USER) sub-folder of the projects P folder.
l The files (FLPROCS.DAT for SHARED and FLPROCU.DAT for USER) are generated. These contain one
line for each procedure containing the tag, procedure name and (optional) comment.

Code format
Each procedure is formatted as a skeleton SCADA Basic program with a copied body as follows.

1. The SUB command.


2. The IML code, with each line marked as a comment.
3. The END SUB command.

Triggers
Each IML trigger tag is imported as an Event or Cyclic action, depending on the nature of the trigger tag. For
details of their effects in the Supervisor, see the sub-books for Cyclic and Event actions in the main Help's
book on Cyclic, Event and Scheduler Actions.

Example
The Smart Generator might create a SCADA BASIC program TempProg containing the corresponding IML pro-
cedure in comments as follows. Show code
sub TempProg()
' proc TempProg
' begin
' if Temp_Value > Temp_SetPoint then
' Temp_Value = Temp_Value - 1
' endif
'
' if Temp_Value < Temp_SetPoint then
' Temp_Value = Temp_Value + 1
' endif
' end
end sub

It would also create an Event or Cyclic called TempProg to trigger it.


After import of the FL application, you would rework the program into SCADA Basic as follows. Show code
sub TempProg()

if ( Temp.Value > Temp.SetPoint) then


Temp.Value = Temp.Value - 1;
end if

if (Temp.Value < Temp.SetPoint) then


Temp.Value = Temp.Value + 1;
end if

end sub
The Smart Generator creates new files listing the procedures (FLPROCS.DAT for SHARED and FLPROCU.DAT
for USER) then creates the corresponding program files.
Here is an example of PROCS.DAT contents (tag; procedure; description). Show code
IM_Lotstart[1];IM_Lotstart1;IM Lotstart procedure
IM_Lotend[1];IM_Lotend1;IM Lotend procedure
IM_Lotend_Rpt_Comp[1];IM_Lotend_Reset1;IM Reset Lotend
MM_Lotstart[1];MM_Lotstart1;MM Lotstart procedure

- 398 -
MM_Lotend[1];MM_Lotend1;MM Lotend procedure
MM_Lotend_Rpt_Comp[1];MM_Lotend_Reset1;MM Reset Lotend
TM_Lotstart[1];TM_Lotstart1;TM Lotstart procedure
TM_Lotend[1];TM_Lotend1;TM Lotend procedure
TM_Lotend_Rpt_Comp[1];TM_Lotend_Reset1;TM Reset Lotend
After the import, the procedure files (.PRG) are listed along with the FLPROCS.DAT file in the sub-folders of
the P folder as follows. Show picture

- 399 -
Importing FL Reports Configuration
You can import report templates from the FL project.

l This generates a file containing the list of aliases and the corresponding variables in the Supervisor.
l A VBA module enables you to generate the report.

- 400 -
The FL Array Format Dialog
The Smart Generator extracts then lists the arrays configured in the FL project. Show picture

l You can choose to import, for each array, the import format for the Supervisor (with index before or
after the array name) according to the Client Builder's configuration.
l You can also un-tick arrays to exclude them from the import list.

- 401 -
The FL Import Variables Dialog
The Import Variables dialog displays the number of variables available and allows you to select a full or cus-
tom import. Show picture

l If you select a full import, all variables will be available for import. Click the Next button to display
the Generate Variables dialog.
l If you select a custom import the Next button displays the Select Variables dialog from where you can
filter and select the variables to be imported.

- 402 -
The FL Select Variables Dialog
Using the Select Variable dialog you can apply a filter to the list of available variables. Show picture

To bypass the filtering, click on the Apply button without changing the default settings.
To filter the variables, use the filter boxes to select them in the following ways.

l Type of variable in the Supervisor (Bit, Register or Text).


l Domain and/or Nature.
l Name of variable.

Variables that pass the filter criteria appear in the Available Items list.

l To select the variables for import, select their names and click the -> button to copy them to the Selec-
ted Variables list.

When the variables required for import are all listed in the right-hand pane, click the Next button to con-
tinue.

About the Name Filter


The Name Filter causes the Smart Generator to filter the list of variables according to the item name in the
FL project folder. The wildcards '*' (to match any string) and '?' (to match a single character) are allowed.

l 'Pump1' would only match a variable with the name 'Pump1'.


l 'Pump?' would match 'Pump1' or 'Pump2' etc but not 'Pump10'.
l 'Pump*' would match 'Pump1', 'Pump2' and 'Pump10' but also 'Pumpkin'.

The Supervisor does not support all characters for variable naming. For details see the topic Rules
for Variable Naming in the Variable book of the Help.

- 403 -
The FL Generate Variables Dialog
The Generate Variables dialog is the final dialog before the variables are imported. In it, you can review and
edit the names of the variables to be generated.

Why might some variables be displayed in red?


A variable item will be displayed in red if is invalid for use in the Supervisor as follows.

l The length of the variable name exceeds 255 characters.


l The number of branches in the variable name exceeds 12 characters.
l The name of a branch element or the name of the 'leaf' element is empty (length =0) or exceeds 255
characters.
l The variable contains a character that is not a letter, a digit or the underscore.

To avoid conflicts, if there is a FL tag named TIME, USER or DATE, Smart Generator will auto-
matically rename the variable concerned to FLTIME, FLUSER or FLDATE.
You should only re-name variables at this stage if the current name is not compliant with the Super-
visor.

How to rename a single variable


To rename a single variable, double-click on the variable name. The Variable Property dialog opens from
where you can edit the variable name. The other data fields, including those in the Details tab, are read-
only. Show picture

How to rename several variables


To rename several variables, select the variable names in Generate Variables dialog. You can use the nor-
mal Windows selection method of Shift and click or Ctrl and click to select several variables. Then click the
button Rename Selected to open the Rename Variables dialog. See the topic The FL Rename Variables
dialog.

How to select and change the name of all invalid variables

l If any FL tag names are not compliant with the Supervisor, a warning message offers you the choice
of either renaming them or excluding them from the import.
l You can also click the button Rename Invalids to open the Rename Variables dialog. See the topic The
FL Rename Variables dialog.

Generating the variables


Show picture

- 404 -
1. You can double-click on a row to display the Variable Property dialog for the variable. Show pictures
2. Once the variables have their final names, click on Finish to generate the variables in the Supervisor's
variables tree.
3. A time-bar will display the progress in doing so. When you have finished reviewing the variable
names, either click the Finish button to complete the Smart Generator and import the variables
without importing any mimics or symbols from the Client Builder elements, or click Next to continue
to the Import Graphics dialog.

Any variables in the Smart Generator that already exist in the Supervisor are discarded. The cor-
responding variables in the Supervisor are not overwritten or updated in any way.

Any variables shown in red when the Finish button is clicked will not be imported.

- 405 -
The FL Rename Variables Dialog
The Rename Variables dialog is opened from the Generate Variables dialog and provides a tabular display of
all variables that have passed the filter criteria. Show picture

The left column contains the full name of each variable. The other columns show the name of the variable
separated into branches plus the particular name (Name column). The final column on the right hand side
(Length) displays the number of characters in the full name.
Any variables that appear in red have a name that is invalid for use in the Supervisor and must be modified
before they can be imported.
As described below, using the Rename Variables dialog you can:

l Edit the name of a single variable.


l Delete one or more branches from one or more variables.
l Search and replace text in one or more branches for one or more variables.
l Merge branch names.

The buttons to do so become available when you select a variable or variables in the list.
When you have finished editing the variable names, click OK to confirm (or Cancel to cancel the editing) and
return to the Generate Variables dialog.

How to apply a suffix

1. Select a variable or variables in the list then click on the Rename button to open a dialog.
2. Enter a character string (not starting with '.') in the Suffix box and click on OK.

The character '.' and the suffix string are appended to the name of each selected variable. That has the
effect of turning the original variable name into a branch name.

How to modify variable names directly

l To rename a single variable name, double-click on it to open it for editing.


l You can use the Select All button to select the whole list, Shift + Click to select a group of adjacent
variables and/or Ctrl + click to select individual variables.

How to delete branches from variable names

1. Select one or more variables in the left column. You can use Shift + Click to select a group of adjacent
variables or Ctrl + click to select individual variables. Ctrl + a selects all the variables.
2. Select the branch or branches to be deleted by clicking on the column header.
3. Click the Delete button to delete the selected branch(es) from the variable name.

How to search and replace within the branch names

1. Select the variables and branches to be searched (as above).


2. Click the Replace button to open the Replace dialog. Show picture

- 406 -
3. Enter the strings to search and replace.
4. Click OK to perform the search.

The search can match the Find what string with any part of a variable or branch name.

l You can also leave the Replace with box blank so as to omit part of the naming structure.

Only text strings in the names of the selected variables and branches are modified.

How to merge (concatenate) branch names

1. Select a variable name or multiple names.


2. Click on the column headers of the Branch names that are to be merged.
3. Click on the Merge button. The leftmost column you selected will show branch names composed of its
original contents plus those of the other selected column(s), separated by underscores ('_').

Only names of the selected variables and branches are merged.

- 407 -
FL Importing graphics

- 408 -
The FL Import Graphics Dialog
The Import Graphics dialog configures the import of graphical objects from FL's Client Builder folder. Show
picture
The Smart generator can only import mimics and symbols that have been saved in ASCII format.
You can convert mimics and symbols to ASCII format in bulk using Client Builder's Library Converter
(menu Display\Library converter).

Using the Import Graphics dialog you configure the import of:

l The mimics, symbols and images contained within a Client Builder project. The files are processed and
copied to the Supervisor's project.
l The mimics, symbols and images contained within the Client Builder shared libraries. The files are pro-
cessed and copied to the Supervisor's global library folder. New library folders, corresponding to
those in Client Builder, are created as required.
l The mimics, symbols and images contained within the Client Builder template project. The files are
processed and copied to the project template folder in the Supervisor's root.

How to configure the import of graphics

1. Enter a path to a Client Builder's project file (.FVP). You can type in the path directly or select it using
a Windows Explorer dialog opened from the ellipsis button. This path is mandatory.
2. Enter a path to the Client Builder's shared libraries. This path is optional and if it is empty the libraries
will not be imported.
3. Enter a path to the Client Builder's template project. This path is optional and if it is empty the tem-
plate project will not be imported.
4. Select the import options using the Options button. See the topic Graphics options - Options tab.
5. If importing from a multi-lingual project select the language and role options. See the topic Graphics
options - Languages tab.
6. If you want to import the graphic elements only (not the variables) tick the option Generate only
graphics.
7. Click the Finish button to proceed with the import.

The Smart Generator is able to convert both primary and secondary variables. For example, for a Send
Register animation there is one primary variable and up to six secondary (optional) variables.

By default, background schematics are now generated as GIF files.

If you choose not to import animation-related variables from FL, you must ensure that there are
variables in the Supervisor with branch structure and names corresponding to those required in the
animations in the graphic elements derived from FL.

- 409 -
Image, video, audio etc. media files are copied to the destination folder corresponding to the FL
source folder. You must ensure that their formats are compatible with the Supervisor.

- 410 -
The FL Graphics Options - Options Tab
The Options dialog is opened from the Options button in the Import Graphics dialog. Show picture

l General
l Import mimics - Tick to enable import of mimics from the Mimic Files folder.
l Import symbols - Tick to enable import of the symbols from the Symbol Files folder.
l Import images, AVI etc. - Tick to enable import of all images from the Image Files folder.*
l Import options - Tick to import FL configuration options.
l VBA scripts
l Do not import VBA scripts - VBA scripts are not imported.
l Import VBA scripts - VBA scripts are imported.
l Import and comment VBA scripts - VBA scripts are imported but each line is commented out so
that the scripts can be systematically reviewed before they are enabled.
l Advanced
l Copy Config Files content to C folder - Copies the contents of the Client Builder Config Files
folder to the Supervisor's C folder.**
l Rework files during import - Rework files during the import process by renaming variables etc.

* Note that some images may be licensed only for use with FL and therefore should not be used with the
Supervisor. Please check before you enable this option.
** Although this option copies files such as the color palette, some files will be overwritten when the Super-
visor shuts down. See the topic FL import FAQ for more information. Client Builder files for which there is no
equivalent in the Supervisor are not copied (For example SERVERS.DAT and SECURITY.DAT.)

- 411 -
Graphics Options - Languages Tab
FL's Client Builder supports multiple languages and roles. By default it is configured to support three lan-
guages, English, French and German, and four roles, Administrator, Supervisor, Operator and Other.
Wherever you can enter text in Client Builder you can enter a string for each of the roles for each of the lan-
guages making a potential for up to 12 strings for each text.
The Supervisor supports texts for two languages and does not support roles so when importing the mimics
from Client Builder you need to specify which Language/Role combinations you want. Language and Role are
selected from the Options dialog that is opened from the Options button on the Import Graphics dialog. Show
picture

If you do not select a language or role the default setting will import the English/Administrator strings for
both of the Supervisor's languages.
If you want to import strings for two languages you must enable the Supervisor's bilingual option
(Configure.Application Explorer.Settings.Languages) and restart the Supervisor before starting the
import.
You should ensure that Client Builder text has been filled in for the languages chosen. If not, the
imported text will be empty in the Supervisor.

The FL version 8.0 format of the file MLANG.DAT is now supported.

- 412 -
FL Importing Shared Libraries
You must export any VBA User Forms from Client Builder then import them manually into the Super-
visor.
If the shared libraries are imported, the file LIBRARY.DAT is updated.
If an entry is already present in the LIBRARY.DAT file, a similar entry is not appended to it, for example:
LIBRARY, Arrows,"My Arrows","My Arrows",1,0,0,0,1,1)
The resulting shared libraries might appear as follows.

If a symbol is contained in a mimic, this process is transparent. For instance a symbol from the folder
Shared Libraries\MySpecialLib will be copied to the folder Lib\MySpecialLib then processed.

- 413 -
FL Importing the Template Project
The template project elements are imported in the same way as the other elements of the project but the
destination folder is TPL rather than USR\[Project Name].

- 414 -
FL Client Builder Differences
There are several differences between Client Builder and the Supervisor in regard to the animation engine.

Color on register level animation


There is an option in Client Builder (Ignore animation when ...) that has no effect in the Supervisor. Show
picture

Bit animations
In a Client Builder bit animation (such as Color on Bit), you can configure a register variable instead of a bit
variable. That is not possible in the Supervisor, so it creates an expression instead. If any register variables
are found they are replaced with the expression
=<var name> != 0
for example =TANK1.LEVEL != 0.
Here is an example. In Client Builder, RTMCMD is a register. Show picture

In the Supervisor, Smart Generator creates an expression as follows. Show picture

Client Builder Clusters


Some Client Builder tags may be prefixed with the cluster name. Before import, the Smart Generator reads
the Client Builder file SERVERS.DAT. The list of cluster names enables it to resolve expressions as follows.
The Smart Generator removes the cluster name, for example
=OPCcluster:A_YEAR - OPCcluster:A_DAY
becomes
=A.YEAR - A.DAY
In Client Builder: Show picture

- 415 -
After generation, in the Supervisor: Show picture

OPC array items

The Client Builder can import array variables using two different syntaxes.

For example TASKSTART_S[10] and TASKSTART_[10]_S refer the same OPC array item (TASKSTART_S).
The Smart Generator is able to handle the two syntaxes so as to import an animation for example as fol-
lows.
In Client Builder: Show picture

After generation, in the Supervisor: Show picture

Send eSignature animation

The Client Builder animation eSignature does not exist in the Supervisor.

The Supervisor displays a warning when opening a mimic containing this animation and removes it from the
mimic. Show picture

- 416 -
Importing Windows metafile (.WMF) graphic files
Client Builder and the Supervisor do not handle the metafile format in the same way. However the Smart
Generator processes any imported metafile file so that it has same appearance in the Supervisor as in Client
Builder.

- 417 -
FL Import Report
A report file named IMPORTREPORT.TXT is generated in project folder C. The following is an extract of such
a report.
Importing project "C:\Program Files\FL\Applications\Examples App\CBPROJ"
Importing mimics...
-------------------
Warning: file D:\100\USR\T4\W\s1 is not ASCII format
Number of mimics processed : 10
Importing mimic templates...
----------------------------
Number of mimic templates processed : 1
Importing symbols...
---------------------
Warning: file D:\811\USR\T4\S\tp1 is not ASCII format
Warning: file D:\811\USR\T4\S\ tp2 is not ASCII format
Warning: file D:\811\USR\T4\S\ tp3 is not ASCII format
Warning: file D:\811\USR\T4\S\ tp4 is not ASCII format
Warning: file D:\811\USR\T4\S\ tp5 is not ASCII format
Number of symbols processed : 29
Importing images...
-------------------
Number of images processed : 40

- 418 -
FL Variable Properties
Many configuration elements are generated during the import process. This topic describes the properties
from configuration of OPC and variables.

OPC configuration
The server properties are configured as follows.
Property Setting
Alias Default value: SERVER.
Network Node Default value: empty (local machine).
Server PROGID FL.OPCServer.1 or FL.DevOPCServer.1 if FL is used as an OPC Server, else unused.
Active at launch TRUE
The group properties are configured as follows.
Property Setting
Alias Default value: GRP1.
Scan Rate Default value: 1 second.
Active at launch TRUE

Variables in general
The variable properties are configured as follows.
Property Setting
Name The default value is the FL tag name but you can modify that name during import.
Branch According to the branch separator.
Domain Optional, depending of the FL domain or alarm group.
Description This can be optionally derived from the FL tag description or from the alarm message.
Source OPC or Internal (import option).
Equipment when importing Modbus TCP configuration.
Alarm Depending on FL tag.
Alarm Level Depending on FL alarm Priority.
Alarm Mask Depending on FL alarm Hide tag.
Alarm Ack bit Depending on FL alarm Status tag.
Command True.
CommandLevel 0.
Variable type
FL Supervisor
DIGITAL BIT.
ANALOG REGISTER.
LONG ANALOG
FLOAT
MESSAGE TEXT.
Min / Max
FL Byte Min Max
DIGITAL 0 1
ANALOG 2 -32768 32767
LONG ANALOG 4 -2147483648 2147483647
FLOAT 8 +/-10(-308) +/-10(308)

Attribute3 For alarms: FL alarm message text.


Attribute4 For alarms: alarm group name.
Attribute5 For alarms: name of the variable for the alarm.
Server List Optional, user-provided.
Client List Optional, user-provided.
Min According to the FL tag default value tagname.RAWMIN.

- 419 -
Max According to the FL tag default value tagname.RAWMAX.
Scale Min According to the FL tag default value tagname.EUMIN.
Scale Max According to the FL tag default value tagname.EUMAX.
Domain Optional (SHARED, USER or NONE).
In the case of an OPC import where the server is FL, the Smart Generator computes the OPC properties of
the Supervisor variables.
Property Setting
OPC Server OPC server configured alias (default: FLOPCSRV).
OPC Group OPC group configured alias (default: G1S).
OPC Item ID FL tag name.
If the option Import FL OPC configuration is set to On, the following properties as also set:

Property Setting
OPC Server OPC server configured alias.
OPC Group OPC group configured alias.
OPC Item ID OPC Item.

Generated variables have their Command property set to True to facilitate testing.

- 420 -
FL Import Frequently Asked Questions
This topic answers some of the most usual queries about the FL Import.

What properties of the FL tags are used in the Supervisor's variables?


See the topic FL variable properties.

How can I import the ClientBuilder color palette?


If the Client Builder project uses any indexed colors (the 32 colors found in the lower half of the color
palette) then the color palette must be manually copied from the Client Builder project to the Supervisor's
project. It is saved in the file PALCOL.DAT.

l Copy PALCOL.DAT from the Config Files folder of the Client Builder project to the C folder of the Super-
visor's project.

The Supervisor must not be running when you copy the file, since it would overwrite the file when it
is next shut down.
If you intend to copy the color palette file from ClientBuilder it should be done before you change or
use any of the default colors in the Supervisor's palette.

Are the animation elements identical?


There are some minor differences between the Client Builder's animations and those of the Supervisor. See
the topic FL Client Builder differences for details.

Why do I get an error message about the mimic template when I open a converted mimic?
The mimic, the mimic template or one of the embedded symbols is in binary format. You must convert all
the graphical elements to ASCII in Client Builder before importing to the new Supervisor, as described in the
topic The FL Import Graphics Dialog.

Why are some texts missing in a particular language?


This happens as a result of language selection during the import process. If you select a default language for
which the texts have not been filled out, those texts will be blank. For details see the topic Graphics Options
- Languages Tab.

- 421 -
Generic XML

- 422 -
Overview of the Generic XML Import Facility
The XML import provides a vendor-independent means of supplying configuration data to the Supervisor.

l Select the option New import to open the Generic XML Import dialog. Show picture

This import method uses a file formatted according to the XML 1.0 mark-up standard (Extensible Markup Lan-
guage). The file represents a structure of configuration objects and their descriptions, plus values for their
properties where appropriate.

The advantages of using XML import


Prior to the availability of XML import, the only method of externally generating the Supervisor's con-
figuration was by directly creating and editing the Supervisor's ASCII configuration files. Importing the con-
figuration from XML files has major advantages over this method.

l Not all properties of a configuration object have to be given values in the XML file. Any properties
without values will be set to a default value by the Supervisor.
l Once you have imported the configuration, properties that did not have values in the XML file can be
configured using the Supervisor's configuration dialogs.
l After the first import you can synchronize changes made in the XML file with the Supervisor's con-
figuration by importing it again. The synchronize mechanism recognizes whether any changes have
been made using the Supervisor's configuration dialogs and does not overwrite them.

What is the structure of the XML file?


The structure of the XML file and a list of the supported configuration objects is available in the Microsoft
Word document XML_IMPORT ... .DOC stored in the addenda folder of the Supervisor's distribution media.

XML-compatible characters
Some characters do not work via XML format and must be replaced with substitute codes (ISO
code).
You can find guidance on the Web about the Unicode code ranges and escape characters to use.

- 423 -
Starting from a Command Line
You can start a generic XML import from a command line as follows.

l Enter a command, set up a shortcut or use a script to run the executable file XMLIMPORTER.EXE found
in the BIN folder of the Supervisor's project.

The file XMLIMPORTER.EXE must not be moved from that folder.

The XmlImporter command line tool is supported on both 32(x86) and 64 bit (x64) operating sys-
tems.
The syntax is as follows.
XmlImporter file1 [file2 [file3 [etc.]]
Where each fileX names a file to be imported, or contains a list of files to be imported.
The filenames are separated by spaces. They must not be separated by any other character (comma
for example).
When a file contains a list of other files to be imported, the list is itself XML-formatted as follows.
<Imports>

<Import>Import1.xml</Import>
<Import>Import2.xml</Import>

</Imports>

- 424 -
The Generic XML Import Dialog
The dialog Generic XML Import selects the file from which the Supervisor's configuration is to be imported.

Show picture

How to configure the import

1. In the Generic XML Import dialog, enter a reference name for the import in Import name. This will
appear in the list of imports next time the Smart Generator is opened.
2. In the box XML File.Filename, enter or select the XML file to be imported. The file can be located on
any storage device visible to the Smart Generator.
3. Click on Finish to close the dialog and perform the import.

During the generation process a dialog displays a time-bar of progress. If there is an error, the dialog
reports it and the import ceases. You can use the buttons >> and << during and after the import to display
or hide the details.

- 425 -
ISaGRAF

- 426 -
Overview of the ISaGRAF Smart Generator
The ISaGRAF Smart Generator imports an ISaGRAF database file (.MDB) from which it generates the fol-
lowing configuration objects for the Supervisor.

l Variable definitions
l OPC configuration elements (OPC servers and OPC groups).
l Links between the variables and the OPC configuration elements.

About the ISaGRAF project database file


The project database file is produced by the ISaGRAF programming software. For information on how to gen-
erate the project database file please see the help supplied with the software.
It is not necessary to have the ISaGRAF programming software installed for the Smart Generator to
run.

Backing up the Supervisor's variables configuration


Before starting the import process it is recommended that you back up the Supervisor's database con-
figuration. Then, if you encounter any problems during the import process, it is simple to restore the pre-
vious version of the variables tree. Its configuration is stored in the file VAREXP.DAT in the project's C
folder. Before copying the file make sure that the Supervisor is shut down.

Starting the Smart Generator

l Start the Smart Generator from the New ISaGRAF Import command on the Task Toolbar. Show pic-
ture

The Smart Generator guides you through the following steps.

l Selecting the ISaGRAF project database file from which the variables are to be imported.
l Selecting a full or custom import.
l Selecting the variables to be imported if you have chosen custom import.
l Configuring the variables branch management.
l Generating the variables.

- 427 -
The ISaGRAF Select Project Dialog
The Select Project dialog selects the ISaGRAF project database file from which the variables are to be impor-
ted and the configuration of the communication objects in the Supervisor to which they are to be attached.
Show picture

How to configure the Select Project dialog

1. In the Import Name box, enter a reference name for the import. It will appear in the list of imports
next time the Smart Generator is opened.
2. In the File path box, enter or select the path to the ISaGRAF project database file.
3. In the OPC Server section, select the name of the ISaGRAF OPC server and Group to be used. If the
Supervisor's project does not already have an ISaGRAF OPC Server and Group configured the Smart
Generator will create a default OPC Server (ISAGRAF) and Group (GR1S).
4. To pre-filter the import of ISaGRAF variables, enter a string in the Custom String box, See below.
5. Configure any advanced options. See the topic ISaGRAF Import Advanced Options for more inform-
ation.
6. Click Next to display the Import Variables dialog.

Using the custom string


The Custom String property pre-filters the import by matching the supplied string against the contents of the
variable's comment field in the ISaGRAF project database. Only variables with comments containing the sup-
plied string pass the pre-filter. For example, if you enter {hmi} in the Custom String box, the Smart Gen-
erator will only makes available items whose comment field contains {hmi}.
Unlike some of the other Smart Generators, the custom string does not support wildcards.

The ISaGRAF Advanced Options Dialog


The Advanced Options dialog is opened from the Advanced button in the ISaGRAF Smart Generator. Show
picture

- 428 -
The Networking list tab
The networking lists are used to control the behavior of Supervisor's variables for multi-station projects.
You can configure the network lists for variables imported by the ISaGRAF Smart Generator as follows.

1. Open the Networking List tab.


2. Use the Server list drop-down box to select the server list.
3. Use the Client list drop-down box to select the client list.
4. Select OK to return to the Select Project dialog.

The lists of servers and clients must already have been created in the Supervisor and the local sta-
tion must appear in the servers list.

The OPC Server tab


Show picture
The Smart Generator for IsaGRAF is now compatible with the OPC Server version 3.0.

l Network node - The name of the PC on which the ISaGRAF OPC server is located, if it is not on the
local PC
l Update rate - The OPC Group update rate in milliseconds. The default is 1000.

The Options tab


Show picture

l Branch - Prefix the name of the imported variables with a branch constructed from the configuration
and task names. This option is recommended if there are multiple configurations and resources.
Example: BIT1 might be imported as PLC1.TASK1.BIT1
l Domain - Generates a domain corresponding to each variable group. Tick the option Assign domain to
generated variables to automatically assigns the generated domain to each variable in the group dur-
ing the import.
l Local variables - Enables the import of local variables. Tick the option Branch local variables with POU
name to prefix the name of the imported variables with the name of the POU (Program Organization
Unit). Example: ST1.BIT might be imported as P1.ST1.BIT.
l Comment - import the ISaGRAF variable and sub-variable comment as the Supervisor's variable
description.

- 429 -
The ISaGRAF Import Variables Dialog
The Import Variables dialog displays the number of variables available and allows you to select a full or cus-
tom import. Show picture

l If you select a full import all variables will be available for import. Click the Next button to display the
Branch Management dialog.
l If you select a custom import the Next button displays the Select Variables dialog from where you can
filter and select the variables to be imported.

- 430 -
The ISaGRAF Select Variables Dialog
Using the Select Variable dialog you can apply a filter to the list of available variables. Show picture

Variables passing the filter appear in a list from which you can select some or all them using the following
criteria.

l Type of variable in the Supervisor (Bit, Register or Text).


l Domain and/or Nature.
l Name filter.

Variables that pass the filter criteria appear in the Available Items list. To select the variables for import
you select their names and copy them to the Selected Variables list by clicking the -> button.
When the variables required for import are all listed in the right-hand panel, click the Next button to con-
tinue.

About the Name Filter


The Name Filter allows the Smart Generator to filter the list of variables according to the item name in the
ISaGRAF project database file. The wildcards '*' (to match any string) and '?' (to match a single character)
are allowed.

l 'Pump1' would only match a variable with the name 'Pump1'.


l 'Pump?' would match 'Pump1' or 'Pump2' etc but not 'Pump10'.
l 'Pump*' would match 'Pump1', 'Pump2' and 'Pump10' but also 'Pumpkin'.

The Supervisor does not support all characters for variable naming. In particular, the characters '['
and ']' are not supported, so some tags are automatically renamed. For example in the case of an
array item, 'BoolArray[1]' is renamed to 'BoolArray_1'.

- 431 -
The ISaGRAF Branch Management Dialog
The Branch Management dialog allows you modify the variable names as follows.

l Apply a global branch by prefixing all variable names with a supplied branch name. This can transform
a flat database into a hierarchical one.
l Use numeric characters as branch separators.
l Use a specific character (or a sequence of characters) in a variable name as a branch separator.

When you have configured the branch management click Next to display the Generate Variables dialog.
Show picture

l To prefix all variable names with a branch, enter the name of the branch in the Global branch field.
l To use numeric characters as branch separators, select the tick box Use numeric characters as branch
separator.

Variable names will be modified so that a branch separator appears after each numeric character.
Examples:

l WORD1DEFAULT1 becomes WORD1.DEFAULT1


l ZONE1PUMP1STOP becomes ZONE1.PUMP1.STOP

A branch separator is not added when there is a numeric character at the end of the name.

l To use a specific character or sequence of characters in a variable name as a branch separator, select
the tick box Use Specific Sequence and enter the character or sequence in the Sequence field.

Variable names will be modified so that a branch separator appears instead of the selected character in the
original variable name.
Examples:
The underscore character has been selected as the branch separator.

l CONTROLROOM_COMMAND becomes CONTROLROOM.COMMAND


l CONTROLROOM_STATUS becomes CONTROLROOM.STATUS

A branch separator is not added when the specified character is at the end of the name.

- 432 -
The ISaGRAF Generate Variables Dialog
The Generate Variables dialog is the final one before the variables are imported into the Supervisor. In it,
you can review and edit the final names of the variables to be generated.
Click on Finish to generate the variables in the Supervisor's variables tree. Show picture

Why might some variables be displayed in red?


A variable item will be displayed in red if is invalid for use in the Supervisor as follows.

l The length of the variable name exceeds 255 characters.


l The number of branches in the variable name exceeds 12 characters.
l The name of a branch element or the name of the 'leaf' element is empty (length =0) or exceeds 255
characters.
l The variable contains a character that is not a letter, a digit or the underscore.

How to display and change the properties of a single variable


Double- click on the variable name to open the Variable Property dialog. There you can change the variable
name. Show picture

The rest of the data fields are for information (read-only).

How to select and change the name of all invalid variables


Click the Rename button to open the Rename Variables dialog. For details, see the topic The ISaGRAF
Rename Variables dialog.

Generating the variables


Once the variables have their final names, click the Finish button to generate them in the Supervisor. During
the generation process a dialog is displayed indicating the progress.
Any variables in the Smart Generator that already exist in the Supervisor are discarded. The cor-
responding variables in the Supervisor are not overwritten or updated in any way.

Any variables shown in red when the Finish button is clicked will not be imported.

- 433 -
The ISaGRAF Rename Variables Dialog
The Rename Variables dialog is opened from the Generate Variables dialog and provides a tabular display of
all variables that have passed the filter criteria. Show picture

The left column contains the full name of each variable. The other columns show the name of the variable
separated into branches. The final column on the right hand side displays the number of characters in the
name. Any variables that appear in red have a name that is invalid for use in the Supervisor and must be
modified before they can be imported.
Using the Rename Variables dialog you can:

l Edit the name of a single variable


l Delete one or more branches from one or more variables
l Search and replace text in one or more branches for one or more variables

The buttons to do so become available when you select a variable or variables in the list.
When you have finished editing the variable names, click OK to confirm or Cancel to cancel the editing and
return to the Generate Variables dialog.

How to apply a suffix

1. Select a variable or variables in the list then click on the Rename button to open an unnamed dialog.
2. Enter a character string (not starting with '.') in the Suffix box and click on OK.

The character '.' and the suffix string are appended to the name of each selected variable. That has the
effect of turning the original variable name into a branch name.

How to edit the name of a single variable

l Double-click on the variable's full name in the left hand column of the list to display the Edit Name dia-
log. There you can edit and change the name.

How to delete one or more branches from one or more variables

1. Select one or more variables in the left column. You can use Shift + Click to select a group of adjacent
variables or Ctrl + click to select individual variables. Ctrl+a selects all the variables.
2. Select the branch or branches to be deleted by clicking on the column header.
3. Click the Delete button to delete branch(es) from the variable name.

How to search and replace text in one or more branches for one or more variables

1. Select the variables and branches to be searched (as above).


2. Click the Replace button to open the Replace dialog. Show picture
3. Enter the strings to search and replace.
4. Click OK to perform the search.

The search can match the Find what string with any part of a variable or branch name. You can also leave
the Replace with box blank so as to omit part of the naming structure. Only text strings in the names of the
selected variables and branches are modified.

- 434 -
- 435 -
LNS

- 436 -
Overview of the LNS Smart Generator
The Smart Generator for the LonWorks Network Operating System (LNS) imports configuration data from
the LonWorks Network file of a LNS project. From that file it generates the following configuration objects in
the Supervisor.

l LNS network and nodes.


l The Supervisor variables corresponding to the selected LNS network variables. The names of the vari-
ables generated in the Supervisor are constructed from the names of the LNS network components as
follows.
Device.LonMark Object.Network variable.Variable field
l Links between the Suervisor's variables and the LNS nodes.

The Smart Generator 'flattens' certain parts of the LNS data structure to avoid over-long branch
paths. As a result duplicate device names may be generated from different LNS sub-networks which
must be edited before the import is completed.
For the Smart Generator to run, you must have LonWorks software components including the
LonWorks Object Server installed on the PC .
The LNS Smart Generator is designed for generating variables when you have one or more
instances of a template. It is not suitable for programmable devices where the name and type of
variables in the node can differ from the template.

Backing up the Supervisor's variables configuration


Before you start the import process it is recommended that you back up the Supervisor's variables con-
figuration. Then, if you encounter any problems during the import process, it is simple to restore the pre-
vious version of the variables tree. Its configuration is stored in the file VAREXP.DAT in the project's C
folder. Before copying the file make sure that the Supervisor is shut down.

Starting the Smart Generator


Start the Smart Generator from the New LNS Import command on the Task Toolbar. Show image

The Smart Generator guides you through the following steps.

l Selecting the LNS configuration file from which the data are to be imported.
l Selecting LNS components - device templates, devices, network variables and variable fields - that
are to be imported.

- 437 -
l Editing the names of the LNS components so that the variable names that are generated are compliant
with the Supervisor.
l Changing certain variable properties.
l Adding variables to a template using expressions in the variable field.
l Generating the Supervisor's LNS network and node configuration and the corresponding variables.

How to select the LNS configuration file

1. From the Smart Generator task list select New LNS import. The LNS Select Network dialog is dis-
played.
2. Enter a name for the import or accept the suggested one.
3. Using the Network drop down list box select an LNS network. The drop down list box is populated with
all networks known to the LonWorks database.
4. Click the Next button to open the LNS Import variable dialog.

The process of importing has no effect on the LNS project from which it extracts the data.

- 438 -
LNS Import variables dialog

- 439 -
Selecting the Variables to be Imported
The Import Variables dialog is used to select the LNS network components that are to be imported. The dia-
log contains two panes.

l The left pane displays the templates and devices (nodes). The template named LNS Network Interface
is always present, representing the network interface (card) of the network concerned.
l The right pane displays details of the selected template including its LonMark objects, network vari-
ables and variable fields.

The LNS subsystems are not shown by default and therefore you may sometimes see two or more devices in
the left pane that have the same name. To display the subsystem for a particular device point to it using the
cursor and the subsystem is displayed in a tooltip. Show picture

Using the Import Variable dialog you can also:

l Edit the names of the LNS components so that the variable names that are generated are compliant
with the Supervisor.
l Edit certain variable properties.
l Add network variables to a template with expressions in the variable field.

How to select the variables to be imported

1. Select one of the templates in the left pane.


2. In the right pane expand the template's configuration tree. The tree will consist of LonMark objects,
network variables and variable fields.
3. Tick the variable fields corresponding to the variables you want to import. Ticking a higher level com-
ponent, for example a LonMark object, will automatically tick all those components subordinate to it.
4. Repeat steps 1 to 3 for the other devices templates in the left pane.
5. Expand the configuration tree in the left pane to display the device instances (nodes).
6. Tick those devices you want to import. Show picture

- 440 -
Why are some component names colored red?
There are two reasons why component names can be colored red.

l In the right pane. The names of the selected components would generate variables in the Supervisor
that do not comply with the Supervisor's variable naming scheme. The names of the Supervisor's vari-
ables must comply with the rules stated in the topic Rules for Branch and Variable Naming.
l In the left pane. There are duplicated device names which would lead to the generation of duplicated
variable names in the Supervisor.

To fix this problem the LNS Smart Generator allows you to edit the names of the LNS devices, LonMark
objects, network variables and variable fields. This does not effect the LNS configuration in any way - just
how it is imported into the Supervisor. You edit a name by first selecting it and then clicking F2. The name
field becomes a text box where you can enter the new name.

Any variables that do not comply with the Supervisor's requirements will not be imported.

Exporting and importing a template's configuration


You can export the configuration of a template by right clicking on it and selecting Export device template
configuration from the context menu. Show picture

The export creates an XML file containing the template configuration including which variables have been
selected and any that have been manually added. By default the XML file is saved, with the same name as
the template, in the Supervisor's BIN folder.
When importing other instances of the same template, either in the same or another project you can import
the template configuration, using the Import device template configuration command.

- 441 -
Changing the Properties of Variables Before Import
The LNS Smart Generator allows you to change some of the variable's default configuration before they are
imported into the Supervisor. The changes are made to a template and will therefore effect variables gen-
erated from any device based on that template.

Changing the LNS monitoring options


The LNS monitoring options are changed at the Network variable level. The change will be applied to all
imported Variable fields below that level. To change the monitoring options right click a Network variable
component in the Smart Generator's right hand pane and select Properties from the pop-up menu. The fol-
lowing options are available from the Parameters tab. Show picture

l Use default parameters - The values of the Bind this variable property and the Poll interval property
are taken from the default set in the LonWorks Network configuration dialog.
l Polling rate (seconds) - The interval at which the Supervisor polls the LonWorks node.

Changing the Permanent scan for mimics option


The Permanent scan for mimics option is changed at the <Variable field> level. The change must be made
per variable. To change the option right click a <Variable field> component in the Smart Generator's right
pane and select Properties from the pop-up menu. The following options are available from the Parameters
tab. Show picture

l None - The variable's real time value is only polled when a mimic using it in an animation is open.
l Server only - The variable's real-time value is permanently polled on the station where it is produced.
On all other stations it behaves as None.
l All stations - The variable's real-time value is permanently polled on all stations. This is the default
setting.

- 442 -
Adding a Variable
LonWorks variables sometimes have a complex structure and it is necessary to use an expression to select
the correct data to be linked to the Supervisor's variables. This is normally done as part of the process of
configuring variables in the Supervisor.
The LNS Smart Generator allows you to add variables, with an expression, to a template. The variables will
then be automatically generated for each device based on that template thereby avoiding the need to con-
figure them manually.

How to add a variable

1. Right click a Network variable object in the Smart Generator's right hand pane and select Add variable
from the pop-up menu.
2. Enter a name for the new variable in the Variable name field. Show picture

3. Select the expression using the Field drop down list box.
4. If you want to change the scan options select the Parameters tab and select the appropriate option.
See the topic Changing the Properties of Variables Before Import for details of the scan options.
5. Click OK to confirm the configuration.

- 443 -
Generating the Variables from LNS
This is the final step for importing the variables into the Supervisor. When you have selected all objects to
be imported and edited their names as necessary in the Import Variables dialog, you click the Finish button
to start the import.
A time-bar is displayed and left open when the process is complete. You can click the arrow button to show
details of the import. Show picture

When the import is complete click on the Close button to return to the Smart Generator workspace.
Any objects that are shown in red in the Import Variables dialog are omitted from the import. If
there are corresponding variables in the Supervisor, they are not overwritten or updated.

Checking the variables in the Supervisor


You can check and if desired adjust the variables imported to the Supervisor's variables tree by opening the
configuration dialog of each variable. Show picture

For details of the settings, see the configuration help book on Linking a Variable to a LonWorks Node.

- 444 -
OPC

- 445 -
Overview of the OPC Smart Generator
The OPC Smart Generator is designed to automate the configuration of the Supervisor's OPC-DA client. It is
able to import the item configuration from an external OPC server, from which it generates the following con-
figuration objects:

l Variable definitions.
l Mapping between the variables and OPC items.

Prerequisites
Before using the Smart Generator for OPC the following steps must be followed by the application designer:

l Because the Smart Generator for OPC is based on OPC browsing, the list of OPC items that the
external OPC server is to expose must be configured (see the OPC Server vendor's documentation for
more information).
l The connection to the OPC Server, and the group to which new variables will be mapped, must be con-
figured within the Supervisor (using the Application Explorer for example).

Backing up the Supervisor's variables configuration


Before you start the import process it is recommended that you back up the Supervisor's variables con-
figuration. Then, if you encounter any problems during the import process, it is simple to restore the pre-
vious version. Its configuration is stored in the file VAREXP.DAT in the project's C folder. Before copying the
file make sure that the Supervisor is shut down.

Starting the Smart Generator


The OPC Smart Generator is started from the New OPC import task in the Smart Generators Management
dialog. Show picture

- 446 -
The Smart Generator guides you through the following steps. Show picture

1. Select the OPC server and group to which the variables will be mapped. Select OPC Server dialog and
OPC Advanced Options dialog.
2. Variable branch management. Branch Management dialog
3. Select the import type from either Full or Custom. Select Import Type dialog
4. Select the variables to import if you selected Custom Import in the previous step. Select Variables dia-
log
5. Generate the variables. Generate Variables dialog
6. Rename any variables with invalid names. Rename Variables dialog
7. End

- 447 -
Select the server Dialog
The Select the server dialog is the first step of the Smart Generator OPC wizard. It is used to select the OPC
Server and Group to which the newly generated variables will be mapped. Show picture

How to select the server and group

1. Select the OPC Server and OPC group using the drop down list boxes. The available servers and cor-
responding groups are those from the Supervisor’s configuration. The Update rate and Deadband are
from the configuration of the selected group.
2. Click the Advanced button if you need to change any of the advanced properties. See the Advanced
Options topic.
3. Click Next to proceed to the next step Branch Management dialog.

- 448 -
OPC Advanced Options Dialog
The Advanced Options dialog is opened from the Advanced button in the Select the serve dialog of the OPC
Smart Generator. Show picture

The lists of servers and clients must already have been created in the Supervisor and the local sta-
tion must appear in the servers list.

Networking list
The networking lists are used to control the behavior of the Supervisor's variables for multi-station projects.
You can configure the network lists for variables imported by the Smart Generator as follows.

1. Click on the Advanced button to open the Networking Lists dialog.


2. Use the first drop-down box to select the server list.
3. Use the second drop-down box to select the client list.
4. Select OK to return to the Select Server dialog.

Options tab
The Options tab allows you to configure some default properties for the generated variables. Show picture

l Default domain - The name of a Domain that will be applied to all generated variables.
l Nature - The name of a Nature that will be applied to all generated variables.

- 449 -
OPC Branch Management Dialog
The Branch Management dialog is the second step of the Smart Generator OPC wizard. It is opened from the
Next button in the Select the Server dialog. It is used to modify variable names imported from the OPC
server so that they conform to the Supervisor's hierarchical naming scheme.Show picture

How to modify the variable names imported from the browsed OPC items

1. To prefix all variable names with a branch or branches enter it into the Global branch field.
2. To structure variable names by inserting a branch separator after any number use Use numeric char-
acters as branch separator.
3. To structure variable names by replacing a particular character or character sequence with the branch
separator use Use character sequence as branch separator and enter the Sequence.
4. Click Next to proceed to the next step Import Variables dialog.

Example of the use of the numeric separator

l WORD1DEFAULT1 becomes WORD1.DEFAULT1


l ZONE12PUMP1STOP becomes ZONE12.PUMP1.STOP

A branch separator is not added when there is a numeric character at the end of the name.

Example of the use of the character sequence separator


The underscore character has been selected as the branch separator.

l CONTROLROOM_COMMAND becomes CONTROLROOM.COMMAND


l CONTROLROOM_STATUS becomes CONTROLROOM.STATUS

A branch separator is not added when the character sequence is at the end of the name.

- 450 -
OPC Import Type Dialog
The Import Variables dialog is the third step of the Smart Generator OPC wizard. It is opened from the Next
button in the Branch Management dialog. It is used to select either a Full Import or Custom Import. At this
stage of the wizard the OPC server configuration has been browsed and the number of potential variables is
displayed in the dialog. Show picture

l To import all variables select Full Import and click the Next to proceed to the next step Generate Vari-
ables dialog.
l To view the potential variables and select those to import select Custom Import and click Next to pro-
ceed to the next step Select Variables dialog.

- 451 -
OPC Select Variables Dialog
The Select Variables dialog is the fourth step of the Smart Generator OPC wizard. It is opened from the Next
button in the Select Import Type dialog. It is used to display and select those variables to be imported.Show
picture

Filtering the variables


The variables that appear in the Available Items list can be filtered using the following criteria.

l Using the Bit, Register and Text tick boxes to select the type of variable (as it will be converted to in
the Supervisor).
l Using the name filter. Wildcards * (matches any string) and ? (matches a single character) are sup-
ported. For example:
l 'Pump1' would only match a variable called 'Pump1'.
l 'Pump?' would match 'Pump1' or 'Pump2' etc. but not 'Pump10'.
l 'Pump*' would match 'Pump1', 'Pump2' and 'Pump10' but also 'Pumpkin'.

The filter is applied using the Apply button.

Selecting the variables


The Available Items list supports the standard Window's selection methods (Click, Shift + Click etc.). Selec-
ted variables are moved to the Selected Items list using the -> button. The Selected Items list supports the
same selection methods. Variables can be removed by selecting them and using the <- button. Click Next to
proceed to the next step Generate Variables dialog.

- 452 -
OPC Generate Variables Dialog
The Generate Variables dialog is the final step of the Smart Generator OPC wizard. It is opened from the
Next button in the Select Variables dialog. It is used to review and edit the names of the variables before
they are generated. Show picture

Why are some variables displayed in red?


A variable name is displayed in red if it is invalid for use in the Supervisor. Possible reasons are:

l The length of the variable name exceeds 255 characters.


l The number of branches exceeds 12.
l The name of any element (branch or final leaf) is empty (length =0) or exceeds 255 characters.
l The name of any element contains a character that is not a letter, a digit or the underscore.
l The name of a variable is duplicated.

How to display and change the properties of a single variable


You can display and change the properties of a single variable using the Variable Properties dialog which is
displayed by double clicking on the variable's name. You can use it to change the variable name. Show pic-
ture

How to select and change the name of some or all variables, or all invalid variables

l Click the Rename Invalid button to open the Rename Variable dialog with a list of all variables with
invalid names.
l Click the Rename Selected button to open the Rename Variable dialog with a list of selected variables.

Generating the variables


Once the variables have their final names they can be generated in the Supervisor by clicking the Finish but-
ton. During the generation process a dialog is displayed indicating the progress.
Any variables in the Smart Generator that already exist in the Supervisor are discarded. The cor-
responding variables in the Supervisor are not overwritten or updated in any way.
Any variables appearing in red when the Finish button is clicked will not be imported.

- 453 -
OPC Rename Variables Dialog
The Rename Variables dialog is opened from the Select Import Type dialog or Select Variables dialog and is
used to rename variables before generation. Show picture

The left hand column contains the full name of each variable. The other columns show the name of the vari-
able separated into branches. The final column on the right hand side displays the number of characters in
the name. Variables that appear in red have a name that is invalid for use in the Supervisor and must be
modified before they can be imported.
Using the Rename Variables dialog you can:

l Edit the name of a single variable.


l Delete one or more branches of one or several variables.
l Merge two or more branches of one or several variables.
l Search and replace text in one or more branches for one or several variables.

When you have finished editing the variable names click OK to confirm or Cancel to cancel the editing. In
either case you will return to the Generate Variables dialog.

How to edit the name of a single variable


To edit the name of a single variable, double-click on its full name in the left hand column of the list. The
Edit Name dialog will be displayed from where you can edit and change the name.

How to delete one or more branches

1. Select one or more variables in the left column. You can use Shift+click to select a group of adjacent
variables or Ctrl+Click to select several individual variables. Ctrl+A selects all of the variables.
2. Select the branch or branches to be deleted by clicking on the column header.
3. Click the Delete button to delete the branches from the variable name.

How to merge one or more branches

1. Select one or more variables in the left column. You can use Shift+Click to select a group of adjacent
variables or Ctrl+Click to select several individual variables. Ctrl+A selects all of the variables.
2. Select two or more branches that are to be merged by clicking on the column header. You can only
merge consecutive branches.
3. Click the Merge button to delete the branches from the variable name.

How to search and replace text in one or more branches

1. Select the variables and branches to be searched as above.


2. Click the Replace button to open the Replace dialog.

- 454 -
3. Enter the strings to search and replace.
4. Click OK to perform the search. Only text in the selected variables and branches is modified.

- 455 -
OPC Data Types
There are many OPC Data types some of which are common and others which you are unlikely ever to
encounter. The following is a list of the most common types and how they are mapped to the Supervisor's
variables.
OPC Data type Id Description Variable type
VT_I2 2 2 byte signed integer Register
VT_I4 3 4 byte signed integer Register
VT_R4 4 4 byte real Register
VT_R8 5 8 byte real Register
VT_DATE 7 Date Text
VT_BSTR 8 String Text
VT_BOOL 11 Boolean Bit
VT_I1 17 1 byte signed char Register
VT_UI1 18 1 byte unsigned char Register
VT_UI2 19 2 byte unsigned integer Register
VT_UI4 20 4 byte unsigned integer Register

Array types
Array Data types are not, in general, supported although some types can be mapped to a single Text vari-
able which may, or may not, produce a useful value.

- 456 -
Saia-Burgess

- 457 -
Overview of the Saia-Burgess Smart Generator
The Saia-Burgess Smart Generator imports a Saia-Burgess symbol file from which it generates the following
configuration objects for the Supervisor.

l Variable definitions
l Communication network (S-Bus IP, shown as IP-SAIA in the dialog), node and frames
l Links between the variables and the communication frames

About the Saia-Burgess Symbol File


The Symbol File is produced by PG5, the Saia-Burgess programming suite. For information on how to gen-
erate the Symbol File please refer to the help supplied with the Saia-Burgess software.
The Symbol File can be generated in either ASCII or XML formats. However for use with the Smart Gen-
erator it must be in ASCII format (character-separated values using tab).
It is not necessary to have the Saia-Burgess programming software installed, nor any devices con-
nected, for the Smart Generator to run.

Backing up the Supervisor's variables configuration


Before you start the import process it is recommended that you back up the Supervisor's variables con-
figuration. Then, if you encounter any problems during the import process, it is simple to restore the pre-
vious version of the variables tree. Its configuration is stored in the file VAREXP.DAT in the project's C
folder. Before copying the file make sure that the Supervisor is shut down.

Starting the Smart Generator

l Start the Smart Generator from the New Saia-Burgess Import command on the Task Toolbar.

The Smart Generator guides you through the following steps.

l Selecting the Saia-Burgess Symbol File from which the variables are to be imported.
l Selecting a full or custom import.
l Selecting the variables to be imported if you have chosen a custom import.
l Configuring the branch management.
l Generating the variables.

- 458 -
The Saia Select PG5 Project Dialog
The Select Saia PG5 Project dialog lets you select the Saia-Burgess Symbol Fle from which the variables are
to be imported and the configuration of the communication objects in the Supervisor to which they are to be
attached. Show picture

How to configure the Select Saia PG5 Project dialog

1. Open the folder that contains the configuration files that were output from the Saia-Burgess PG5 suite.
This can be located on the local PC or any network location visible to the Smart Generator.
2. Select the Symbol File. It has the file name that was assigned when it was exported and the suffix
.TXT.
3. In the Alias box, enter a reference name for the import. It will appear in the list of imports next time
the Smart Generator is opened and is used as the name of the node it will create in the Supervisor's
communication configuration.
4. In the IP box, enter the IP address of the Saia device. It does not have to be connected.
5. Configure any advanced options. See the topic Saia-Burgess Import Advanced Options for more
information.
6. Click Next to display the Import Variables dialog.

- 459 -
The Saia-Burgess Advanced Options Dialog
The Advanced Options dialog is opened from the first page of the Smart Generator where the Saia-Burgess
symbol folder is selected. Show picture

The lists of servers and clients must already have been created in the Supervisor and the local sta-
tion must appear in the servers list.

Networking list
The networking lists are used to control the behavior of the Supervisor's variables for multi-station projects.
You can configure the network lists for variables imported by the Saia-Burgess Smart Generator as follows.

1. Click on the Advanced button to open the Networking Lists dialog.


2. Use the first drop-down box to select the server list.
3. Use the second drop-down box to select the client list.
4. Select OK to return to the Select Project dialog.

Options tab
The Options tab identifies the device's Port, CPU and S-Bus Address. Show picture

l Port: the default port for S-Bus is 5050.


l CPU: the default setting is 0.
l S-Bus Address: the minimum bus address index is 1.

For further information, see the SAIA communication protocol's Help book in Data Acquisition.

- 460 -
The Saia-Burgess Import Variables Dialog
The Import Variables dialog displays the number of available variables and allows you to select a full or cus-
tom import. Show picture

l If you select a full import, all available variables will be imported. Clicking the Nextbutton displays the
Branch Management dialog.
l If you select a custom import the Nextbutton displays the Select Variables dialog from where you can
filter and select the variables to be imported.

- 461 -
The Saia-Burgess Select Variables Dialog
Using the Select Variable dialog you can apply a filter to the list of available variables. Show picture
Variables passing the filter appear in a list from which you can select some or all of them.

Variables may be filtered using the following criteria.

l Type of variable in the Supervisor (Bit, Register, or Text).


l Using the name filter.

Variables that pass the filter criteria appear in the Available Items list at the bottom of the dialog. To select
the variables for import you copy the names to the Selected Variables list by clicking on the names and then
clicking the right-arrow button (button (->).

l When the variables required for import are all selected, click the Nextbutton to continue.

About the name filter


The name filter allows the Smart Generator to filter the list of variables according to the name in the Saia-
Burgess symbol file. The wildcards * (matches any string) and ? (matches a single character) are allowed.

l 'Pump1' would only match a variable with user-defined text 'Pump1'.


l 'Pump?' would match 'Pump1' or 'Pump2' etc. but not 'Pump10'.
l 'Pump*' would match 'Pump1', 'Pump2' and 'Pump10' but also 'Pumpkin'.

- 462 -
The Saia-Burgess Branches Dialog
The Branches dialog allows you modify the variable names as follows. Show picture

l Prefix all variable names with a supplied branch.


l Use numeric characters as branch separators.
l Use a specific character in a variable name as a branch separator.

When you have completed branch management click Next to display the Generate Variables dialog.

How to prefix all variable names with a branch


To prefix all variable names with a branch, enter the name of the branch in the Global Branch field.

How to use numeric characters as branch separators


To use numeric characters as branch separators, tick the option Use numeric characters as branch
separator. Variable names will be modified so that a branch separator appears after each numeric char-
acter.
Examples:

l MOT1DEFAULT1 becomes MOT1.DEFAULT1


l ZONE1PUMP1STOP becomes ZONE1.PUMP1.STOP

A branch separator is not added when a numeric character is at the end of the name

How to use a specific character in a variable name as a branch separator


To use a specific character for branch separators, tick the option Use specific sequence character as branch
separatorand enter the character in the Sequence field. Variable names will be modified so that a branch
separator appears instead of the selected character.
Examples:
The underscore character has been selected as the branch separator.

l CONTROLROOM_COMMAND becomes CONTROLROOM.COMMAND


l CONTROLROOM_STATUS becomes CONTROLROOM.STATUS

A branch separator is not added when the specified character is at the end of the name.

- 463 -
The Saia-Burgess Generate Variables Dialog
The Generate Variables dialog is for the final step before the variables are imported into the Supervisor.
Using the names displayed in the dialog you can review and edit the final names of the variables to be gen-
erated. Show picture

Why might some variables be displayed in red?


A variable item will be displayed in red if is invalid for use in the Supervisor as follows.

l The length of the variable name exceeds 255 characters.


l The number of branches in the variable name exceeds 12.
l The name of a branch element or the name of the 'leaf' element is empty (length =0) or exceeds 255
characters.
l The variable contains a character that is not a letter, a digit or the underscore.

How to display and change the properties of a single variable


You can display and change the properties of a single variable using the Variable Properties dialog which is
displayed by double clicking on the variable's name. You can use it to change the variable name. Show pic-
ture

How to select and change the name of some or all variables, or all invalid variables

l If variables are marked as invalid, you can click the Rename Invalids button.
l You can select any variable or variables then click the Rename Variables button.

The Rename Variables dialog opens. See the topic The Saia-Burgess Rename Variables dialog.

Generating the variables

- 464 -
Once the variables have their final names they can be generated in the Supervisor by clicking the Finish but-
ton. During the generation process a dialog is displayed indicating the progress.
Any variables in the Smart Generator that already exist in the Supervisor are discarded. The cor-
responding variables in the Supervisor are not overwritten or updated in any way.

Any variables appearing in red when the Finish button is clicked will not be imported.

- 465 -
The Saia-Burgess Rename Variables Dialog
You use the Rename button on the Generate Variables dialog to open the Rename Variables dialog. It
provides a tabular display of all variables that have passed the filter criteria. Show picture

The left hand column contains the full name of each variable. The other columns show the name of the vari-
able separated into branches. The final column on the right hand side displays the number of characters in
the name. Variables that appear in red have a name that is invalid for use in the Supervisor and must be
modified before they can be imported.
Using the Rename Variables dialog you can:

l Edit the name of a single variable


l Delete one or more branches from one or more variables
l Search and replace text in one or more branches for one or more variables

When you have finished editing the variable names click OK to confirm or Cancel to cancel the editing and
return to the Generate Variables dialog.

How to edit the name of a single variable


To edit the name of a single variable, double-click on its full name in the left hand column of the list. The
Edit Name dialog will be displayed from where you can edit and change the name.

How to delete one or more branches from one or more variables

1. Select one or more variables in the left column. You can use Shift+click to select a group of adjacent
variables or Ctrl+ click to select several individual variables. Ctrl+a selects all of the variables.
2. Select the branch or branches to be deleted by clicking on the column header.
3. Click the Delete button to delete the branches from the variable name.

How to search and replace text in one or more branches for one or more variables

1. Select the variables and branches to be searched as above.


2. Click the Replace button to open the Replace dialog.
3. Enter the strings to search and replace.
4. Click OK to perform the search. Only text in the selected variables and branches is modified.

Show picture

- 466 -
Schneider Unity

- 467 -
Overview of the Unity Smart Generator
The Smart Generator for Schneider Unity is compatible with Unity Pro version 7.0.

Import prerequisites
Before you are able to start an import you must ensure the following configuration is made.

l Configure an OPC connection to the OFS in the Supervisor. You must also configure one or more OPC
groups. For more information see the book Configuration.Communication.Using OPC in the Super-
visor's main help. The alias that you configure in the Supervisor for the OFS and OPC groups is selec-
ted in the Smart Generator's import dialog during the import process.
l Configure OFS, in particular the link with the Unity PLC and its symbol tables file (STU)

For the Smart Generator to be able to open the Symbol Table File (STU), the Supervisor must be star-
ted using the Windows option - Run as administrator.

Backing up the Supervisor's variables configuration


Before you start the import process it is recommended that you back up the Supervisor's variables con-
figuration. Then, if you encounter any problems during the import process, it is simple to restore the pre-
vious version of the variables tree. Its configuration is stored in the file VAREXP.DAT in the project's C
folder. Before copying the file make sure that the Supervisor is shut down.

Starting the Smart Generator


The Smart Generator is started from the New Unity Import command on the Task Toolbar. Show picture

The Smart Generator guides you through the following steps. Show picture

- 468 -
1. Selecting the Unity project from which the variables are to be imported.
2. Selecting a full or custom import.
3. Selecting the variables to be imported if you have chosen custom import.
4. Configuring the branch management for the variables tree.
5. Generating the variables.

- 469 -
The Unity Select Project Dialog
The Select Unity Project dialog selects the Unity Project from which the variables are to be imported and the
OPC communication objects in the Supervisor to which they are to be attached. Show picture

How to configure the Unity Select Project dialog

1. Enter a reference name for the import. This will appear in the list of imports next time the Smart Gen-
erator is opened.
2. Select the Unity Project filename. The file can be located on the local PC or any network location vis-
ible the Smart Generator.
3. Select the Unity server location. The Unity server can be located on the local PC or any other PC vis-
ible to it. If this field is left blank it is assumed that it is on the local PC.
4. Select the OFS Server Alias. This is used when generating the configuration of the Supervisor's vari-
ables. The list of available server aliases is read from the Supervisor.
5. Select the OPC Group. This is used when generating the configuration of the Supervisor's variables.
The list of available groups is read from the Supervisor.
6. Select the Device Alias. This is used when generating the configuration of the Supervisor's variables.
The list of available device aliases is read from the OFS configuration. The symbol table file for the
Device Alias (in the OFS configuration) should be the same as the Unity Project filename.
7. Click Next to display the Import Variables dialog.

Using the Open With Profile option


If you select the Open With Profile option you are prompted to enter a Login name and password when the
Smart Generator connects to the Unity server. This protected mode of operation must be first activated
within Unity Pro before it can be used.

Using the Custom String


The Custom String property allows the Smart Generator to pre-filter the list of variables. Text that you enter
in this property is matched against the user-defined text (also known as free text or custom text) of a vari-
able's definition in Unity Pro. The wildcards * (matches any string) and ? (matches a single character) are
allowed.

l 'Pump1' would only match variable with user-defined text 'Pump1'.


l 'Pump?' would match 'Pump1' or 'Pump2' etc but not 'Pump10'.
l 'Pump*' would match 'Pump1', 'Pump2' and 'Pump10' but also 'Pumpkin'.

The use of a custom string is highly recommended as the STU file may contain a large number of
variables many of which are not relevant to the Smart Generator.

- 470 -
The Unity Import Variables Dialog
The Import Variables dialog allows you to select a full or custom import. Show picture

l If you select a full import all available variables will be available for import. Clicking the Next button
displays the Branch Management dialog.
l If you select a custom import the Next button displays the Select Variables dialog from where you can
filter and select the variables to be imported.

If you entered a custom string in the previous dialog, the list of available variables is pre-filtered
according to that string.

- 471 -
The Unity Select Variables Dialog
Using the Select Variable dialog you to apply a filter to the list of available variables. Show picture
Variables passing the filter appear in a list from which you can select some or all them.

Variables may be filtered using the following criteria.

l Unity type (EDT, DDT, DFB or IODDT)


l Type of variable in the Supervisor (Numeric, Boolean or Text).
l Name
l Using the custom string. The variables are filtered first by the custom string in the Select Unity project
dialog and then by the custom string in the Select Variables dialog. See the topic Select Unity Project
for more information on custom strings.

Variables that pass the filter criteria appear in the Available Variable list at the bottom of the dialog. To
select the variables for import you copy the names to the Selected Variable list by clicking on the names and
then clicking the button '->'.
When the variables required for import are selected click the Next button to continue.

- 472 -
The Unity Branch Management Dialog
The Branch Management dialog allows you modify the variable names as follows. Show picture

l Prefix all variable names with a supplied branch.


l Use numeric characters as branch separators. This can only be used with variable type EDT.
l Use a specific character in a variable name as a branch separator. This can only be used with variable
type EDT.

When you have completed branch management click Next to display the Generate Variables dialog.

How to prefix all variable names with a branch


To prefix all variable names with a branch enter the name of the branch in the Global Branch field.

How to use numeric characters as branch separators


To use numeric characters as branch separators select the corresponding tick box. Variable names will be
modified so that a branch separator appears after each numeric character.
Examples:

l MOT1DEFAULT1 becomes MOT1.DEFAULT1


l ZONE1PUMP1STOP becomes ZONE1.PUMP1.STOP

A branch separator is not added when a numeric character is at the end of the name.

How to use a specific character in a variable name as a branch separator


To use a specific character as branch separators select the corresponding tick box and enter the character in
the field provided. Variable names will be modified so that a branch separator appears instead of the selec-
ted character.
Examples:
The underscore character has been selected as the branch separator.

l CONTROLROOM_COMMAND becomes CONTROLROOM.COMMAND


l CONTROLROOM_STATUS becomes CONTROLROOM.STATUS

A branch separator is not added when the specified character is at the end of the name.

- 473 -
The Unity Generate Variables Dialog
The Generate Variables is the final dialog before the variables are imported into the Supervisor. Using the
Generate Variables dialog you can review and edit the final names of the variables to be generated. Show
picture

Why might some variables be displayed in red?


A variable item will be displayed in red if is invalid for use in the Supervisor as follows.

l The length of the variable name exceeds 255 characters.


l The number of branches in the variable name exceeds 12.
l The name of a branch element or the name of the 'leaf' element is empty (length =0) or exceeds 255
characters.
l The variable contains a character that is not a letter, a digit or the underscore.

How to display and change the properties of a single variable


You display and change the properties of a single variable using the Variable Properties dialog which is dis-
played either by double clicking on the variable name or selecting a single variable name and then clicking
the Properties button. Show picture

Using the Variable Properties dialog you can:

l Change the variable name.


l Change the range of a register variable.
l Enter a title (comment).
l Select the command property.

How to select and change the name of all invalid variables


To select and change the name of all invalid variables click the Rename button. The Rename Variables dialog
appears. See the topic The Rename Variables dialog.

Generating the variables


Once the variables have their final names they can be generated in the Supervisor by clicking the Finish but-
ton. During the generation process a dialog is displayed indicating the progress.

- 474 -
Any variables in the Smart Generator that already exist in the Supervisor are discarded. The cor-
responding variables in the Supervisor are not overwritten or updated in any way.

Any variables appearing in red when the Finish button is clicked will not be imported.

- 475 -
The Unity Rename Variables Dialog
The Rename Variables dialog is opened from the Generate Variables dialog and provides a tabular display of
all variables that are selected or have invalid variable names. Show picture

The left column contains the full name of each variable. The other columns show the name of the variable
separated into branches. The final column on the right hand side displays the number of characters in the
name. Variables that appear in red have a name that is invalid for use in the Supervisor and must be mod-
ified before they can be imported.
Using the Rename Variables dialog you can:

l Edit the name of a single variable


l Delete one or more branches from one or more variables
l Search and replace text in one or more branches for one or more variables

When you have finished editing the variable names click OK to confirm or Cancel to cancel the editing and
return to the Generate Variables dialog.

How to edit the name of a single variable


To edit the name of a single variable double click on its full name in the left hand column of the list. The edit
name dialog will be displayed from where you can edit and change the name.

How to delete one or more branches from one or more variables

1. Select one or more variables in the left column. You can use shift+click to select a group of adjacent
variables or ctrl+ click to select several individual variables. Ctrl+a selects all the variables.
2. Select the branch or branches to be deleted by clicking on the column header.
3. Click the Delete button to delete the branches from the variable name.

How to search and replace text in one or more branches for one or more variables

1. Select the variables and branches to be searched as above.


2. Click the Replace button to open the Replace dialog.
3. Enter the strings to search and replace.
4. Click OK to perform the search. Only text in the selected variables and branches are modified.

- 476 -
Unity Variable Types
Unity variables are converted to Supervisor variables as follows.
Unity Supervisor
Type Type Minimum Value Maximum value
Dword Register 0 4294967295
Bool Bit 0 1
Byte Register 0 255
Date Register -2147483648 2147483648
Dt Text N/A N/A
Dint Register -2147483648 2147483648
Ebool Bit 0 1
Int Register -32768 32768
Real Register -3.402824E+38 3.402824E+38
String Text N/A N/A
Time Register 0 4294967295
Tod Register 0 4294967295
Udint Register 0 4294967295
Uint Register 0 65535
Word Register 0 65535

Structured variables
Structured Unity variables are imported as a branch and variables in the Supervisor.
For example, the structure DDT has three elements F1, F2, and F3. The instance, DDT1, will generate three
variables in the Supervisor.

DDT1.F1
DDT1.F2
DDT1.F3.

Tables of variables and variable tables


Tables of variables and variable tables are imported as a branch and variables in the Supervisor.

l A table of variables is a table of Elementary Data Types.


l A variable table is an instance of a DDT type array (DDT may be an array or structure).

For example, the integer table MyIntegerTab[0..4 ] will generate 5 register variables in the Supervisor.

MYINTEGERTAB.MYINTEGERTAB_0
MYINTEGERTAB.MYINTEGERTAB_1
MYINTEGERTAB.MYINTEGERTAB_2
MYINTEGERTAB.MYINTEGERTAB_3
MYINTEGERTAB.MYINTEGERTAB_4

- 477 -
Siemens SIMATIC Step 7

- 478 -
Overview of the Step 7 Smart Generator
Step 7 is a software suite for creating programs for the SIMATIC range of PLC's. The S7 Smart Generator
extracts data from a Step 7 project from which it is able to generate the following configuration elements.

l The configuration for communication (Network, Equipment and Frame elements) using the Super-
visor's IP ISO-S7 driver.
l For each Step 7 tag, a variable in the Supervisor including the link to the appropriate communication
frame.

System requirements

l The Step 7 software must be installed on the same PC as the Supervisor as the Smart Generator uses
Step 7's command interface and library.
l The Step 7 Smart Generator was tested using version 5.3 of Step 7 Professional.

Backing up the Supervisor's variables configuration


Before you start the import process it is recommended that you back up the Supervisor's variables con-
figuration. Then, if you encounter any problems during the import process, it is simple to restore the pre-
vious version of the variables tree. Its configuration is stored in the file VAREXP.DAT in the project's C
folder. Before copying the file make sure that the Supervisor is shut down.

Starting the Smart Generator

l Start the Smart Generator from the New Step 7 Import command on the Task Toolbar. Show picture

The Smart Generator guides you through the following main steps.

l Selecting the Step 7 project.


l Selecting the Step 7 programs from which the data blocks are to be imported.
l Selecting a full or custom import.
l If you have chosen a custom import, selecting (filtering) the tags to be imported.
l Configuring the database branch management.
l Optionally renaming the variables.
l Configuring the Supervisor's communication (network, node and frame)
l Generating the variables.

The first dialog of the Smart Generator is the Select Project dialog.

- 479 -
Selecting the Step 7 data blocks

- 480 -
The Step 7 Select Project Dialog
The Select Project dialog selects the Step 7 project from which configuration data is to be imported.Show pic-
ture

How to configure the Select Project dialog

1. In the Import Name box, enter a reference name for the import. It will appear in the list of imports
next time the Smart Generator is opened.
2. Use the drop-down box Step7 Projects to select the project required for the import. You can use the
option Display Only Programs Containing Blocks to filter the list of projects so that only those con-
taining data blocks are displayed.
3. To change any of the default import options, click on the Options button to open the Options dialog.
See the topic Step 7 Options dialog.
4. Click Next to display the Select Blocks dialog.

- 481 -
The Step 7 Options Dialog
The Options dialog is opened from the Options button of the Select Project dialog.

The Networking list tab


The networking lists are used to control the behavior of Supervisor's variables for multi-station projects.
You can configure the network lists for variables imported by the Step 7 Smart Generator as follows.

l Server list - Select a Server List from the Supervisor's project. The Server List will be assigned to all
variables that are imported.
l Client list - Select a Client List from the Supervisor's project. The Client List will be assigned to all vari-
ables that are imported.

The lists of servers and clients must already have been created in the Supervisor and the local sta-
tion must appear in the servers list.

The Options tab


Show picture

l Command variables - All variables that are imported will have the command attribute set. You can
also select the command level.
l Data Block variables branch - Generates a branch for each variable imported from a data block. The
branch can contain the - data block (DB) name, the Program Name and DB name or the Project name,
Program name and DB name.
l Use DB symbolic name - Generates variables according to data block name (unticked) or data block
symbolic name (ticked).
l Memory bit variables branch - Generates a branch for each variable imported from memory. The
branch can contain either the - Program Name or the Project name and Program name.
l Add a leaf variable - Enables you to add a leaf variable when importing an array. For example if you
choose a leaf called VALUE, VALVE_MOTOR[1] will be imported as VALVE.MOTOR.1.VALUE.
l Communication frame size - Enables you to set the size, in bytes, of communication frames generated
in the Supervisor.

- 482 -
The Step 7 Select Blocks Dialog
The Select Blocks dialog enables you to select Step 7 data blocks from those available. Show picture

1. Open the Blocks node. The blocks are identified by their friendly name if they have one.
2. Tick the box of each data block that is to be imported. Only data blocks of type instance, user type or
shared can be imported.
3. You can also import memory variables by ticking the Memory Variables node.
4. Click on Next to open the Target Equipment dialog.

For details of the selected program, click on the Information button

- 483 -
Configuring the communication

- 484 -
The Step 7 Target Equipment Dialog
The Target Equipment dialog allows you to select or configure the Supervisor's communication network and
node for which the communication frames are generated. Show picture

How to configure the Target Equipment dialog

1. In the Equipment section, use the drop-down box IP-ISO-S7 Network to select the network. If there is
no IP-ISO-Network configured in the Supervisor's project you are prompted to create one.
2. Use the drop-down box for Equipment to select the node. If there are no nodes configured in the Super-
visor's project you are prompted to create one.
3. The Properties section will be populated with the selected node's configuration from where it may
checked and changed if necessary.
4. Click Next to display the Check Mapping dialog.

An import deals with one node (PLC). If there is more than one, you must run a separate import for
each node.

- 485 -
The Step 7 Check Mapping Dialog
Some blocks may be protected or locked. If such a block is used in a data block, Smart Generator will be
unable to extract the corresponding variables and their addresses. Using the Check Mapping dialog, you can
check and change the mapping for all data blocks to be imported. Show picture

1. Select a data block to display its tags and their addresses.


2. To change an address, select the tag then click the Change Address button and enter the required
address.
3. Click Next to display the Import Variables dialog.

- 486 -
Configuring the variables

- 487 -
The Step 7 Import Variables Dialog
The Import Variables dialog displays the number of variables available and allows you to select a full or cus-
tom import. Show picture

l If you select Full Import, all extracted variables will be imported. Click the Next button to display the
Branch Management dialog.
l If you select Custom Import, the Next button displays the Select Variables dialog.

- 488 -
The Step 7 Select Variables Dialog
Using the Select Variables dialog you can apply a filter to the list of available variables and select variables
individually. Show picture

Variables may be filtered using the following criteria.

l Type of variable in the Supervisor (Register, Bit or Text).


l Using the name filter.

Variables that pass the filter criteria appear in the Available Items list. To select the variables for import
you copy the names to the Selected Variables list by clicking on the names and then clicking the -> button.
When the variables required for import are selected click the Next button to continue.

About the name filter


The name filter allows the Smart Generator to filter the list of variables according to the name in the S7 sym-
bol file. The wildcards * (matches any string) and ? (matches a single character) are allowed.

l 'Pump1' would only match variable with user-defined text 'Pump1'.


l 'Pump?' would match 'Pump1' or 'Pump2' etc but not 'Pump10'.
l 'Pump*' would match 'Pump1', 'Pump2' and 'Pump10' but also 'Pumpkin'.

- 489 -
The Step 7 Generate Variables Dialog
The Generate Variables dialog is the final one before the variables are imported into the Supervisor. In it,
you can review and edit the final names of the variables to be generated. You may need to do that to make
the variable names comply with the rules for variable naming in the Supervisor's variables tree. Show pic-
ture

Why might some variables be displayed in red?


A variable item will be displayed in red if is invalid for use in the Supervisor as follows.

l The length of the variable name exceeds 255 characters.


l The number of branches in the variable name exceeds 12.
l The name of a branch element or the name of the 'leaf' element is empty (length =0) or exceeds 255
characters.
l The variable contains a character that is not a letter, a digit or the underscore.

How to display and change the properties of a single variable


Double-click on the variable name to open the Variable Property dialog. There you can change the variable
name.
The rest of the data fields are for information (read-only).

How to select and change the name of all invalid variables


Click the Rename invalid button to open the Rename Variables dialog. For details, see the topic The Step 7
Rename Variables dialog.

How to select and change the name of selected variables


Select the variables that are to have their name changed and then click the Rename selected button to open
the Rename Variables dialog. For details, see the topic The Step 7 Rename Variables dialog.

Generating the variables


Once the variables have their final names, click the Finish button to generate them in the Supervisor. During
the generation process a dialog is displayed indicating the progress.

Any variables in the Smart Generator that already exist in the Supervisor are discarded. The cor-
responding variables in the Supervisor are not overwritten or updated in any way.

Any variables shown in red when the Finish button is clicked will not be imported.

- 490 -
The Step 7 Branch Management Dialog
The Branch Management dialog allows you modify the variable names as follows. Show picture

l Prefix all variable names with a supplied branch.


l Use numeric characters as branch separators.
l Use a specific character in a variable name as a branch separator.

When you have completed branch management click Next to display the Generate Variables dialog.

How to prefix all variable names with a branch


To prefix all variable names with a branch enter the name of the branch in the Global Branch field.

How to use numeric characters as branch separators


To use numeric characters as branch separators select the corresponding tick box. Variable names will be
modified so that a branch separator appears after each numeric character.
Examples:

l MOT1DEFAULT1 becomes MOT1.DEFAULT1


l ZONE1PUMP1STOP becomes ZONE1.PUMP1.STOP

A branch separator is not added when a numeric character is at the end of the name.

How to use a specific character in a variable name as a branch separator


To use a specific character as branch separators select the corresponding tick box and enter the character in
the field provided. Variable names will be modified so that a branch separator appears instead of the selec-
ted character.
Examples:
The underscore character has been selected as the branch separator.

l CONTROLROOM_COMMAND becomes CONTROLROOM.COMMAND


l CONTROLROOM_STATUS becomes CONTROLROOM.STATUS

A branch separator is not added when the specified character is at the end of the name.

- 491 -
The Step 7 Rename Variables Dialog
The Rename Variables dialog is opened from the Generate Variables dialog.
The left column contains the full name of each variable. The other columns show the name of the variable
separated into branches. The final column on the right hand side displays the number of characters in the
name. Any variables that appear in red have a name that is invalid for use in the Supervisor and must be
modified before they can be imported.
Using the Rename Variables dialog you can:

l Edit the name of a single variable


l Delete one or more branches from one or more variables
l Search and replace text in one or more branches for one or more variables

The command buttons become available when you select a variable or variables in the list.
When you have finished editing the variable names, click OK to confirm or Cancel to cancel the editing and
return to the Generate Variables dialog.

How to apply a suffix

1. Select a variable or variables in the list then click on the Rename button to open an unnamed dialog.
2. Enter a character string (not starting with '.') in the Suffix box and click on OK.

The character '.' and the suffix string are appended to the name of each selected variable. That has the
effect of turning the original variable name into a branch name.

How to edit the name of a single variable

l Double-click on the variable's full name in the left hand column of the list to display the Edit Name dia-
log. There you can edit and change the name.

How to delete one or more branches from one or more variables

1. Select one or more variables in the left column. You can use Shift + Click to select a group of adjacent
variables or Ctrl + click to select individual variables. Ctrl+a selects all the variables.
2. Select the branch or branches to be deleted by clicking on the column header.
3. Click the Delete button to delete branch(es) from the variable name.

How to search and replace text in one or more branches for one or more variables

1. Select the variables and branches to be searched (as above).


2. Click the Replace button to open the Replace dialog.
3. Enter the strings to search and replace.
4. Click OK to perform the search.

The search can match the Find what string with any part of a variable or branch name. You can also leave
the Replace with box blank so as to omit part of the naming structure. Only text strings in the names of the
selected variables and branches are modified.

- 492 -
How the Properties of the Supervisor's Variables Relate to Those of Step 7
Supervisor Value
Name Step 7 tag name. You can modify the name during the import process.
Branch From the Step 7 tag name.
Description Step 7 variable comment.
Source Equipment.
Type of variable Step 7 Supervisor
BOOL Bit
BYTE, WORD, DWORD, INT, DINT, REAL Register
STRING, CHAR Text
Min- Step 7 Byte Min. (Supervisor) Max. (Supervisor)
imum/maximum BOOL 1 bit 0 1
BYTE 1 0 255
WORD 2 0 65535
DWORD 4 0 4,294,967,295
INT 2 -32,768 32767
DINT 4 -2,147,483,648 2,147,483,647
REAL -3.402822E+38 3.402822E+38
Frame The name of the data block that contains the variable.
Index From the variable address in the data block.
Type & size Step 7 Type Size
(In VAREXP.DAT) BOOL B 1
BYTE C 8
WORD U 16
DWORD L 32
INT I 16
DINT I 32
REAL F 32

- 493 -
WAGO CoDeSys

- 494 -
Overview of the Wago CoDeSys Smart Generator
The Wago CoDeSys Smart Generator imports a CoDeSys symbol file (.SYM) from which it generates the fol-
lowing configuration objects for the Supervisor.

l Variable definitions
l Communication network (XBus IP Master), node and frames
l Links between the variables and the communication frames

About the CoDeSys Symbol File


The Symbol File is produced by the WAGO CoDeSys programming software. For information on how to gen-
erate the symbol file please see the help supplied with the software.
The symbol file can be generated in either ASCII or XML formats. For use with the Smart generator it must
be in ASCII format.
It is not necessary to have the WAGO CoDeSys programming software installed for the Smart Gen-
erator to run.

Backing up the Supervisor's variables configuration


Before you start the import process it is recommended that you back up the Supervisor's variables con-
figuration. Then, if you encounter any problems during the import process, it is simple to restore the pre-
vious version of the variables tree. Its configuration is stored in the file VAREXP.DAT in the project's C
folder. Before copying the file make sure that the Supervisor is shut down.

Starting the Smart Generator

l Start the Smart Generator from the New WAGO Import command on the Task Toolbar. Show picture

The Smart Generator guides you through the following steps.

l Selecting the CoDeSys Symbol File from which the variables are to be imported.
l Selecting a full or custom import.
l Selecting the variables to be imported if you have chosen custom import.
l Configuring any words that are to be used as bits.
l Configuring the branch management.
l Generating the variables.

- 495 -
The CoDeSys Select Symbol File Dialog
The CoDeSys Symbol File dialog selects the CoDeSys symbol file from which the variables are to be impor-
ted and the configuration of the communication objects in the Supervisor to which they are to be attached.
Show picture

How to configure the Select CoDeSys Symbol File dialog

1. Select the CoDeSys Symbol File filename. The file can be located on the local PC or any network loc-
ation visible to the Smart Generator.
2. In the Equipment Alias box, enter a reference name for the import. It will appear in the list of imports
next time the Smart Generator is opened and is used as the node name of the Modbus node it will cre-
ate in the Supervisor's communication configuration.
3. In the IP box, enter the IP address of the WAGO coupler.
4. Configure any advanced options. See the topic CoDeSys Import Advanced Options for more inform-
ation
5. Click Next to display the Import Variables dialog.

- 496 -
The CoDeSys Advanced Options Dialog
The Advanced Options dialog is opened from the first page of the Smart Generator where the CodeSys sym-
bol file is selected. Show picture

The lists of servers and clients must already have been created in the Supervisor and the local sta-
tion must appear in the servers list.

Networking list
The networking lists are used to control the behavior of the Supervisor's variables for multi-station projects.
You can configure the network lists for variables imported by the CoDeSys Smart Generator as follows.

1. Click on the Advanced button to open the Networking Lists dialog.


2. Use the first drop-down box to select the server list.
3. Use the second drop-down box to select the client list.
4. Select OK to return to the Select Project dialog.

Internal Modbus variables


The WAGO Programmable Coupler supports a number of internally generated variables that may be exposed
to the Modbus network by ticking the corresponding box in the Internal Modbus Variables tab. Show picture
The variables available are as follows.

Address Access Name Description


4096 R/W WS_TIME Watchdog time
4097 R/W WD_FCM1_16 Watchdog function coding mask 1_16
4098 R/W WD_FCM17_32 Watchdog function coding mask 17_32
4099 R/W WD_TRIGGER Watchdog trigger
4101 R/W WD_STOP_MASK Watchdog stop
4102 R WD_RUNNING Current Watchdog status
4103 R/W WD_RESTART Restart Watchdog
4104 R/W WD_STOP_SIMPLE Simply stop watchdog
4106 R/W WD_ALTERNATIVE Watchdog configuration

- 497 -
4107 W WD_SAVE Save Watchdog parameter
4128 R LED_ERR_CODE Led Error Code
4129 R LED_ERR_ARG Led Error Argument
4130 R LEN_ANALOG_OUT Number of analog output data in the process image (in
bits)
4131 R LEN_ANALOG_IN Number of analog input data in the process image (in
bits)
4132 R LEN_DIGIT_OUT Number of digital output data in the process image (in
bits)
4133 R LEN_DIGIT_IN Number of digital input data in the process image (in
bits)
4136 R/W BOOTCONFIG Boot configuration
4138 R/W MODBUS_TIMEOUT Configuration Modbus/TCP Timeout
8208 R FW Firmware version
8209 R/W INFO_TEM Wago item number

Digital output access


The Digital Output Access tab configures how output bits are mapped onto the Supervisor's communication
frames. Show picture

- 498 -
The CoDeSys Import Variables Dialog
The Import Variables dialog displays the number of variables available and allows you to select a full or cus-
tom import. Show picture

l If you select a full import all available variables will be available for import. Clicking the Next button
displays the Branch Management dialog.
l If you select a custom import the Next button displays the Select Variables dialog from where you can
filter and select the variables to be imported.

- 499 -
The CoDeSys Select Variables Dialog
Using the Select Variables dialog you can apply a filter to the list of available variables. Show picture
Variables passing the filter appear in a list from which you can select some or all of them.

Variables may be filtered using the following criteria.

l Type of variable in the Supervisor (Bit, Register or Text).


l Using the name filter.

Variables that pass the filter criteria appear in the Available Variables list at the bottom of the dialog. To
select the variables for import you copy the names to the Selected Variables list by clicking on the names
and then clicking the right-arrow button (button (->).

l When the variables required for import are all selected, click the Next button to continue.

About the name filter


The name filter allows the Smart Generator to filter the list of variables according to the name in the
CoDeSys symbol file. The wildcards * (matches any string) and ? (matches a single character) are allowed.

l 'Pump1' would only match variable with user-defined text 'Pump1'.


l 'Pump?' would match 'Pump1' or 'Pump2' etc but not 'Pump10'.
l 'Pump*' would match 'Pump1', 'Pump2' and 'Pump10' but also 'Pumpkin'.

- 500 -
The CoDeSys WordBits Dialog
The WordBits dialog allows you to select register (word) variables that will be treated as 16 individual bits
by the Supervisor. The WordBit dialog is displayed after the Select Variables dialog and lists any variables
(registers) that are eligible for treatment as word bits. Show picture

How to configure WordBits

1. Select the variables to be used as word bits from the Available items pane and click the -> button to
move them to the Selected items pane. You can filter the list of available items using a name filter,
see the topic Select CoDeSys Variables dialog for more information on using the name filter.
2. Select which bits are to be used for each variable by selecting the variable name in the Selected items
pane and clicking the BitSet button. By default all bits are used. Show picture

3. Click the Next button to proceed to the next step.

How the bit variable names are generated


By default, the bit variable names are generated by adding .bn to the register name, where n is the rank of
the bit. For example if the register name was PLC_PRG.MW1287 the Smart Generator would generate bit
variables named PLC_PRG.MW1287.B0, PLC_PRG.MW1287.B1 etc.
You can customize the text that is added to the register name using the WordBit configuration dialog dis-
played from the Configure button. Show picture

- 501 -
The CoDeSys Branch Management Dialog
The Branch Management dialog allows you modify the variable names as follows.

l Prefix all variable names with a supplied branch.


l Use numeric characters as branch separators.
l Use a specific character in a variable name as a branch separator.

When you have completed branch management click Next to display the Generate Variables dialog.

How to prefix all variable names with a branch


To prefix all variable names with a branch enter the name of the branch in the Global Branch field.

How to use numeric characters as branch separators


To use numeric characters as branch separators select the corresponding tick box. Variable names will be
modified so that a branch separator appears after each numeric character.
Examples:

l MOT1DEFAULT1 becomes MOT1.DEFAULT1


l ZONE1PUMP1STOP becomes ZONE1.PUMP1.STOP

A branch separator is not added when a numeric character is at the end of the name.

How to use a specific character in a variable name as a branch separator


To use a specific character as branch separators select the corresponding tick box and enter the character in
the field provided. Variable names will be modified so that a branch separator appears instead of the selec-
ted character.
Examples:
The underscore character has been selected as the branch separator.

l CONTROLROOM_COMMAND becomes CONTROLROOM.COMMAND


l CONTROLROOM_STATUS becomes CONTROLROOM.STATUS

A branch separator is not added when the specified character is at the end of the name.

- 502 -
The CoDeSys Generate Variables Dialog
The Generate Variables is the final dialog before the variables are imported into the Supervisor. Using the
Generate Variable names you can review and edit the final names of the variables to be generated. Show pic-
ture

Why are some variables displayed in red?


A variable item will be displayed in red if is invalid for use in the Supervisor as follows.

l The length of the variable name exceeds 255 characters.


l The number of branches in the variable name exceeds 12.
l The name of a branch element or the name of the 'leaf' element is empty (length =0) or exceeds 255
characters.
l The variable contains a character that is not a letter, a digit or the underscore.

How to display and change the properties of a single variable


You display and change the properties of a single variable using the Variable Properties dialog which is dis-
played by double clicking on the variable's name. Show picture
Using the Variable Properties dialog you can change the variable name:

How to select and change the name of all invalid variables


Click the Rename button. The Rename Variables dialog appears. See the topic The CoDeSys Rename Vari-
ables dialog.

Generating the variables


Once the variables have their final names they can be generated in the Supervisor by clicking the Finish but-
ton. During the generation process a dialog is displayed indicating the progress.
Any variables in the Smart Generator that already exist in the Supervisor are discarded. The cor-
responding variables in the Supervisor are not overwritten or updated in any way.

Any variables appearing in red when the Finish button is clicked will not be imported.

- 503 -
The CoDeSys Rename Variables Dialog
The Rename Variables dialog is opened from the Rename button on the Generate Variables dialog and
provides a tabular display of all variables that have passed the filter criteria. Show picture

The left column contains the full name of each variable. The other columns show the name of the variable
separated into branches. The final column on the right hand side displays the number of characters in the
name. Variables that appear in red have a name that is invalid for use in the Supervisor and must be mod-
ified before they can be imported.
Using the Rename Variables dialog you can:

l Edit the name of a single variable


l Delete one or more branches from one or more variables
l Search and replace text in one or more branches for one or more variables

When you have finished editing the variable names click OK to confirm or Cancel to cancel the editing and
return to the Generate Variables dialog.

How to edit the name of a single variable


To edit the name of a single variable double click on its full name in the left hand column of the list. The edit
name dialog will be displayed from where you can edit and change the name.

How to delete one or more branches from one or more variables

1. Select one or more variables in the left column. You can use shift + click to select a group of adjacent
variables or Ctrl + click to select several individual variables. Ctrl+a selects all the variables.
2. Select the branch or branches to be deleted by clicking on the column header.
3. Click the Delete button to delete the branches from the variable name.

How to search and replace text in one or more branches for one or more variables

1. Select the variables and branches to be searched as above.


2. Click the Replace button to open the Replace dialog.
3. Enter the strings to search and replace.
4. Click OK to perform the search. Only text in the selected variables and branches are modified.

- 504 -
WAGO DALI

- 505 -
Overview of the WAGO DALI Smart Generator
DALI stands for Digital Addressable Lighting Interface.

Wago PLCs
WAGO PLCs support DALI technology using a specific program and modules. There is a specific library to use
in the CODESYS project of the WAGO controller to enable the DALI specific frames. The WAGO library DaliAd-
vFR_32bits_01 has to be used. To download it, register with the WAGO web site.
A single WAGO PLC can have up to 5 DALI modules each communicating with up to 64 ballasts. The ballasts
can also be configured into groups. Show picture

Each PLC is identified with an IP address and communicates with the Supervisor using the Xbus IP (Modbus
TCP/IP) protocol. All the information required for the Supervisor is stored in the PLC's internal memory. The
Smart Generator for DALI/WAGO produces a complete WAGO DALI project for the Supervisor by generating
the following configuration objects automatically.

l Communication network (XBus IP Master), node and frames.


l Variables tree - variables.
l Links between the variables and the communication frames.
l Animated symbols.
l DALI-specific mimics including an overview to manage modules, ballasts, groups and scenes.
l Links between the variables and the HMI elements.

The Smart Generator does not import anything from the configuration of the PLCs. All information
must be entered by the user.

The Smart Generator for WAGO\DALI can be used under 64 bit (x64) operating systems.

Starting the Smart Generator

l Open the Smart Generator workspace from the Supervisor's menu Configure.Smart Generator.
l Start the Smart Generator from the New WAGO DALI Import command on the Task Toolbar. Show pic-
ture

- 506 -
After the project has been generated, you can use the Supervisor's regular tools to customize it.

- 507 -
The DALI Network Topology Dialog
The information provided about the PLC's and modules in this dialog is used to configure the Supervisor's
communication network, nodes and frames and to generate the variables tree.

Adding a PLC

1. In the dialog's left pane, right-click on the PLC's item and select Add PLC. The first PLC is added and its
configuration is displayed in the right pane. Show picture

2. Enter a name for the PLC or accept the suggested one. The PLC name is used as the node name in the
communication configuration. It is also used as the first branch of all related variables and appears in
the variable's Description field. (For example, PLC1 Module 1 Ballast 1 lamp failure)
3. Enter the IP address for the PLC.
4. Enter a description for the PLC. The description appears in the tab corresponding to that PLC in the
overview mimic (SGWDALI_PLCs).
5. Enter the start address for the area in the PLC's memory in which the information for the Supervisor is
to be found. The default address is 12288.
6. Click on the Set button to apply the configuration.
7. Repeat steps 1 to 7 for all PLC's to be added.

Adding modules to a PLC

1. In the dialog's left pane, click on the PLC's Modules item. (The number of modules already configured
is shown in brackets) Show picture

2. Tick each module that is to be generated and enter a description for it. The description appears in the
tab corresponding to that module in the overview mimic (SGWDALI_PLCs), and also in the Description
field of some variables.

- 508 -
3. Click on the Set button to apply the configuration.
4. Repeat steps 1 and 2 for all configured PLC's.
5. Click the Next button when done to display the System Mimic dialog.

- 509 -
The DALI System Mimic Dialog
The information provided in this dialog is used to generate the Supervisor's mimics and instantiate the sym-
bols they contain. Show picture.

The following diagram illustrates the mimic hierarchy. For the PLC mimics , 'n' is replaced by the PLC num-
ber. For example SGWDALI_PLC_PLC1, SGWDALI_FTP_PLC2 etc.
Links between the mimics are automatically generated with SGWDALI_PLCs as the top level mimic. The fol-
lowing diagram illustrates the mimic structure. The variables tree branch with which each mimic is opened
is shown in brackets.

The mimics representing the PLCs (SGWDALI_PLC_PLCn) appear as tabs in the top level mimic. The mimics
representing the modules (SGWDALI_Module) appear as tabs in the PLC mimics.

Adjusting the appearance of the top level mimic


You can change the size and location of the PLC tabs (SGWDALI_PLC_PLCn mimic) and also the spacing
between the symbols within the Module tabs (SGWDALI_Module mimic). Use the Set button to confirm any
changes you have made.
You can use the Link button to retain the mimic's proportions when you set either the height or the
width.

Using a mimic template


If your project uses a mimic template to give it a standard look and feel you can apply the template to the
mimics created by the Smart Generator using the Mimic template field. The ellipsis button displays the list

- 510 -
of templates that are available. Show picture

Selecting or changing the symbols that are used


See the topic Changing the default symbols.

- 511 -
Changing the Default Symbols
Most of the graphic elements and animations for a DALI project are contained within symbols. The default
symbols are pre-defined within the Smart Generator. The symbols are copied to the library and instances of
them are automatically generated in the mimics according to the number of PLCs and modules. The fol-
lowing table lists the symbols and the mimics that contain them. Note that some symbols are contained
within other symbols. In that case the name of the container symbol is given.

Symbol name Used in


SGWDALI_Ballasts* SGWDALI_Module (Mimic)
SGWDALI_BallastAssignment SGWDALI_BallastDetail (Mimic)
SGWDALI_Groups* SGWDALI_Module (Mimic)
SGWDALI_GroupAssignment SGWDALI_GroupDetail (Mimic)
SGWDALI_Maintenance* SGWDALI_Maintenance_PLCn (Mimic)
SGWDALI_Module* SGWDALI_Maintenance_PLCn (Mimic)
SGWDALI_Scenes* SGWDALI_Module (Mimic)
SGWDALI_Ballast SGWDALI_Ballasts (Symbol)
SGWDALI_Group SGWDALI_Groups (Symbol)
SGWDALI_Scene SGWDALI_Scenes (Symbol)

Changing the symbols


Alternatives to the five main symbols (indicated in the above list with an asterisk) can be selected from the
System Mimic Dialog. Show picture

The ellipsis button adjacent to each symbol name provides access to the project's libraries from where an
alternative can be selected. However, due to the complex variable branching and substitution techniques
used in the symbols, rather than create new symbols from scratch it is suggested that you modify the exist-
ing ones using the following technique.

1. Using the Smart generator, generate (import) your DALI project using the default symbols.
2. Copy the symbol(s) that you want to change and save them with an alternative name.
3. Edit the new symbols you have created to give them the desired look and feel.
4. Start the Smart Generator once more and, from the right pane, select the previous import.
5. From the task list select the Synchronize task. The DALI Smart Generator will start.
6. Click the Next button until you reach the System Mimic dialog.
7. Select the new symbols that you have created.
8. Click the Finish button to re-generate the project using the new symbols.

If you modify a symbol produced by the Smart Generator and save it with the original name
it will be overwritten when you next run the Smart Generator .

- 512 -
What is generated?

- 513 -
The DALI Variable Database
The variables that are generated depend on the number of PLCs and modules that are entered in the Net-
work Topology dialog. The variables are automatically linked to the corresponding communication frames.
The variable database has the following structure; see the legend below.

Legend
Text/style Meaning Example
XXXXXX A variable branch. PLC1.M1.BALLASTS.01
XXXXXX A bit variable. PLC1.CONF_FILE.STATUS
XXXXXX A register variable. PLC1.CONF_FILE.RPM
XXXXXX A text variable. PLC1.M1.BALLASTS.01.DIM_VALUE
A PLC ID with x or y standing for a
PLCx and PLCy PLC1
number.
A module ID with n or z standing for
Mn and Mz M1
a number.
("xxx") A variable's description.
PLCx_Description A PLC's description.*
Mn_Description A module's description.*

*as entered in the Network Topology dialog.

- 514 -
The DALI Communication Settings
The communication configuration that is generated depends on the number of PLC's and modules configured
in the Network Topology dialog. The communication frames are automatically linked to the corresponding
variables.

l One network. The name is always IPDALI


l One node for each PLC. The name of the node is that provided in the Network Topology dialog.
l One frame called CFGMAINT for each PLC.
l The following frames for each Module of each PLC. Where n is the Module number.
l Mn_BGROUPS - Ballast groups
l Mn_LDIAG - DALI diagnostic
l Mn_BINFOS - Ballast information
l Mn_BVALUES - DALI values
l Mn_BTYPES - Ballast types
l Mn_BCMDS - Ballast commands
l Mn_GCMDS - Group commands
l Mn_SCMDS - Scene commands

Frame configuration
All frames with read access are configured with a scan rate of 1 second. The examples below assume that
the project is using the default start address of 12288
Mn_CFGMAINT
Frame format WORD
Address from DALI Cfg 12364
Address to DALI Cfg 12367
Access Read/Write
Linking Show picture

Mn_BGROUPS
Frame format WORD
Address from B Group 12482
Address to B Group 12545
Access Read
Linking Show picture

Mn_LDIAG
Frame format WORD
Address from B Value 12388
Address to B Value 12388
Access Read
Linking Show picture

Mn_BINFOS
Frame format WORD
Address from B Info 12390
Address to B Info 12396
Access Read
Linking Show picture

Mn_BVALUES

- 515 -
Frame format WORD
Address from B Value 12418
Address to B Value 12418
Access Read
Linking Show picture

Mn_BTYPES
Frame format WORD
Address from B Type 12546
Address to B Type 12546
Access Read
Linking Show picture

Mn_BCMDS
Frame format WORD
Cmd Mn B
Address from
12288
Cmd Mn B
Address to
12288
Access Write
Linking Show picture

Mn_GCMDS
Frame format WORD
Cmd Mn G
Address from
12288
Cmd Mn G
Address to
12288
Access Write
Linking Show picture

Mn_SCMDS
Frame format WORD
Address from Cmd Mn S 12288
Address to Cmd Mn S 12288
Access Write
Linking Show picture

- 516 -
The Wago DALI Main Mimic
The main (top level) mimic is named SGWDALI_PLCs. It contains one tab for each of PLC that is configured.
Each PLC tab contains one tab called Maintenance plus one tab for each module that is configured. The
names of the tabs are the same as the PLC and Module names entered in the Network Topology dialog.Show
picture

All the other mimics are used either in the main mimic's tabs or in pop-up windows. They are designed to be
used with a branch and should not be opened without one.
You can open the main mimic automatically when the Supervisor starts using the options in the Startup dia-
log which is opened from the Configure.Project.General operation command on the Supervisor's main menu.

- 517 -
The Wago DALI Maintenance Mimic
The Maintenance/Configuration mimic is called SGWDALI_Maintenance_plcname - where plcname is the
name of the PLC to which it refers. It is displayed as a tab of the PLC mimic, SGWDALI_PLC_plcname.
The Maintenance/Configuration mimic contains two types of symbol.

l SGWDALI_Maintenance - One instance.


l SGWDALI_Module - One instance per configured module.

The following is a summary of each symbol, the variables it uses and any controls it provides. A description
of the full functionality is outside of the scope of this help. If you want to replace any symbol with one of
your own you must first carefully examine it using the Supervisor's graphic tools in order to fully understand
the functionality it provides.

SGWDALI_Maintenance
Variables

l PLCx.VERSION - The PLC version.


l PLCx.NBDALIMODULES - The number of configured DALI modules for that PLC.
l PLCx.B_TO_REPLACE - The number of missing modules for that PLC.

Controls

l PLCx.DOWNLOAD_CFG and PLCx.B_TO_REPLACE - Control button to display and download the con-
figuration. Only displayed if there are one or more ballasts to be replaced. Clicking on the button
sends a value of 1 to the variable PLCx.DOWNLOAD_CFG

Details of symbol Show Picture

SGWDALI_Module (One per module)


Variables

l PLCx.My.STATUS - Module status.


l PLCx.My.ERR_BUS - Module bus error.
l PLCx.My.ERR_GEN - Module general error.
l PLCx.My.B_TO_REPLACE - Number of missing ballasts.

- 518 -
Details of symbol Show picture

- 519 -
The WAGO DALI Modules Mimic
The Modules mimic is named SGWDALI_Module. It is displayed as a tab of the PLC mimic, SGWDALI_PLC_
plcname. Show picture

The mimic uses three types of symbol.

l SGWDALI_Group - 16 instances, one for each possible group. They are located within the symbol
SGWDALI_Groups which is used as a convenient container.
l SGWDALI_Scenes - 16 instances, one for each possible scene. They are located within the symbol
SGWDALI_Scenes which is used as a convenient container.
l SGWDALI_Ballast - 64 instances, one for each possible ballast. They are located within the symbol
SGWDALI_Ballasts which is used as a convenient container.

The following is a summary of each symbol, the variables it uses and any controls it provides. A description
of the full functionality is outside of the scope of this help. If you want to replace any symbol with one of
your own you must first carefully examine it using the Supervisor's graphic tools in order to fully understand
the functionality it provides.

SGWDALI_Groups and SGWDALI_Group


Controls

l PLCx.Mn.GROUPS.01. CMD - Control button to open the Group Control mimic, SGWDALI_GroupDetail.
The variable provides the button label.

Symbol structure Show picture

- 520 -
SGWDALI_Scenes and SGWDALI_Scene
Controls

l PLCx.Mn.SCENES.01. CMD - Control button to open the Scene Control mimic, SGWDALI_SceneDetail.
The variable provides the button label.

Symbol structure Show picture

SGWDALI_Ballasts and SGWDALI_Ballast


Variables

l PLCx.My.BALLASTS.nn.CONFIG - Not configured - OFF, Configured - ON (Symbol invisible if not con-


figured)
l PLCx.My.BALLASTS.nn.AVAIL - Available / (blinking), Not available
l PLCx.My.BALLASTS.nn.FAIL - Failure - OFF, Failure - ON
l PLCx.My.BALLASTS.nn.MISSING - Missing - OFF, Missing - ON
l PLCx.My.BALLASTS.nn.POWERON - Power on - ON (blinking), Power on - OFF
l PLCx.My.BALLASTS.nn.NEXT_REPLACE - Next to replace - OFF (blinking), Next to replace - ON
l PLCx.My.BALLASTS.nn.DIM_VALUE - Dim value
l PLCx.My.BALLASTS.nn.STATUS - Provides the ballast's ID (Extended attribute)

Controls

l Control button to open the Ballast Detail mimic, SGWDALI_BallastDetail.

- 521 -
Symbol structure Show picture

- 522 -
The WAGO DALI Group Control Mimic
The Group Control mimic is named SGWDALI_GroupDetail. Show picture

The Group Control mimic can be opened either from one of the Group buttons in the Modules mimic
(SGWDALI_Module) or from the one of the Group buttons in the Ballast Details mimic (SGWDALI_Bal-
lastDetail).
The Group Control mimic uses the SGWDALI_GroupAssigment symbol to display the status of each
ballast. The following is a summary of the symbol, the variables it uses and any controls it provides. A
description of the full functionality is outside of the scope of this help. If you want to replace the symbol with
one of your own you must first carefully examine it using the Supervisor's graphic tools in order to fully
understand the functionality it provides.

SGWDALI_GroupAssigment
Variables

l PLCx.My.BALLASTS.nn.#B4 - Does not belong - OFF, Does belong - ON (Invisible if does not belong)
l PLCx.My.BALLASTS.nn.AVAIL.#T5 - Identity (number) of the ballast
l PLCx.My.BALLASTS.nn.AVAIL - Not available - OFF, Available - ON
l PLCx.My.BALLASTS.nn.POWER_ON - Power on - ON , Power on - OFF

Controls

l Control button to open the Ballast Details mimic, SGWDALI_BallastDetail.

Symbol structure Show picture

Mimic controls

- 523 -
l MAX - Sends a value of 305 to the PLC (Variable PLCx.My.GROUPS.nn.CMD
l MIN - Sends a value of 306 to the PLC (Variable PLCx.My.GROUPS.nn.CMD
l Up (+) - Sends a value of 301 to the PLC (Variable PLCx.My.GROUPS.nn.CMD
l Down (-)- Sends a value of 302 to the PLC (Variable PLCx.My.GROUPS.nn.CMD
l OFF - Sends a value of 300 to the PLC (Variable PLCx.My.GROUPS.nn.CMD

- 524 -
The WAGO DALI Scene Control Mimic
The Scene Control mimic is named SGWDALI_SceneDetail. Show picture

The Scene Control mimic is opened from one of the Scene buttons in the Modules mimic (SGWDALI_Mod-
ule).

Mimic controls

l Call back - Sends a value of 1000 to the PLC (Variable PLCx.My.SCENES.nn.CMD).


l Save - Sends a value of 1001 to the PLC (Variable PLCx.My.SCENES.nn.CMD).

- 525 -
The WAGO DALI Ballast Details Mimic
The Ballast Details mimic is named SGWDALI_BallastDetail. Show picture

The Ballast Details mimic can be opened either from one of the Ballast buttons in the Modules mimic
(SGWDALI_Module) or from the one of the Ballast buttons in the Group Control mimic (SGWDALI_GroupDe-
tail).

Mimic controls

l MAX - Sends a value of 305 to the PLC (Variable PLCx.My.GROUPS.nn.CMD


l MIN - Sends a value of 306 to the PLC (Variable PLCx.My.GROUPS.nn.CMD
l Up (+) - Sends a value of 301 to the PLC (Variable PLCx.My.GROUPS.nn.CMD
l Down (-)- Sends a value of 302 to the PLC (Variable PLCx.My.GROUPS.nn.CMD
l OFF - Sends a value of 300 to the PLC (Variable PLCx.My.GROUPS.nn.CMD

Mimic animations

l Ballast status (Variables PLCx.My.BALLASTS.nn.STATUS, PLCx.My.BALLASTS.nn.DIM_VALUE)


l Dim Value >100, Status = 0: OK
l Dim Value >100, Status = 1/0: BAD
l Settings (Variable PLCx.My.BALLASTS.nn.AVAILABLE)
l Dim Value >100, Available= 0: Missing
l Dim Value <>100, Available= 1 : Available
l Light power (Variable PLCx.My.BALLASTS.nn.POWER_ON)
l Light status: (Variable PLCx.My.BALLASTS.nn.FAIL)

SGWDALI_BallastAssigment
Variables

l PLCx.My.BALLASTS.nn.GROUPS.yy - Ballast is part of the Group - ON , Ballast is not part of the group
- OFF

Controls

l Control button to open the Group Control mimic, SGWDALI_GroupDetail.

- 526 -
Symbol structure Show Picture

- 527 -
Yokogawa Stardom

- 528 -
Overview of the Stardom Smart Generator
The Smart Generator for Stardom generates the following in the Supervisor's variables configuration:

l All or some of the Stardom variables as OPC items.


l The configuration for OPC communication between the Supervisor and the Stardom FCN-FCJ OPC
Server.
l Mimics in the Supervisor by associating its HMI symbols with the Stardom project's Program Organ-
ization Units (POUs).

Prerequisites for the import process


Before you are able to start an import process you must ensure that the following files are available.

l Stardom project - The files exported from the Yokogawa Stardom Logic Designer in IEC61131-3
(ASCII) format.
l The Stardom Library folder - This has to be stored in the Supervisor's library folder which by default is
in the Supervisor project's sub-folder LIB.
l Networking configuration - This consists of lists of producer stations and associations, plus consumer
stations.

Prerequisites for networking at runtime


To operate the Supervisor in communication with the Stardom network:

l The Stardom FCN-FCJ OPC Server must be running.

System requirements
The HMI objects are designed for a display resolution of 1280x1024 pixels and for Full HDMI.

Backing up the Supervisor's variables configuration


Before starting the import process it is recommended that you back up the Supervisor's variables con-
figuration. Then if you encounter any problems during the import process, it is simple to restore the pre-
vious version of the variables tree. The configuration is stored in the file VAREXP.DAT in the project's C
folder. Make sure that the Supervisor is shut down before you copy the file.

Starting the Smart Generator

l The Smart Generator is started from the command New Stardom Import on the Task Toolbar. Show
picture

- 529 -
The Smart Generator guides you through the following steps once you have selected the Stardom project
from which the import is to take its input. For details, see the remaining topics in this book. Show picture

1. Choosing whether to import variables and/or HMI elements


2. Selecting the data to be imported: POU instances, Global variables and any customization of them.
3. For the HMI, designing the Control groups with your faceplates, the graphics and trends.
4. Generating the Stardom project in the Supervisor with variables and library contents.

You run the Smart Generator after the Stardom Logic Designer has exported the configuration files.
Since only those files are used, the Logic Designer does not need to be running during the import pro-
cess.

- 530 -
The Select Stardom Project Dialog
The Select Stardom Project dialog selects the folder from which the variables are to be imported. Show pic-
ture

1. Import name - Enter a reference name for the import. This will appear in the list of imports next time
the Smart Generator is opened.
2. Exported files - Click in the drop-down button to open the Browse for Folder dialog.
3. Select the folder name for the Stardom Project Library. The folder can be located on the local PC or
any network location visible to the Smart Generator. Show picture

4. Click Next to continue the import process.

The Options dialog

l In the Networking List tab, select the Networking Lists. Show picture
l From the drop-down lists, select the Server list and the Client list.

The lists of servers and clients must already have been created in the Supervisor and the
local station must appear in the servers list.

- 531 -
l In the OPC Server tab, select these items. Show picture
l From the drop-down lists, select the Default OPC server and the Default OPC group.

l In the Options tab, select the encoding of the exported files. Show picture

- 532 -
Importing variables

- 533 -
The Stardom Select POUs Dialog
The Select POUs dialog lets you select the instances of POUs (Program Organization Unit) that are to be
imported. Show picture

1. Tick the box for each item in the tree structure that is to be imported.
2. To select all items in a category, task or other node, tick its box. Conversely click on a ticked box to
deselect all of its items.
3. To customize the import, click on the Customize button to open the Stardom Customize POU Prop-
erties dialog.
4. To import the global variables, tick the box Import global variables.
5. Click Next to continue.

- 534 -
The Stardom Customize POUs Properties Dialog
The Customize POUs dialog enables you to configure several properties for all instances of POUs selected in
the Select POUs dialog. Show picture

It has a List View pane on the left and a Property Grid pane on the right.

The List View pane


This displays the selected instances in two columns:

l Column 1: Instance name with the following format: Controller/Task/Program/Instance Name, for
example: FCX01/Task0/PRG1/PAS_PID_1
l Column 2: Type, for example: PAS_PID.

In the list view, you can:

l Sort the list by clicking on the column headers.


l Select one or more instances by ticking their checkboxes.

You can use the Windows keyboard shortcuts for making multiple selections. (Shift+Click and
Ctrl+Click)

The Property Grid pane


You can configure the properties that are visible and not grayed out.

1. By default, the properties displayed are those configured in the file


STARDOMIMPORTCONFIGURATION.XML.
2. If several POU instances are selected, the property grid is filled with the properties of the first POU
Instance selected.
3. Click on Apply to apply the property settings to the selected POU instances.

- 535 -
The Stardom Import Type Dialog
The Stardom Import Type dialog enables you to select whether the variables and/or HMI elements are to be
imported. Show picture

l Import data - Import only the configuration of data variables.


l Import HMI- Import only the elements of the HMI.
l Full import - Import variables and HMI elements.

After selecting the type of import:

l Click Next to continue.

- 536 -
The Stardom Import Global Variables Dialog
The Import Variables dialog allows you to select a full or custom import. Show picture

l If you select a Full import, all variables will be available for import. Click Next to continue.
l If you select a Custom import, the Nextbutton displays the Customize Global Variables dialog from
which you can filter and select the variables to be imported.

- 537 -
The Stardom Select Global Variables Dialog
Using the Select Variables dialog, you can apply a filter to the list of available variables (tags). Show picture

Variables may be filtered using the following criteria.

l Type of variable in the Supervisor (Bit, Register or Text).


l Name of variable.
l Domain and/or Nature.

Variables that pass the filter criteria appear in the Available Items list in the dialog.

1. To select the variables for import, click on the names and then click the right-arrow button (->) to
copy the names to the Selected Items list.
2. When the variables required for import are all selected, click the Next button to continue.

- 538 -
The Stardom Customize Global Variables Dialog
The Customize Global Variables dialog allows you to modify the properties of multiple variables at a time.
Show picture

1. In the left-hand pane, select the variables to be modified.


2. In the right-hand pane, you can modify the properties that are not grayed out. Each property that you
modify will be applied to all of the selected variables.
3. Click on Finish to apply the changes.

The properties Alarm and Command mode apply to all POUs.

- 539 -
Stardom Data Object Types
The resources declared in the OPC server configuration file (FCXCNF.CSV) must be the same as
those declared in the Stardom project.

HMI objects
You can generate objects in the Supervisor from objects exported from Stardom as follows.
Stardom Supervisor

Type Type
Category
Control Group Faceplate in a mimic.
Graphic
Trend Trend viewer in a mimic.
Global Variable

Variables (tags)
Stardom variables are configured as OPC variables. They are converted to Supervisor variables as follows.
Stardom Supervisor

Type Type Minimum Value Maximum value


[to follow...]

Mimics
You can generate mimics in the Supervisor with symbol instances corresponding to the POU instances in the
Stardom mimics.
Stardom Supervisor

Type Type
POU Symbol

Networking
Stardom Supervisor

Type Type
Networking server list List of producer stations and associations.
Networking client list List of consumer stations.

- 540 -
Importing the HMI

- 541 -
The Stardom Library
The Smart Generator uses the Stardom Library to provide the specialized components for the HMI.

l The Toolbox mimic.


l Mimic templates (see below).
l Function key settings.
l NPAS/POU symbols.
l Global variable symbols.
l Other symbols.

The Library folder for Stardom is stored in the Supervisor's library folder which by default is in the Super-
visor project's sub-folder LIB.

The mimic templates


You can generate mimics of the following kinds:

l Trend mimics.
l Control Group mimics.
l Graphics mimics (free mimics).
l A System Overview mimic.

The System Overview mimic includes:

l One Controller symbol for each controller.


l An information panel (Faceplate) for each controller type (FCN and FCJ).

Contents of the Stardom Library


Here is a list of the files supplied in the library. Show list
Name Subfolder Description

Configuration files
STARDOMIMPORTCONFIGURATION.XML TP Includes Templates for all controllers, program
instances and POUs as well as global definitions
such as OPC groups.
STARDOMIMPORTCONFIGURATIONHMI.XML TP A list of configuration items that are to be created
for each category (Control Group, Graphics and
Trend).

Mimic templates
TPL_ALARMS WT For Alarm mimics.
TPL_CONTROLGROUP WT For Control Group mimics.
TPL_TRENDS WT For Trend mimics.
TPL_GRAPHICS WT For Graphics mimics.
TPL_MENU WT For Menu mimics.
TPL_SYSTEM WT For System mimics.

Template files
TOOLBOX.SIT W For Toolbox mimic.
TOOLBOX.SIT.BINARY - -
TRD_xxxx.SIT W For Trend mimics.
GRA_xxxx.SIT W For Graphics mimics.
CGR_xxxx.SIT W For Control Group mimics.
ALA_xxxx.SIT W For Alarm mimics.
SYS_xxxx.SIT W For System Overview mimics.

Mimics

- 542 -
MENU_CONTROLGROUPS W Including the Control Group menu.
MENU_GRAPHICS W Including the Graphics menu.
MENU_TRENDS W Including the Trends menu.
[POU Name]_Settings W Settings mimic. One for each supported POU.

Symbols
[POU Name] S POU symbol. One for each supported POU.
[POU Name].png B Images of POU symbols to be used by the Smart
Generator.
POU_GENERIC.png B Image to be used by the Smart Generator for
POUs without an image of their symbol.

For further information


Details of the objects in the library are given in the Stardom Library specification attached.

- 543 -
Stardom HMI Configuration - the Category Tab
The HMI configuration consists of categories. Each of these contains a set of control groups, graphics and
trends. These are all represented in a tree structure in the left-hand pane of the HMI Configuration dialog.
By default, the dialog opens with a single category, Category 1. Show picture

1. In the left-hand pane, you can use the button Expand All to expand all nodes and Collapse All to col-
lapse all nodes. You can also use the plus (+) and minus (-) markers in the tree structure to expand
and collapse individual nodes. Show picture

2. To add a category, select the Add Category button. Its node and sub-nodes are added to the tree struc-
ture in the left-hand pane. Show picture

3. To delete a category, select it then click on the Delete Category button. The selected category's node
and sub-nodes are removed from the tree structure.
4. From a category's Properties menu, you can choose Add Control Group, Add Graphics or Add Trend.
For details see the topics after this one.
5. Click on the Next button to continue.

Editing a category's properties


Category names are assigned automatically and cannot be edited. Up to 1,000 entries, from CAT_
0001 to CAT_1000.
The properties you can edit are as follows:

l Name - Language 1 & Language 2 - you can enter a name for the category in each language. Up to 20
characters or ideograms.
l Number of Control Groups, Trends, Graphics - you can enter the number of instances of each kind of
component that is to be imported. Up to 1,000 of each.

The configurator adds as many nodes as you specify of each type (Control Groups, Trends and Graphics).
If you reduce the number of nodes below the number previously configured, the Update Category
dialog warns you that related mimics will be deleted. Show picture

- 544 -
When mimics are deleted, they are moved to the project's sub-folder \W\BAK. That applies also to
the Delete actions for Control Groups, Graphics and Trend objects.

- 545 -
Stardom HMI Configuration - the Control Group Tab
By default, the tab opens with a single control group object, Control Group 1, within the default category,
Category 1. Show picture

1. In the left-hand pane. select a Control Group node. Its properties are shown in the right-hand pane
where you can edit them (see below). Click on the Apply changes button when finished.
2. To add a control group, right-click on the Control Groups node and select Add Control Group. A node is
added to the tree structure in the left-hand pane.
3. To delete a control group, select its node then click on the button Delete Control Group. The node is
removed from the tree structure.
4. Click on the Next button to continue.

Editing a control group's properties


Control group names are assigned automatically and cannot be edited. (Up to 1,000 entries, from
CGR_0001 to CGR_1000).
The properties you can edit are as follows:

l Name - Language 1 & Language 2 - you can enter a name for the control group in each language. Up to
25 characters or ideograms.
l PAS/POU - expand the tree structure of objects. Select one of the eight faceplate (symbol) slots then
double-click on the object's entry in the tree structure. Its faceplate type and instance name are
shown in the slot's header and the next slot to the right is selected.
l Global Variables
l Reset button - returns the configuration to its initial state.

If you select a faceplate slot that has already been configured, the object you apply to it will replace
that configuration.

The Control Groups mimic


The Control Groups mimic has no menu bar. Show picture

- 546 -
- 547 -
Stardom HMI Configuration - the Graphics Tab
By default, the tab opens with a single graphic object, Graphic 1, within the default category, Category 1.
Show picture

1. In the left-hand pane. select a Graphic node. Its properties are shown in the right-hand pane where
you can edit them (see below). Click on the Apply changes button when finished.
2. To add a graphic, right-click on the Graphics node and select Add Graphics. A node is added to the tree
structure.
3. To delete a graphic, select its node then click on the button Delete Graphics. The node is removed
from the tree structure.
4. Click on the Next button to continue.

Editing a graphic's properties


Graphic object names are assigned automatically and cannot be edited. Up to 1,000 entries, from
GRA_0001 to GRA_1000.
The properties you can edit are as follows:

l Name - Language 1 & Language 2 - you can enter a name for the graphic in each language. Up to 25
characters or ideograms.
l Mimic Links

The Graphics mimic


The Graphics mimic has a menu bar with the following buttons. Show picture

l CG - 1 and CG - 2
l GR - 1 and GR - 2
l TR - 1 and TR - 2

- 548 -
Stardom HMI Configuration - the Trend Tab
By default, the tab opens with a single trend object, Trend 1, within the default category, Category 1. Show
picture

1. In the left-hand pane. select a Trend node. Its properties are shown in the right-hand pane where you
can edit them (see below). Click on the Apply changes button when finished.
2. To add a trend, right-click on the Trends node and select Add trend. A node is added to the tree struc-
ture.
3. To delete a trend, select its node then click on the button Delete trend. The node is removed from the
tree structure.
4. Click on the Next button to continue.

Editing a trend's properties


Trend object names are assigned automatically and cannot be edited. Up to 1,000 entries, from
TRD_0001 to TRD_1000.
The properties you can edit are as follows:

l Name - Language 1 & Language 2 - you can enter a name for the trend in each language. Up to 25 char-
acters or ideograms.

The Trend mimic


The Trend mimic has a menu bar with the following buttons. Show picture

l Customize
l Export

- 549 -
Stardom HMI Configuration - Finish
When you have finished configuring the control groups, graphics and trends for the HMI, you can check the
number of instances of each to be created in the application. Show picture

l Select the Finish button to start the process of generating the variables and the HMI.

- 550 -
Managing previous imports

- 551 -
Overview of Managing Previous Imports
The Smart Generator workspace remembers the configuration of each import that is made. To manage a pre-
vious import you select it in the list in the right hand pane of Smart Generator's workspace. The following
options are then available from the task toolbar. Show picture

Synchronize
See the topic Synchronizing an import.

Remove variables
Removes all the variables previously imported into the Supervisor using the import.

Remove
Removes the import record from the Smart Generator. You can optionally remove all the variables asso-
ciated with the import from the Supervisor.

Properties
Displays the properties of the import. Show picture

- 552 -
Synchronizing an Import
When you synchronize an import the Smart Generator compares the variables available in the import file
with those that have been imported previously to the Supervisor.
The synchronizing process takes into account any filter that you may have used previously with the
import.
For example if there are 400 variables in the import file and the previous use of the import was with a filter
and created 100 variables in the Supervisor, Synchronize will inform you that there are 300 new variables
available for import.

What happens if the Smart Generator finds variables in the project that have not been impor-
ted?
If variables have been added to the import file since the last import, the Smart Generator will display the
Import New Variables dialog, inviting you to make either a full or a custom import of the remaining vari-
ables.

l If you select full import, all variables not already in the Supervisor are imported.
l If you select custom import, you will be able to filter the variables using the Select Variables dialog.

What happens if the Smart Generator finds variables in the Supervisor that are no longer in
the project?
If the Smart Generator finds variables in the Supervisor that no longer exist in the import file a list of the
variables will be displayed. Using this list you can choose to remove some or all of the variables from the
Supervisor. Show picture

- 553 -
What Happens if I Exceed the Number of Variables in the License?
The Supervisor only checks the number of variables in its variables tree against the number allowed in the
license on startup. There is no check when variables are imported using the Smart Generator. If the Super-
visor finds more variables in its tree than are allowed it will not start. To avoid this problem it is important
to keep track manually of the number of existing and new variables that you import.

How do I start the Supervisor if I have exceeded the number of allowed variables?
You cannot start the Supervisor if you have exceeded the number of variables allowed in the tree. Instead
you will have to recover an earlier version of the Supervisor's variables tree. If you have not taken a recent
backup of the project you can use the following procedure.

1. Locate the folder containing the project on which you are working.
2. Open the CTEMP folder and copy the file VAREXP.DAT (the variables tree definition file)
3. Open the C folder and rename the existing file from VAREXP.DAT to VAREXP.BAK
4. Paste in the copy of VAREXP.DAT from the CTEMP folder.

The copy of VAREXP.DAT in CTEMP is written each time the Supervisor is successfully started.

- 554 -
Programming languages

- 555 -
About the Programming Languages
The Supervisor supports two programming languages.

SCADA Basic
SCADA Basic is a block structured, interpreted language with a syntax closely related to industry standard
Basic. SCADA Basic is proprietary to the Supervisor.

VBA
VBA (Visual Basic for Applications) is a programming language created by Microsoft. It is a subset of their
Visual Basic (VB) language designed for automation of applications – originally the Office 97 suite but now
over 200 third-party packages as well. The Supervisor provides VBA access to the project environment,
mimics, drawing elements, symbols, macro animations and the real time value of variables (known col-
lectively as the Supervisor's objects).
Reference information for VBA, including the Supervisor's objects, may be found in a help file opened from
the Help entry in the VBA editor menu. This help file is only available in the English language.

- 556 -
Cypress Enable
Cypress Enable is not supported by version 11 or later of the Supervisor. However, it is possible to
convert and/or replace Enable scripts, developed with earlier versions of the Supervisor, to VBA.
Please contact technical support for further information.

- 557 -
VBA

- 558 -
Understanding Objects, Properties, Methods and Events
Objects are the fundamental building block VBA style scripting languages. Almost everything you do
involves modifying objects. Most of the elements of the HMI, the project, and the variables can be rep-
resented by an object in the scripting language.

What are Objects and Collections?


An object represents an element of The HMI such as a window or drawing element.
A collection is an object that contains several other objects, usually of the same type. Using properties and
methods, you can modify a single object or an entire collection of objects.

What is a Property?
A property is an attribute of an object or an aspect of its behavior. For example, properties of a window
include its name, its size and position. To change the characteristics of an object, you change the values of
its properties.
The following example changes the colour of the drawing element 'Shape_Red'.
Shape_Red.BackColorPrimary = RGB(255, 0, 0)
You can also retrieve information about an object by returning the value of one of its properties. The fol-
lowing example returns the height of a drawing object.
ObjHeight = Object_Truck.Height
In this example, Object_Truck refers to a drawing element. The height of that drawing element is assigned
to the variable ObjHeight.

Not all properties can be set – some are read-only.

What is a Method?
A method is an action that an object can perform. For example, just as a drawing element can be moved,
the drawing element object has a Move method. Methods normally have arguments that qualify how the
action is performed. The following example moves the image Bitmap1 to a new location within its window.
Bitmap1.Move NewXPos, NewYPos
In most cases, methods are actions and properties are qualities. Using a method causes something to hap-
pen to an object, whereas using a property returns information about the object or it causes a quality of the
object to change.

What is an Event?
An event is an action recognized by an object, such as clicking the mouse or pressing a key, for which you
can write code to respond. Events can occur for a number of reasons:

l A user action such as clicking a mouse or pressing a key.


l A subscribed variable changing value.
l Because of other program code.
l Something happening in the system.

- 559 -
Using Collections
A collection is an object that contains several other objects, usually of the same type. Using properties and
methods, you can modify a single object or an entire collection of objects.

Returning an Object from a Collection


Most objects are obtained by returning a single object from the collection. For example, the Windows col-
lection contains the open windows for The HMI. You use the Windows property of the ActiveProject object to
return the Windows collection.
After you have accessed the collection, you can return a single object by using an index value in parentheses
(similar to the way you work with arrays).
The index value is usually a number or a name. The following example displays the name property of the
first window opened in a message box:
Dim objWindows As Object
Dim sTitle As String
Const IconInformation = 64
sTitle = "Position of Window 1"
Set objWindows = ThisProject.Windows
MsgBox "Left = " & objWindows.Item(1).Left & " Top = " & _
objWindows.Item(1).Top, IconInformation, sTitle

Note the use of the underscore as a line continuation character.

Looping Through a Collection


You can loop through the elements of a collection in different ways. However, the recommended method for
looping on a collection is to use the For Each...Next loop.
In this structure, the scripting language repeats a block of statements for each object in a collection.
The following example displays the name of each open mimic in the Mimics collection:
Dim objMimic As Object
Dim sTitle As String
Const IconInformation = 64
sTitle = "Opened mimics"
For Each objMimic In ThisProject.Mimics
MsgBox objMimic.Name & " " & objMimic.Caption, IconInformation, sTitle
Next

- 560 -
The Supervisor's Objects
The properties, methods and events of Supervisor's objects allow the User to develop any customized beha-
vior needed for the supervision and control of the process. Some object instances are always available as
part of the core functionality (for example ThisProject) whereas others are created as part of the application
(for example an opened mimic).
Instance in
Class Represents VBA
Application The HMI application. Application
AVI An AVI object.
Bitmap A bitmap object. This class supports BMP and JPG image formats.
fvProject The currently opened project. ThisProject
GIF A GIF object. This class supports GIF image formats.
Graphics A collection representing all drawing objects within a mimic. The fol- Graphics
lowing object classes are included.
AVI
Bitmap
GIF
Group
Metafile
OLE
Poly
Shape
Symbol
Text
Group A group object. A number of drawing elements that have been
grouped together. (Not a symbol inserted from the libraries)
Metafile A metafile object. This class supports WMF and EMF image formats.
Mimic An opened mimic. ThisMimic
Mimics A collection representing all opened Mimic objects. TheseMimics,
Mimics
OLE A third party OLE object. Its properties, methods, functions and
events are exposed once it is inserted into a mimic. For information
on the behaviour of the object see the documentation provided by the
vendor.
Poly A polygon/polyline object. This class includes the Line, Polyline,Poly-
gon and Bézier curve drawing elements.
Recipe A list of inqredients and variables.
Shape A shape object. This class includes the Rectangle, Rounded Rectangle,
Ellipse, Arc and Half-arc drawing elements.
Symbol Symbol Library. (Previously known as an object)
System A set of properties that describes the system on which the HMI is run- ThisSystem, Sys-
ning. tem
TemplateGraphics A collection representing all drawing objects within a mimic template. TemplateGraphics
Identical to the Graphics Collection except that it points to the graph-
ics of a mimic template. If the mimic has no template then Tem-
plateGraphics is redirected to Graphics.
Text A text object. This class includes the Text drawing element.
UIAlm An alarm display object.
UILog A log display object.
UITrd A trend display object.
Variable A currently subscribed variable. It provides properties, methods and
events for variables of all types.
Variables A collection representing all currently subscribed variables. TheseVariables,

- 561 -
Variables
Window A view of an opened mimic. A mimic can have several views opened
simultaneously. For example, one in design mode and the other in run
mode.
Windows A collection representing all opened Window objects. Windows

- 562 -
Making Drawing Elements Respond to the Mouse Pointer
This topic describes how to make drawing elements respond visually when the mouse pointer is held over
them.
Show picture

Method

1. Select a drawing element and open the Properties List (View.Properties List).
2. Select the DisplayMouseInput property and set it to True. (Click on the value, click on the button
marked '...' and select True.)

Effects
When you hold the mouse pointer over the drawing element, it responds as if it had a Send animation. When
elements overlap, the effects depend on the combination of the DisplayMouseInput property and any anim-
ations.
Elements Effect
One element with the property True It responds all over.
Two elements: Each element responds separately except that when
- one with the property True the pointer is over the overlap, both respond.
- one with an animation
Two or more overlapping elements, both with the Each element responds separately. Only the one in
property True (or both with animations) front responds in the overlapping area.
Three or more overlapping elements. They respond separately except that when the
pointer is over the overlap of a particular pair - one
with the property True, the other with an animation -
that pair will respond together.

- 563 -
Using MS VBA

- 564 -
About VBA
The information contained in this help manual explains features of VBA that are specific to its imple-
mentation for the Supervisor. The help does not provide general information on VBA or on programming in
general.
If you are unfamiliar with VBA, you would benefit from tuition before you attempt any programming in the
Supervisor:

l By working through one of the many available books on VBA, with examples of code.
l By contacting your distributor for details of training courses.

Reference information for VBA, including the Supervisor's objects, may be found in a help file
opened from the Help entry in the VBA editor menu. This help file is only available in the English lan-
guage.

- 565 -
The VBA development environment

- 566 -
How the VBA Project Explorer Interacts with the HMI
In the VBA Project Explorer there are Projects, Project Items and Controls. A single HMI application is seen
in the VBA Project Explorer as several discrete projects.
Show picture

To display the Project Explorer box, use CTRL+R on the keyboard or select the menu View.Project Explorer.

The Main project (Workspace)


The Main project always exists and provides access to two project items: ThisProject and ThisSystem. The
Main project is automatically added as a reference to all other projects (seen as Reference to WorkSpace in
the Project Explorer) so you can access its functions and variables as if they were global.

The MimicProject project


Each opened mimic appears in a separate MimicProject project. In a MimicProject there is one ThisMimic
project item representing the Mimic object. Each MimicProject has its own design and run modes. When
switching modes, the mimic and associated MimicProject follow one another. In Design mode, events are
not executed.

The SymbolProject project


Each Symbol displayed in an opened mimic will appear in a separate SymbolProject project. Only one Sym-
bolProject is displayed for each Symbol type even if there are several instances of it on a mimic. In a Sym-
bolProject there is one ThisSymbol project item representing the Symbol object.

Global Modules
You can insert Modules and Class Modules in any VBA project. Modules in the Main project will be seen by all
other projects. In the case of a name conflict use 'Main.' as a prefix.

- 567 -
Developing VBA programs

- 568 -
Error Handling When Using VBA
Why is error handling important?
Normally when a VBA application encounters an error, program execution is stopped and an error box is dis-
played providing direct access to the VBA editor. Show picture

With the Supervisor, if you have a Runtime license, this error box is disabled as it would give the user
access to the VBA editor. Therefore if there is an error, and no specific error handling is provided, the pro-
gram will stop and the user may be unaware. To avoid this you should add an error handler to all but the
simplest of programs.

How add an error handler to your program


There are two parts to adding an error handler to your program.

l You must tell VBA that you have included an error handler.
l You must provide the error handling code.

To tell VBA that you have included an error handler you use the On Error statement. The On Error statement
points to a block of code to which the program will jump when it encounters an error. A simple example is
shown below.
Sub OnErrorStatementDemo()
On Error GoTo ErrorHandler ' Enable error-handling routine.
Open "TESTFILE" For Output As #1 ' Open file for output.
Kill "TESTFILE" ' Attempt to delete an open file to force error.
Exit Sub ' Exit to avoid handler.

ErrorHandler: ' Error-handling routine.


Select Case Err.Number ' Evaluate error number.
Case 55 ' "File already open" error.
Close #1 ' Close open file
Case Else
' Handle other situations here...
End Select
Resume ' Resume execution at same line that caused the error.
End Sub

A full explanation of error handling in VBA is beyond the scope of this help. For more information see
Microsoft's help for VBA or one of the many specialist books available.

- 569 -
Using HMI Drawing Elements in a VBA Program
Before any HMI drawing element (Shape, Text, Image etc.) can be used as a control in a VBA program you
must enable the VBA Control property in the pop-up menu displayed by right-clicking on the object.
Show picture

Once the drawing element has been enabled as a VBA control it becomes visible in the VBA environment and
the EnableEvents property of drawing element is set to True.

l It can be selected using the left-hand combobox in the code window.


l Once it is selected in the left-hand combobox, you can select any of its events in the right-hand com-
bobox and directly code the event.
l It is visible in the VBA property box.
l The object is directly known by its name (for example 'shape1') in the VBA Project.

Remarks
You can select/de-select the VBA Control property at any time. The associated code is not lost if you de-
select a control, it just becomes a function of the Project.
It is possible for a drawing element to be a VBA control without the EnableEvents property being True. In
this case you will be able to change its properties by program, but not be able to fire any events.
Each drawing element that is enabled as a control requires additional resources from the host PC. Only
enable drawing elements as controls if you need to develop code for them.

- 570 -
Coding events dynamically using the Dim WithEvents statement

- 571 -
Developing code for use in symbols

- 572 -
About Developing VBA Code for Use in Symbols
Show picture

If you develop VBA code as part of a Symbol it will be generic and executed for each instance of the Symbol.
To allow the development of code on a symbol right-click on the Symbol to display a pop-up menu and
Select the property Symbol Project in VBA.
A new SymbolProject will appear in VBA and any code you develop will automatically be executed for any
instance of the symbol. The symbol is automatically saved each time you edit the code.

- 573 -
Using Drawing Elements Within a Symbol as VBA Controls
To use a drawing element within a symbol as a VBA control you must select its VBA Control property before
it is grouped and saved within a symbol (unless you use Dim WithEvents - see the topic Using BeforeEvent
and Dim WithEvents to Dynamically Code Events). It will then be visible as a control within the symbol and
appear in the left combo box of the code window for that symbol.
Any code attached to the drawing element before it becomes part of a symbol becomes a function
of the mimic project, it does not become part of the symbol.

Example of how to create a Symbol containing a VBA control

1. Draw a rectangle 'Shape1' and select the VBA Control property using the right-click pop-up.
2. Draw a rectangle 'Shape2'.
3. Group 'Shape1' and 'Shape2'.
4. Right-click on the group and select Create Symbol.
5. Give the Symbol a name and save it.
6. Right click on the newly created Symbol and select Symbol Project in VBA.
7. Display the VBA environment (Alt+F11) and the Symbol will appear in its own SymbolProject project.

If you modify a Symbol by ungrouping it you will lose any code attached to drawing elements within the sym-
bol.
To avoid this, duplicate the Symbol first to keep at least one instance of the Symbol in the mimic.
The VBA project automatically reattaches the code to the modified Symbol.

- 574 -
What Happens to Symbol Events when Using VBA?
By default, the EnableEvents property of the Symbol itself is set to false and the Symbol is unable to
respond to events. However, any drawing elements within the symbol that are VBA controls are able to
respond to events (assuming that their EnableEvents property is true).

Remarks
If you set the EnableEvent property of the Symbol to true then the Symbol itself will respond to events but
any VBA control within it will not. You will still be able to change the properties of any VBA control within the
Symbol by program.

- 575 -
Using BeforeEvent and Dim WithEvents to Dynamically Code VBA Events
The Symbol object has two special events, BeforeEvent and AfterEvent. These are fired even if the
EnableEvents property of the Symbol is false.

l The BeforeEvent event occurs before each event fired from any drawing element in the Symbol with
the EnableEvents property set to true.
l The AfterEvent event occurs after each event fired from any drawing element in the Symbol with the
EnableEvents property set to true.

Using BeforeEvent with the Dim WithEvents statement allows you to code events on a drawing element in a
Symbol without first selecting the VBA Control property.

Example
This is best illustrated with an example. Within a Symbol, Shape1 exists and has the EnableEvents property
set to true but has not been selected as a control.
'------ The following line must be placed in General Declarations
Dim WithEvents objGraphic as Graphic
'------ Assign the object when using the BeforeEvent Event
Private Function Symbol_BeforeEvent () As Boolean
Set objGraphic = Graphics("Shape1")
End Function
'------ Code to execute when Shape1 is clicked
Private Sub objShape_Click
MsgBox "Click"
End Sub

- 576 -
Using variables in a program

- 577 -
About Using Variables in a VBA Program
Before you can use the properties, methods and events of any Variables Tree variables in your programs,
the variables must first be subscribed. Variables are subscribed in the following ways.

l Automatically when used in an animation of any open mimic.


l Automatically whenever a variables value is referenced in a VBA program.
l Manually by using the Add method of the Variables collection.

- 578 -
Subscribing and Unsubscribing a Variable Using VBA
Variables are not automatically available to VBA. To make them available they must be subscribed.
Each variable that you subscribe uses some slight system resources. To reduce that loading you can
'unsubscribe' (remove) variables that are no longer required, as described below.

Some variables may need to be subscribed 'permanently' while the project running. For instance,
variables that have a script running when the variable changes in value.

How using a variable in a mimic makes it accessible to VBA scripts


Any variables used in any animation in an opened mimic are automatically made available to VBA. It is unne-
cessary to programmatically subscribe to the variable as described below. However, when the last mimic
using a particular variable in an animation is closed, that variable is no longer available to VBA unless it is
programmatically subscribed.

Accessing variables in VBA


You can use VBA to access all variables:

l All variables that are available in the HMI (because at least one mimic that uses them in animations is
open) are automatically available in VBA.
l You can access other variables by programmatically subscribing to them.

To subscribe a variable you use the Variables.Add method. For example:


Variables.Add "Branch1.B1", fvVariableTypeBit
Variables.Add "CommentDisplay%", fvVariableTypeText
The optional second parameter describes the variable type. For more information see the Variables Col-
lection topic in the VBA help.
If the variable is already subscribed by an animation in the HMI, it may still be subscribed through VBA.
When the mimic containing the animation is closed the variable will then remain subscribed until the project
is closed or it is unsubscribed in VBA.

You must use the full variable name when you subscribe a variable.

How to unsubscribe a variable


To unsubscribe a variable you use the Variables.Remove method. For example:
Variables.Remove "Branch1.B1"
If you subscribe a variable more than once in VBA, you have to unsubscribe it that many times before the
variable can become unsubscribed. Even then, it remains subscribed in the HMI so long as any mimic that
uses it in animations remains open.

- 579 -
Shortcuts for Access to Variables in VBA
The Item method
The Item method is the default for the Variables collection, and the Value property is the default for the Vari-
able object. So:
Variables("CommentDisplay") = "Hello World"
is the equivalent of:
Variables.Item("CommentDisplay").Value = "Hello World"

The [. . .] syntax
The [. . .] syntax provides an additional shortcut to directly access a variable's value.
[Main.Branch1.B1]
is the equivalent of
Variables("Main.Branch1.B1")
It is recommended that you use this shortcut to make your code more readable.
When you use the [...] syntax the variable is automatically subscribed and unsubscribed - there is
no requirement to do it programmatically.

Example
Private Sub Shape1_Click()
If [Main.Branch1.B1] = True Then
[Main.Branch1.B1] = False
Else
[Main.Branch1.B1] = True
End If
End Sub

- 580 -
Running VBA Code When a Variable's Value Changes
You can execute code when a variable's value changes, using the Dim WithEvents statement and the
ValueChange event.
This is best illustrated with a simple example.

Example
'------ This code must be placed in General Declarations
Dim WithEvents objVar As Variable

'------ Execute to set up events


Private Sub fvProject_StartupComplete()
'------ Subscribe to variables
Variables.Add "Branch1.B1", fvVariableTypeBit
' ------ Assigns an object reference to the variable and enable the events
Set objVar = [Branch1.B1]
objVar.EnableEvents = True
End Sub

'------ Execute when value of Main:Branch1.B1 changes


Private Sub objVar_ValueChange()
MsgBox objVar.Name & " = " & objVar.Value
End Sub

You must enable events for the object using the EnableEvent method.

Remarks
If the code is contained within a mimic, any references to objects are temporary. When the mimic is closed,
or its mode changed (from Run to Development), the reference is lost and the event will no longer work. For
the event to work again the object must be reassigned to the variable and the events enabled.

- 581 -
Managing Scroll Bar Controls from VBA
A window displays a scroll bar when part of a mimic is hidden by the window frame. (The workspace can
also display scroll bars, but this topic does not apply to them.)
You can manage window scroll bar controls from VBA by using these features:

l The Mimic object event WindowScroll. (It applies to the mimic associated with the window).
l The Window object functions GetScrollPosition, SetScrollPosition and GetScrollHighPosition.

Mimic and Window objects


The HMI exposes a Mimic/Window object model. In it, a Window object is the visual representation of a
Mimic object. For one Mimic object several Window objects can be present at the same time with different
scroll bar control positions.

Scroll bar controls


Whether scroll bar controls are visible or not depends on the mimic size, window size and zoom level. When
the window scroll bar controls are visible, you can scroll the Window contents horizontally or vertically in
these four ways:

l By 'line' (by increments in each direction).


l By 'page' (to jump to a position above/below or left/right of the visible part of the mimic).
l By moving the scroll box in the scroll bar.
l By turning the mouse wheel.

Show picture

Limits of positioning
Each scroll bar control has a low limit position of 0 to represent the top or left end of the window frame, and
a high limit position for the bottom or right end. These parameters are stated in logical units (by default,
pixels).

- 582 -
Extending the Functionality of the VBE
The VBE (Visual Basic Environment) is the object model for Microsoft VBA Extensibility 5.3. It contains func-
tionality such as:

l Adding and enumerating a project's references.


l Setting or getting the project's description, help file, and help context.

Using these references and properties, you can alter and add to the functionality that is provided in VBA.
The VBE object is the root object that contains all other objects and collections represented in VBA.

The VBE object


The VBE object lists the collections of objects in the VBE. All objects have a VBE property that points to the
VBE object. The VBE object's VBProjects property returns the collection of all projects currently open in the
VB Integrated Data Environment (IDE). For example, this code displays the name of the first of the VB pro-
jects:
MsgBox VBE.VBProjects(1).Name
For more information on the VBE object, see the topic VBE Object in Microsoft VBA Help.

The VBProject object


The term 'project' in the VB/VBA context is distinct from 'project' in the HMI. (A VBA project can be asso-
ciated with a mimic, a symbol or a project in the HMI.)
The VBProject object represents a project in VB/VBA. It enables you to access the project's properties, VB
components and references. For example, this code displays the name of the current VBA project:
MsgBox ThisProject.VBProject.Name
For more information on the VBProject object, see the topic VBProject Object in Microsoft VBA Help.
The VBProject property is used to gain access to the functionality of the VBE object.

- 583 -
VBA Hints and Tips
The following hints and tips (not presented in any particular order) have been accumulated during the devel-
opment of this Help. They do not concern programming techniques but more the way in which you use the
VBA environment in the HMI.

Stopping a VBA Program


To stop a VBA program that cannot be stopped in any other way (for example, if it is in an infinite loop) you
can press the keys CTRL+BREAK.

Enabling events
You must have the Dim WithEvents statement in a code module to enable an object's events to be inter-
cepted by VBA procedures. For more details see the topic Using BeforeEvent and Dim WithEvents to Code
Events Dynamically.
Events are fired only if the EnableEvents property of the underlying object has been set to true. This hap-
pens automatically once the first event script has been associated with the object. For instance, you must
set the EnableEvents property of a Symbol to True to allow it to respond to events. For more details see the
topic What happens to Symbol events.
In Design mode, events are not executed.

The 'Me' keyword


'Me' refers to the current object - the specific instance of the class where the code is executing. For an
example see the Symbol Loaded Example and for more information see the Microsoft VBA topics 'Me
<keyword>' and 'Invalid use of Me keyword'.

Access to Variables
You must subscribe an OPC variable before you can use it in VBA (unless it is used in an animation in a
mimic that is currently open).
The [. . .] syntax provides an additional shortcut to access a variable directly. [Main.Branch1.B1] is the
equivalent of: Variables("Main.Branch1.B1").

Diagnostic tools
The HMI is always open when you are developing a VBA program. You can use animations in a mimic to mon-
itor the values and properties of HMI variables dynamically. You can also keep open the Configuration
Explorer (for all HMI variables) and the Properties List (for a selected element in the HMI) for reference as
you develop the code. The contents of the Properties List change dynamically as you select HMI objects and
alter their settings.
For diagnostic tools in the standard Microsoft VBA environment, see the Microsoft Help topic 'Ambiguous
Selection' (Code/Module Window, Immediate Window/Pane, Locals Window/Pane, Object Browser and
Watch Window/Pane).

- 584 -
Web and mobile client applications

- 585 -
Web and Mobile Client Applications Overview
The available Web and Mobile Client Applications are as follows:

l WebVue - A web portal designed to display the Supervisor's mimics in a web browser.
l TouchVue - An app (application) that displays information about the Supervisor's variables, and alarm
notifications, on a mobile platform such as a smart phone or tablet.
l WebScheduler - A web portal for managing the schedules that you find in typical supervisory applic-
ations such as Building Management.

The Web Services Toolkit is also available. It is a XML/SOAP Web API that allows you to develop client applic-
ations needing access to data managed by the Supervisor.
The web and mobile client applications require the following functional components:

1. A Supervisor station set-up to ensure the role of Web back end.


This station may also be doing data acquisition, archiving..., or may be deployed just for the Web back
end role.
2. A computer set-up to ensure the role of web server, where Microsoft Internet Information Server can
be installed.
It could be on the same computer as (1) above, or a dedicated machine.
3. One or more computers or mobile devices used as web clients, equipped with either a web browser for
WebVue and the WebScheduler, or the installed mobile app for TouchVue.

The web and mobile client applications communicate with the web server using HTTPS over a LAN (local net-
work) or a WAN.
We recommend users to take defensive measures to protect against cybersecurity risks. Depending
on your risk analysis, you should:

l Minimize network exposure of your control system devices. Critical devices should not directly
face the Internet.
l Design your network architecture so that it brings the adequate level of segregation for your
control system. Potential measures include (but not limited to): Router, firewalls, DMZ,
segregation from the business network...
l When remote access is required, use secure methods, such as Virtual Private Networks
(VPNs).

The main common steps to configure web & mobile app access to the Supervisor are as follows:

l Install and deploy a Web back end station,


l Deploy a web server with the adequate role(s) depending on the web app(s) you intend to make avail-
able to users,
l Add one or more web-enabled users to your project,
l Ensure your project settings accommodate requirements specific to the web app(s) you intend to
make available to users.

When the web server is updated and re-deployed, it is of prime importance to make sure WebVue
and WebScheduler users empty the cache of their web browser. This ensure that they are using up-
to-date resources and javascript modules.

Useful links
About deployment:

l Web based architecture examples


l Role of web server and web back end
l Web Deployment Console
l Deploying the WebVue client
l Deploying the TouchVue app

About project configuration:

- 586 -
l Web & Mobile back ends
l Mobile server

- 587 -
TouchVue

- 588 -
TouchVue Overview
TouchVue is a mobile application that displays information about the Supervisor's variables, and alarm noti-
fications, on a mobile device such as a smart phone or tablet. The information is supplied by the Super-
visor's Web & mobile back end server. The variables that are eligible for display are primarily selected by
matching their Browse Level to the Browse Level configured in the profile of the TouchVue user. Show pic-
ture

See Web and Mobile Client Applications Overview for an overview of Web & Mobile client applications, includ-
ing their common requirements and common deployment steps.
The configuration steps specific for TouchVue access to the Supervisor are as follows:

l Make sure you have properly configured the Mobile server settings available in the Application
Explorer. It includes the variable and alarm properties that should be displayed in the TouchVue App
detailed views, and the default filter for alarm notification,
l Make sure the variable Browse level matches your need, so that the proper variables and alarms are
accessible to the intended users via TouchVue,
l Have users install the TouchVue mobile application on their mobile device.

This book includes detailed information about how to design your project so that users can successfully take
advantage of the TouchVue mobile application:

l For information about developing a project for TouchVue, see the book Mobile server.
l For information about TouchVue user configuration, see the topic Properties that affect access to Web
Apps and Web Services in the Application Explorer book and Configuring TouchVue Users.
l For information about using TouchVue, see the book Starting TouchVue.

Summary of the main TouchVue views


The views are all accessed from the drawer menu opened by a swipe from the left border of the screen.

l Inbox - List of recent alarm notifications from all connected accounts. See the Inbox view topic.
l Watch list - List of watched variables from all connected accounts. See the Watch list view topic.
l For each configured account
l Browsing - The root of the Supervisor's variables tree, from where you can navigate to the
views that display the variables lists and individual variable details for the account. See the
Browsing view topic.
l Watch list - A list of the watched variables for the account. See the Watch list view topic.
l Alarm list - A list of current alarms for the account. See the Alarm list view topic.
l Logs - Selection of a log list and the display of the events it has recorded. See the Logs view topic.

- 589 -
l Application settings - TouchVue's user configurable parameters. See the Application settings view
topic.
l Accounts - Configure user accounts and display their status. See the Accounts view topic.

TouchVue makes use of the Notification Area to notify the user of the status of selected alarms.

Licensing TouchVue
The components necessary to run TouchVue are included on the Supervisor's distribution media and the Win-
dows distribution media.
The maximum number of simultaneous TouchVue sessions the Supervisor's Web back end manages is
license-protected.

Terminology
For readers not familiar with mobile platforms terminology here are some of the terms in common use:

l View - The term used for a graphic display page occupying the entire screen (except the notification
area - see below).
l Notification area - A small area, not used by any app's views, reserved for notifications requiring the
user's attention. Normally at the top of a smart phone or the bottom of a tablet.
l Gestures - The finger movements to interact with the Android touch screen.
l Touch or Tap - Touch the screen Press and lift immediately.
l Long touch or Long tap - Touch the screen, wait, lift.
l Swipe - Touch the screen, move, lift.
l Drag - Long touch, move, lift.
l Double touch or Double tap - Two touches in quick succession.
l Pinch open - 2-finger touch, move outwards, lift.
l Pinch close - 2-finger touch, move inwards, lift.
l Drawer menu - A menu generally opened by a left swipe. Known as a drawer because of the way in
which it opens.

- 590 -
Configuring TouchVue Users
TouchVue users are configured in the same manner as other users of the Supervisor by creating Users and
allocating Profiles to configure the user rights.
Many of the user rights, selectable in a profile do not affect the use of TouchVue. Only those in the Web tab,
and those that affect variable and alarm access are relevant.

l Web tab - Enable access. Must be selected to give the user access to TouchVue.
l Web tab - Project Language.
l Browsing tab - Browse levels. Selects the variables available to the TouchVue app. See below.
l Command tab - Command levels. Controls the variables for which the user can send commands/set-
points.
l Alarm acknowledge tab - Alarm acknowledge levels. Controls which alarms the user can acknowledge.
l Alarm masking tab - Alarm masking levels. Controls which alarms the user can mask.

Why is the Browse Level important?


The browse level of a TouchVue user is the primary way in which the variables available to TouchVue are
selected. For example, if a user has only browse level 20, only variables with browse level 20 will be visible
when they are logged on.
By default, when variables are created, they have only browse level 0 set. To make configuring your applic-
ation easier it is suggested you choose one or several other browse levels for variables accessible by
TouchVue.
Other ways in which you can use the browse level is to allocate a different browse level to each Profile. This
would then enable different users to have access to different groups of variables.

- 591 -
Using TouchVue

- 592 -
Starting TouchVue
TouchVue is started by tapping the app icon. Show picture

If it is the first time TouchVue has been started, you must configure an account. After the splash screen has
been displayed for a few seconds the Account view is displayed from where an account can be configured.
If TouchVue has previously been started, and an account has been configured, the Inbox view is displayed.
Starting the TouchVue app also starts the TouchVue notification service, which runs in the back-
ground.

- 593 -
Menu Drawer
The Menu drawer is used to navigate the TouchVue app. It can be opened from most views with a left swipe
from the screen border, or by tapping the Menu icon, which appears at the top left corner. Show picture

Main features

l Inbox - A list of the most recent 50 alarm notifications across all accounts. See the topic Inbox view.
l Watch list - A list of variables that have been marked as watched across all accounts. See the topic
Watch list view.
l Accounts - The menu drawer includes an entry for each configured account showing its current status.
Tapping the account displays the four views specific to that account.
l Browsing - Navigate the Supervisor's Variables Tree starting at the root. See the topic Browsing
view.
l Watch list - A list of variables that have been marked as watched. See the topic Watch list view.
l Alarm list - A list of alarms and their current state. See the topic Alarm list view.
l Logs - Display events from a selected Log List. See the topic Logs view.
l Application settings - User configurable settings for the TouchVue app. See the topic Application set-
tings view.
l Accounts - Manage the accounts used to connect the TouchVue app to the Supervisor's web server.
See the topic Accounts view.

- 594 -
Alarm Notifications
The Alarm Notifications mechanism runs as a service and, once the TouchVue app has been started, it runs
in the background even if the TouchVue app is closed. The service polls the server for alarms at the rate con-
figured in the Application settings view. Notified alarms appear in the notification area of the mobile device.
Show picture

Tapping a notification opens the TouchVue app and displays the Inbox view.
Not all versions of Android support TouchVue notifications. For information on which platforms are
supported by TouchVue see the topics Operating System and PC Requirements or the readme file.

- 595 -
Inbox View
The Inbox view displays a list of the most recent 50 alarm notifications. The notifications are stored locally
on the device and are displayed even if the device is not connected to the Mobile Server. Show picture

Alarms can have either a read or unread status. Unread alarms are displayed in a bold font and a count of
the unread alarms is displayed at the top of the view.
Newly received notifications whilst the Inbox view is opened are not added immediately. However,
the Inbox can be refreshed using a down swipe.

How to mark an alarm as read


There are two ways in which an alarm can be marked as read.

l By displaying the Details view, for an alarm, by tapping the alarm name.
l By selecting one or more alarms, by tapping the icon adjacent to the alarm name, and using the Mark
As Read command on the toolbar at the top of the view.

- 596 -
Browsing View
The Browsing view allows you to navigate the Supervisor's Variables Tree starting at the root. Show pictures

Screen features

l Displays one branch at a time from the variables tree starting at the root and ending with the vari-
ables for the chosen branch.
l Only variables that match the user's Browse Level (or levels) are displayed. Branches that do not con-
tain any matching variables are not displayed.
l Branches and variables are designated by their Description. Only if the Description is not present in
the Supervisor's configuration is the Name displayed. The use of the Description property for branches
and variables is normally preferential, as it does not have the constraints that affect a variable's
Name.
l Branches and variables (register, text, bit and alarm) are clearly differentiated with different icons.
l Tapping a branch will navigate to the next level of that branch which may contain more branches, vari-
ables or a mixture of both.
l Tapping a variable's name will open the Variable Details view for that variable. Which details are dis-
played depends on the configuration of the Mobile Server in the Supervisor.
l Tapping a variable's icon will select the variable. The menu actions can then be used on that variable
l Variables that have been added to the Watch List are indicated with a star adjacent to their icon.
l For branches and / or variables that have an associated mimic or symbol, an additional view, Visual,
is available. See the section below.

Menu actions
Menu actions are applied to all selected variables.
- Watch selected variables.
- Unwatch selected variables.
- Select or un-select all variables.

Visual view
If the variables tree was generated by the Application Architect, and there is a mimic and / or symbol asso-
ciated with the instance that generated the branch or variable, then you can display the mimic or symbol by

- 597 -
tapping the Visual tab. Show pictures

- 598 -
Variables Details View
The Variable Details view displays detailed information about a single variable. It is opened by tapping the
variable name in either the Browsing view or the Watch list view. Show picture

Screen features

l The variable is designated by its Description (or Name if it has no Description).


l The variable value is displayed as follows.
l Register - In the format configured in its properties in the Supervisor.
l Bit - Using its associated label if it has one, otherwise as 0 or 1.
l Alarm variable - Using its associated label.
l Text variable - As a string.
l Variable values are refreshed at the rate defined by the Variable refresh interval setting in the Applic-
ation Settings view.
l The variable properties that are visible are selected by the configuration of the Mobile Server in the
Supervisor.
l If the variable has the Control attribute set then Set Value is shown.
l Alarm variables can be acknowledged, masked and unmasked.
l For variables that have an associated mimic or symbol an additional view, Visual, is available. See the
section below.
l Register variables have an additional Trend view.

Menu actions
None

Visual view
If the variables tree was generated by the Application Architect, and there is a mimic and / or symbol asso-
ciated with the instance that generated the variable, then you can display the mimic or symbol by tapping

- 599 -
the Visual tab. Show pictures

- 600 -
Trend View
The Trend view displays a historic trend for one or more register variables. The Trend view can be opened
from the Variable Details or Watch List views. Show picture

Screen features

l The variable is designated by its Description (or Name if it has no Description).


l Trend features
l If the variable is being recorded in the Supervisor, the historical values are retrieved and dis-
played with a solid trace.
l If the variable is not recorded in the Supervisor, the Trend view plots the values in real time
with a dotted trace.
l By default, the Y-Axis auto scales according to the minimum and maximum value of the variable
within the period.
l The pinch open and pinch close gestures can be used to change the X-axis.

Menu actions
- Change the time period. You can choose from a number of preset periods, which run back from the cur-
rent time, or custom period where the period is defined by entering a start and end time.
- Change the trend Y-axis.

Automatic Y-Scale - The Y-axis is scaled to the minimum and maximum value of the trace.
Custom - Manually enter the scale.
Free mode - Allow the pinch open and pinch close gestures to change the Y-axis

- If displaying multiple traces (Watch view), allows display of individual traces to be disabled and
enabled.

- 601 -
Watch List View
The Watch List view displays a list of all variables that have been marked as watched. The Watch List nor-
mally displays watched variable from all accounts. However if you open the Watch list subordinate to an
account from the main menu drawer, it displays only watched variables from that account. Show picture

The list of watched variables is persistent between sessions.

Screen features

l Variable values are refreshed at the rate defined by the Variable refresh interval setting in the Applic-
ation Settings view.
l Tapping a variable's name will open the Variable Details view for that variable. Which details are dis-
played depends on the configuration of the Mobile Server in the Supervisor.
l Tapping a variable's icon will select the variable. The menu actions can then be used on that variable.
l Actions specific to an individual variable are displayed by tapping the right arrow adjacent to the vari-
able name.
l The DETAILS action displays the Variable Details view.
l The UNWATCH action clears the variable watched flag, thus removing it from the list.

Menu actions
Menu actions are applied to all selected variables.
- Unwatch selected variables.
- Display all selected variables in a Trends view.
- Select or un-select all variables.

- 602 -
Alarm List View
The Alarm List view displays a list of alarms, and their current state, for the account under which it appears.
Show picture

Screen features

l Only alarms which pass the filter criteria in Alarm List settings of the Mobile Server are displayed.
Additional filter criteria can be applied using the properties in the Filters view.
l The Alarm List is refreshed at the rate defined by the Alarms polling interval setting in the Application
Settings view. The default is five seconds.
l The list can be scrolled using the swipe or drag gestures.
l Tapping an alarm name will open the Variable Details view for that alarm. Which details are displayed
depends on the configuration of the Mobile Server in the Supervisor.
l Tapping an alarm icon will select the alarm. The menu commands can then be used on that alarm.
l Actions specific to an individual alarm are displayed by tapping the right arrow adjacent to the alarm
name.
l The ACK action acknowledges the alarm.
l The MASK action masks the alarm.
l The UNMASK action unmasks the alarm.

Menu actions
Menu actions are displayed by tapping the icon and are applied to all selected alarms.

l ACK - Acknowledge the selected alarms.


l MASK - Mask the selected alarms.
l UNMASK - Unmask the selected alarms
l ... - Select or un-select all alarms.

Using the Filter view to filter the displayed alarms

- 603 -
The Filter view is displayed by tapping the icon. It displays, and allows the user to customize the alarm
list filter. Show picture

If the property Allow filtering in the Mobile Server configuration is not ticked the TouchVue user can
view the filter but not change it.

- 604 -
Logs View
The Logs view displays a list of events from a selected Log List. The events can be further selected using an
optional filter. Show picture

Screen features

l The displayed events are selected by Log List and an optional filter.
l The number of displayed events are limited by a time period set by the Timeframe Properties setting
in the Application Settings view. The default is six hours.
l Oldest events are displayed at the bottom, newest at the top.
l The list can be scrolled using the swipe or drag gestures.

Menu actions
- Select the Log List when multiple Log Lists have been added to the Mobile Server node in the Application
Explorer.
- Change the time period. You can choose from a number of preset periods, which run back from the cur-
rent time, or custom period where the period is defined by entering a start and end time.
- Filter the type of events that are displayed. Note that the filter set here is ANDed with the filter in the
Supervisor's Log List.

- 605 -
Applications Settings View
The application Settings view provides access to the user configurable settings of the TouchVue app. The set-
tings are divided into two categories, General Show picture and Alarms Show picture. The settings are per-
sistent.

Settings

l SECURITY
l Maintenance mode - Displays additional information, for example network name on the con-
nection page, to assist with troubleshooting.
l TIME FILTER PROPERTIES
l Log lists - The default time period for the Logs view.
l Trends - The default time period for the Trends view.
l SETTINGS
l Prevent application from sleeping - Stops the operating system from stopping the background
service used for notification.
l Variables refresh interval - The period at which variable values are polled when the Watchlist
view is open.
l THEME
l Theme color - The TouchVue app theme color selected from red, blue, green, orange or purple.
l VERSION INFO - The version of the installed TouchVue.
l NOTIFICATIONS
l Mute alarm notifications - Mute alarm notifications.
l Start the alarm notification at boot time - Start the alarm notification when the TouchVue app is
started.
l ALARM PROPERTIES
l Polling interval for in-app alarm handling (sec) - The period at which alarm values are polled
from the server when the app is open and being used.
l Polling interval for alarm notifications (sec) - The period at which alarm values are polled from
the server when the app is open but in background.
l NOTIFICATION FILTERS
l Alarms - The default settings for the alarm filter

- 606 -
Accounts View
The Accounts view is used to manage the accounts used to connect the TouchVue app to the Supervisor's
Web and Mobile server. The TouchVue app can be configured for, and simultaneously connect to, one or
more server, and the user will need an account for each of them.Show picture

How to add an account


To add an account tap the large plus sign at the top of the Accounts view. The New Account view opens. This
view is also displayed if you start TouchVue and no account is configured. Show picture

1. Enter an Alias for the account. This is the name used to identify the account and is displayed in several
views and the menu drawer.
2. Enter the URL of the computer hosting the web server. This can either be the domain name or IP
address.
3. Enter the Username. The username must exist in the Supervisor and use a profile configured for web
access.
4. Enter the Password.
5. To automatically connect to the mobile server using the account credentials, each time the TouchVue
app is started, select Keep logged in.
6. Tap Connect to save the account and connect to the Web and Mobile server.

- 607 -
Ignore certificate errors is useful if the web server does not have a valid certificate. It should only
be used on isolated development machines, and never be used in production.

Managing accounts
Accounts are managed, from the Accounts view, by tapping the right arrow icon adjacent to the account
name. Show picture

The following commands are available:

l Logout - Log out the account from the Web and Mobile server.
l Remove - Remove the account completely from the TouchVue app configuration.
l Status - Display the Status view. The Status view shows the status of each service that the TouchVue
app uses with this account.Show picture

- 608 -
WebVue

- 609 -
WebVue Overview
WebVue is a web portal designed to display the Supervisor's mimics in a Web browser.
See Web and Mobile Client Applications Overview for an overview of Web & Mobile client applications, includ-
ing their common requirements and deployment steps.
The configuration steps specific to WebVue access to the Supervisor are as follows:

l Make sure mimics and SCADA Basic scripts are designed in a suitable way for WebVue, not employing
features that are either not supported, or not-applicable,
l Make sure you have used the scope of variables appropriately to manage concurrent access to some
features or mimics, in particular for user inputs in mimics.

This book includes detailed information about how to design your project so that users can successfully take
advantage of the WebVue client:

l For information about developing a project for WebVue, see the book Configuring a project for
WebVue.
l For information about WebVue user configuration, see the topic Properties that affect access to Web
Apps and Web Services in the Application Explorer book.
l For information about using WebVue, see the book Using WebVue.

Run time environment


WebVue provides a run time environment only. The configuration that determines its operation is the Super-
visor's project, including the mimic files and user configuration, and is supplied by the Supervisor Web back
end along with the real-time data. WebVue clients communicate with the Supervisor Web back end via the
web server.
The Supervisor must be used to configure the mimics. The Supervisor's web back end and the web
server must be running for WebVue to connect.
Each WebVue client that is connected and in use imposes a workload on the Supervisor Web back
end and on the web server. These computers require sufficient resources to support WebVue clients.

Licensing WebVue
The components necessary to run WebVue are included either on the Supervisor's distribution media or on
the Windows distribution media.
The maximum number of simultaneous WebVue client sessions a Supervisor's Web back end manages is
license-protected. There is no licensing requirement for the web server or for any computer that is running
the WebVue client in a web browser.

- 610 -
Configuring a project for WebVue

- 611 -
Overview of the Functionality Checklist
Most of the functionality provided by the Supervisor's mimics is available to a WebVue client. Due to the
Web Browser environment in which WebVue is rendered, there are some restrictions and also behavioral dif-
ferences compared to the Supervisor's desktop application.
The topics in this book describe the extent to which the graphic rendering and user interaction features of
the Supervisor are available on the WebVue Client. They list the properties configured in the Supervisor for
a window, a drawing element, an animation or a control. For each of these, they specify whether a property
is:

l Supported, in which case it is fully effective,


l Partially supported, in which case it is effective with restrictions or behavioral differences,
l Not supported, in which case it is ineffective when used in a WebVue context,
l Not applicable to WebVue rendering and user interactions, for example if it affects design-time beha-
vior or is designed for a feature which is not applicable to WebVue.

This part of the Help book does not explain the functions or how to configure them in the Supervisor. That is
covered in the main Help books, to which cross-references are provided in the Help topics here.
There may also be rendering differences between different web browsers. For example, the Alarm
Viewer has small differences in appearance in Firefox and in Edge.

Main behavioral differences

l The pan & zoom behaviors are different as WebVue takes advantage of the web browser built-in pan &
zoom capabilities instead of relying on the Supervisor's web back end for these. The advantage is a
better user experience, in particular on touch devices, and limited risks linked to web browser
updates.
l Limited use of function keys.
l Fonts are generally supported if they are installed on the browser of the WebVue Client's device. The
fonts Arial, Courier, Times New Roman, and System are widely supported.
l When using the automatic logoff of users, no warning box is displayed to the inactive WebVue user
prior to logoff.
l Password modification is only available from the login page.

Main restrictions

l The following animations and controls are not supported or not applicable.
l Color - Legend animation
l Send - Recipe animation
l Send - Region animation
l Send - Languages animation
l Send - Timetable animation
l Run - Macro animation
l Security - User confirmation animation
l Security - Double signature animation
l Security - Password animation
l Grid control
l Chart control
l Map control
l Pie/doughnut/pyramid control
l Text-box form control
l Third party ActiveX controls
l Variable linking is not supported.
l The use of substitution strings for opening mimics is not supported (#I, #P, #U, #M11 to #M20).
l The form controls are supported except the text box. Their appearance is slightly different, in par-
ticular, the intermediate state of a check-box list or option-button list control is not available. You can-
not use variables linking with Form Controls for mimics displayed in WebVue, use SCADA Basic
scripting instead.
l The Trend, Alarm and Log Viewers have some limitations.

- 612 -
l AVI (multimedia) files not supported.
l If a mimic is repeated in the Supervisor's Workspace, only the first instance appears in the WebVue
Client.
l No feature associated with multi-screen and region management is supported.
l Mimic Tab Control is not supported.
l Control zone animation accelerator keys not supported.
l OLE objects in mimics not supported.
l VBA and Enable scripts not supported.
l Partial support for SCADA Basic instructions and modes. The SCADA Basic help contains detailed
information for each instruction and mode.
l 3D mimics not supported.
l VCR mode not supported.
l Visibility of graphic objects according to layers is supported, but no layer selection toolbar is available
for the user.
l Because zooming rely on the web browser built-in capabilities and is processed on client side, zoom-
ing via SCADA Basic and decluttering features are not supported.

Features no longer supported by version 12


The WebVue in version 12 is a new implementation using different technology to previous versions. The fol-
lowing features, available in previous versions, are no longer supported for security reason.

l The Security Mode for Login and Password property, configured in the Web Services settings dialog,
which allowed a user to log in to WebVue without entering a user name and password.
l The Automatic Login property, in a User's profile, which allowed WebVue to start and connect to the
Supervisor without having to enter a user name and password.

SCADA Basic scripting


You can execute SCADA Basic programs in the context of a WebVue session. They are executed on the com-
puter that is the web back end station. The level of support of the SCADA Basic instructions and modes, and
noticeable difference in behavior when scripts are executed in a WebVue client context (compared to beha-
vior on the desktop application), are noted in the book on SCADA Basic.

General points for designing a project when deploying WebVue clients

l If screen sizes and resolutions vary across the network and any remote stations, design or adapt the
parts of the application that the WebVue Clients will display to fit the most limited visible area in any
of the browser windows. In particular, mimic scaling and rendering are directly impacted by the Web
back end property called Fit rendering to the web browser viewport. See the Application Explorer help
for more information.
l If a browser is only (or often) used to run the WebVue Client, its default address can be set to the
WebVue Server's URL.
l Check the elements of the mimics to be accessed against the information in this book so as to avoid
unavailable features and incompatible behaviors.
l Avoid a mimic structure that allows all the mimics to be closed at one time, since then the user will
have to disconnect and reconnect to re-display the initial mimic.
l Keep mimics as simple as possible and avoid the use of large images. The more complex a mimic is,
and the larger its images, the longer its mimics will take to load.
l Mimics can be larger than the window. Scroll bars are then automatically added. This feature is com-
patible with the newly supported auto-sizing. For this feature to work, the option Allow mimic to be lar-
ger than window must be enabled for each mimic.
l Due to the web browser environment, the <Esc> key is not effective to close context mimics, so your
pop-up mimics shall include a button or the title bar for the user to close them.
l Security animations, in particular Login, Logout and Change password, as well as the corresponding
SCADA Basic instructions (System mode Login, Logout and ChangePassword) are designed for the
Supervisor desktop application and must not be made available to WebVue users in a mimic. Exe-
cution by a WebVue user has no effect.

- 613 -
l User access via web & mobile apps are subject to authorization defined at the profile level. See the
topic Properties That Affect Access to Web Services in the Application Explorer book for more inform-
ation.

Restrictions related to web browsers


Each web browser can come with its own restrictions, in particular when security is at stake. Below is a list
of known behaviors, specific to one or the other web browser available on the market at the time of writing.
These restrictions may be cleared and others appear depending on web browser updates and their pub-
lisher's strategy.

l Safari on iOS - When the Safari web browser is closed without logging out from WebVue, WebVue is
re-open by default the next time the user opens Safari, but the user will not be able to successfully
login, and will be stuck on the WebVue loading page. This is due to the Safari snapshot of the last vis-
ited page where Safari display the web page without actually requesting the web server. The solution
is to go to the address bar and click the Go button, or ask Safari to reload the page.
l Google Chrome - The password manager of Chrome does not store credentials if the connection to the
web server is insecure. As a consequence, if you do not have a proper certificate on the web server,
users will not be able to use the Chrome password manager to store their credentials.
l Microsoft Edge - Edge does not store the session cookie when using the local computer as a web
server with a binding on the hostname at the IIS level. As a consequence, you cannot successfully log
in, and can see a warning message indicating that the version of the client is not compatible with the
server. The solution is to add .local to the computer host name when setting up the web site binding
with the Web Deployment Console (for example, https://mycomputername.local instead of https://-
mycomputername).

When the web server is updated and re-deployed, it is of prime importance to make sure WebVue
users empty the cache of their web browser. This ensure that they are using up-to-date resources
and javascript modules.

- 614 -
Window Properties in WebVue
Display tab
Property WebVue support
Positioning on Workspace Yes
Background color Yes
Link mimic with window size Yes
Allow mimic to be larger than Yes
window
Scale mimic to fit window Yes
Title Yes
System menu Partial - In the Supervisor's desktop rendering, this property allows to disable
the icon and buttons on the mimic window title bar. In WebVue, this property
has no effect at all. If the window title bar is enabled, it looks always the
same.
Iconizable Partial - If a mimic is minimized in the Supervisor's desktop rendering, it is
displayed as a small square in the upper right corner. In WebVue, it is min-
imized to only the small title bar and shown in the lower left corner.
Maximize Yes
Sizeable Partial - Sizeable is only available if Border is also enabled. If mimic is larger
than window, it is possible to shrink and grow the window.
Moveable Yes
Foreground Partial - The foreground property is effective except in one special case.
If a mimic which has the foreground flag opens another mimic that does not
have it, the new opened mimic is in the Background in the Supervisor's
desktop application, in WebVue the new opened mimic will be in foreground.
Small caption No
Border Yes
Client Border Yes
Static Border Yes
Cache N/A
Modal No
Layers Yes
Title bar Yes
Grid N/A - Affect the design mode behavior.

Access rights tab


Property WebVue support
Level Yes
Zoom N/A - WebVue zooming capabilities are only available based on web browser zooming.
Layers Partial - No Layer selector is available in WebVue
Unauthorized Signal Partial - Only the warning box is available, the beep is not played in WebVue

Included Mimic tab


The properties in this tab have no effect on the included window when used in WebVue, as the included win-
dow position is not limited to the confines of the parent window.

Links tab
Property WebVue support
M1-M10 Yes

Tab control tab


Not supported in WebVue

Template tab

- 615 -
Property WebVue support
Template properties Yes
Command priority Yes

Advanced tab
Property WebVue support
Beep No - Beeping in WebVue is only possible via SCADA Basic
Screen resolution N/A

Navigator tab
Not supported in WebVue.

- 616 -
Drawing Element Properties in WebVue
General
This summary is not exhaustive as there is some interaction between properties. Therefore, it is important
to always check precisely how a mimic behaves in WebVue.
Property WebVue support
Visibility Bound N/A - Affects the visibility of a drawing element when zooming. WebVue zoom-
ing capabilities are only based on web browser zooming and therefore these
properties have no effect
Locked N/A - Affect the design mode behavior
Colors Partial - Radial gradient is not supported. Step value for gradients not sup-
ported. Blinking colors rendering may be different from the desktop applic-
ation on non-solid background.
Fonts Yes - The fonts supported by Web Browsers may be limited. The browser uses
a substitute font if the one specified is not available
Position Yes
Size Yes

Rectangle - Base
Property WebVue support
Background color See General - Colors
Background Style Yes
Line Yes

Rectangle - Appearance
Property WebVue support
Regular Yes
Shadow Yes
Button Partial - System style is not available
Colored Button Yes
Relief Yes
Inverse Relief Yes

RoundedRectange - Base
Property WebVue support
Background color See General - Colors
Background Style Yes
Line Yes

RoundedRectangle - Appearance
Property WebVue support
Regular Yes
Shadow Yes
Button Partial - System style is not available
Colored Button Yes
Relief Yes
Inversed Relief Yes

Ellipse - Base
Property WebVue support
Background color See General - Colors
Background Style Yes
Line Yes

- 617 -
Ellipse - Appearance
Property WebVue support
Regular Yes
Shadow Yes
Button Yes
Colored Button Yes
Relief Yes
Inversed Relief Yes

½ Ellipse, ¼ Ellipse, Arc, & Pie - Base


Property WebVue support
Background color See General - Colors
Background Style Yes
Line Yes

½ Ellipse, ¼ Ellipse, Arc, & Pie - Appearance


Property WebVue support
Regular Yes
Background Style Yes
Line Yes

Polygon - Base
Property WebVue support
Background color See General - Colors
Background Style Yes
Line Yes

Polygon - Appearance
Property WebVue support
Regular Yes
Shadow Yes
Button Yes
Colored Button Yes
Relief Yes
Inversed Relief Yes

Bezier - Base
Property WebVue support
Background color See General - Colors
Background Style Partial - Only solid style is available
Line Partial - Only solid style is available

Open bezier - Base


Property WebVue support
Background color N/A
Background style N/A
Line Yes

Line & Polyline


Drawing property WebVue support
Line Partial - Blinking color not available

Text - Base

- 618 -
Property WebVue support
Font Yes - The selected font will not be transferred to the client therefore, it must
be installed already on the client system. If the font is not available at the cli-
ent, the browser's default font is used.
Text color Yes
Background color See General - Colors
Rotation Yes

Text - Aspect
Property WebVue support
Do not autosize Yes
Alignment Yes
Multiline Yes
Margin Yes
Appearance Yes

Image - Base
Property WebVue support
Image Types Yes - All image types supported by the Supervisor are supported by WebVue.
But Bmp and MetaFiles are converted to Png for use in WebVue. This means
that vector graphics are rendered in the display size and cannot be scaled
without quality loss within WebVue.
Pattern N/A
Line N/A
Mouse hover / Mouse down N/A
Appearance N/A
Transparent Partial - Only supported on Gif, Bmp, Jpg and Metafile formats. For Png, the
transparency must defined in the original file and cannot be based on a color
substitution as for the other formats
PNG Opacity Yes
PNG Background blend N/A
Rotation N/A

Images - Aspect
Property WebVue support
Regular Yes
Shadow Yes
Button Yes
Colored Button Yes
Relief Yes
Inversed Relief Yes

- 619 -
Animation Properties in WebVue
This topic outlines the extent to which the WebVue client supports the display of animations as configured in
the Supervisor.
For details of how to configure animations in the Supervisor, please refer to the Animation book in the main
Help.
The following animations are not supported or not relevant in WebVue contexts:

l Color - Legend animation - Not supported


l Send - Recipe animation - Not supported
l Send - Region animation - Not applicable
l Send - Languages animation - Not applicable, the Display language is taken from the web browser lan-
guage, and the Project language from the Web back end and user profile configuration
l Send - Timetable animation - Not applicable - Use the WebScheduler instead
l Run - Macro animation - Not supported
l Security - User confirmation animation - Not supported
l Security - Double signature animation - Not supported
l Security - Password animation - Not applicable - Users can change their password from the WebVue
login page

In addition, the following animations are partially supported or have a specific behavior in WebVue contexts.

Display text
Animation WebVue support
Displaying time information If in any display text animation a timestamp is used (e.g. displaying the
@TIME variable) WebVue will show the time in the time zone of the server,
not the time zone of the client.

Display Images
Animation WebVue support
Images on Bit Partial - The Stretch images property is not supported, images are not be res-
Images on Register value ized.
Images on Text value

Send text
Animation WebVue support
Send text with default Value The setting Show default value on Mouseover is not supported. This option
allows the user to see the configured default value before sending it. Since it
is not available, the user cannot see which value the variable will have after
triggering the animation.

Send register
Animation WebVue support
Send register with default The setting Show default value on Mouseover is not supported. This option
Value allows the user to see the configured default value before sending it. Since it
is not available, the user cannot see which value the variable will have after
triggering the animation.
Send register with Step mode In the Supervisor, the field shows the current register value and on
MouseOver the next step (after triggering the animation) will be displayed. As
MouseOver is not supported in WebVue, it will directly show the value that
would be sent to the variable if the animation is triggered.

Link note
Animation WebVue support
Link note Partial - Only supports the read-only mode, notes cannot be modified via
WebVue. Rtf formatting is not supported.

- 620 -
If executed in a WebVue session context this animation is processed by the
computer that hosts the web back end and the file must exist on that com-
puter.

- 621 -
Alarm Viewer in WebVue
Display tab
Property WebVue support
Display Toolbar Partial - It is not possible to hide delimiters
Toolbar position Yes
Line font See Drawing - General - Font
Background Yes
Scrollbar width Yes
Scrollbar height Yes
Scroll bars Yes
Display Header Yes
Alternate color of text Yes
Column titles Yes
Column display format Yes

Aspect tab
Property WebVue support
Position Yes
Size Yes
Border Partial - Border style is not taken into account.
Appearance No - Appearance is not taken into account.
Locked N/A - Affect the design mode behavior

Execution tab
Property WebVue support
Number of Lines Yes
Printing No
Start Mode (Online or List) Yes
Display new items bottom or Yes
top
Move alarm to bottom when Yes
status changes
Move alarm to top when Yes
status changes
Scroll display to the oldest Yes
Advanced color mode Yes
Line selection mode Yes
Acknowledgment Yes
Mask/Unmask Yes
Filtering Partial - See Using GPCONF.DAT to Create Alarm and Log Viewer Filters
Multi-Selection Yes
Size of columns Yes
Toolbar position Partial - Only available at design time
Toolbar modification No
Context Yes
Enable sorting Yes
Sort modification Yes

Filters tab
Property WebVue support
Domain Yes - See Using GPCONF.DAT to Create Alarm and Log Viewer Filters
Nature Yes - See Using GPCONF.DAT to Create Alarm and Log Viewer Filters
Alarm status Yes

- 622 -
Alarm Level Yes

- 623 -
The Log Viewer in WebVue
Display tab
Property WebVue support
Display Toolbar Yes
Toolbar position Yes
Line font See Drawing - General - Font
Background Yes
Scrollbar width Yes
Scrollbar height Yes
Scroll bars Yes
Display Header Yes
Alternate color of text Yes
Column titles Yes
Column display format Yes
Without blinking Yes

Aspect tab
Property WebVue support
Position Yes
Size Yes
Border Partial - Border style is not taken into account
Appearance No - Appearance is not taken into account
Locked N/A - Affect the design mode behavior

Execution tab
Property WebVue support
Number of Lines Yes
Printing No
Comment modification Yes
Filtering Yes
List choice Yes
Size of columns Yes
Toolbar position Partial - Is only available at design time
Toolbar modification No
Context Yes
Enable Sorting Yes
Sort modification Yes

Filters tab
Property WebVue support
List name Yes
Domain / Nature Yes - See Using GPCONF.DAT to Create Alarm and Log Viewer Filters
Alarm changes Yes
Bit changes Yes
User actions Yes

Advanced tab
Property WebVue support
Display new events at bottom / Top Yes
Advanced color mode Yes
Automatic refresh Yes
Buffer length Yes

- 624 -
Trend Viewer in WebVue
Display tab
Property WebVue support
Display Toolbar Yes
Toolbar Position Partial - Is only available at design time
Flat Yes
Scrollbar Yes
Scrollbar Width Yes
Background Yes
Refresh period N/A
Buffer size Yes
Time capacity Yes
Start mode Yes
Period Yes
Start date No
Display time scale Yes
Display grid lines Yes
Display time information Yes
Display small curve scales Yes

Aspect tab
Property WebVue support
Position Yes
Size Yes
Border Partial - Border style is not taken into account
Appearance No - Appearance is not taken into account
Locked N/A - Affect the design mode behavior

Execution tab
Property WebVue support
Auto open Trace toolbox Yes
Enable trace toolbox Partial - The trace toolbox has limited features, in particular, variable selec-
tion is not supported
Historic data request Yes
Toolbar position Partial - Is only available at design time
Toolbar modification No
Right click popup N/A
Save run-time properties N/A
Lock legend position Yes
Remove a curve from the N/A
legend tab
Include variables when restor-Non
ing configuration

Curves tab
Property WebVue support
General Yes
Draw Yes
Scales Partial - Only decimal scale is available, Semi log is not supported

Advanced curves tab


Property WebVue support

- 625 -
Invalid Yes
Unit Yes
Thresholds N/A
Minimum N/A
Maximum N/A
Time shift N/A

Legend tab
Property WebVue support
Columns Partial - All Columns are available except Paste Variable, Configure
Thresholds, Low value limit, High value limit, Time left and Time right
Column Display Name Yes
Column Size N/A
User Data Partial - Substitution characters are not supported
Lock size Yes
Editable color Yes
Read only Color Yes

Grid tab
Property WebVue support
Aspect Yes
Time scale Yes

Print tab
Printing is not available in WebVue.

Format tab
Property WebVue support
Time displayed in Yes
Value Yes
Scientific notation Yes
Time scale titles Yes

Touch Screen tab


Property WebVue support
Display large toolbar Yes
Display large historical Yes
request dialog box
Display large period and time Yes
scale management dialog box
Display large scrollbar Yes

Advanced tab
No properties are supported.

- 626 -
Form Controls and other controls in WebVue
This topic outlines the extent to which the WebVue Client supports the controls. The following are not sup-
ported:

l Grid control
l Chart control
l Map control
l Pie/doughnut/pyramid control
l Text-box form control
l Third party ActiveX controls

Whilst the functionality provided by the graphic controls is very similar in WebVue there may be differences
in appearance due to the web browser environment.
This summary is not exhaustive as there is some interaction between properties. Therefore, it is
important to always check precisely how a mimic behaves in WebVue.

Combo-box - Aspect
Property WebVue support
Position Yes
Size Yes
Border N/A
Appearance N/A
Control font and colors See Drawing - General-Font

Combo-box - Content
Property WebVue support
Source Yes

Combo-box - Operation
Property WebVue support
Initialization Yes
Selection value Partial - Linked variables are not available
Selection notification Yes

List-box - Aspect
Property WebVue support
Position Yes
Size Yes
Border N/A
Appearance N/A
Control font and colors See Drawing - General - Font

List-box - Content
Property WebVue support
Source Yes

List-box - Operation
Property WebVue support
Initialization Yes
Selection value Partial - Linked variables are not available
Selection notification Yes

Check-box list - Aspect


Property WebVue support

- 627 -
Position Yes
Size Yes
Border N/A
Appearance N/A
Control font and colors See Drawing - General - Font

Check-box list - Content


Property WebVue support
Source Yes

Check-box list - Operation


Property WebVue support
List state change Partial - Linked variables are not available
Notification Yes

Option-button list - Aspect


Property WebVue support
Position Yes
Size Yes
Border N/A
Appearance N/A
Control font and colors See Drawing - General - Font

Option-button list - Content


Property WebVue support
Source Yes

Option-button list - Operation


Property WebVue support
Initialization Yes
List state change Partial - Linked variables are not available
Notification Yes

Tree-view - Aspect
Property WebVue support
Position Yes
Size Yes
Border N/A
Appearance N/A
Control font and colors See Drawing - General - Font

Tree-view - Content
Property WebVue support
Source Yes

Tree-view - Operation
Property WebVue support
Initialization Yes
Selection value Partial - Linked variables are not available
Notification Yes

- 628 -
Using GPCONF.DAT to Create Alarm and Log Viewer Filters
To avoid overwriting a manually created file, the Supervisor only creates GPCONF.DAT on startup if
it does not already exist. If you configure additional Domains and/or Natures using the Application
Explorer, they will only appear in GPCONF.DAT if the Supervisor is shut down, the existing
GPCONF.DAT is deleted, and the Supervisor is restarted.
When used in WebVue, the filters in the Log and Alarm Viewers operate differently to when they are used in
Supervisor.

l When used in the Supervisor, the filters only allow you to filter by a single Domain and/or Nature.
Show picture

l When used in WebVue, the filters can be configured in the file GPCONF.DAT. This allows you to create
simple expression-based filters based on Domain, Nature and other extended attributes. You click on
the same button in the Log Viewer but it opens a different dialog, Events and Filters with an Events
Selector tab Show picture and Filters Selector tab. Show picture

- 629 -
GPCONF.DAT syntax
GPCONF.DAT is a text file that is stored in the project's C folder. It can be edited with a text editor such as
Windows Notepad. It must not be edited while the Supervisor is running.
Each filter in GPCONF.DAT uses the following syntax.
[FILTER\Name]
DESCRIPTION=Description
LABEL_0=Description for language 0
LABEL_1=Description for language 1
MASK_0=Mask for language 0
MASK_1=Mask for language 1
Sql Cmde=SQL expression

Property Description
Name The name of the filter that will appear in the Alarm and Log Viewer if
DESCRIPTION and LABEL are not given.
Description The name of the filter that will appear in the Alarm and Log Viewer if LABEL is
not given. Optional.
Description for language 0 The name of the filter that will appear in the Alarm and Log Viewer for lan-
guage 0. Optional.
Description for language 1 The name of the filter that will appear in the Alarm and Log Viewer for lan-
guage 1. Optional.
Mask for language 0 Determines whether the filter will be available when WebVue is used in lan-
guage 0. Optional.
ALARM|LOG = Available in both Alarm and Log Viewers.
ALARM = Available in Alarm Viewer only.
LOG = Available in Log Viewer only.
Null = Not available in either viewer.
Mask for language 1 Determines whether the filter will be available when WebVue is used in lan-
guage 1. Optional.
SQL expression See below.

Creating the SQL expression


The SQL expression takes the following format.
[Attributen] Operator Value
Property Description
n The number of a variable's extended attribute. Range 01 to 16. Attribute01 is

- 630 -
Domain, Attribute02 is Nature.
Operator Either = (equality) or != (inequality).
Value The value against which the attribute is to be tested, contained within quo-
tation marks.
Expressions may be joined using the OR and AND operators. Round brackets may be used to determine the
order of execution.
The following are all examples of valid SQL expressions.
Sql Cmde=[Attribute02] = 'HVAC'
Sql Cmde=[Attribute01] = 'ZONE1' and [Attribute02] = 'FIRE'
Sql Cmde=[Attribute01] = 'ZONE1' or [Attribute01] = 'ZONE2' and [Attribute02] = 'FIRE'
Sql Cmde=[Attribute03] != 'Out of service'

Creating a default GPCONF.DAT


If GPCONF.DAT is deleted, a new file will be created the next time the Supervisor is started, containing one
entry for each of the configured Domains and Natures.

- 631 -
Using WebVue

- 632 -
Starting, Logging In To, and Logging Out Of, WebVue
Starting WebVue
To start WebVue enter the URL https://<Hostname>/webclient into the web browser address bar. The
<Hostname> is the identity of the computer on which the web server is hosted and can either be:

l The hostname of the web server. To use the hostname, the network must have NetBIOS or DNS name
resolution capability.
l The IP address of the web server. To use the IP address, you must have used IP address binding dur-
ing deployment. Connection using an IP address will always be seen as insecure by browsers.
l The Fully Qualified Domain Name of the web server. To use the FQDN, the network must have DNS
name resolution capability.

When the web server is updated and re-deployed, it is of prime importance to make sure WebVue
users empty the cache of their web browser. This ensure that they are using up-to-date resources
and javascript modules.
If the web browser is able to successfully resolve the URL and connect to the web server the Login screen is
displayed. Show picture

Logging in to WebVue
To be able to log in to WebVue, a user must have been assigned WebVue access rights as described in the
help book User Accounts. You log in, in the normal manner, entering the Username and Password and select-
ing the OK button.

l Remember me - Next time you open WebVue you will be logged in automatically.
l Change password - Opens the Change Password screen. See below.

WebVue uses the same authentication procedure to that of the Supervisor desktop application. If the
Advanced Security Strategy is activated in the Supervisor's configuration, the login procedure mod-
ified (password strength, control of login attempts...) - See the Supervisor's main help for details.
After a successful login, there are a number of possible steps.

1. If this is the first ever login by a particular user on a particular browser and you are using a self-
signed certificate the browser will display a screen indicating that the connection is not secure. See
the section below about adding an exception for a self-signed certificate.
2. If this is the first ever login by a particular user on a particular browser you will be prompted to grant
access to the GraphicalData service by the WebVue app. GraphicalData is the service on the Super-
visor that provides data to WebVue. The grant is remembered and this screen will not appear again
unless the grant is revoked.
3. The WebVue app is loaded. If this is the first time that WebVue has been loaded in a particular
browser this may take several seconds depending on the speed of the network. The browser will

- 633 -
normally cache the app and subsequent loading is much faster. Show picture

4. A green message indicating successful login is displayed followed immediately by the first mimic as
configured in the Supervisor's project.

Logging out of WebVue


To log out from WebVue you use the Logout tool on the WebVue toolbar. You are automatically returned to
the Login screen.
You will be logged out from the visible session plus any other sessions opened in additional tabs of
the same web browser.

Automatic session closing


The WebVue session can be automatically closed under the following circumstances:

l User inactivity - If there has been no activity for a period exceeding that configured in the user's pro-
file Enable automatic logout property.
l Connection failure - If there is a connection failure between WebVue and the Supervisor' Web back
end.

A closed session is indicated by a message box giving the reason. The mimic displayed at the time of closure
remains visible but is blurred. To restart the session, you can use the toolbar to select logout that returns
you to the login screen, or have your web browser reload the web page.

Creating an exception for a self-signed certificate


If you are using a self-signed certificate, the first time that you start WebVue the browser will display a mes-
sage indication that the connection is not secure. Show picture

- 634 -
To load WebVue you must add an exception in the browser for the website and its certificate. The following
procedure is for Firefox, other web browsers should be similar but may differ in detail.

1. Click the Advanced button. Details of the exception are displayed. Show picture

2. Click Add Exception. The Add Security Exception dialog opens. Show picture

3. To make a once only exception click Confirm Security Exception. To make a permanent exception
select Permanently store this exception and then click Confirm Security Exception.

You should only make this change if it conforms to your company's IT security policy.

How to change password


A user can change his/her password directly from WebVue. The change is saved in the Supervisor's user dir-
ectory.

1. Open the Change Password screen from the main Login screen. You do not have to enter the User-
name and original password first.
2. Enter the Username.
3. Enter the Old password.
4. Enter the New password.
5. Confirm the New password.
6. Click OK to confirm the change. WebVue returns to the main Login screen from where you can login
with the Username and new password.

- 635 -
The WebVue Workspace
Toolbar

Click and drag to move, or double click to dock, the toolbar.


Reload WebVue. Can be used to restart WebVue after a disconnection or to return to the first mimic
with a single click.
Show the settings view. Note that the settings are saved in the browser itself and are therefore com-
mon to different tabs, and instances, of the same browser.

l Do not fit rendering to the web browser viewport - Disable the automatic scaling of mimics
that may be imposed by default by the Web back end.
l Automatically hide the toolbar when docked - The system menu is hidden if it is docked at the
top. Move the cursor to the top to show the menu again.
Show the window list. Clicking on a window name will move it to the foreground or restore it if it has
been minimized.
Show the WebVue event viewer.
Logout.
Zoom in.
Zoom out.
Zoom to 100%.
Full screen mode. The same as if using the F11 keystroke.
Collapse / expand the toolbar if it is not docked.

Opening WebVue in additional browser tabs, or another instance of the same browser
A successful login to WebVue starts a WebVue session. In general, further copies of WebVue using the same
URL in additional tabs in the same browser instance, or in further instances of the same browser on the
same computer, use the same session. One WebVue session uses one WebVue license.

l You do not need to login when starting WebVue in each additional tab.
l Logging out of WebVue, on any tab or browser instance on the same computer, logs you out of the
WebVue session and hence logs you out of WebVue in all tabs or browser instances.

This behavior depends on the way that a web browser manages session cookies and may be dif-
ferent in different web browsers or in future versions of a web browser.

Display language and Project language


The Display language is taken from the web browser language. If not suitable, users can always change the
order of priority at the web browser level to ensure they are displayed the WebVue generic text in the lan-
guage they prefer. This affects the following elements:

l Login page, Change password page


l Messages related to connection status and failure
l The workspace toolbar
l Setting dialog
l ...

The Project language is taken from the Web back end and user profile configuration and cannot be switched
from the WebVue client.

- 636 -
WebScheduler

- 637 -
WebScheduler Overview
The WebScheduler is a Web Browser based application for managing the schedules that you find in typical
supervisory applications such as BMS. It is designed to manage schedules from multiple sources and
present them in a uniform manner no matter what equipment or field device driver are used.
See Web and Mobile Client Applications Overview for an overview of Web & Mobile client applications, includ-
ing their common requirements and deployment steps.
The configuration steps specific for the WebScheduler access to the Supervisor are as follows:

l Schedules must be configured in the Supervisor before the WebScheduler can have access. Although
the WebScheduler can be used to edit schedules it cannot create them.
This apply both to the built-in Cron timetables, and to the BACnet Schedule and Calendar objects,
l Make sure timetable user rights, as defined in user profile, are set appropriately as they apply to the
access to Cron built-in timetables,
l Make sure the ScheduleAccess.dat file is defined appropriately, as it controls the user access to
BACnet Schedules and Calendars.

This book includes detailed information about how to design your project so that users can successfully take
advantage of the WebScheduler.
This version of the WebScheduler supports the Supervisor's built-in Scheduler (Cron elements) and the
schedules found in BACnet devices (Schedule and Calendar objects). However, the WebScheduler has been
designed so that other schedule types (for example those found in LonWorks) can be added in the future as
required.
The WebScheduler is a management tool allowing the user to visualize and edit schedules. It does
not run schedules itself.

l The WebScheduler can only configure the Scheduler's existing schedules - it cannot create new ones.
l The changes brought to built-in CRON schedules are only saved on the web back end station. The
WebScheduler must be used in conjunction with a SCADA Basic script used to distribute changes in
multi-station (networked) applications.
l The WebScheduler manages BACnet Schedule and Calendar objects via the Supervisor's BACnet com-
munication driver. The WebScheduler does not communicate directly over BACnet itself.

- 638 -
The WebScheduler and BACnet FAQ
The WebScheduler is designed as a generic tool presenting a consistent interface independent of the under-
lying scheduling technology. However, there are some different operational features depending on what
scheduling technology you are using. This topic describes those for BACnet.

BACnet B-OWS & B-AWS requirements


The WebScheduler's capability integrates all functionality required to fulfill the scheduling BIBBs. As a con-
sequence, the WebScheduler can be used in the Supervisor's projects that are required to match B-OWS or
B-AWS requirements. Projects that do not require Schedules do not need to use the WebScheduler.

BACnet Schedule Object


The BACnet Schedule Object is a structured list of date, time and value pairs that can be used by a BACnet
Device to schedule operations. The Weekly Schedule property of this object is used to control the Present
Value property based on the 7 days of the week. Each day of the week has a corresponding schedule con-
taining values and times that are used for that day. The Weekly Schedule property can be overridden by the
Exception Schedule property, which can be configured to define alternative behaviors for dates, date ranges
and date patterns configured either directly in the exception or in a referenced calendar object.

BACnet Calendar Object


The BACnet Calendar Object is a list of dates used to generate an exception in one or more Schedule
Objects.

WebScheduler Standard Week


The WebScheduler Standard Week page is used to manage the behavior of a schedule for each of the seven
days of a week. For BACNet, the Standard Week corresponds to the WeeklySchedule property of an instance
of the Schedule object.

WebScheduler Special Days


The Special Days page is used to manage BACnet Calendar Objects.

WebScheduler Calendar
The Calendar page is used to manage an entire schedule including the Standard Week, Exceptions, Special
Days and Effective Period (as applicable). It gives a view on what will be actually run by the device for a cer-
tain time period, taking into account the Standard Week, Exceptions, Special Days and Effective Period.

WebScheduler Effective Period


The WebScheduler Effective Period page is used to manage the Effective Period property of an instance of a
BACnet Schedule Object.

Understanding the behavior caused by the BACNet NULL status


The absence of any interval in the Scheduler Control indicates the schedule's default output value will be set
as defined by its schedule-default property. If this value is NULL, the output value of the schedule is
undefined. The same applies to exception periods - on days with exception behavior (i.e. other than the
standard week), the empty space means that the output of the exception is NULL or undefined. This means
that, unintentionally, standard week behavior can be reactivated. In general, it is preferential to never set
the default output value of a schedule to NULL or undefined, instead using the Effective Period to limit a
schedule's effect.
Example

l You have schedule with the schedule default = NULL. The Standard Week is configured with each day
as follows.
l 9:00 = 1
l 16:00 = NULL
l You have one exception period on 14/11/2014 configured as follows.
l 8:00 = 1 o 14:00 = NULL

- 639 -
l As the exception period remains undefined after 14:00 (NULL), what you see in the WebScheduler HMI
is the following.
l 8:00 = 1
l 14:00 = 1
l 16:00 = NULL
l If you remove the interval from 8:00-14:00 on 14/11 the exception is modified in the following man-
ner as one small interval remains in the WebScheduler HMI.
l 14:00 = 1
l 16:00 = NULL
l Consequently after reload you have the following behavior on 14/11:
l 9:00 = 1 (from the Standard Week)
l 14:00 = 1 (from the updated exception)
l 16:00 = NULL (from the updated exception)

User rights
The WebScheduler controls user access to BACnet Schedule and Calendar objects based on timetables priv-
ileges as defined in user's profile.

- 640 -
The WebScheduler and Supervisor's Built-in Scheduler FAQ
The WebScheduler is designed as a generic tool presenting a consistent interface independent of the under-
lying scheduling technology. However, there are some different operational features depending on what
scheduling technology you are using. This topic describes those for the Supervisor's built-in Scheduler.

Supervisor built-in Schedules


The WebScheduler can only manage Supervisor built-in Schedules that are configured to use the Timetable
agenda type. The other agenda types (Once, Monthly, Weekly, Daily and Hourly) cannot be managed by the
WebScheduler.
A Timetable has a Standard Week with one or more pairs of start and end times for each of the seven days,
plus Exception Periods of one or more days where the start and end time pairs are different (or even non-
existent). In the Supervisor, the start and end times can be used to run a program, run a recipe, toggle a bit
or set a bit to 0 or 1, but the WebScheduler can only be used for those schedules that run a recipe or set a bit
to 0 or 1.
From version 11.2 of the Supervisor onwards, consecutive periods with only one minute between
them behave as one contiguous period. For example, the periods Monday 12:00 to 23:59 and Tues-
day 00:00 to 11:59 will behave as one period Monday 12:00 to Tuesday 11:59 with no action taking
place at Monday 23:59 or Tuesday 00:00.
The WebScheduler cannot be used for Internal Schedules that toggle (invert) a bit, or run a pro-
gram.

WebScheduler Standard Week


The WebScheduler Standard Week page is used to manage the behavior of a schedule for each of the seven
days of a week. For the Supervisor's Native Scheduler, the WebScheduler's Standard Week corresponds to a
timetable's Standard Week.

WebScheduler Special Days


There is no equivalent for the Supervisor's built-in Scheduler.

WebScheduler Calendar
The WebScheduler Calendar page is used to manage an entire schedule including the Standard Week, Excep-
tions, Special Days and Effective Period (as applicable). It gives a view on what will be actually run by the
Supervisor for a certain time period, taking into account the Standard Week and any Exception Periods. Modi-
fying the schedule using the calendar will create or modify Exceptions Periods for the schedule and leave the
Standard Week unchanged.

WebScheduler Effective Period


There is no equivalent for the Supervisor's built-in Scheduler.

User rights
The WebScheduler controls user access to built-in scheduler based on privileges defined in the file Sched-
ulesAccess.dat.

- 641 -
WebScheduler configuration

- 642 -
Configuration Overview
Some of the configuration of the WebScheduler is made by editing text based configuration files. A user
must not be logged into the WebScheduler whilst changes are being made to these files. Some of the files
have an XML structure but they can all be edited with a simple text editor such as Notepad.
c:\inetpub\<SV Website>\WebScheduler\Web.config
Settings specific to the appearance of the WebScheduler web portal. For example first day of the week.
c:\inetpub\<SV Website>\ScheduleData\CONFIG\SchedulesAccess.dat
Allocation of WebScheduler rights to the Supervisor's Users.
c:\inetpub\<SV Website>\ScheduleData\BIN\ScheduleData.Drivers.CronDat.dll.config
Configuration required to use the Supervisor's built-in Scheduler.
Where <SV Website> is the name corresponding to the IIS web site you have deployed with the Web
Deployment Console.

The Web Scheduler functionality changed substantially with version 11.0 of the Supervisor.

l Prior to version 11.0, the Web Scheduler was able to manage and run its own Schedules.
l From version 11.0 onwardss the Web Scheduler is purely a tool for managing the Supervisor's
built-in schedules and those found in BACnet Schedule and Calendar objects.

Changes to the configuration of BACnet Schedules, Calendars and Enumerated Associated Labels in
version 11.2 of the Supervisor.

l Prior to version 11.2s configuration was by editing the file Schedules.dat.


l From version 11.2 onwards, Schedules.dat is no longer used. BACnet Schedules, Calendars
and Enumerated Associated Labels are configured using the Application Explorer.

How Web Scheduler user access is controlled.

l User access to BACnet Schedule and Calendar objects is based on privileges defined in the file
SchedulesAccess.dat.
l User access to native schedules is based on timetable privileges as defined in user's profile.
The file SchedulesAccess.dat is ignored.

- 643 -
Web Portal Configuration
The general appearance of the WebScheduler web portal is configured using the file Web.config. The file has
an xml structure and can be edited with a simple text editor.
The user configurable setting are all found in the <applicationSettings> section.
Property Range Default Description
CompanyName Reserved setting.
ProductName Reserved setting.
WelcomeTitle Configurable message dis-
played on the login screen.
WelcomeText Configurable message dis-
played on the login screen.
NeedHelpText Configurable message dis-
played on the login screen.
Login Text Configurable message dis-
played on the login screen.
FirstDayOfWeek Monday | Tuesday | Wed- Monday The day designated as the first
nesday | Thursday | Friday | of the week.
Saturday |Sunday
BusinessBeginsHour 0 – 24 0 Start time for highlighting busi-
ness time on the schedule con-
trol.
BusinessEndsHour 0 – 24 24 End time for highlighting busi-
ness time on the schedule con-
trol.
ColorizeScheduleDefault True False Defines whether or not the
False default value of the schedule
shall be represented by an
interval.
ScheduleBusinessBackColor Color name as a String Defines the color for the sched-
ule control background for busi-
ness hours
ScheduleNonBusinessBackColor Color name as a String Defines the color for the sched-
ule control background for
non-business hours
ScheduleWeekendBackColor Color name as a String Defines the color for the sched-
ule control background for
week-end days
FullyExpandTreeview True True If enabled, the treeview in the
False left pane will be by default
expanded when opening the
schedule list page.
EnableStorageAsLoginLogout True False Enables the login and logout
False user actions from the
WebScheduler to be logged in
the archives in a similar man-
ner to that of a user login and
logout on the Supervisor. The
comment field is used to
record the client name.

- 644 -
Built-in Scheduler Driver Configuration
The configuration file for the WebScheduler's native Scheduler driver is named Sched-
uleData.Drivers.CronDat.dll.config. The file has an xml structure and can be edited with a simple text editor.
The following settings are user configurable.
Property Default Description
Level Separator _ (underscore) The character or character chain used to define the hierarchy levels of
the schedules.

Optional settings
The following are optional and only used if they are not already defined in the Supervisor's project con-
figuration. They define the associated labels for the Native Scheduler's states and appear, for example, in
the Mode List of the Add Interval dialog.
Property
TwoStateModeName_0
TwoStateModeName_1
MultiStateModeName_0
MultiStateModeName_1
MultiStateModeName_2
MultiStateModeName_3

- 645 -
Schedule Access Rights Configuration
The SchedulesAccess.dat file is used to configure the access permission of each WebScheduler user to each
of the configured schedules. The file is of Csv (comma separated value) format with three columns.
Column Use Description
1 User Name User name. The wildcards * and ? can be used to match several use names.
2 Schedule Name Schedule name. The wildcards * and ? can be used to match several schedule
names.
3 Access Level None = 0
CalendarRead = 1
CalendarWrite = 16
StandardWeekRead = 256
StandardWeekWrite = 2048
Full = 65535

Notes

l WebScheduler users must first be configured in the normal manner using the Supervisor's Application
Explorer.
l File format
l There can be multiple lines for one specific user defining the user’s access rights to various
schedules.
l There can be multiple lines for one specific schedule defining the schedule’s access rights for dif-
ferent users.
l The Schedule Name must be in parenthesis, the User Name must not.
l The default configuration of the WebScheduler is:
*,"*",65535
which provides full access for all users to all schedules.
l Permissions
l The permissions StandardWeekRead and StandardWeekWrite control access not only to the
Standard Week page but also to the Effective Period and Special Days Behavior pages.
l As the Standard Week, Effective Period and Special Days Behavior pages are only accessible
after first selecting a Calendar page, the user must have at least the permission level 1 (Cal-
endarRead) to have access to these pages. Permissions 256 (StandardWeekRead) and 2048
(StandardWeekWrite) cannot be used by themselves. Instead you should use 257 (Cal-
endarRead & StandardWeekRead) and 2049 (CalendarWrite & StandardWeekWrite).
l Access to the Special Days page is controlled by the CalendarRead and CalendarWrite per-
missions

The configuration of ScheduleAccess.dat is only taken into account on IIS startup. Therefore, after
editing this file you must restart IIS (Open the Windows Command Prompt with Administrator rights
and type IISreset).

For a user to have access to any of the schedules they must at least have at least permission level 1
(CalendarRead), permitting access to the Calendar page, which is the entry point to the schedules
configuration.

The WebScheduler controls user access to BACnet Schedule and Calendar objects based on priv-
ileges defined in the file SchedulesAccess.dat.
The WebScheduler controls user access to built-in scheduler based on timetables privileges as
defined in user's profile. The file SchedulesAccess.dat is ignored.

Example
There are three configured schedules, TT_01, TT_02 andTT_03, and two users WS_OPERATOR and WS_
MANAGER.
ScheduleAccess.dat is configured as follows.

- 646 -
WS_OPERATOR,TT_01,257
WS_OPERATOR,TT_02,257
WS_OPERATOR,TT_03,65535
WS_MANAGER,*,65535
The following behavior can be observed.
The user, WS_OPERATOR, can read only the TT_01 and TT_02 calendars and standard week.
The user, WS_OPERATOR, can read and write the TT_03 calendar and standard week.
The user, WS_MANAGER, can read and write everything.

- 647 -
WebScheduler runtime

- 648 -
Starting the WebScheduler
The WebScheduler can be started either from the Start Menu shortcut created by the Supervisor's install-
ation, or by typing in the URL into a Web Browser.
The following syntaxes are used for the URL.

l https://<Host computer name>/WebScheduler - Where <Host computer name> is the name of the PC
hosting IIS.
l https://<Host computer IP>/WebScheduler - Where <Host computer IP> is the IP address of the PC
hosting IIS.
l https://LocalHost/WebScheduler - When accessing the WebScheduler on the same PC on which IIS is
hosted.

- 649 -
Login Page
The WebScheduler is accessed by entering the WebScheduler's URL into a Web Browser. Upon successfully
connection to the web server, the Login page is displayed. Show picture

To log in enter the Username and Password of a Supervisor User with WebScheduler access rights. Con-
nection to the Supervisor is established on clicking Login and, assuming good credentials have been entered,
the WebScheduler default page is displayed.

Selecting the language


You can select the language in which WebScheduler is displayed as part of the login process. If you leave the
language setting as default, the WebScheduler will use the language of the Web Browser.

Using Remember me on this machine


If you tick Remember me on this machine, the next time that you start the WebScheduler on the same PC,
you will go directly to the Overview page without having to login first (Auto login). This option requires the
use of cookies and so they must be permitted in the Web Browser configuration to use it.
You can clear the auto login from a button on the Settings page.

- 650 -
Overview Page
The Overview page is the first page that is displayed after a successful login. This page can be opened at any
time by clicking the WebScheduler logo that appears on all the WebScheduler pages. The Default page is
divided into two panes.

l The left pane contains a configuration tree with two main branches, one for the Schedules (BACnet and
built-in CRON), and the other for Special Days. The configuration tree can be used to navigate directly
to a Schedule or Special Day by clicking on the node.
l The right pane contains a table with all items sorted by their name.

In addition, the lower border displays the name of the current user and the version of the WebScheduler.
Show picture

What is displayed in the table?


The table includes useful information about each of the Schedules and Special Days.

l Name - The identity of the Schedule or Special Days within the WebScheduler as configured in the
Supervisor.
l Description - A longer description of the Schedule or Special Days as configured in the Supervisor.
Optional.
l Last access - The time and the user when the schedule or special days were last accessed.
l Last changed - The time and the user when the schedule or special days were last changed.
l Standard week empty - Displays a warning if the schedule standard week is empty.
l Exception period active - Displays a warning if the schedule configuration means that an exception
period is currently active.

Sorting and filtering the table


The information in the table can be sorted by Name, Description etc. using the sort tool at the right of the
column.
The rows that are displayed can also be filtered by entering a filter string in the text box immediately below
the header.

The table context menu

- 651 -
The table context menu is displayed by clicking the down arrow adjacent to the Select All tick box. Show pic-
ture

l Select all - Selects all items in the table.


l Select none - De-selects all items in the table.
l Filter empty standard weeks - Filter the items in the table by showing only for which the standard
week is empty.
l Filter exception period active - Filter the items in the table by displaying only those with an active
exception period.
l Clear filters - Clear filters - Clear all filters that have been applied so that all items are displayed in
the table.
l Display selected - Display the selected items. If you select more than one, they are stacked one above
each other in the Calendar page.

Other user actions


Clicking on the name of a Schedule or Special Days will open the Calendar page for that item.

- 652 -
Calendar Page
The Calendar page is displayed when you select a schedule in the Overview page. Upon opening, it displays
the current week of the schedule. Show picture

The Calendar page displays the actual time intervals of the selected schedule taking into account the con-
figuration of the Standard Week, Exception Periods and Special Days (BACnet only). Users with con-
figuration rights can edit the schedule directly from the Calendar page. See the topic - Editing a schedule.

During the periods not covered by an interval, the Schedule’s default value is set.

Calendar page main features

A. The identity of the schedule.


B. The default output of the schedule - that is the output when there is no active interval.
C. Navigation toolbar. See description below.
D. Edit toolbar. Edit tools for the Schedule Control. See the topic - Editing a schedule.
E. Schedule Control. Provides the main display and edit features for the schedule. See the topics - Sched-
ule Control main display features and Editing a schedule.
F. Edit mode tools. See the topic - Editing a schedule.
G. Schedule Control zoom tools. See the topic - Schedule Control main display features.
H. Month at a view tool. See below.

Navigation toolbar
Show picture

The navigation tools are used to select the week displayed by the Schedule Control. They can be used to
select the previous or next week, month or year.
The Month control works by adding (subtracting) one month to (from) the first date in the Schedule Control.
The week to be displayed is the week starting on the Monday prior to the calculated date.
The Calendar tool displays a date picker from which you can select a new start week. Note that the Schedule
Control always displays a complete week.
The This Week tool navigates to the current week.

Month at a view tool

- 653 -
The Month at a view tool expands the week axis so that you can view four weeks at a time instead of the
usual one. Show picture

- 654 -
Calendar Page (Multiple Schedules)
The Calendar page (Multiple Schedules) is displayed when you select one or more schedules in the Overview
page and use the Display selected command on the context menu. Upon opening, it displays the current
week of the schedules. Show picture

The loading time can be several seconds depending on how many schedules are being displayed.

The Calendar page displays the actual time intervals of the selected schedules taking into account the con-
figuration of the Standard Week, Exception Periods and Special Days (BACnet only). Users with con-
figuration rights can edit the schedule directly from the Calendar page. See the topic - Editing a schedule.

Calendar page (multiple schedules) main features


The main features of the Calendar page (multiple schedules) are similar to those of the standard Calendar
Page with the following exceptions.

A. The number of displayed schedules.


E. Schedule Control. Provides the main display and edit features for the schedule. By default, it displays
an entire week for each schedule in a single row. There will be one row for each of the selected sched-
ules. (The standard Calendar page displays a single schedule with seven rows, one day per row.)
I. Week/day Control. Selection of the period displayed per row - either an entire week or a particular
day.

For an explanation of the other features, see the topic about the standard Calendar page.

- 655 -
Standard Week Page
The Standard Week page is displayed using the Standard Week tab. It displays the standard week for the
schedule. Show picture

The Standard Week page displays the time intervals of the selected schedule not taking into account the con-
figuration of any Exception Periods and Effective Period (BACnet only). Users with configuration rights can
edit the intervals that make up the Standard Week. See the topic - Editing a schedule.

Standard Week page main features

A. The identity of the schedule to which the standard week applies.


B. The default output of the schedule - that is the output when there is no active interval.
C. Edit toolbar. Edit tools for the Schedule Control. See the topic - Editing a schedule.
D. Schedule Control. Provides the main display and edit features for the schedule. See the topics - Sched-
ule Control main display features and Editing a schedule.
E. Edit mode tools. See the topic - Editing a schedule.
F. Schedule Control zoom tools. See the topic - Schedule Control main display features.

- 656 -
Special Days Behavior Page
The Special Days Behavior page is displayed using the Special Days Behavior tab on the Calendar page. It
displays the Special Days collections that can be selected for the schedule. Show picture

The Special Days Behavior page displays the time intervals to be used for all days of each selected Special
Days calendar, for a particular schedule. Users with configuration rights can edit the intervals. See the topic
- Editing a schedule.

Special Days Behavior page main features

A. The identity of the schedule to which the Special Days Behavior applies.
B. The default output of the schedule - that is the output when there is no active interval BACnet only).
C. Edit toolbar. Edit tools for the Schedule Control. See the topic - Editing a schedule.
D. Schedule Control. Provides the main display and edit features for the schedule. See the topics - Sched-
ule Control main display features and Editing a schedule.
E. Edit mode tools. See the topic - Editing a schedule.
F. Schedule Control zoom tools. See the topic - Schedule Control main display features.
G. Selection of the Special Days calendars used in the schedule.

Selecting Special Days Calendars


All configured Special Days Calendars are available to each BACnet Schedule. They are not available to the
Supervisor's Native Schedules. To enable a Special Days Calendar tick the adjacent box and then the OK but-
ton. Selected calendars appear in the Schedule control in a similar manner to days in a Standard Week.
The Special Days Calendars select which are the special days. The intervals for those special days
are configured in the Special Days Behavior page and therefore can be different for each schedule.

- 657 -
Using the Schedule Control

- 658 -
Schedule Control Main Display Features
The Schedule Control is the primary display element of the Web Scheduler and appears in the Calendar,
Standard Week and Special Days pages. The Schedule Control displays a weekly schedule in a grid arranged
in seven rows - each representing a day, and 48 columns. The time unit that each column represents
depends on the zoom level and by default is 30 minutes. The day displayed as the first day of the week is
configured in the Web Portal configuration and is Monday by default.

Schedule Control main display features


Show picture

A. Displays the date and week number in the Calendar page (or the Schedule names when the Calendar
page is in multiple mode), the day name in the Standard Week page and the Special Days name in the
Special Days page.
B. Displays a single day with hour and minutes using 24 hour notation.
C. Chart colored for non-business hours.
D. Chart colored for business hours.
E. Interval bars. Note the tool-tip displayed when the mouse hovers over.

The Schedule Control appearance is modified for the Multiple Schedule view with the [B] displaying
an entire week, and [A] displaying one row for each schedule. See the topic Calendar Page (multiple
schedules).

About the Interval bars


Each interval bar is made from two bars. If you examine the following zoomed image, you can easily see
the difference. The period in this case starts at 06:15. Show picture

l The upper narrow solid bar is the actual time period accurate to within one minute [F].
l The lower and wider shaded bar is the period shown snapped to the time grid [G].

Zoom controls
The zoom controls allow you to zoom in and out of the day axis. The grid period can be 1, 5, 15, 30, (default)
or 60 minutes when displaying a single schedule (Calendar and Special Days Behavior pages), or 5, 15, 30,
60, 180, 360, 720 or 1440 minutes when displaying multiple schedules (Calendar page (multiple schedules)).
When necessary a horizontal scroll bar is displayed allowing you to navigate the entire 24 hours of the Day
axis.

- 659 -
Editing a Schedule Using the Schedule Control

You must use the Save tool to save edits before closing the page or they will be lost.

Schedules can be edited using the Schedule Control only by User's with the correct edit rights. The con-
figuration changes that result from editing a schedule depend on its type (BACnet or built-in) and the page in
which the changes are being made.
Page Effect on a BACnet device (schedule) Effect on a built-in Schedule
Calendar Modifies the Exception-Period property of Modifies, creates and/or deletes Exception
the Schedule object of the BACnet device. Periods.
Standard week Modifies the Weekly-Schedule property of Modifies the Standard Week.
the Schedule object of the BACnet device.
Special days Modifies the Exception-Period property of Not available.
the Schedule object of the BACnet device.
Note that the Schedule Control has many different methods by which the intervals, making up a schedule,
can be edited. Many of edit operation are automatically applied to all selected periods (one or several).

The edit toolbar


Show picture

Tool Description
Discard and Discard any changes since the last save and reload the saved version.
reload
Save Save the current edits.
Save as Save the current week as the Standard Week. Only available from the Calendar page (and
with the correct permissions).
Export Create an image of the schedule in .png format.
Add Add a new interval. The Interval dialog opens to configure the interval. The interval is placed
in the selected location on the Schedule Control. See below.
Delete Delete the selected interval(s).
Edit Open the Interval dialog for the selected interval.
Select all Select all intervals.
Unselect all Unselect all intervals.
Cut Cut the selected interval(s). A copy is put on the clipboard and the intervals are deleted from
the schedule.
Copy Copy the selected interval(s) to the clipboard.
Paste Paste the interval(s) in the clipboard starting at the selected the location.
Duplicate The selected interval(s) are duplicated in all rows of the control.

How to add a new interval


There are two methods to create a new interval.

1. Using click and drag.


a. Click in the grid (on an empty cell) where the interval is to start and drag the pointer to where
the interval is to end.
b. On releasing the mouse button, the Interval dialog is opened. Show picture

- 660 -
c. Check the interval times are correct.
d. If you are working on an enumerated schedule, select the Mode.
e. Click OK to confirm the configuration.
2. Using the Add tool.
a. Click in the grid where the interval is to start and then select the Add tool. The interval dialog
opens.
b. Configure the interval as above.

How to select/de-select individual intervals


Individual intervals can be selected by clicking with the mouse. Click once to select and again to de-select. A
selected interval is indicated with a hatched pattern. Several intervals can be selected concurrently by click-
ing on them one at a time.

How to select/de-select multiple intervals


The following behaviors are for the Calendar Page. Exact behaviors may differ slightly for the other
page types.
There are several methods by which multiple intervals can be selected/de-selected.

l Click in upper-left corner cell - Selects all intervals.


l Click on the day header - Selects all intervals for that day.
l Click on the time header - Selects all intervals that include the selected time.
l Click on multiple intervals (one after the other)
l <Ctrl>-A - Selects all intervals.

Editing intervals using the mouse


There are two actions that can be performed directly on an interval using the mouse.

1. Drag the interval to a new location.


a. Move the mouse over the join between upper and lower bars until the pointer changes to the
Move symbol.
b. Click and drag the interval to a new location. Show picture

2. Drag the start or end time.


a. Move the mouse over the start or the end of the interval bar until the pointer changes to the Hori-
zontal Resize symbol.
b. Click and drag the start or end time to its new location. Show picture

Editing intervals using the keyboard


The following behaviors are for the Calendar Page. Exact behaviors may differ slightly for the other
page types.
The following keystrokes can be used to edit selected intervals.

l <Del> - Delete intervals.


l Left and right arrow keys:
l Move 15 minutes.
l + <Ctrl> Move 5 minutes.
l + <Shift> Move 1 minute.
l Up and down arrow keys - Move one day.

- 661 -
l <Ctrl-C> / <Ctrl-X> / <Ctrl-V> - Copy / Cut / Paste.
l <Esc> Close the Interval dialog.

Other interval editing options


The tools located below the lower left of Schedule Control can be used to select alternative modes of editing
when using the mouse to click and drag intervals.
Icon Tool Description
Normal mode See above. Overlapped intervals are not permitted.
Slip crop overlapping The overlapping portion of the interval being dragged is deleted.
The overlapping portion of the interval, over which the interval being
Slip crop overlapped
dragged, is deleted.
The interval that is being overlapped, by the interval that is being
Slip crop delete
dragged, is deleted in its entirety.
Clicking on an interval will split it into two intervals at the click pos-
Split interval
ition.

The Interval context menu


Show picture

The Interval context menu is displayed when right clicking on a time interval.

l Edit interval - Open the Edit Interval dialog from where the interval can be directly edited.
l Select interval - Select the clicked interval.
l Unselect interval - Unselect the clicked interval.
l Select all intervals - Select all intervals of the displayed week.
l Unselect all intervals - Unselect all intervals of the displayed week.
l Align left - Make the start time of all selected intervals the same. The interval that was right clicked on
is taken as the reference. Show picture

l Align right - Make the end time of all selected intervals the same. The interval that was right clicked
on is taken as the reference. Show picture

l Merge - Merge the selected intervals. One new interval is created starting at the start time of the old-
est interval and ending at the end time of the newest interval. Show picture

l Delete interval - Delete the selected intervals(s).

- 662 -
l Duplicate interval - The selected interval(s) are duplicated in all days of the week.
l Copy interval - The selected interval(s) are copied to the clipboard.

The Time Span context menu


Show picture

The Time Span context menu is displayed when right clicking on the Schedule Control grid outside of a con-
figured interval.

l Add interval - The Interval dialog opens to configure the interval.


l Paste interval - Paste the intervals from the clipboard starting at the at selected the location.
l Merge selected intervals - Merge the selected intervals. One new interval is created starting at the
start time of the oldest interval and ending at the end time of the newest interval.

- 663 -
Effective Period Page
The Effective Period page is displayed using the Effective Period tab. Show picture

The Effective Period page displays the active period for the schedule. That is the period during which the
schedule actively sets values in the managed schedule using the configuration of the periods and modes.
Users with configuration rights can edit the Effective Period.

Effective Period page main features

A. The identity of the schedule to which the Effective Period applies.


B. Save tool.
C. Start and End of period controls.

Understanding the Start and End of period controls


The Start and End controls operate in the same manner. Reading from the left to the right you can select a
Date (day of the month), Month, Year and Day (day name). As well as the possible range of values, you
would expect for each of the controls (for example 1 to 12 for the Month) you could also select ANY that
effectively excludes it from the configuration. The Start and End is configured in this way for maximum flex-
ibility when mapping onto the equivalent property of the actual schedule.
Although the start and end of a period are configured independently, they would normally be con-
figured in the same manner. For example, if the start was configured as a day of the week (for
example Any, Any, Any, Monday), the end would also be a day of the week (for example Any, Any,
Any. Friday).

Examples of the use of the Start and End of period controls

l A specific date. The schedule will be active between the two dates. Select a value for the Date, Month
and Year properties. The Day property is set to ANY. Example:
Start: 01, 01, 2014, ANY
End: 31, 12, 2014, ANY.
l A day of the week. The schedule will be active between the selected days of each week. Select ANY for
the Date, Month and Year properties. Select a day name for the Day property. Example:
Start: ANY, ANY, ANY, Monday
End: ANY, ANY, ANY, Friday

- 664 -
l Always. Tick the Always tick box. The start and End controls are disabled and the schedule is always
active.

- 665 -
Properties Page
The Properties page is displayed using the Properties tab. Show picture

The Properties page displays miscellaneous properties for the schedule. It can be used to allow a schedule
to be disabled without deleting it.

Property page main features

A. The identity of the schedule to which the Effective Period applies.


B. Save tool.
C. Tick box to enable/disable the schedule, plus the schedule's status.

- 666 -
Special Days Page
Edits are not automatically saved. You must use the Save tool to save edits before closing the page
or they will be lost.
The Special Days page is used to create a calendar of one or more intervals (days) that are to be treated dif-
ferently. For example, you might create a Special Days calendar called Public Holidays. Special Days are
defined using the following properties.

l An interval of one or more days starting at a specific date.


l A recurrence pattern. The recurrence can be daily, weekly, monthly, yearly or none.
l The end of the recurrence. The end can be a specific date, after a number or recurrences or never.

A Special Days calendar can be used with one or more schedules. You attach a Special Days calendar to a
Schedule using the Special Days Behavior page. The Special Days Behavior page is also used to define the
interval start and end times as the Special Days calendar only defines those days where the interval start
and end times are used.
When using BACnet, a Special Days calendar is saved in a Calendar object. One Calendar object is used for
each Special Days calendar.

Special Days page main features


Show picture

A. The identity of the Special Days calendar.


B. Calendar toolbar. Tools to navigate the calendar.
C. Edit toolbar. Tools to add new days and to save the configuration.
D. Configured days. Defined by either just start date (which means indefinite), a start date and a number
of occurrences, or a start date and end date. The letter in brackets indicates the recurrence pattern.
(N) No recurrence.
(D) Daily. Recurs every day during the configured duration.
(W) Weekly. Recurs one named day of each week during the configured duration.
(M) Monthly. Recurs one day of each month during the configured duration.
(Y) Yearly. Recurs one day of each year during the configured duration.
The tools at the end of each line can be used to edit or delete the configured days.

- 667 -
E. Interactive calendar.
a. Day view.
b. Month view.
c. Special days interval.

How to add days to the Special Days schedule using the Add tool

1. Click the Add tool. The Add Interval dialog opens. Show picture

2. Configure the interval by either entering the Start of interval date and a Duration in days, or a Start of
interval date and an End of interval date. You can either type in a date or select it from the calendar
that is displayed when clicking any of the date fields.
3. Configure the recurrence pattern for the interval.
a. No recurrence - A single occurrence of the interval. The End of recurrence property is not used.
b. Daily - Every day starting at the Start of interval until the End of the recurrence. The End of inter-
val and Duration are not used.
c. Weekly - One or more named days per week starting at the Start of interval until the End of the
recurrence. The End of interval and Duration are not used.
d. Monthly - Repeat the interval defined each month until the End of recurrence.
e. Yearly - Repeat the interval defined each year until the End of recurrence.
4. For a recurring pattern, the end can be defined as End after (n) occurrences, an End by date or No end
date, in which case the interval recurs indefinitely.

How to add special days using click and drag


You can add special days by clicking and dragging with the mouse in the Calendar Day View. The interval will
start where the mouse button is clicked down and end where it is released. This method will produce a single
interval with no recurrence, but it can be edited afterwards using the Interval dialog which is displayed when
clicking anywhere on the interval in the calendar.

- 668 -
Other Pages
Settings page
Show picture

The Settings page displays information about the WebScheduler and a button, No auto login, that can be
used to clear Auto login. The button is only visible if Remember me on this machine had been selected.

Help page
Displays this help.

Logout tab
Logs the current user out from the WebScheduler and displays the Login page.

- 669 -
Concurrent Access Management
The WebScheduler allows concurrent access to the schedules by more than one User. However, this does
allow the possibility of two users editing the same schedule at the same time. Rather than prevent this, the
WebScheduler provides information to the User about when each schedule was last accessed and last
changed so that the User can make an informed decision about making any changes. The information is
updated every 30 seconds and is displayed in the top right hand corner of the Calendar, Standard Week, Spe-
cial Days Behavior and Effective Period pages. Show picture

The background of the information is color-coded.

l Normal - No other user is accessing the schedule.


l Yellow - One or more other users are accessing the same schedule. Show picture

l Red - One or more other users have changed the schedule since the user opened it and the user is now
viewing out of date information. Show picture

Beside this information allowing a user to make a decision whether he can do modifications or not,
the save process is handled according to the following principle: The last user saving modifications
will overwrite any other modification done by another user.

- 670 -
Integrating the Web Scheduler in a Mimic
The WebScheduler can be displayed in a mimic by inserting a Web Browser ActiveX into the mimic and set-
ting the browsers's URL to the WebScheduler using a VBA script. You can set the URL by using the Navigate2
method. Show picture

For information on how to insert an ActiveX into a mimic see the main help book Developing the HMI>Act-
iveX controls.
The WebScheduler may have minor differences in look and feel when displayed in an ActiveX and
manipulated programmatically.

WebScheduler URL shortcuts


The following URL shortcuts have been provided to directly access individual pages of the WebScheduler.
Some modes also require a parameter, or parameters, appended to the mode. When accessing the
WebScheduler in this manner the User Rights (permissions) of the user are still taken into account.
Mode For access to
login The Login page.
logout The Login page (any user that is logged in is logged out).
default The Overview page.
The Schedules Collection page. Similar to the Overview but just displaying the
schedulescollection
schedules.
The Special Days Collection page. Similar to the Overview but just displaying
specialdayscollection
the special days.
A Special Days. The name of the Special Days must be supplied as a para-
specialdays
meter.
singleviewcalendar A Calendar. The name of the schedule must be supplied as a parameter.
A Standard Week. The name of the schedule must be supplied as a para-
singleviewstandardweek
meter.
A Special Days Behavior. The name of the schedule must be supplied as a
singleviewspecialdays
parameter.
An Effective Period. The name of the schedule must be supplied as a para-
singlevieweffectiveperiod
meter.
Several Calendars in multi view mode. The names of the schedules must be
multiviewcalendar
supplied as parameters.

- 671 -
Several Standard Weeks in multi view mode. The names of the schedules
multiviewstandardweek
must be supplied as parameters.

URL examples

l Display the Overview page.


https://<hostname or IP>/WebScheduler/?mode=default
l Display the calendar of the Heating Profile schedule
https://<hostname or IP>/WebScheduler/?mode=singleviewcalendar&id=Heating%20profile
l Display the calendar for both the Heating Profile and Lighting schedules in multiview
https://<hostname or IP>/We-
bScheduler/?mode=multiviewcalendar&id=Heating%20profile&id=Lighting

Depending on the ActiveX used, special characters the URL may have to be replaced by a % sign fol-
lowed by the ASCII code of the character. For example, a space is replaced with "%20".

Using the WebScheduler without manually logging in


You must log in to the WebScheduler before you can use it. However, this may not always be convenient or
even required when using it from within a mimic as it is likely that the User has already logged into the
Supervisor. To avoid the User having to log in to the scheduler each time, you can use the Remember me on
this machine option on the Login page the first time that the WebScheduler is opened. See the Login page
topic. Subsequently, the User will be able to navigate directly to the required page without having to log in
first.

No distinction of user rights is possible when using this option.

- 672 -
Understanding the WebScheduler's Time-out Behavior
The WebScheduler's timeout behavior is influenced by two timeouts.

l The Web Service's client session time-out configured in the Application Explorer. (Server-
s>Settings>Common server properties for WebVue and Web Services toolkit>Client session time-out.
Default value 5 minutes.
l The IIS HTTP session time-out. Default value 20 minutes.

There are a number of possible timeout scenarios.

1. If you are actively using the WebScheduler, (using the Calendar, Standard Week or Special Days Beha-
vior pages) the session is held open by the WebScheduler's Concurrent Access Management, which
sends a message to the server every 30 seconds.
2. If the period of inactivity is greater than the Web Services session time-out, the Supervisor will end
the session and there will be a message in the Supervisor's Event Viewer.
3. If the period of inactivity is greater than the Web Services session time-out but less that the IIS HTTP
session time-out the session in the Supervisor will be closed but the WebScheduler web application
will still be active and remember the username and password. If activity starts again, the WebSched-
uler will attempt to reconnect to the Supervisor using these credentials.
4. If the period of inactivity is greater than the IIS HTTP session time-out then the user will have to log in
and start the session again.

- 673 -
Using SCADA Basic to Update the Supervisor's built-in Scheduler
The WebScheduler manages the Supervisor's built-in Scheduler by interfacing with the station having the
role of Web back end. Upon modification, this station saves the Cron configuration, but does not auto-
matically notifies other stations.
In a multi-station system, Cron timetables may be executed by a station different from the Web back end, it
is therefore important that Cron configuration be distributed across stations. The suggested method is to use
a SCADA Basic script incorporating the CRONTAB instruction (used specifically for manipulating the built-in
Scheduler). A sample project including a suitable script can be downloaded from the Knowledge Base or
requested from technical support.
A code fragment is shown below.
Sub UpdateCron ()
Dim lHandle As Long;
lHandle = Alloc_Buffer(128);
Crontab("NETWORKBROADCAST", "LMdfClient01", lHandle, "@Cron.Status", 1);
Free_Buffer(lHandle);
End Sub

- 674 -
Log Files
The WebScheduler produces two sets of log files. You may be asked to check then or send them to technical
support in the event of erroneous operation.
Component Path
Web portal c:\inetpub\<SV Website>\WebScheduler\bin\LogFiles
Schedule data service c:\inetpub\<SV Website>\ScheduleData\bin\LogFiles

Where <SV Website> is the name corresponding to the IIS web site you have deployed with the Web Deploy-
ment Console.

- 675 -
Web Services Toolkit

- 676 -
Overview of the Web Services Toolkit
The topics in this book only provide an overview of the Web Services Toolkit. For detailed inform-
ation please see the read-me file and developers' manual on the distribution media.
The Web Services Toolkit provides access to the Supervisor by a third party application, known as a client,
using the following XML SOAP web services:

l Session management,
l Real time data access,
l Alarm list access,
l Historical data access.

See Web and Mobile Client Applications Overview for an overview of Web & Mobile client applications, includ-
ing their common requirements and deployment steps.
The configuration steps specific for the Web Services Toolkit access to the Supervisor are as follows:

l Develop or buy a third-party component based on the Web Services Toolkit,


l Ensure your project settings accommodate the requirements of your third-party application.

License requirements
Use of the Web Services Toolkit is licensed. For the Supervisor to respond to a client using Web Services it
must have a protection key (dongle) with one or more WebVue users. Each concurrent Web Services session
uses one WebVue connection.

About XML SOAP Web Services


SOAP (Simple Object Access Protocol) is a protocol for the exchanging information based on XML formatted
messages.
XML Web Services is a technology based on XML SOAP messages to exchange information in a client-server
manner in a web environment.
The XML SOAP Web Service interface is completely described by an XML document called the Web Service
Description Language (WSDL). WSDL is the starting point for implementing a web service client because it
contains everything the client needs to know.

l Namespace of the web service.


l Specific datatypes and structures.
l Description of SOAP messages for requests to the server.
l Description of SOAP messages for responses to the client.
l Binding of the underlying transport layer.

The WSDL is used by developers to generate sets of datatypes and classes allowing simple use of the web
service.

Software development environments


As Web Services relies on widely adopted standards (XML SOAP and HTTP), a client can be implemented
with any development language supporting these technologies and can target a wide range of platforms.
Implementation is easier if a web service framework is available.

- 677 -
Overview of the Supervisor's XML SOAP Web Services
Session management service
Session management is provided by the SessionContext service. Show picture

Opening a session using the SessionContext service is a mandatory operation that must be processed before
any other call to the Web Services Toolkit. Opening a session allows the Supervisor's Web Server to perform
the following actions.

l Identify and authenticate the client by checking the user's access rights within the application. To open
a session, the client must provide a valid username and password.
l Allocate resources (a context) to store persistent information.
l Manage simultaneous connections taking into account the number of WebVue connections permitted
by the Supervisor's protection key (dongle).

If identification and authentication are successful a SessionID is returned to the client. This SessionID is
then used by all other requests to the server for the duration of the session.
If no request is received from a client then, after a time-out period, allocated resources are freed by the
server and the SessionId is no longer valid. Any further requests using the SessionID will return an error to
the client.
The time-out period is defined by the Client Session Time-out property in the WebVue Server's con-
figuration.

Real time data access service


Real time data access is provided by the RealTimeData service. Show picture

This provides access to the real time value, timestamp and quality (VTQ) of the Supervisor's variables. It
also provides access to the static properties of variables (Title etc.). The following actions are supported.

l Read value - A single read of the VTQ of one or more variables.


l Write value - A single write to the value of one or more variables.

- 678 -
l Read properties - To read one or more properties of one or more variables.
l New properties for variables. (Format and Unit properties for analogic value)
l Browsing variables is in relation to the browsing level defined on the Server side.
l Subscribe values - To subscribe to changes in value of one or more variables. On receipt of a sub-
scription request, the server creates a buffer in which the VTQ of the subscribed variables is saved
each time it changes. The saved values can be retrieved periodically by the client. When the client no
longer requires the values, the subscription is canceled.

Real time alarm access service


Real time alarm access is provided by the RealTimeAlarm service. Show picture

The RealTimeAlarm service provides access to the real time status and timestamp of the Supervisor's
alarms. The following actions are supported.

l Subscribe alarms - To subscribe to changes in value of alarms using an alarm filter. On receipt of a
Subscribe request the server creates a buffer in which the status of alarms passing the filter criteria is
saved each time it changes. The saved status values can be periodically retrieved by the client. When
the client no longer requires the alarms the subscription is canceled.

Properties that can be accessed as variables


Token Description
Threshold1Value to Threshold4Value Threshold values 1 to 4.
BinAttr Extended binary attributes (as a long).
TextAttr01 to TextAttr16 Extended text attributes 1 to 16.
DeferredTextAttr01 to DeferredTextAttr16 Deferred extended text attributes 1 to 16.
Examples:

l To access the first threshold REGISTER1 you would use REGISTER1.Threshold1Value.


l To access extended text attribute 3 of REGISTER1 you would use REGISTER1.TextAttr03.

Historical data access service


Historical data access is provided by the HistoricData service. Show picture

- 679 -
The HistoricData service provides access to the Supervisor's archive units for the retrieval of Trend and Log
data. The following actions are supported.

l Create a log request - Provides a set of parameters that define the scope of the request (Log list
name, filter and properties to retrieve). On receiving this request, the server allocates resources to
handle the request.
l Query log - On demand, the client requests a set of logged events for the defined log request and a
specified period of time.
l Close log - When the client no longer requires access to the log data, the log request is canceled.

This multi-step log request handling allows the design of a log client similar in operation to the Supervisor's
Log Viewer. In particular once the filter is set up you can then make multiple requests for data with different
time periods.

- 680 -
Extras and Add-ons

- 681 -
The VCR Facility

- 682 -
Overview of the VCR Facility
The VCR facility enables you to record changes in value (events) of variables on one Supervisor station and
to play them back through mimics on another.
Show picture

A VCR type archive unit must be created on the recording station to store the events data. The variables to
be recorded must have the VCR property enabled. No other special configuration is required; the rest of the
project can be the same as any other.
A VCR type archive unit is also created on the playback station. It does not record events directly. Instead
they are imported from the files created by the archive unit on the recording station.
The Supervisor on the playback station is started with the command line switch -VCR. This causes all vari-
ables in the Variables Tree to be switched to simulation mode and the VCR playback dialog to become avail-
able. The VCR playback dialog is used to control the import of data from the recording station and play back
the events derived from the real-time values of the variables.
The same version of the Supervisor must be installed on both the recording station and the playback
station.
The VCR facility and the VCR-style dialog used to play back reports through a mimic (F12, Report
Selection and Replay) are entirely different and separate features.

- 683 -
Selecting the Variables to be Recorded
Show picture

To select variables for recording, you must enable the Recorder property in their configuration:

1. Select the menu Configure.Variables.Selector to open the Variables selector dialog.


2. Double-click on a variable to be recorded to open its Properties dialog.
3. Select the Advanced (...) tab . In it, tick the Recorder checkbox and select OK.
4. Repeat steps 2-4 for each variable that is to be recorded.
5. Close the Variables dialog.

For details of other properties that may need to be set, see the Help book onConfiguring Variables in
General, particularly the topic Advanced Options Common to All Variables.

- 684 -
Configuring a VCR archive unit

- 685 -
How to Configure a VCR Archive Unit
One VCR archive unit must be configured on the recording station and another on the playback station. You
cannot create more than one VCR archive unit on a station.
Show picture

For details of how to configure data recording in general, see the Help book on Archives.

Creating a VCR archive unit

1. Open the Application Explorer. In the centre pane, expand the Archives node.
2. Right-click on Archives Units to select Add an archive unit then Add a VCR unit.
3. The Archive Unit Creation dialog opens with a pre-configured name. You can accept that name or
choose one of your own.
4. Optionally, enter text in the Description property.
5. Configure the other properties as described below.
6. Select the OK button.
7. If the settings are accepted the dialog will close and an icon representing the VCR unit will appear in
the configuration tree. Close the Archives configuration explorer.

You can only create one VCR archive unit in a given project. Once it has been created its properties
cannot be changed, although you can delete and re-create it with different properties.

Configuring the archive file cache (General tab)


The archive file is provided with a memory based cache that buffers data before it is written to the hard
disk. Using a memory buffer reduces the amount of disk activity and hence the load on the host computer.
Unless the project has any special requirements it is recommended that these properties are left at their
default settings.
Property Settings
Memory size (KB) The size of the memory buffer in which data is stored before being written to
disk. Default value 32KB.
Write period The period at which the contents of the memory buffer is written to disk. If set
to zero the buffer will only be written when it is full. Default value 120 seconds.

Configuring a time-ordered buffer (General tab)


The Supervisor supports some communication protocols where the data is time stamped at the source, that
is in the equipment. When using a time stamped protocol and communicating with more than one item of
equipment, it is quite likely that data will arrive at the VCR Archive Unit not in chronological order. To over-
come this problem each VCR Archive Unit has an optional buffer in which data may be sorted before being
saved.
Property Settings
Memory size (KB) The size of the memory buffer used to sort data into chronological order before

- 686 -
it is copied to disk. This must be sufficiently large to store the amount of data
expected to arrive during the sorting period. Default value 4KB.
Period (sec.) The period for which data is temporarily stored whilst it is sorted. The period
must be equal to or greater than the maximum expected difference between
the local time and the time stamp of the data. If this is set at the default value
of zero then no sorting takes place.

Configuring the capacity and number of files generated (Details tab)


The VCR Archive Unit capacity is determined by two properties, the Day Capacity and the Max Archive Capa-
city. Show picture

Property Settings
Max archive capacity A limit, in megabytes, to the archive unit capacity. If this limit is exceeded the
oldest record is discarded even if the Day capacity has not been reached. The
VCR Archive Unit is limited to a maximum size of 100GB (GigaBytes). Default
value 1MB.
Day capacity Selects the maximum number of days for which records are kept. Records that
are older than the specified Day capacity are discarded. Default value 20 days.
Photo period The time period for which each archive file can record. When the period is
reached a new file is created. Each file is known as a photo. Default value 24
hours.

Configuring the archive file format


Property Settings
Date format The date format for the timestamp of each entry in an archive file. The default
is yyyymmdd, where:
yyyy is the year as four digits
mm is the month as two digits
dd is the day of the month as two digits.
Stored attributes A string specifying which of a variable's extended attributes to record (in addi-
tion to the value and timestamp). Default value: null.
The attributes are selected by using the substitution strings #A1 to #A16. Each attribute is separated by a
comma. The attributes #A1 and #A2 represent the variable's Domain and Nature respectively.

Selecting the path where the archive files may be found


You must specify a valid path to a connected storage location.
Property Settings
Path to files ... For the archive unit on the playback station, it is the location of the files it will
import. (It is not used for the archive unit on the recording station although it
must still be entered.)

- 687 -
If you want to import the files directly from the archive unit of the recording station, the property Path to
files from dedicated station will be of the format:
\\ComputerName\ProjectRoot\ProjectName\TH\ArchiveUnitName

- 688 -
Format of the VCR Archive Unit Files
The files generated by the VCR archive unit are stored in the project's TH directory in a sub-folder with the
same name as that of the archive unit. Two types of file are found in the folder, with different file exten-
sions.
Extension File contents
EVT The events generated by all variables that have the VCR option enabled.
PHO Contains a list of all variables with the VCR option selected at the time the cor-
responding EVT file was generated.
A new PHO file is generated each time the Supervisor starts. Subsequent files are created according to the
period specified by the Photo Period property. The name of each file is generated using the time it was cre-
ated and is of the format YYYYMMJJHHMMSS.PHO.
A EVT file is created for each PHO file. The name of the file is the same as the PHO file but with the EVT
extension. An EVT file contains the all changes of variable values from the time it is created until the cre-
ation of the next .PHO file. In other words for the period specified by the Photo Period property.

The EVT file format


The EVT files are text files with one line representing one event. The format of each line is as follows:
Timestamp1,TimeStamp2,VarName,0,Value,Attribute1,...,AttributeN
Property Settings
Timestamp1 The time at which the event was physically recorded.
Timestamp2 The time at which the event took place.
VarName The name of the variable.
0 A flag, always 0.
Value The value of the variable.
Attribute1 to AttributeN Any additional attributes that the configuration has specified.

- 689 -
Estimating the Archive File Capacity
Estimating the archive file capacity can be difficult as you must know:

l The format in which you are recording the time stamps


l The length of your variable names
l The length of any other attributes you are recording.

You also need to know:

l The rate at which you expect events to occur.

It is important at least to estimate the worst case, else you may find that the archive unit does not
store information for a sufficient number of days.

Example
The following example estimates the amount of space required to record 10 events per second for 7 days
using the default date format and no additional attributes.
Field Characters
Timestamp1 16
Timestamp2 16
VarName 20
Flag 2
Value 3
Attributes (none) 0
Total 57
Including the end of line character, each event will require about 60 characters. Each character requires 1
byte. The total storage required therefore is:

l 10 (events) x 60 (seconds) x 60 (minutes) x 24 (hours) x 7 (days) x 60 (bytes) = 360MB

Assuming that you create one file an hour, this will produce:

l 168 files (24x7) of approximately 2.2MB each (10x60x60x60).

- 690 -
Configuring the playback project

- 691 -
Overview of Configuring the Playback Project
The project that runs on the playback station is dedicated to playing back data from the VCR archive unit. All
variables are switched to simulation mode, so no communication using CIMWAY, OPC or DDE is possible.
The following configuration is required:
Configuration Settings
Command line Add the -VCR switch to the command line used to start the Supervisor. For
example:
K:\SV32\bin\sv32.exe -vcr -b K:\SV32\Projects
VCR type archive unit Identical to the one on the recording project except that the property, Path to
files from dedicated station, must be configured. Normally this will point to
the path of the archive files on the recording project.

- 692 -
Opening the VCR Historic Data Dialog
The VCR dialog is opened by the user from a drawing element (such as a button) in a mimic of the playback
project. To create such an animation:

1. Create a drawing element.


2. Right-click and select the animation Run.Macro to apply a Macro animation.
3. Put the single instruction IVCR_Open in the first line of the macro. Show picture

4. Select OK to confirm the action.


5. Select File.Save All to save the mimic.

To open the VCR dialog:

1. Select Run mode.


2. Select the drawing element. The macro will open the VCR Historic Data dialog.

If that does not happen, check that you have applied the command line switch -VCR as described in
the topic Overview of configuring the playback project.

- 693 -
Using the VCR Historic Data Dialog
The VCR Historic Data dialog enables you to import the VCR data from the recording project, select a start
date and time, and play the events. See the topic Opening the VCR Dialog for the method of opening it from
a mimic. Show picture

Importing the historic data


The process of importing the historic data copies the PHO and EVT files to the local VCR archive unit. It uses
the path specified in the configuration of the local VCR archive unit.
To import the files, select the command Unit.Initialise from the VCR dialog menu. The status line will
provide information as the import proceeds.
Importing the historic data files may take a considerable time if they are very large or if the connection to
the specified folder is slow.
You can repeat the import at any time when events are not being played. Only new historic data files will be
imported. Existing historic data files are not overwritten.
You can use the import process even if the recording project is running. However the most recent historic
data files (which will be open to the Supervisor running the recording project) will not be imported.

How to select the start date and time

1. Click the clock button.


2. Select the start date and time from the calendar dialog and click the OK button.

A list of all photos with events newer than the selected date and time will appear in the lower part of the VCR
dialog.

Controlling the playback of events


Events are played back as follows:

l Select a historic data file from the list and then click the Start button.

All events from the start of the selected historic data file to the end of the newest historic data file on the list
will be played back unless you select one of the other control buttons. The time stamp of the event currently
being played is displayed in the Current Date field.
The speed at which events are played back is unrelated to the frequency at which they were recorded. You
can control the playback by selecting the number of events in a step and the frequency at which the steps
will be played.
The events in each step are played one after another with no pause. If the same variable changes sev-
eral times in a step you will only see the value at the end of the step.
For example you could choose 10 events in a step and for a step to be played every 2 seconds. Once every 2
seconds the VCR would play the next 10 events.
The following buttons are available for controlling the playback of events.
Button Action Effect
Start Events are played from the start of the selected historic data file. Playing
continues until the end of the most recent photo is reached.
Pause The playing of events is paused. When Start is selected, play continues

- 694 -
from where it was paused.
Stop The playing of events is stopped. When Start is selected play, starts from
the beginning of the selected historic data file.
Return to start If playing, select and play the first historic data file.
Previous photo If playing, select and play the previous historic data file.
Next step If paused, play the next N events where N is the number of events specified
in the Events field.
Next photo If playing, selects and plays the next historic data file.

- 695 -
Using the SYSTEM.VCRMODE Variable
The register variable SYSTEM.VCRMODE is used to indicate to the User the mode in which the Supervisor is
running:
Value Mode
0 Normal mode.
1 VCR mode.
The variable is set according to the mode in which the Supervisor was opened. It does not imply that
a VCR archive unit has been created.

- 696 -
Limitations in the Playback Project
The VCR facility plays back historic values through the variables at a speed that is not related to real time.
Therefore the following animations will not display anything meaningful.

l The Trend Viewer.


l The Log Viewer.

These viewers should not be used for playback.

- 697 -
21CFR Part 11

- 698 -
What is 21 CFR Part 11?
21 CFR Part 11 is a document from the US Food and Drugs Administration (FDA) that sets forth the require-
ments that have to be met in order that electronic records and electronic signatures are considered to be as
trustworthy as paper records with handwritten signatures.

Definition of electronic records and signatures

l An electronic record is - any combination of text, graphics, data, audio, pictorial or other information
represented in a digital form that is created, modified, maintained, archived and retrieved or dis-
tributed by a computer system.
l An electronic signature is - a computer data compilation of any symbol or series of symbols executed,
adopted or authorised by an individual to be the legally binding equivalent of the individual's hand-
written signature.

- 699 -
Interpreting 21CFR Part 11 requirements in the Supervisor

- 700 -
Interpreting 21 CFR Part 11 Requirements in the Supervisor
The topics in this book provide guidelines to interpreting the requirements of 21 CFR Part 11 in terms of the
Supervisor's features. However they do not infer a commitment on behalf of the developers of the Super-
visor in any way or form. Ultimately it is the responsibility of the persons or company developing the applic-
ation to ensure that the 21 CFR Part 11 requirements are met.
In this text paragraphs from 21 CFR Part 11 are in an italic typeface followed by the interpretation of the
requirements in the Supervisor in a normal type face.
Paragraphs from 21 CFR Part 11 that are not considered to have an impact on the configuration of the Super-
visor are not included in the topics of this book. However these paragraphs may have an impact on the over-
all system design and operational procedures and must not be ignored.
The developer must be aware that using these features is not a guarantee of compliance, in
fact software alone cannot provide compliance. Many of the requirements must be met pro-
cedurally, whilst other issues can be resolved by restricting access to the host PC, both phys-
ically and electronically.
You must also take into account that 21 CFR Part 11 is a document about electronic records and electronic
signatures - it is not specific to the use of PCs and PC applications such as SCADA. As such it is open to inter-
pretation and its application is affected by guidance documents that are issued from time to time by the
FDA.
21 CFR Part 11 contains subparts.

l Subpart A - General Provisions. Describes the scope, implementation and definitions of terms used in
21 CFR Part 11. This subpart has no effect on the configuration of the Supervisor.
l Subpart B - Electronic Records. Describes the controls for closed and open systems. The Supervisor is
considered to be a closed system.
l Subpart C - Electronic Signatures. Describes the implementation and use of electronic signatures. In
the Supervisor, an electronic signature is known as a User Account.

- 701 -
21 CFR Part 11 Subpart B - Electronic Records
11.10 Controls for closed systems
Persons who use closed systems to create, modify, maintain, or transmit electronic records shall employ
procedures and controls designed to ensure the authenticity, integrity, and, when appropriate, the con-
fidentiality of electronic records, and to ensure that the signer cannot readily repudiate the signed record as
not genuine. Such procedures and controls shall include the following:
(c) Protection of records to enable their accurate and ready retrieval throughout the records retention
period.
The electronic records produced by the Supervisor are, in general, recorded in ASCII and do not include a
checksum. Therefore the PC on which the files are recorded should be both physically and electronically
secure to prevent tampering with the files. Consideration should be given to regular archiving of the files on
read-only media such as DVD-R.
(d) Limiting system access to authorized individuals.
The Supervisor must be configured so that access is only provided to authorised Users.
(e) Use of secure, computer-generated, time-stamped audit trails to independently record the date and time
of operator entries and actions that create, modify, or delete electronic records. Record changes shall not
obscure previously recorded information. Such audit trail documentation shall be retained for a period at
least as long as that required for the subject electronic records and shall be available for agency review and
copying.
The Supervisor can be configured to provide an audit trail (log) of the following user actions.
Action Comment
Changing the value of a variable. Extended attributes may be used to allow the previous value
and the signatories to be recorded.
Sending a recipe.
Accepting alarms.
Masking alarms.
Running a SCADA BASIC program.
Login and Logout
The Supervisor cannot be configured to provide an audit trail (log) of the following user actions so they
should not be incorporated in an 21 CFR Part 11 compliant system.
Action Comment
Creating, modifying or deleting a recipe.
Creating, modifying or deleting a
timetable.
Creating, modifying or deleting a variable. This is disabled if you are using a run-time license.
Validation of a batch record
Modifying the content of mimics. This is disabled if you are using a run-time license.
(g) Use of authority checks to ensure that only authorized individuals can use the system, electronically sign
a record, access the operation or computer system input or output device, alter a record, or perform the
operation at hand.
The Supervisor must be configured so access is only provided to authorised Users. A user is authorised by
logging in with a name and password before accessing the system.

11.50 Signature manifestations.


(a) Signed electronic records shall contain information associated with the signing that clearly indicates all
of the following:
(1) The printed name of the signer;
(2) The date and time when the signature was executed; and
(3) The meaning (such as review, approval, responsibility, or authorship) associated with the signature.

- 702 -
The Supervisor's logging must be configured so that the name of the signer (user), time and date, and the
action is recorded as part of any record.

11.70 Signature/record linking


Electronic signatures and handwritten signatures executed to electronic records shall be linked to their
respective electronic records to ensure that the signatures cannot be excised, copied, or otherwise trans-
ferred to falsify an electronic record by ordinary means.
The electronic records produced by the Supervisor are, in general, recorded in ASCII and do not include a
checksum. Therefore the PC on which the files are recorded should be both physically and electronically
secure to prevent tampering with the files. Consideration should be given to regular archiving of the files on
read-only media such as DVD-R.

- 703 -
21 CFR Part 11 Subpart C - Electronic Signatures
The interpretation of an electronic signature for the Supervisor is the combination of a user name and pass-
word, plus other optional information such as first name and last name, together known as a User Account.
To enable some of the features necessary for 21 CFR Part 11 the property Use the advanced security
strategy, in the User Accounts Settings, must be ticked. See the topic Application Explorer.User
Accounts.Settings for further information. The following text assumes this has been done.
To guarantee the integrity of the user rights configuration file the option to encrypt it must be selec-
ted.

11.100 General Requirements


(a) Each electronic signature shall be unique to one individual and shall not be reused by, or reassigned to,
anyone else.
The names used in all accounts must be unique. If a User Account is deleted a record is kept of its existence
so the name cannot be re-used.
All passwords used in a project, including any that have expired or were used in deleted accounts, must be
unique. An internal record is kept of the previous 1,000 passwords to ensure this. Passwords must be six or
more characters in length.

11.200 Electronic signature components and controls


(a) Electronic signatures that are not based upon biometrics shall:
(1) Employ at least two distinct identification components.
A User Account comprises of at least an account name and password.
(i) When an individual executes a series of signings during a single, continuous period of controlled
system access, the first signing shall be executed using all electronic signature components; sub-
sequent signings shall be executed using at least one electronic signature component that is only
executable by, and designed to be used only by, the individual.
When a user logs in (the first signing), both the user name and password must be entered which is nor-
mal with the Supervisor. For subsequent signings, for example using a control zone to change the
value of a variable, the user must re-enter, as a minimum, the password. To achieve this the Security
animation must be used on any control zone that is considered to require an electronic signature.
ii) When an individual executes one or more signings not performed during a single, continuous period
of controlled system access, each signing shall be executed using all of the electronic signature com-
ponents.
When using the Security animation to secure a control zone, it cannot be activated unless a user is
already logged in.
(2) Be used only by their genuine owners; and
(3) Be administered and executed to ensure that attempted use of an individual’s electronic signature
by anyone other than its genuine owner requires collaboration of two or more individuals.
When an administrator creates a User Account, the account is given a name and password. The first
time the account is used the user must change the password so that it is only known by the user. Once
an account has been created it can only be deactivated (in which case it may be reactivated) or
deleted by an administrator. A record of deleted accounts is kept. A deleted account cannot be recre-
ated.
(b) Electronic signatures based upon biometrics shall be designed to ensure they cannot be used by anyone
other than their genuine owners.
Not relevant to the configuration of the Supervisor.

11.300 Controls for identification codes / passwords


Persons who use electronic signatures based upon use of identification codes in combination with passwords
shall employ controls to ensure their security and integrity. Such controls shall include:

- 704 -
(a) Maintaining the uniqueness of each combined identification code and password, such that no two
individuals have the same combination of identification code and password.
The names used in all accounts must be unique. If a User Account is deleted a record is kept of its
existence so the name cannot be re-used.
The passwords used in all current User Accounts must be unique. A record is kept of the previous
1,000 passwords ensuring (within reasonable doubt) that all passwords are unique. Passwords must
be 6 or more characters.
(b) Ensuring that identification code and password issuances are periodically checked, recalled, or
revised (e.g. to cover such events as password aging).
Use the Password lifespan property in the Advanced tab of the user's profile so that the user is forced
periodically to change the password.
(c) Following loss management procedures to electronically deauthorize lost, stolen, missing, or oth-
erwise potentially compromised tokens, cards, and other devices that bear or generate identification
code or password information, and to issue temporary or permanent replacements using suitable, rig-
orous controls.
Accounts may be deactivated or deleted. A deactivated account may be reactivated. A deleted account
cannot be recreated.
(d) Use of transaction safeguards to prevent unauthorized use of passwords and/or identification
codes, and to detect and report in an immediate and urgent manner any attempts at their unau-
thorized use to the system security unit, and, as appropriate, to organizational management.
An alarm is generated using the variable SYSTEM.StationName.USER.REJECTED each time a failed
login occurs. After three failed login attempts an account is deactivated.

- 705 -
Providing an audit trail

- 706 -
How To Provide an Audit Trail
To provide an audit trail of user actions you use the Log Filters, Archive Units and Log Viewer.

l The Log Filters select what actions are logged and where they are stored.
l The Archive Units store the logged actions.
l The Log Viewer provides a way to view the logged actions that have been stored in the Archive Units.

For detailed information on configuring Log Filters, Archive Units and Log Viewers see the Supervisor's main
Help.

The records recorded using the Log Filters are not encrypted. Therefore it is necessary to provide
some other means to protect them against tampering, such as restricting physical access to the PC
on which they are located.

What can be logged


The following run-time user actions may be logged.
Source and action Option in Log Filter configuration
Animation - Send bit Command
Animation - Send register Command
Animation - Send text Command
Animation - Send recipe Command
Animation - Run program Program
Alarm display - Acknowledge alarm Acknowledge
Alarm display - Mask alarm User mask
Logon Logon/Logoff
Logoff Logon/Logoff
If you select the option to Logon/Logoff, logon failures are also recorded. Automatic logoff due to a period of
inactivity is recorded as a normal logoff.

What cannot be logged


The following run-time user actions cannot be logged and therefore their use must be carefully considered in
a 21CFR Part 11 compliant project.
Source and action
Animation - Send timetable
Animation - Link open
Animation - Link close
Animation - Link note
Animation - Run macro
Animation - Run application
Animation - Creating, modifying or deleting a recipe
Animation - Creating, modifying or deleting a timetable
Log in dialog - Changing the system date and time

It is not possible to record individual changes made to a project configuration when the Supervisor
is in Design mode. Therefore it is suggested that once a 21 CFR Part 11 compliant project has been
approved, it is operated with a run-time protection key only.

- 707 -
Using Extended Attributes to Add More Information to a Logged Action
Using the variable's extended attributes, you can record additional information when a variable is logged fol-
lowing a user action such as Send Register. The extended attributes allow you to configure and record up to
fourteen text strings, plus a binary pattern, specific to each variable.
A special use of extended attributes allows you to include the value of other variables in the record.

How to enable extended attributes

1. In the dialog Configure.Application Explorer, select Variables.Settings to open the Settings - Variables
dialog.
2. In Attributes and Properties, check the property, Extended Attributes.

How to add an extended attribute to a variable

1. Open the configuration dialog for the variable and open its Extended Attributes tab.
2. Check the property Enable associated attributes.
3. Enter the text for the extended attribute(s) to be configured. Show picture

4. Close the dialogs.

Recording the value of extended attributes


To log an extended attribute you must include its mnemonic in the Attributes to record field of the Log Filter
configuration. Show picture

#@An will record attribute n.


#@*An will record the value of the variable named in the attribute n.

n is the attribute number from 1 to 16. Attributes 1 and 2 are the Domain and Nature respectively.

Viewing extended attributes in a Log Viewer

- 708 -
To view an extended attribute in a Log Viewer you must enter its mnemonic in theColumn Format field of the
Display tab of the Log Viewer Configuration dialog. The mnemonic must correspond with one that has been
used in the Log Filter.

Typical example - recording the name of the main and secondary Users
A typical use of extended attributes is to record the name of both the main and secondary users when using
the Security animation with the Double Signatory option. The names of the main and secondary users are
available in the variables SYSTEM.StationName.USER1.LOGIN and SYSTEM.StationName.USER2.LOGIN,
respectively.

1. Enable extended attributes (as above).


2. In each of the variables concerned, enter SYSTEM.StationName.USER1.LOGIN in text attribute 3.
3. In the variables concerned, enter SYSTEM.StationName.USER2.LOGIN in text attribute 4.
4. In the Log Filter(s) add #@*A3,#@*A4 to the Attributes to Record field.
5. In the corresponding Log Viewer(s) enter #@*A3 and #@*A4 in the Column Format field.

Replace StationName with the name of the station on which the Supervisor is running.
The variables SYSTEM.StationName.USER1.LOGIN and SYSTEM.StationName.USER2.LOGIN must be
created manually.

- 709 -
Logging the Previous Value of a Register Variable
When logging the change in value of a register variable as a result of a Send-Register animation it can be
useful to log the previous value of the register as well as the new value. (The new value is logged by default
and may be displayed using the #C mnemonic in the Log Viewer configuration.)
You log the previous value of the register by using an extended attribute configured to display the previous
control value. To configure that you must manually edit the configuration file VARCONF.DAT to add the line
Set=%PreviousControlValue%
after the attribute's definition.
In the following example attribute 5 has been configured in this way.
[ATTRIBUTE\TextAttribute1]
DistributedMode=Static
[ATTRIBUTE\TextAttribute2]
DistributedMode=Static
[ATTRIBUTE\TextAttribute3]
DistributedMode=Static
[ATTRIBUTE\TextAttribute4]
DistributedMode=Dynamic
[ATTRIBUTE\TextAttribute5]
DistributedMode=Dynamic
Set=%PreviousControlValue%
[ATTRIBUTE\TextAttribute6]
DistributedMode=Dynamic
[ATTRIBUTE\TextAttribute7]
DistributedMode=Static
[ATTRIBUTE\TextAttribute8]
DistributedMode=Dynamic
[ATTRIBUTE\TextAttribute9]
DistributedMode=Static
[ATTRIBUTE\TextAttribute10]
DistributedMode=Dynamic
[ATTRIBUTE\TextAttribute11]
DistributedMode=Static
[ATTRIBUTE\TextAttribute12]
DistributedMode=Dynamic
[ATTRIBUTE\TextAttribute13]
DistributedMode=Static
[ATTRIBUTE\TextAttribute14]
DistributedMode=Dynamic
[ATTRIBUTE\TextAttribute15]
DistributedMode=Static
[ATTRIBUTE\TextAttribute16]
DistributedMode=Dynamic
[ATTRIBUTE\BoolAttribute1]
DistributedMode=Dynamic
Once this change has been made you can log the previous control value by adding the attribute to the Attrib-
utes to record field of the Log Filter configuration, for example #@A5.
To display the previous control value in the Log Viewer you add the attribute to the Column Format field of
its configuration dialog.

You must shut down the Supervisor before editing the file VARCONF.DAT.

- 710 -
Protecting the Integrity of Historic Data Files
You can apply a cyclic redundancy check (CRC) to protect the integrity of the data files in which the historical
data is recorded in the archive units. This appends to the data a pattern of bits that reflects the entire
sequence of bits in the file. When such a file is read from beginning to end, any loss, addition or modification
of the file's contents can be detected.

How to enable CRC on historic data files


1. In the Application Explorer, select Archives.Settings to open the Settings - Archives dialog.
2. Check the option Secure records to prevent tampering with files. Show picture

3. Select OK to close the dialog and apply the changed setting.

You cannot apply CRC retrospectively.

It must be enabled before any historic data is recorded. Any data recorded before CRC is enabled will be
lost.

What is CRC?
CRC is an acronym for Cyclic Redundancy [check] Code: a technique for error detection used to assure that
a program or data file has been accurately transferred or recorded. The CRC is the result of a calculation on
the set of written bits; it is appended to the data. When the data is read, the calculation is repeated and the
result is compared to the encoded value. The calculations are chosen to optimize error detection.

- 711 -
Ethernet/IP add-on

- 712 -
Ethernet/IP Data Acquisition Driver Overview
The Ethernet/IP add-on enables communication with PLCs supporting the Ethernet/IP standard. It supports
the explicit messaging of CIP (Common Industrial Protocol), with addressing based on symbolic elements.
There are no configuration dialog's specific to the Ethernet/IP Data Acquisition Driver. At the time of writing,
it uses a combination of text files (.dat) and standard features of the Supervisor for configuration.
This driver supports access to atomic tags in:

l Tags
l User Defined Data Types (UDT)
l Arrays (atomic and UDT)

The Ethernet/IP Data Acquisition Driver add-on is licensed and available on order. Please contact
your local reseller for more information.

- 713 -
Installation and Configuration of the Ethernet/IP Data Acquisition Driver Add-on
The Supervisor's Ethernet/IP Data Acquisition Driver add-on comprises of two dll files that are installed in
the Supervisor's BIN folder as part of the installation. The files are:

l svmgrEIP.dll - The Supervisor's Ethernet/IP driver.


l EIP_Driver.dll - The Ethernet/IP communication stack.

The driver, svmgrEIP.dll, was developed using the Supervisor's SV Manager Toolkit. In order for the Super-
visor to load the add-on at startup, a text file USRMGR.DAT must also be added to the BIN folder. The file
must contain the following lines.
[USRMGR\usrmgrEIP]
DLL=svmgrEIP.dll

Ethernet/IP Data Acquisition Driver add-on configuration file


The Ethernet/IP Data Acquisition Driver add-on is configured using a file called EtherNetIP.ini which must be
created in the PER folder of the Supervisor's project. The file has the following structure.
[TaskParameters]
AttributeNumber = 16
LocalIpAddress = 192.168.56.1
nbEquipments = 1
nbPollingGroups = 1
[PollingGroup1]
Name = Fast
RefreshRateInSec = 1
[Equipment1]
Name = EqtTest
IpAddress1 = 192.168.56.11
Port1 = 0
Slot1 = 0
TimeOutInSec = 10

l [TaskParameters]
l AttributeNumber - The variable's text extended attribute that is used to configure the mapped
EIP/ CIP variable. A number from 3 to 16. Defaults to 16.
l LocalIpAddress - The IP Address of the PC on which the task runs. A string.
l AssociationName - The association name in a redundant architecture. The task will only be act-
ive on the active server. A string. If omitted there is no association.
l NbEquipments - The number of equipments to which the driver is to connect. A number. If omit-
ted the default is 0.
l nbPollingGroups - The number of polling groups to be used. A number. If omitted the default is 0
polling groups.
l [PollingGroupN] - The definition of the polling group N. N is a number from 1 to nbPollingGroups as
specified above. The values must be contiguous.
l Name - The name of the polling group. A string. If omitted the default is PollingGroupN as
defined in [PollingGroupN].
l RefreshRateInSec - The polling rate for the group in seconds. A number. If omitted the default is
Normal.
l [EquipmentN]
l Name - The name of the equipment. A string. If omitted the default is EquipmentN as defined in
[EquipmentN].
l IpAddress1 - The first IP Address of the equipment. A string formatted x.x.x.x. The default is an
empty string.
l Port1 - Specify the physical port on which the Ethernet cable is plugged in. A number. If omitted
the default is 0.
l Slot1 - Specify the CPU equipment slot. A number. If omitted the default is 0.
l IpAddress2 - The second IP Address of the equipment. A string formatted x.x.x.x. The default is
an empty string.

- 714 -
l Port2 - Specify the second physical port on which the Ethernet cable is plugged in. A number. If
omitted the default is 0.
l Slot2 - Specify the second CPU equipment slot. A number. If omitted the default is 0.
l NbRetry - The number of retries prior to assuming a communication failure and setting any vari-
ables to NS COM. A number. If omitted the default is 2.
l TimeOutInSec - The timeout in seconds for a read or write request before considering the
request has timed out. A number. If omitted the default is 10 (seconds).
l DeviceType - The type of the equipment. A string either LogixAccess or CIPAccess. If omitted
LogixAccess is used.
l MultipleServiceSupport - Specify if the equipment supports Service 0x0a meaning that several
requests can be concatenated within one. A string either Yes or No. If omitted Yes is used.
l CompactBitArray - Specify if the equipment supports the compact bit array. If Yes an entire
array is coded within a double word, else each bit of the array is coded within a single byte. A
string either Yes or No. If omitted Yes is used.

- 715 -
Configuration of the Supervisor's Variables for the Ethernet/IP Data Acquisition
Driver Add-on
To define a variable as having an Ethernet/IP source you have to enter its address in the extended attribute
as defined in EtherNetIP.ini. It takes the form of a string with the following syntax.
EIP#EquipmentName#TagName#Type#PollingGroup#Access#Scaled

l EIP - The key that indicates it is a variable with an Ethernet/IP source.


l EquipmentName - The name of the equipment, as defined in EtherNetIP.ini, from which the variable
gets its value.
l TagName - The identifier of the variable within the equipment. See below.
l Type - The variable type. See below.
l PollingGroup - The name of the polling group, as defined in EtherNetIP.ini, which defines the variable
scan rate.
l Access - Use W if you want the Supervisor to write to the tag.
l Scaled - Use S if you want the Supervisor to apply scaling between the minimum and maximum of the
data type and the minimum and maximum defined in the variable. If omitted the variable is not
scaled.

TagName syntax for ControlLogix access


The tag name refers to the tag name in the equipment.

l If the tag is part of a program, named MyProg, the syntax is Program:MyProg.MyTag.


l If the tag is part of a UDT structure TemplateStructA, named Mystruct, the syntax is
MyStruct.MyTag.
l If MyStruct is instantiated with the program MyProg, the syntax is Pro-
gram:MyProg.MyStruct.MyTag.
l If the tag is an array, the syntax is MyArray[x] where x is the array index of the specific element to
access.
l If the tag is a string, the syntax is MyString[x] where x is the string size you want to access.

Example:
EIP#EqtTest#TEST2_ARR[29]#INT#Fast#W
Connect the variable to the device called EqtTest and access the index 29 of the table called TEST2_ARR at
the frequency define by the polling group Fast and the value can be written. The device named EqtTest and
the polling group named Fast must be defined in the .ini file.

TagName syntax for CIP generic device


The tag name refer to a specific explicit message within the CIP device. The syntax is CIP:S:C:N:I:[x].

l S - The service expressed in hexadecimal. For example:


l 01 - Get Attributes all
l 0e - Get Attribute single
l C - Class in hexadecimal
l I - Instance number in decimal
l N - Attribute number
l [x] - The offset, in bytes, of the response buffer from which to extract the variable value.

Variable type
Format Scaling support Range
BOOL No
SINT Yes -127 to 128
INT Yes -32767 to 32768
DINT Yes -2147483647 to 2147483648
USINT Yes 0 to 255
UINT Yes 0 to 65535
UDINT Yes 0 to 4294967295
REAL No

- 716 -
STRING No

Control tag for redundant equipment


If the equipment is configured with two IP addresses, the Supervisor is able to control / display the active
connection using a variable. To configure such a variable in the Supervisor you use the following syntax, spe-
cified in the extended attribute.
EIP#EquipmentName#ConnectionIndex

l EIP - The key that indicates it is a variable with an Ethernet/IP source.


l EquipmentName - The equipment name from which the variable gets its value as defined in the Ether-
NetIP.ini
l ConnectionIndex - The connection index.
l 0 - Use IpAddress1
l 1 - Use IpAddress2

The variable value reflects which connection is in use and can be used to force the use of one connection or
the other.

- 717 -
Ethernet/IP Data Acquisition Driver Add-on Traces
Information regarding the Ethernet/IP add-on activity is logged in the traces and displayed in the Event
Viewer with messages starting with EtherNet/IP. The following messages can be displayed.
Message Cause
EtherNet/IP - Unable to read dongle. Error 12. The Supervisor has been unable to detect a
dongle and is running in demonstration mode.
The driver will run for one hour.
EtherNet/IP – No license found on the protection key The Ethernet/IP option is not coded in the
dongle. The driver will run for one hour (as in
demonstration mode).
EtherNet/IP – Failed to initialize the stack. Error 66 Invalid local IP address
EtherNet/IP – <DeviceName> (<IP> <Slot> <Port>) Error Device connection error.
<Value> on request 33 = Time out on the request.
74 = Length of response message too long.
Greater than 511 bytes.
58 = TCP network error. Cannot connect to
<DeviceName>. Check connectivity using ping.
EtherNet/IP - <DeviceName> ArrayTagName[index_ Tagname error.
min..Index_max] Error <Value> 0x4 = Invalid TagName. A syntax error was
OR detected decoding the Request Path.
EtherNet/IP - <DeviceName> TagName Response Error 0x5 = Invalid TagName. Request Path des-
<Value. [VarName] tination unknown. Probably instance number is
missing in the addressing.
0x6 = Insufficient Packet Space. Not enough
room in the response buffer for all the data.
0x13 = Insufficient Request Data. Data too
short for expected parameters.
0x26 = The Request Path Size received was
shorter or longer than expected.
0xFF = General Error. Access beyond end of
the object.

Additional traces can be triggered using the SCADA Basic instruction TRACE as follows.
TRACE(Mode, ManagerId, HexFlag);

l Mode - Turn the additional trace on or off


l 1 - On
l 0 - Off
l ManagerId - The identifier of the Ethernet/IP add-on manager. Set to 11 if it is the only add-on in use.
l HexFlag - Hexadecimal combination flag
l 001 - To view cyclic errors.

Example of use of SCADA Basic TRACE instruction


TRACE(1,11,”001”); ‘Turn on all additional trace
TRACE(0,11,”001”); ‘Turn off all traces.

- 718 -
Ethernet/IP Example
This example explains how to access the variable ANA_IN_00 which is IUINT format and in the global defin-
ition of a Control logic PLC. Show picture

Configuration file

l The CPU is in slot 1 and the EtherNET/IP coupler is in slot 2.


l The cable on the coupler is plugged into the physical port 1.
l The IP address of the EtherNet/IP coupler is 192.168.0.31.
l The IP address of the Supervisor's host PC is 192.168.0.10.

This requires the following settings in the EthernetIP.ini configuration file.


[TaskParameters]
AttributeNumber = 4
LocalIpAddress = 192.168.0.10
nbEquipments = 1
nbPollingGroups = 1

[PollingGroup1]
Name = Fast
RefreshRateInSec = 1

[Equipment1]
Name = EqtTest
IpAddress1 = 192.168.0.31
Port1 = 1
Slot1 = 1
TimeOutInSec = 2

Variable definition
To access the variable ANA_IN_00, which is IUINT format, you must use a register variable. The variable is
configured with the following string in its extended attribute 4 (as specified in the .ini file AttributeNumber =
4). Show picture

- 719 -
SNMP Agent add-on

- 720 -
SNMP Agent Add-on Overview
The SNMP Agent add-on allows you to make the Supervisor’s data available to third party SNMP Managers.
It is designed as an agent extension for the Microsoft Windows SNMP service and supports SNMP v1, v2 and
v2c.
The SNMP Agent add-on can:

l Expose the value of I/O and internal variables (scope Shared and Local station) as SNMP data.
l Send traps.
l Create and maintain an up-to-date MIB file comprising the list of exposed data.

The add-on fulfils the following two requirements:

l Expose system variables via SNMP so that standard IT monitoring tools can obtain information about
how the Supervisor’s main components are behaving and report any major change: Start, stop, net-
work connection states, database connection states…,
l Use the Supervisor as an SNMP gateway between automation devices and SNMP-capable enterprise
systems.

There are no configuration dialog's specific to the SNMP Agent add-on. At the time of writing, it uses a com-
bination of text files (.dat) and standard features of the Supervisor for configuration. The add-on auto-
matically generates a MIB file containing the OID's of variables that are configured as exposed to SNMP.
The SNMP Agent add-on is licensed and available on order. Please contact your local reseller for
more information.

- 721 -
Installation and Configuration of the SNMP Agent Add-on
The Supervisor's SNMP Agent add-on comprises of two dll files that are installed in the Supervisor's BIN
folder as part of the installation. The files are named:

l svmgrSNMPAgent.dll
l svSNMPAgent.dll

The file named svmgrSNMPAgent.dll was developed using the Supervisor's SV Manager Toolkit. In order for
the Supervisor to load the add-on at startup, a text file USRMGR.DAT must also be added to the BIN folder.
The file must contain the following lines.
[USRMGR\svmgragent]
DLL=svmgrSNMPAgent.dll

SNMP Agent Add-on configuration file


The add-on is configured using a file called SNMPAgent.ini which must be created in the PER folder of the
Supervisor's project. The file has the following structure.
[TaskParameters]
AttributeNumber = 8
SnapshotPeriod = 400
BrowsingLevel = 10
NbTrapFormat = 1

[Generic1]
Params = TriggerOid#TimeStamp#Description#AlarmLevel#TextAttr03#TextAttr12

l [TaskParameters]
l AttributeNumber - A variable's text extended attribute that is used to identify the corresponding
variable as being exposed via SNMP. A number from 3 to 16. Defaults to 16.
l SnapshotPeriod - The period in milliseconds at which the task refreshes the shared memory and
hence the variable values that are exposed to SNMP. A number representing the number of mil-
liseconds. Default to 500 (in milliseconds).
l BrowsingLevel - The variable browsing level that identifies it as being exposed via SNMP. A num-
ber from 1 to 29. If omitted a default of 99 is used making no variable eligible based on the
browsing level criteria.
l NbTrapFormat - The number of generic trap formats than can be used in the application. A num-
ber. If omitted a default of 0 is used (no generic trap).
l [GenericX] - Where X is the trap format number.
l Params - The list of parameters attached to the generic trap. The maximum number of para-
meters cannot exceed 18. Any parameters above 18 are discarded. See below for a table of the
supported parameters, and examples.

Generic trap parameters


Key OID suffix Description
TriggerOID 1 OID of the variable that triggers the trap
Time stamp at which the trap occurred
TimeStamp 2
Format dd/mm/yyyy hh:nn:ss.xxxx
Description 3 Description of the trigger variable*
AlarmLevel 4 Alarm level of the trigger variable
TextAttr03 5 Text attribute 03 of the trigger variable*
TextAttr04 6 Text attribute 04 of the trigger variable*
TextAttr05 7 Text attribute 05 of the trigger variable*
TextAttr06 8 Text attribute 06 of the trigger variable*
TextAttr07 9 Text attribute 07 of the trigger variable*
TextAttr08 10 Text attribute 08 of the trigger variable*
TextAttr09 11 Text attribute 09 of the trigger variable*
TextAttr10 12 Text attribute 10 of the trigger variable*

- 722 -
TextAttr11 13 Text attribute 11 of the trigger variable*
TextAttr12 14 Text attribute 12 of the trigger variable*
TextAttr13 15 Text attribute 13 of the trigger variable*
TextAttr14 16 Text attribute 14 of the trigger variable*
TextAttr15 17 Text attribute 15 of the trigger variable*
TextAttr16 18 Text attribute 16 of the trigger variable*
* Text attribute value and description must not contain the # or any accentuated characters.

Example1: TriggerOid#TimeStamp#TextAttr12
Example2: TriggerOid#TimeStamp#Description#AlarmLevel#TextAttr03#TextAttr04

- 723 -
Configuring the Supervisor's Variables Exposed by the SNMP Agent Add-on
There are two methods by which a variable can be exposed by the SNMP Agent add-on.

By Browse Level
Variables whose Browsing Level property match that configured in SNMP Agent Add-on configuration file.
Show picture
If the variable is an alarm its transitions are automatically sent as traps.

By Extended Attribute
Variables whose extended attribute number, as configured in the SNMP Agent Add-on configuration file, con-
tains either of the following text.

l SNMPAgent# - Expose the variable via SNMP making it available for reading by third-party SNMP Man-
agers.
l SNMPAgent#Trap - Expose the variable as an SNMP Trap.
l SNMPAgent#Trap#GenericX - Expose the variable as an SNMP Generic Trap. The format of the item
linked to the trap, corresponds to the parameters defined for GenericX.

MIB file generation


The SNMP Agent add-on automatically generates a MIB file comprising the list of data exposed as SNMP
items. The MIB file is named after the Supervisor’s project name <Project Name>-V2-MIB and is located in
the project's PER directory.
The MIB file includes both numerical OIDs and symbolic names (corresponding to variable names).
To ensure consistency, once an OID has been used for a particular variable it is never used for another one
even if the original is no longer exposed as an SNMP item or is deleted.

- 724 -
Deploying the SNMP Agent Add-on in Windows

The deployment process requires Administrator privileges.

Registry configuration for the Supervisor's SNMP Agent add-on


The SNMP Agent add-on must be registered as an agent extension before the Windows SNMP service can
load it.
This is achieved by adding specific keys to the Windows Registry. These keys are described in the detailed
documentation supplied with the add-on.

Checking that the Microsoft Windows SNMP Agent is installed and configuring the Community
String
The following example is for Windows 7. Other versions of Windows, particularly Windows Server, may be
different (SNMP Agent role).

1. Open the Windows Service Control Manager. Control Panel.Administrative tools.Services.


2. Check that the SNMP Service is present and running. If it is not present, it must be added using Con-
trol Panel.Programs and features.Turn Windows features on or off.
3. Configure the Community String if required.
a. Open the SNMP Service configuration by double clicking the entry in the Services dialog.
b. Select the Security tab.
c. Click the accepted community string Add button and enter your string. Show picture

d. Click OK to confirm the configuration and then close the Services dialog.

- 725 -
KNX data acquisition driver add-on

- 726 -
KNX Data Acquisition Driver Add-on Overview
The KNX add-on is a data acquisition driver designed to communicate with KNX devices via KNX/IP inter-
faces using group data access.
The KNX add-on can:

l Receive unsolicited data changes


l Send commands
l Poll data

There are no configuration dialog's specific to the KNX Data Acquisition Driver. At the time of writing, it uses
a combination of text files (.dat) and standard features of the Supervisor for configuration.
The Falcon Runtime v2.2 must be installed, following the manufacturer's instructions, on the host
PC. It is available free of charge from the KNX web site https://my.knx.org/en/downloads/falcon.
You will need to register to have access to the Falcon API download page.

The KNX Data Acquisition Driver add-on is licensed and available on order. Please contact your local
reseller for more information.

- 727 -
Installation and Configuration of the KNX Data Acquisition Driver Add-on
The Supervisor's KNX Data Acquisition Driver add-on comprises of a single dll file that must be copied to the
Supervisor's BIN folder. The file is named:

l usrmgrFalconKNX.dll

The file named usrmgrFalconKNX.dll was developed using the Supervisor's SV Manager Toolkit. In order for
the Supervisor to load the add-on at startup, a text file USRMGR.DAT must also be added to the BIN folder.
The file must contain the following lines.
[USRMGR\usrmgrfalcon]
DLL=usrmgrFalconKNX.dll

KNX Data Acquisition Driver add-on configuration file


The KNX Data Acquisition Driver add-on is configured using a file called KNXInterfaces.ini which must be cre-
ated in the PER folder of the Supervisor's project. The file has the following structure.
[TaskParameters]
AttributeNumber = 16
AssociationName =
NbInterfaces = 1
TimeOutInSec = 10
ReconnectionPeriod = 60

[Interface1]
IpAddress = 192.168.1.1
Port = 3671
NATmode = off
UseUSB = 0
SleepInterval = 200
MaxQueueSWrite = 10
InitialReadItemsNumber = 200

[InterfaceUSB]
ConnectionString = Device=0;Path=\\\\?\\hid#vid_0e77&pid_0112#8&9d3fd06&0&0000#{4d1e55b

l [TaskParameters]
l AttributeNumber - A variable's extended text attribute that is used to identify the corresponding
variable as being acquired from a KNX interface. A number from 3 to 16. Defaults to 16.
l AssociationName - The name of the data acquisition server's association if used in a redundant
architecture. The task is only activated on the active server. A string. Defaults to an empty
string (no association).
l NbInterfaces - The number of interfaces the task must communicate with. A number from 1 to
16. Defaults to 0.
l TimeOutInSec - The delay in seconds before a read or write request is timed out. A number.
Defaults to 5 (seconds).
l ReconnectionPeriod - The period in seconds after which the driver will attempt to reconnect to a
failed, or in error, interface. A number. Defaults to 30 (seconds).
l InitialReadItemsNumber - Specify the maximum number of items that are refresh at a given
time on project start-up. The driver refreshes all the items flagged as R at the rate of
TimeOutInSec*30 seconds until all the items are read. A number. If omitted. Defaults to 200.
l [InterfaceN] - The properties for interface number N. N is a number from 1 to NbInterfaces. The val-
ues must be contiguous.
l Name - The interface name for the KNX /IP interface. A string. If omitted the default is Inter-
faceN as defined in [InterfaceN].
l IpAddress - The IP address of the KNX/IP interface. A string. If omitted 127.0.0.1 is used.
l Port - The port number used to communicate with the interface. A number. If omitted 3671 is
used.
l NATmode - Specify if the interface supports NAT mode. A string with only two possible values,
ON or OFF. Defaults to OFF.

- 728 -
l UseUSB - Specify if a USB connection is to be used to connect to the interface. A number, 0 =
USB is not used, 1 = USB is used. Defaults to 0.
l SleepInterval - The silence in milliseconds between consecutive requests to a device. A number.
Defaults to 100.
l MaxQueueWrite - The maximum number of write requests that can be queued for all KNX points.
Defaults to 5.
l [InterfaceUSB] - The definition of the USB interface if required.
l ConnectionString - The connection string used for the USB interface. Please refer to the man-
ufacturer's documentation. Defaults to an empty string.

- 729 -
Configuration of the Supervisor's Variables for the KNX Data Acquisition Driver
Add-on
To define a variable as having a KNX source you have to enter its KNX address in the extended attribute, as
specified in the KNXInterfaces.ini file. It takes the form of a string with the following syntax.
KNX#InterfaceName#GroupAddress#Format#Access

l KNX - The key that indicates it is a variable with a KNX source.


l InterfaceName - The name of the KNX/IP interface from which the KNX point is accessible as defined
in the KNXInterfaces.ini file, Name parameter.
l GroupAddress - The KNX group address. All three possible addressing types available within KNX are
supported.
l 3 level addressing format: x/y/z
l 2 level addressing format: x/y
l Free addressing format: x
l Format - The KNX DPT format of the point. See table below.
l Access - The access method. Specifies if the variable need to be read at start up, or cyclically, and / or
if the variable can be written. In all cases, the variable is also refreshed when it changes.
l W - The variable can be written/controlled. If used this must be the first character in the string.
l R - The variable is initialized at start-up.
l Rx - The variable is read cyclically every x seconds.
See examples below.

Format table
Scaling pos-
Format sible Notes
B1 No Configuring a variable min and max does not trigger any scaling.
F16 No Configuring a variable min and max does not trigger any scaling.
F32 No Configuring a variable min and max does not trigger any scaling.
N2 No Configuring a variable min and max does not trigger any scaling.
N8 No Configuring a variable min and max does not trigger any scaling.
To enable scaling, the DPT range defined in the KNX document must be
entered in the min & max of the variable definition.
For example:
U8 Yes
DPT_Scaling - variable min = 0, variable max = 100
If you do not want to apply scaling then the variable min and max should be 0
and 255 respectively
To enable scaling, the DPT range defined in the KNX document must be
entered in the min & max of the variable definition.
For example:
U16 Yes
DPT_TimePeriod10Msec - variable min = 0, variable max = 655,35
If you do not want to apply scaling then the variable min and max should be 0
and 65535 respectively
To enable scaling, the DPT range defined in the KNX document must be
entered in the min & max of the variable definition.
At present there is no DPT of U32 format that perform scaling but you could
U32 Yes
put variable min = 0, variable max = 200
If you do not want to apply scaling then the variable min and max should be 0
and 4294967295 respectively.
V8 No Variable min and max specify does not trigger any scaling
To enable scaling, the DPT range defined in the KNX document must be
entered in the min & max of the variable definition.
For example:
V16 Yes
DPT_Percent_V16 - variable min -327,68, variable max 327,67
If you do not want to apply scaling then the variable min and max should be -
32768 and 32768 respectively.

- 730 -
V32 No Configuring a variable min and max does not trigger any scaling.
r2U6 No Configuring a variable min and max does not trigger any scaling.

Access method examples


#WR - The variable can be written from the Supervisor and is read once at start-up. The variable is also
refreshed on change.
#R60 - The variable cannot be written but is read every minute. The variable is also refreshed on change.
# - The variable is only refreshed on change.
#R60W - Invalid syntax. The W must be placed first. The correct syntax would be #WR60.

- 731 -
KNX Data Acquisition Driver Add-on Traces
Information regarding the KNX add-on are logged in the traces and displayed in the Event Viewer with lines
starting with usrmgrFalconKNX.
Additional traces can be triggered using the SCADA Basic instruction TRACE as follows.
TRACE(Mode, ManagerID, HexFlag);

l Mode - Turn the additional trace on or off


l 1 - On
l 0 - Off
l ManagerID - The identifier of the KNX add-on task. Set to 11 if KNX is the only add-on in use.
l HexFlag - Hexadecimal combination flag
l 001 - To trace unsolicited traffic
l 400 - To trace read request
l 800 - To trace write request

Example of use of SCADA Basic TRACE instruction


TRACE(1,11,”C00”); ‘Turn on additional trace for read and write
TRACE(0,11,”C01”); ‘Turn off all traces.

- 732 -
Dynamic Busbar Coloring

- 733 -
Dynamic Busbar Coloring Overview
The aim of this add-on is to calculate the distribution of voltages across an electrical grid that may not be
fully equipped with voltage sensors. It allows visualizing the presence or absence of voltage on all bus-bar
and feeders, a feature also known as Dynamic Busbar Coloring.
This set of functions is referred to as the Topology Engine (or just engine) in this help. The main functional
component of the Topology Engine is a program, svmgrTopology.dll, developed using the SV Manager
toolkit.
Dynamic Busbar Coloring gives the operator a quick overview of the state of a substation or other dis-
tribution network and shows, at a glance, whether any specific part of the substation (e.g. busbar segment)
is earthed, energized, or de-energized. This function helps operators to be informed about the current state
so that they can make proper decisions, especially in emergency situations.
During initialization, the engine reads the configuration file that defines the structure of the electrical net-
work, and builds, in memory, the list of variables required for the calculation of voltage distribution.
When any of these variables’ values change, the engine recalculates the distribution of voltages, and
updates the result in the Supervisor's variables used for logging, alarming and visualization.

- 734 -
Main concepts

- 735 -
Concepts
The Topology Engine uses 3 main concepts.

l Nodes,
l Switches,
l Transformers.

They are used to describe the network topology and are referred to as topology items.

Nodes
Nodes are the parts of the electrical network connected by switches and transformers. For example a node
can be an incoming source, a busbar, or an outgoing, feeder. The nodes can be of three types.

l Passive: The nodes those are not able to provide their own voltage level.
l Static: The nodes with a determinate voltage (e.g. Earth)
l Measured: For measured nodes it is possible to define steady sources such as generators or other
sources which are active up to a specified voltage level. The source can be set manually by user input
or coming from the field as a voltage measurement. As a consequence, measured nodes are able to
provide their own voltage level. Measured nodes are also called injection nodes.

The Topology Engine supports up to 8 discrete voltage levels, which can be interpreted in an arbitrary man-
ner, e.g. not associated with any particular voltage value (12 kV, 20 kV…). One of these levels is the earth
voltage level and another represents voltage absence. Each measured node is able to provide only one
voltage level that must be declared as its default injection value. If a node’s injection value is set to 0, the
node is passive. If node injection value is set to non-significant, the node will provide the uncertain value as
default injection. The node injection value can change at runtime.

Switches
Switches are any type of device able to open or close an electrical circuit with regards to voltage calculation
(breaker, isolator, disconnector, earthing switch…). The switching capability does not impact the Topology
Engine calculations. A switch can only be in one of the three following states.

l Position open,
l Position closed,
l Unknown position, also called uncertain, non-significant or NS.

A switch is always connected to two nodes.

Transformers
Transformers are devices that are able to modify the voltage level. They are characterized by an input
voltage level and an output voltage level. Like switches, transformers are always connected to two Nodes.
Unlike switches, transformers are directional devices.

- 736 -
Voltage Calculation Principles
To calculate the voltage distribution, the Topology Engine uses some rules. It is important to understand
them in order to create the correct configuration and to use the Dynamic Busbar Coloring. This topic
explains these rules and introduces notations.

Voltage levels
The Topology Engine supports 8 discrete voltage levels, noted V0, V1, V2, V3, V4, V5, V6 and V7:

l Levels V1 to V6 can be interpreted in an arbitrary manner. It is up to the Supervisor application


designer to associate voltage levels to the physical system voltages he is working on.
l It is assumed that V1<V2, V2<V3. For example:
l V1 can be interpreted as 220V,
l V2 as 0.4 kV,
l V3 as 10 kV,
l etc…
l V0 and V7 are special values, they are discussed in more detail later in this topic.
l Level V0 is reserved for the absence of voltage.
l Level V7 is reserved for earth.

Within the Topology Engine, voltage levels are coded as described in the following table.
Voltage level V7* V6 V5 V4 V3 V2 V1 V0**
Index in word [7] [6] [5] [4] [3] [2] [1] [0]
Voltage code 128 64 32 16 8 4 2 1
*V7 reserved for earth level.
**V0 reserved for voltage absence.
Values shown in the table are exactly the voltage codes, they are not RGB color values. This table
shows the colors used in the sample project.
Sometimes it is not be possible to determine the presence or absence of the voltage - typically in the case of
uncertain switch position. In such cases, the Topology Engine uses the uncertain voltages levels. Codes for
uncertain voltage levels are equal to codes of usual voltage levels multiplied by 256. The uncertain voltage
levels are notated V0’, V1’, V2’, V3’, V4’, V5’, V6’ and V7’.
Voltage level V7' V6' V5' V4' V3' V2' V1' V0'
Index in word [15] [14] [13] [12] [11] [10] [9] [8]
Voltage code 32768 16384 8192 4096 2048 1024 512 256

Voltage calculation
Voltages are always distributed from the measured nodes through switching devices and to the busbar
parts. So the voltage calculation always starts from the power sources, through transformers and closed
switches, to the connected busbar parts.

The earth - Voltage level V7


The earth is a very special case of voltage level. It should not be confused with the absence of voltage,
although in both cases the voltage sensor will indicate 0. Unlike the absence of voltage, the superposition of
earth and any other voltage is considered as a voltage conflict. In addition, the earth cannot pass through
transformers. This is why the earth voltage level is fixed to level V7, which is processed by the Topology
Engine in a particular way.

The absence of voltage - Voltage level V0


The level V0 is reserved for the absence of voltage. The Topology Engine processes it as any other voltage
level except that, when on a same node voltage absence (V0) and earth level (V7) are detected, the earth
level is given the priority. The voltage level output in such a situation is that the node is at the earth level.

- 737 -
How to use the Add-on in Your Project
This topic describes the steps you will have to follow in order to use the Dynamic Busbar Coloring add-on in
your own application. Each step is briefly described and includes references to subsequent sections where
installation and configuration are explained in detail.
The necessary entry point is the description of the network topology – a single line diagram is usually avail-
able and sufficient.
In addition, the following elements are necessary for using the add-on in your project.

l The dedicated configuration tool – It allows you to create the topology configuration file(s),
l The SH_ELEC and SH_ELEC_COLO libraries ,
l Your project.

In order to become familiar with the different configuration items, a sample project is available. It is a good
starting point before you go through the configuration and set-up of your own project.

Step 1 Preparatory work


Using the single line diagram identify the list of topology items, their properties, and their dependencies.
First identify the list of switches and transformers, then the nodes that are instrumented (with field vari-
ables), those that have a static value (earth, static input) and feeders.
Next complete the list with the nodes that are used to connect the devices (bus, connection between a switch
and a transformer, …)
Finally associate them with the required variables that may already exist in your project. If not, it is time to
define the variable hierarchy and branches.

Step 2 Configure the topology engine


Create the Topology Engine configuration file(s) in C folder of your project either manually or using the ded-
icated configuration tool. The files required to run the Configuration Tool must be copied in the BIN directory
of the Supervisor.
Creating and maintaining a Topology Engine configuration using the Configuration Tool requires that you
have the SH_ELEC_COLO library available.
See The configuration tool for more information on the configuration tool.

Step 3 Configure the variables


The configuration tool is able to create all configuration items required for the Topology Engine to calculate
and maintain data related to dynamic coloring. This is mainly sets of internal variables used for calculation
and graphic animations. These variables are generated based on templates and instances automatically cre-
ated by the configuration tool. It is up to you to use the Application Architect to modify the templates and
add the extra variables necessary to handle data coming from the field (switch positions, injection…) or to
ensure that the necessary variables are in the project.

Step 4 Install the Topology Engine


To activate the svmgrTopology.dll, add the following lines in the file BIN\Usrmgr.dat :
[USRMGR\svmgrTopology]
DLL=svmgrTopology.dll

Step 5 First tests


This is all that is required to run the Topology Engine regardless of anything else in the project.
Launch the Supervisor with your own project. Using the Event viewer, make sure the svmgrTopology.dll and
your configuration are loaded successfully. See Traces for more information about the messages and errors
raised by the Topology Engine Runtime.
Once any loading errors are fixed, it is time to develop the mimics and symbols to visualize voltage levels
across your network.

Step 6 Mimic design

- 738 -
See Using node voltages in the application for more information.

- 739 -
Topology Engine Settings and .ini File
The Topology Engine .ini file is named Topology.ini and is located in C directory of your project. This file
allows you to change some of the Topology Engine settings.
[Config]
ServerVarName=System.Association.Localhost
LogMessageLevel=2
GenerateReport=1
NodeNSvalue=previous
SwitchNSvalue=previous
NodeProbAsReal=1
SwitchProbAsReal=0
IgnoreProbVsRealConflict=0
The Topology.ini file is optional. In case of absence, the Topology Engine will use default settings.

The ServerVarName setting


It specifies the name of a bit variable which will enable the engine to run or not. If its value is 1, then the
Topology Engine output is sent to the variables. If its value is 0, then the Topology Engine output is not sent
to the variables.
If no variable is specified, then the Topology Engine output is sent to the variables. If the specified variable
doesn’t exist, then the Topology Engine output is not sent to the variables.
For example, to support an architecture where calculations are to be done only on the active server of an
association named <AssocName>, this setting could be set to “SYSTEM.<AssocName>.LOCALHOST”.

The LogMessageLevel setting


Specifies the level of log messages in the Event Viewer. There are 4 levels.
0= Error
1= Warning
2= Info
3= Debug.
Each level includes messages from any sub-ordinate levels, e.g. Error messages are also logged if level is
Warning, Info or Debug.
The default value is 2 (Log Level: INFO). With this level, the Topology Engine will log the minimum neces-
sary information associated with the loading its configuration and detecting major events.
Sometimes, due to an error in the topology configuration, or due to lack of corresponding variables, the topo-
logy calculation results may not be as expected. In such a case, it is useful to set the log level to 3 (Log
Level: DEBUG). However, particularly with a high number of topology items, there will be a large volume of
log messages.

The NodeNSValue setting


Specifies the behavior of the Topology Engine when a Node value becomes NS. There are 3 values.
Previous - Keeps the previous value and sets it as uncertain
Default - Uses the “Default Injection” value as uncertain
V0 - Uses the V0 level (or Absence of Voltage).
The default value is Previous.

The SwitchNSValue setting


Specifies the behavior of the Topology Engine when a Switch position value becomes NS. There are 4 val-
ues:
Previous - Keeps the previous value and sets it as uncertain.
Default - Uses the “Default Position” value as uncertain.
Close - Considers the switch as probably open.
Open - Considers the switch as probably close.
The default value is Previous.

- 740 -
The NodeProbAsReal setting
Specifies the behavior of the Topology Engine when a Node is in an uncertain state. The default value is 0
(Uncertain values as Significant: NO). With this value the Topology Engine will use both uncertain and sig-
nificant values.
If you want to ignore Node uncertain values, you must specify 1 (Uncertain values as Significant: YES). For
example, if a calculation gives a node at voltage level V2’, then the result is output as voltage level V2.

The SwitchProbAsReal setting


It specifies the behavior of the Topology Engine when a Switch is in an uncertain state. The default value is 0
(Uncertain values as Significant: NO). With this value the Topology Engine will use both uncertain and sig-
nificant values.
If you want to ignore Switch uncertain values, you must specify 1 (Uncertain values as Significant: YES).

The IgnoreProbVsRealConflict setting


It specifies the behavior of the Topology Engine when there are both Significant and Uncertain Voltage on a
Node. The default value is 0 (Ignore Uncertain Voltage in case of Significant Voltage: NO). With this value
the Topology Engine will use both uncertain and significant values in every case.
If you want to ignore uncertain values when there is a significant value on a node, you must specify 1
(Ignore Uncertain Voltage in case of Significant Voltage: YES). In that case, uncertain values will be kept
only if there is no significant voltage on the node. For example, if a calculation gives a node at voltage level
(V1+V2’), then the result is output as voltage level V1.

- 741 -
The Supervisor’s Variables
When the Topology Engine runs:

l It reads input information - switches positions and nodes injections - from the Supervisor's variables,
l It writes calculation results - nodes voltages - to the Supervisor's variables.

To ensure correct calculations by the Topology Engine, and be able to use its results, all the variables
declared in its configuration must exist and be configured correctly.

l Node Injection Variables,


l Node Voltage Variables,
l Switche Position Variables.

Templates from the application Architect library


The library SH_ELEC_COLO is provided with the Topology Engine. It contains a number of templates which
correspond to the different topology items. Show picture

These templates can be used to automatically generate the variables and their configuration.
Node
Variable Mandatory I/O Data Type Remark
Voltage Yes I Register Logical output level. This variable name
can be modified through the configuration
file.
Injection No O Register Logical input level. This variable name can
be modified through the configuration file.
VoltageConflict No O Bit Set to 1 when there is a voltage conflict
(e.g.: V1+V2)
PotentialVoltageConflict No O Bit Set to 1 when there is a potential voltage
conflict (e.g.: V1+V2’ or V1’+V2’)
MeasuredInjection No I Register Real injection in Volt when Node is of type
“Measured”. This variable is used by the
symbols provided with the library.
ManualInjection No I Register Manual injection value when Node is of
type “Measured” with a manual input. This
variable is used by the symbols provided
with the library.

Switch
Variable Mandatory I/O Data Remark
Type
Position Yes I Bit Position of the Switch. 0 for open 1 for
close. The variable name can be mod-
ified through the configuration file.
Upstream.Voltage No O Register Copy of the Voltage variable of the
upstream Node.
Upstream.VoltageConflict No O Bit Copy of the VoltageConflict variable of
the upstream Node.
Upstream.PotentialVoltageConflict No O Bit Copy of the PotentialVoltageConflict vari-
able of the upstream Node.
Downstream.Voltage No O Register Copy of the Voltage variable of the down-

- 742 -
stream Node.
Downstream.VoltageConflict No O Bit Copy of the VoltageConflict variable of
the downstream Node.
Downstream.PotentialVoltageConflict No O Bit Copy of the PotentialVoltageConflict vari-
able of the downstream Node.

Transformer
Data
Variable Mandatory I/O Remark
Type
Copy of the Voltage variable of the
Upstream.Voltage No O Register
upstream Node.
Copy of the VoltageConflict variable of
Upstream.VoltageConflict No O Bit
the upstream Node.
Copy of the PotentialVoltageConflict vari-
Upstream.PotentialVoltageConflict No O Bit
able of the upstream Node.
Copy of the Voltage variable of the down-
Downstream.Voltage No O Register
stream Node.
Copy of the VoltageConflict variable of
Downstream.VoltageConflict No O Bit
the downstream Node.
Copy of the PotentialVoltageConflict vari-
Downstream.PotentialVoltageConflict No O Bit
able of the downstream Node.

Link with field variables


The Topology Engine includes another function which links field variables to Topology Engine Variables. Two
types of variable are identified.

l Injection variables
l Switch position Variables

This feature enables the use of templates and graphical symbols provided in the SH_ELEC_COLO library
without any modification, and only by editing the configuration file.

Injection variables
To make the link between a field injection variable and the Topology Engine variable, it is possible to use the
properties Field Injection Variable and Field Injection Scale described in Nodes. At start-up, the Topology
Engine automatically subscribes to the field variable and, according to the variable type, performs different
actions.
If it is a bit variable, then if its value is 0, the Topology Engine uses the voltage absence level (V0), and if
the value is 1, it uses the Default Voltage Level of the node.
If it is a register variable, then according to the scale and the Voltages configuration (see Voltages), the
Topology Engine performs 2 actions.

l Convert the value into a voltage level (V0 to V6)


l Copy the value and quality into the MeasuredInjection variable (in Volts)

Switch position variables


To make the link between a field switch position variable and the Topology Engine variable, it is possible to
use the properties Field Position Variable, Field Open Position Value and Field Close Position Value described
in Switches.
At start-up, the Topology Engine automatically subscribes to the field variable and each time there is a
change, it compares the new value to both Field Open Position Value and Field Close Position Value to set the
potentially new position. If the value does not correspond to any of them, the switch position is set to NS.
When using the SH_ELEC_COLO library without any modification, switch positions are animated
based on calculated internal variables whose values are normalized (to accommodate normal pos-
ition, inversions of value...). Using these internal variables for controlling switch positions is inef-

- 743 -
fective with communicating switches because variables for switch control have to be separated from
these internal variables for practical reasons (data mapping, typing...). It is recommended to cus-
tomize the symbols, at least for the switch control buttons.

- 744 -
Using the Node voltages in the Application
The Topology Engine writes the calculation results, the nodes voltages, into the variables declared in its con-
figuration as the Node Voltage Variables. It is up to the application designer to take advantage of these val-
ues for logging, alarming and visualization.

Graphic animations
On the graphic side it is advisable to use these values in generic symbols using the appropriate animations.
The association of the voltage levels with the desired colors is not enforced by the Topology Engine and must
be decided by the application designer. For this purpose, the Color on register value and Image on register
value animations can be used with the set of desired colors.
An example of a possible color animation configuration follows.
Voltage Value Color
Absence (V0) 1
V1 2
Conflict: V0+V1 3
V2 4
Conflict: V0+V2 5
Conflict: V1+V2 6
Conflict: V0+V1+V2 7
V3 8
Conflict: V0+V3 9
Conflict: V1+V3 10
Conflict: V0+V1+V3 11
Conflict: V2+V3 12
Conflict: V0+V2+V3 13
Conflict: V1+V2+V3 14
Conflict: V0+V1+V2+V3 15
V4 16
Unavailable NS

If you need to display more voltage colors, you can use several instances of this animation.
It is up to the application designer to give priority in displaying voltage conflicts or supposed voltage
values. Safety constraints normally lead to giving priority to display and highlight uncertainty
instead of supposed values, but end-user needs might require uncertainty to be ignored.
It is also possible to use Image on register value or Visibility on register value animations.

Library
The SH_ELEC_COLO library provides several symbols based on the variables set of the templates. They use
Visibility on register value animations to display different images.
The following colors are used in the library.
Voltage Color
V0 or V0’ Gray
V1 or V1’ Blue
V2 or V2’ Cyan
V3 or V3’ Green
V4 or V4’ Orange

- 745 -
V5 or V5’ Purple
V6 or V6’ Yellow
V7 or V7’ White
No communication Pink
Conflict Blinking red
Potential conflict Fixed red

Logging and alarming


It is possible to customize the templates provided in the library to add alarms and event logging. One basic
modification that can be done is to add an expression to include a bit variable indicating voltage absence.
This will be calculated based on the VOLTAGE Variable. As it represent a logical level and not the real
voltage level, the expression will be “Voltage <= 1”. The resulting voltage absence variable is flagged to be
an alarm.

- 746 -
Networked Application
Within an architecture having networked stations and distributed processing, the following conditions must
be fulfilled.

l The Topology Engine shall be active only on a single station at a time,


l This active station shall be the active producer of the Topology Engine variables

It is then possible to either install the Topology Engine on a single station, or on several redundant servers.
In the latter case, the setting ServerVarName of the Topology.ini file must have a valid value. See Server-
VarName for more information.

- 747 -
The configuration tool

- 748 -
Configuration Tool Overview
As part of the Add-on, a configuration tool is provided with the Topology Engine. the name of the executable
is ConfigTool.exe. The configuration tool allows you to define all the configuration items from the electrical
topology viewpoint and creates the 2 main configuration files.

l TopoConfig.xml: The configuration file of the Topology Engine


l TopoImport.xml: An XML Generic Import file to instantiate the necessary templates available in the
SH_ELEC_COLO library. Show picture

Creating or loading a project


The tool starts with a new empty project. You can create a new project by clicking the New project menu but-
ton. To load an existing project, click the Load project menu button. You will be asked to select your project
folder. Show picture

- 749 -
Topology Items
All the Topology Engine items can be created with the configuration tool. The name of each item is uniquely
assigned by the configuration tool and cannot be changed. All the other properties of the items can be
edited. All items configuration dialogs have 3 buttons.

l Reset - Undo last changes and restore default values for the item,
l Apply - Apply the changes immediately (new start point for the Reset button)
l Delete - Delete the selected item

Any changes you make are automatically applied whenever you select another item.

Voltages Configuration
The Voltages Configuration is accessed from the associated button in the menu bar. For each Voltage Level,
it is possible to specify its bounds. Voltage levels must be ordered from the lowest (V0) to the highest (V6).
Their bounds cannot cross one another (V1 max must be lower or equal to V2 min). Show picture

Networks
The first item to create is a Network. To insert a new Network, click the Add Network menu button. The pro-
ject must have at least one network. Networks are used to split an electrical system into a logical pieces.
You can for example create one Network per mimic you need to design. The other types of items (nodes,
switches…) can be linked together only if they belong to the same network.
The only property of a Network is its label. This label is used in the tree on the left side of the configuration
tool. Show picture

Nodes
To insert a new Node, select a Network and click the Add Node menu button. There are 4 types of Node.

l Passive,
l Static,
l Measured – Manual,
l Measured – Communicating.

The common properties are as follows.

l Label - The name used in the tree on the left side,


l Branch - The branch used to instantiate the corresponding template,
l Network - The Network that the Node belongs to,

- 750 -
l Default Injection - The default voltage level of the Node,
l Injection Type - The type of the Node.

For Passive and Static Nodes, no additional properties are required. Show picture

For Measured – Manual Nodes, the additional property Injection Variable Scale is required. It is possible to
specify the scale for of the voltage value you set (1V, 10V, 100V or 1kV). Show picture

Finally, for Measured – Communication Nodes, two additional properties are required.

l Injection Variable Scale, which works as for Measured – Manual Nodes,


l Injection Variable Name, to specify the field variable that the Node is linked to. This variable can be a
Bit or a Register.

Show picture

Switches
To insert a new Switch, select a network and click the Add Switch menu button.
There are 2 types of Switch.

l Manual,
l Communicating.

The common properties are as follows.

- 751 -
l Label - The name used in the tree at the left side of the tool,
l Branch - The branch used to instantiate the corresponding template,
l Network - The Network that the Switch belongs to,
l Upstream Node - The first Node that the Switch is linked to,
l Downstream Node - The second Node that the Switch is linked to,
l Default Position Value - The default position of the Switch,
l Switch Type - The type of the Switch.

According to the symbols library and as usual on single line diagrams.

l The Upstream Node corresponds to the Node at the top or left side of the Switch in the diagram,
l The Downstream Node corresponds to the Node at the bottom or right side of the Switch in the dia-
gram.

For Manual Switches, no additional properties are required. Show picture

For Communicating Switches, the additional property Position Variable Name is required. It is used to spe-
cify the field variable that the Switch is linked to. This variable can be a Bit or a Register. You also have to
specify the values corresponding to the Open and the Close positions. Show picture

Transformers
To insert a new Transformer, select a network and click the Add Transformer menu button.
Transformers’ properties are as follows.

l Label - The name used in the tree at the left side of the tool,
l Branch - The branch used to instantiate the corresponding template,
l Network - The Network the Transformer belongs to,
l Upstream Node - The first Node that the Transformer is linked to,
l Upstream Voltage - The supposed Voltage level of the first Node,
l Downstream Node - The second Node that the Transformer is linked to,
l Downstream Voltage - The supposed Voltage level of the second Node.

- 752 -
According to the symbols library, and as usual on single line diagrams, the Upstream Node corresponds to
the Node at the top or left side of the Transformer in the diagram. And the Downstream Node corresponds to
the Node at the bottom or right side of the Transformer in the diagram. Show picture

- 753 -
Configuration Errors
Typical configuration errors are as follows.

l On Nodes
l No Communication Variable set for type Measured – Communication
l On Switches
l No Communication Variable set for type Communication
l Same Upstream and Downstream Nodes
l On Transformers
l Same Upstream and Downstream Nodes
l Unknown, absence of voltage or earth voltage level selected
l On Voltages Configuration
l Voltages levels with overlapping min/max boundaries
l Voltages levels not correctly ordered

The items having errors are displayed in red in the tree on the left side of the configuration tool. The errors
concerning the Voltages Configuration are not displayed, but a warning is displayed when they are validated.
Generation of the configuration files is prevented if one or more configuration error exists. Show picture

- 754 -
Saving and Generating the Topology Engine Configuration Files
The one click method
You can export the configuration to the Supervisor by using the menu button Export configuration. A console
prompt will be opened while exporting and closed when export is completed. The Supervisor must be run-
ning for the export to succeed.

The manual method


To save a project click the Save Project menu button. The files TopoConfig.xml and TopoImport.xml will be
created or updated in the C project folder. In the case of a new project, a dialog box prompts you to select
the project folder.

1. From the Supervisor select the menu command Configure.Smart Generators… to open the Smart Gen-
erator.
2. Click New Import, give your import a name such as TopoImport and select the file to import, TopoIn-
port.xml, from the C directory of your project. Click the Finish button to complete the import. If you
are updating an existing configuration, select the existing import and click the Synchronize button.
Show picture

3. Return to the Supervisor's workspace and select the menu command Configure.Application Architect…
to open the Application Architect. Show picture

4. In the Architect select the menu command Task.Generate to generate the configuration.
5. Restart the Supervisor so that the Topology Engine loads its configuration.
6. Check successful loading. Use the Supervisor's Event Viewer to make sure the configuration is loaded
successfully by the svmgrTopology.dll. See Traces for more information.

- 755 -
Topology Engine Traces
The Topology Engine Add-on takes advantage of the Supervisor's diagnostic traces to log messages at run-
time. The messages appear in the Supervisor's Event Viewer.
The log messages have the following format:
.....,Topology Engine,<Log Level>,<The Subject>: <The Message>
Where:

l <Log Level> - Error / Warning / Info / Debug


l <The Subject> - Project / Setting / Config / Data
l <The Message> Is the text of the message

Messages issued by the Topology Engine are as follows.


Message Description
Topology EngineInfoProject: Load with demo Indicates the project will run in demo mode (license not
mode found). In demonstration mode the Topology Engine calculates
the voltage distribution for a period of 1 hour and then sets all
calculation results to Invalid.
Topology EngineInfoConfig: Configuration Indicates the configuration was loaded without detecting any
successfully loaded error.
Topology EngineInfoConfig: Start The Topology Engine has started its process and calculation
mechanisms.
Topology EngineInfoProject: Unable to read Indicates that the protection dongle could not found.
dongle, error 3
In addition error messages can also occur while loading configuration or at run-time. Most of the errors
described in the following table are configuration related, raised at loading time. In general they can be
fixed by checking and modifying the Topology Engine configuration. In all cases, the item or variable in
error is referenced in the message.
Error code Description
ERROR_ID_INVALID The item identifier is invalid. The item can be of type switch
transformer node or network.
ERROR_VARNAME_INVALID The variable name is invalid.
ERROR_INJECTION_INVALID The value of the injection at a node is invalid.
ERROR_INJECTION_NODEFAULT The Default injection value is missing on a Static node.
ERROR_POSITION_INVALID The value indicated for the switch position is invalid.
ERROR_POSITION_UNDEFINED The normal position of the switch is not defined.
ERROR_NODE_UNKNOWN An undefined node is referenced in the configuration item. For
example the upstream or downstream node of a switch (or
transformer) may be missing in the configuration.
ERROR_NODE_EXISTS 2 or more nodes are using the same identifier.
ERROR_NODE_USED The node is already referenced. This error is in particular
raised in the case of a switch where the upstream and down-
stream nodes are referencing the same node introducing an
undesired loop. The same can apply to a transformer.
ERROR_SWITCH_UNKNOWN The switch or transformer is referenced but undefined.
ERROR_SWITCH_EXISTS The switch or transformer is defined twice.
ERROR_CONFIG_NOTREAD The configuration file cannot be accessed. This issue is raised
if one or more configuration file is missing or if the file system
security prevents the Topology Run-time Engine from opening
them.
ERROR_CONFIG_INVALID The main configuration file format is invalid and cannot be
recognized.
ERROR_CONFIG_NOTWRITTEN The main configuration file cannot be saved.
ERROR_CONFIG_NOTSUBSCRIBED The Topology Engine Run-time failed to subscribe to its con-

- 756 -
figuration.
ERROR_SYSTEM_NOTSUBSCRIBED The Topology Engine Run-time failed to subscribe to Super-
visor system variables.
ERROR_VARIABLE_NOTEXIST The variable (as referenced in the Topology Engine con-
figuration) is missing in the Supervisor configuration.
ERROR_VARIABLE_NOTSUBSCRIBED The Topology Engine Run-time failed to subscribe to the vari-
able.
ERROR_VARIABLE_NOTUNSUBSCRIBED The Topology Engine Run-time failed to unsubscribe from the
variable.
ERROR_ONCHANGE_DATAUNKNOWN A new value is received for the variable but it cannot be pro-
cessed by the Topology Engine Runtime.
ERROR_CALCULATE_TRANSFOLOOP An undesired loop is configured with transformers. In par-
ticular 2 transformers with different ratios but sharing the
same upstream and downstream nodes.

- 757 -
OPC UA Gateway

- 758 -
OPC UA Gateway Overview
What is OPC UA?
OPC Unified Architecture (UA) integrates the classic OPC technologies (DA, AE and HDA) into a single plat-
form whilst at the same time addressing some of the issues and limitations of classic OPC.

l Based on TCP/IP and Https technologies rather than COM / DCOM.


l Able to communicate through a firewall.
l Platform independent - can be used on non-Windows platforms, for example directly on a PLC.
l Support for complex data structures (Alarm, event, historical data).
l Redundant capability and protection against data loss.
l Built in security features - encryption, authentication and auditing.

What is the OPC UA Gateway?


The OPC UA gateway is used as a bridge between the Supervisor's OPC DA client and server and third party
OPC UA clients and servers. It enables the use of the Supervisor as an OPC UA client or OPC UA server for
Data Access.

This book is a synopsis with information only about the features and settings of the UA Gateway that
are required for use with the Supervisor. For detailed information on all other features and settings,
see the help documentation supplied with the UA Gateway.

- 759 -
OPC UA Gateway Installation
Supported Operating Systems
The UA Gateway is tested on the following operating systems that are also supported by the Supervisor.

l Windows 7 x64

User requirements
The computer on which UA Gateway is to run have an interactive session and at least one interactive user.
The OPC Server component of the gateway will assume the identity of the logged on interactive user
As the UA Gateway is registered as a service in the interactive account, the account must have a user name
and a password. It is not possible to establish communication if the account does not have a password.

Installation
The UA gateway is supplied as a self-installing executable file, and an OEM license file OEM.ini. The license
file contains the license and also the default configuration settings necessary for the UA gateway to work cor-
rectly with the Supervisor. The OEM license file must be in the same folder as the executable. Running the
executable starts the installation process.

The UA gateway supplied with the Supervisor will only work with the Supervisor's OPC Client and
Server. It will not work with any other OPC client or server.
The gateway automatically starts, using default settings, after installation but there are two further con-
figuration steps to complete before it is fully functional.

l Use the Administration Tool to confirm settings including the user account, endpoints and certificates.
See the topic OPC gateway configuration.
l Use the Configuration Tool to add and configure OPC UA servers, as well as the OPC DA server. See
the topic Adding an OPC UA server to the gateway.

The configuration tools can be opened by right clicking the UA gateway icon in the system tray or from the
UA gateway entry in the Windows' system menu.

- 760 -
OPC UA Gateway Configuration - Administration Tool
The Administration Tool can be opened by right clicking the UA gateway icon in the system tray or from the
UA gateway entry in the Windows' system menu. Many of the settings are either pre-configured as defaults
or provided by the OEM.INI file. It is not recommended to modify the OEM.ini file manually.
For information on settings other than those mentioned in this topic, see the help documentation sup-
plied with the UA Gateway.

General tab - Launching user


The Launching User settings are used to set the user context in which the UA gateway service runs. The
default settings are the interactive user that installed and first started the gateway but an alternative can be
selected using the Domain and User drop down list boxes. Show picture

To confirm the settings for the launching user click the Apply button. You will be prompted for the password
for the selected user. Show picture

If successful, a message is displayed confirming that the selected user has been added to the UaGate-
wayUsers group.
The account(s) used to run the Supervisor shall belong to the UaGatewayUsers group of users to
ensure proper DCOM connections between the Supervisor and the UA Gateway.

UA Endpoint

- 761 -
The UA endpoint configuration is used for the UA Gateway's OPC UA server. Even if your architecture does
not include a third party OPC UA Client, these settings are important, as the UA gateway's own Configuration
Tool communicates with the gateway as an OPC UA client. The pre-configured settings should suffice for
most installations. However, you may have to change the port number should another device already use it.
Show picture

If you change the settings in the UA Endpoints tab, you will also have to change the settings of the
Configuration Tool so it can still connect to the UA gateway.

Certificates
OPC UA communicates using a secure connection over TCP/IP, which requires the use of certificates. The UA
Gateway automatically generates two certificates during the installation process. Show picture

l Trusted - Used when the UA gateway is communicating with the Configuration Tool - itself an OPC UA
client.
l Own Certificate - Used when the OPC UA gateway is communicating with a third party OPC UA server
fulfilling its main purpose as an OPC UA gateway.

These automatically generated certificates may, or may not, be sufficient to satisfy the end user's IT policy.
For further information, see the UA gateway's documentation.

- 762 -
Adding an OPC UA Server to the Gateway
The Configuration tool is used to add OPC UA Servers to the UA gateway. After a UA server has been suc-
cessfully added, its address space is exposed to any OPC DA client connected to the UA gateway. The Con-
figuration Tool can be started by right clicking the UA gateway's icon in the system tray or from the
Windows' Start menu. Show picture

The UA gateway must be running before the Configuration Tool can be used. To start the UA gate-
way, right click its icon in the system tray and select Start.

About the OPC UA Discovery Service


The OPC UA specification includes a service called the Discovery Service. This service allows prospective
OPC UA clients to discover connectable OPC UA servers. A discovery service can be global - all devices on
the network, local - just the local device, or custom - for a specific OPC UA server. If your architecture
includes a local or global discovery service, any installed OPC UA server can register with it or it may just
rely on its own integral discovery service.
The Configuration Tool is able to browse the Discovery Service for available UA server endpoints (con-
nections).

How to add an OPC UA Server to the gateway using a custom discovery service
The following example uses a Kepware OPC UA server. Other servers will be similar but differ in detail.

1. Open the Configuration Tool and, in the Device Address Space tab, select OPC UA Servers. The OPC UA
Servers tab opens in the right pane.
2. Select Add server. The Add UA Server dialog opens. Show picture

3. Double click on the plus sign under the Custom Discovery node. A dialog opens from where you enter
the URL of the discover service of the OPC UA server you want to add. The URL is usually available

- 763 -
from the server documentation or from the configuration of the OPC UA Server itself. Show picture

4. Expand the node representing the URL just added. Normally there will be an entry for each of the
encryption methods that the server supports. Select the appropriate encryption method then click Add
and Close. Show picture

5. The selected OPC UA server now appears in the gateway configuration. Show picture

The configuration of the gateway is now basically complete but, at this point, it may be unable to connect to
the server. During the above process, a certificate from the UA gateway has been copied to the OPC UA
Server. Before the server will communicate with the gateway this certificate must be trusted.

Trusting the gateway certificate


The process to trust the gateway certificate will vary depending on the OPC UA Server in use. The following
is for the Kepware OPC UA Server. Other servers will be similar but the actual process will differ in detail.

- 764 -
1. Open the OPC UA Configuration Manager of the server. For Kepware, you right click its icon in the sys-
tem tray and select OPC UA Configuration.
2. Locate the UA gateway certificate. Select it and click Trust.Show picture

3. Close the configuration manager. The UA gateway will now be able to communicate with the OPC UA
Server.

- 765 -
Using the Gateway when the Supervisor is running as a Service
The UA gateway can be used with the Supervisor running as a service. Show picture

Configuration of the gateway is the same as if running the Supervisor as a desktop application. In particular,
the account used to run the Supervisor must be added to the UaGatewayUsers group. Show picture

By default, the account used when running the Supervisor as a service is LOCAL SERVICE. This can be used
when the application requires that the Supervisor's OPC DA client be connected to the UA Gateway's OPC DA
server. However, if the application requires that the Supervisor's OPC DA server be connected to the UA
Gateway OPC DA client, thereby exposing the Supervisor's variables as an OPC UA server, then the
NETWORK ACCOUNT must be used.

- 766 -
Mapping Variables to the UA Gateway
With the majority of OPC DA Servers, the Address Space, as seen in the left pane of the supervisor's OPC
Mapping dialog, has a one to one match with the OPC Item Id. This is not a mandatory requirement, it
is just something that is commonplace. For example, in the following screen-shot of a mapping dialog
and a Kepware OPC DA server. Show picture

The ItemID Simulation Examples.Functions.Ramp1 is the same as its location within the address space in
the left pane of the mapping dialog.
When using the UA Gateway the Address Space is similar to, but not the same as, the ItemID. This is normal
behavior for the UA Gateway. Show picture

The ItemID um:W10-TOLS-RM1:Kep-


ware.KEPServerEX.V5:UAServer/KEPServerEX|Simutation.Functions.Ramp1 is different to its location in the
Address Space having a completely different prefix.
The setting Use alias as prefix in ItemId in the OPC COM ItemIDs tab of the UA Gateway's Administration
Tool can be used to simply the ItemId replacing the prefix with a much simpler alias. However, the Address
Space remains unchanged.

- 767 -
Deepening the UA Gateway browsing
Depending on the complexity of the connected OPC UA server, the UA Gateway may not fully expose the
objects through its OPC DA Server. This can be improved using the setting Browse Next Level for Variables
in the OPC DA (COM) tab of the UA Gateway's Administration Tool.

Time-stamp selection
The UA Gateway allows the selection of the time-stamp source for OPC UA originated objects it exposes
through its OPC DA Server.
Supervisor’s OPC DA Client UA Gateway time-stamp Mapped objects’ resulting time-
time-stamp configuration source stamp
Default Internal DA Client / SCADA host computer
Provided by server Internal DA Client / SCADA host computer
Default ServerTimestamp DA Client / SCADA host computer
Provided by server ServerTimestamp UA Server / UA host computer
Default SourceTimestamp DA Client / SCADA host computer
Provided by server SourceTimestamp UA Server / UA host computer
The selection made using the setting Timestamp Source in the OPC DA (COM) tab of the UA Gateway's
Administration tool. Show picture

- 768 -
Troubleshooting

- 769 -
Log files

- 770 -
Log Files Overview
The Supervisor generates a number of log files during operation containing messages from the various man-
agers and executables. The messages include general information, debug, warnings and errors. The log files
are found in Log Files sub folder of Supervisors main folder Bin and can be broken down into the following
categories.

l Trace.Log files - All events produced by the Supervisor's main program as seen in the Event Viewer
window. See the topic Trace log files for more information.
l MacroTrace.Log file - A record of the Supervisor's major events only. See the topic Other log files.
l HDS.Log file - Events produced by the Historical Data Server. See the topic Other log files.
l OPCSrv.log file - Events produced by the Supervisor's main program dedicated to OPC server activ-
ities. See the topic Other log files.
l Sv32.exceptions.log file - A file generated in the unlikely event of an erroneous exit by the Super-
visor's main program. See the topic Other log files.

The Supervisor also generates various audit files related to the Audit Diagnostics. These are also found in
the Log Files folder. See the book on Audit Diagnostics in the Application Explorer help.
Use of traces can affect the Supervisor's performance. If you enable any of the optional traces, they
should be disabled once the issue has been diagnosed and resolved.

- 771 -
The Trace.Log Files
The Trace.Log files contains all events produced by the Supervisor's main program as seen in the Event
Viewer window. The maximum file size is configured by the Max size for Trace log file setting in the Audit
Diagnostics settings.
If the Trace.log exceeds the maximum size, traces are written to a new log file Trace1.log. If Trace1.log
exceeds the maximum size, traces are written to a new log file Trace2.log etc. The number of new files is
limited to nine and so when Trace9.log is full, Trace1.log is emptied and recording continues there. Trace.-
log is never overwritten so that the first traces are always available.
When the Supervisor is started, the previous Trace.log is renamed to LastSession1_Trace.log. If LastSes-
sion1_Trace.log already exists, it is renamed to LastSession2_Trace.log etc. The number of rotating session
is nine.
Below is an example listing of the trace files you might find in the Log Files folder.
Trace.log
Trace1.log
Trace2.log
Trace3.log
Trace4.log
Trace5.log
Trace6.log
Trace7.log
Trace8.log
Trace9.log
LastSession1_Trace.log
LastSession1_Trace1.log
LastSession1_Trace2.log
LastSession1_Trace3.log
LastSession1_Trace4.log
LastSession1_Trace5.log
LastSession1_Trace6.log
LastSession1_Trace7.log
LastSession1_Trace8.log
LastSession1_Trace9.log
….
LastSession9_Trace.log
LastSession9_Trace1.log
LastSession9_Trace2.log
LastSession9_Trace3.log
LastSession9_Trace4.log
LastSession9_Trace5.log
LastSession9_Trace6.log
LastSession9_Trace7.log
LastSession9_Trace8.log
LastSession9_Trace9.log
Traces are buffered and written to the files every ten seconds or if the size of trace exceeds 32Kbytes.

Trace.Log example
013/05/29,16:32:52.338,0,T,,0,,1,SV,Starting application ...
2013/05/29,16:32:52.341,0,T,,0,,1,SV,Loading Timer ...
2013/05/29,16:32:52.360,0,T,,0,,1,SV,Loading LAN ...
2013/05/29,16:32:52.381,0,T,,0,,1,SV,Loading Eqt ...
2013/05/29,16:32:52.395,0,T,,0,,1,SV,Loading Var ...
2013/05/29,16:32:52.442,0,T,,0,,1,SV,Loading Alarm ...
2013/05/29,16:32:52.456,0,T,,0,,1,SV,Loading AlarmList ...
2013/05/29,16:32:52.465,0,T,,0,,1,SV,Loading OPCSvr ...
2013/05/29,16:32:52.480,0,T,,0,,1,SV,Loading His ...

- 772 -
2013/05/29,16:32:52.497,0,T,,0,,1,SV,Loading CfgSvr ...
2013/05/29,16:32:52.660,0,T,,0,,1,SV,Loading MgrToolkit1 ...
2013/05/29,16:32:52.697,11,I,,16500,,1,Manager toolkit number 1, the user DLL [svmgrVarEnum.dl
2013/05/29,16:32:52.713,0,T,,0,,1,SV,Loading UI ...
2013/05/29,16:32:59.396,6,I,,17286,,1,Version is: 11 Dev [11.0.0.0 - 2013/05/24]
2013/05/29,16:32:59.396,6,I,,17294,,1,Project name is: Master5Eqts5kBit5kAla5kTrend5kAna
2013/05/29,16:32:59.396,6,I,,17288,,1,Full project path is: d:\hdg\projects\110\USR\Master5Eqt
2013/05/29,16:33:02.639,0,T,,0,,1,SV,Starting project in Timer ...
2013/05/29,16:33:02.640,0,T,,0,,1,SV,Starting project in LAN ...
2013/05/29,16:33:02.650,3,I,,17290,,1,The station name for this instance is: Serveur_1, statio
2013/05/29,16:33:03.681,3,W,,3072,,1,Client->server connection abort, Serveur_1_0C -> Serveur_
2013/05/29,16:33:03.683,3,I,,17170,,1,Local station is on in historical association HDSAssoc01
2013/05/29,16:33:03.684,0,T,,0,,1,SV,Starting project in Eqt ...
2013/05/29,16:33:03.685,4,I,,16300,,1,CW,Cimway 32 - Release 7.42
2013/05/29,16:33:03.804,4,I,,16304,,1,CW,Protocol : IpXbus - Release 4.37
2013/05/29,16:33:03.900,4,I,,1,,1,CIMWAY,Start,
2013/05/29,16:33:04.014,0,T,,0,,1,SV,Starting project in Var ...
2013/05/29,16:33:04.016,5,I,,5136,,1,Local station is on in association Assoc
2013/05/29,16:33:15.188,0,T,,0,,1,SV,Starting project in Alarm ...
2013/05/29,16:33:15.204,0,T,,0,,1,SV,Starting project in AlarmList ...
2013/05/29,16:33:15.215,0,T,,0,,1,SV,Starting project in OPCSvr ...
2013/05/29,16:33:15.223,0,T,,0,,1,SV,Starting project in His ...
2013/05/29,16:33:22.456,0,T,,0,,1,SV,Starting project in CfgSvr ...
2013/05/29,16:33:22.468,0,T,,0,,1,SV,Starting project in MgrToolkit1 ...
2013/05/29,16:33:22.479,11,I,,16510,,1,MgrToolkit1, StartProject of variable enumeration manag
2013/05/29,16:33:22.529,0,T,,0,,1,SV,Starting project in UI ...
2013/05/29,16:33:25.554,6,I,,1,,1,Key on, licence number=39352
2013/05/29,16:33:25.873,6,I,,1,,1,Evaluating programs
2013/05/29,16:33:40.138,4,I,,4510,,1,CW, status 6045 - 102 - 3 - 1, (1.XBUSIP.PLC1.INPUT_STATU
2013/05/29,16:33:52.182,4,I,,4510,,1,CW, status 6045 - 102 - 1 - 1, (1.XBUSIP.PLC4.OUTPUT_REGI
2013/05/29,16:33:55.191,4,I,,4510,,1,CW, status 6045 - 102 - 1 - 1, (1.XBUSIP.PLC5.OUTPUT_REGI
2013/05/29,16:33:57.773,6,I,,1,,1,Loading successfull

- 773 -
Other Log Files
MacroTrace.Log file
The MacroTrace.Log file contains a record of the Supervisor's major events. New events are appended to
the file providing a complete summary of the operation. The following events are recorded.

l Start and stop of the Supervisor


l Load, start, stop and unload of each manager
l Connection and disconnection of a networked stations
l Start and stop communication
l Watchdog messages

The maximum file size is configured by the Max size for MacroTrace log file setting in the Audit Diagnostics
settings. In the unlikely event that the file size is exceeded a backup, MacroTrace.bak.log, is created and a
new empty file started.

HDS.Log file
The HDS.Log file contains a record of events produced by the Historical Data Server. Each time the HDS is
started the previous HDS.Log is renamed to HDS1.Log. If HDS1.Log already exists, it is renamed to
HDS2.Log etc. The number of rotating file is nine. There is no limit on the size of the file.
Writing to the file takes place on each event.

OPCsrv.Log file
The OPCsrv.Log file contains a record of events, produced by the Supervisor's main program, dedicated to
OPC server activities. Each time the Supervisor is started, the previous OPCsvr.Log is renamed to OPCs-
vr1.Log. If OPCsvr1.Log already exists, it is renamed to OPCsvr2.Log etc. The number of rotating file is nine.
There is no limit on the size of the file.
Writing to the file takes place on each event.

SV32.Exceptions.Log file
The SV32.Exceptions.Log file is generated in the unlikely event of an erroneous exit by the Supervisor's
main program. It contains important diagnostic information when an exception occurs or a manager watch-
dog is detected. The information it contains can only be interpreted by your technical support agency and
you may be asked to provide the file when reporting a problem.
This file is not renamed on the start of the Supervisor unlike Trace.Log and so it will contain information
about all exceptions with the most recent at the end of the file. The maximum size is 10 Mbytes. If the size
exceeds this the file saved as SV32.Exception.Bak.Log and a new SV32.Exception.Log created.

- 774 -
Generating Additional Traces
Additional, specific, traces can be generated in the Event Viewer, and hence the Trace.Log file, using the
SCADA Basic instruction TRACE.

For the Variable Manager


Bit 0 Error level 0 Trace( 1, 5, “1”);
Bit 1 Error level 1 Trace( 1, 5, “2”);
Bit 6 Source switch local/External Trace( 1, 5, “40”);
Bit 7 Subscribe/Unsubscribe Trace( 1, 5, “80”);
Bit 8 Recipe Trace( 1, 5, “100”);
Bit 9 Flow regulation, more detail Trace( 1, 5, “200”);
Bit 10 Flow Regulation Trace( 1, 5, “400”);
Bit 16 Subscribe response Trace( 1, 5, “10000”);
Trace( 1, 5,
Bit 24 Trace writes of variable
“1000000”);

For the LAN Manager


Bit 0 Error level 0 Trace( 1, 3, “1”);
Bit 1 Error level 1 Trace( 1, 3, “2”);
Bit 3 Disconnection and request of connection Trace( 1, 3, “8”);
Bit 4 Watchdog message from client connection Trace( 1, 3, “10”);
Bit 6 Packet size above 64k Trace( 1, 3, “40”);
Bit 7 Flow regulation, Xon/Xoff Trace( 1, 3, “80”);
Bit 8 Send subscribe and regulation Trace( 1, 3, “100”);
Bit 9 Send subscribe, more details Trace( 1, 3, “200”);
Bit 10 Receive subscribe and regulation Trace( 1, 3, “400”);
Bit 11 Distributed bad quality trend counter Trace( 1, 3, “800”);
Bit 12 Sent packet in wait of acknowledged Trace( 1, 3, “1000”);
Bit 13 Receive packet to be acknowledged Trace( 1, 3, “2000”);
Bit 16 Sent packet Trace( 1, 3, “10000”);
Bit 17 Sent packet, more details Trace( 1, 3, “20000”);
Bit 18 Receive packet Trace( 1, 3, “40000”)
Bit 19 Receive packet, more details Trace( 1, 3, “90000”);
Trace( 1, 3,
Bit 20 Winsock receive API
“100000”);
Trace( 1, 3,
Bit 21 WinSock connect
“200000”);
Trace( 1, 3,
Bit 23 Miscellaneous
“800000”);
Trace( 1, 3,
Bit 24 Receive
“1000000”);
Trace( 1, 3,
Bit 26 System variable
“4000000”);
Trace( 1, 3,
Bit 29 Netbios request
“20000000”)

For the Historical Manager


Bit 5 Read trend Trace( 1, 8, “20”);
Bit 6 Read log Trace( 1, 8, “40”);

For the User Interface Manager


Bit 0 Error level 0 Trace( 1, 6, “1”);
Bit 10 Send subscribe on start-up Trace( 1, 6, “400”);

- 775 -
Use of traces can affect the Supervisor's performance. If you enable any of the optional traces, they
should be disabled once the issue has been diagnosed and resolved.

- 776 -
Third party products

- 777 -
Dream Report
See the help supplied with Dream Report.

- 778 -

You might also like