Professional Documents
Culture Documents
InTouchHMI2020 RevA
InTouchHMI2020 RevA
A V E V A ™ T R A I N I N G
Training Manual
Revision A
June 2020
Part Number 11-HM-10040
AVEVA and the AVEVA logo are a trademark or registered trademark of AVEVA Group plc in the U.S. and
other countries.
No part of this documentation shall be reproduced, stored in a retrieval system, or transmitted by any means,
electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of AVEVA.
No liability is assumed with respect to the use of the information contained herein.
Although precaution has been taken in the preparation of this documentation, AVEVA assumes no
responsibility for errors or omissions. The information in this documentation is subject to change without
notice and does not represent a commitment on the part of AVEVA. The software described in this
documentation is furnished under a license agreement. This software may be used or copied only in
accordance with the terms of such license agreement.
ArchestrA, Aquis, Avantis, Citect, DYNSIM, eDNA, EYESIM, InBatch, InduSoft, InStep, IntelaTrac, InTouch,
OASyS, PIPEPHASE, PRiSM, PRO/II, PROVISION, ROMeo, SIM4ME, SimCentral, SimSci, Skelta,
SmartGlance, Spiral Software, Termis, WindowMaker, WindowViewer, and Wonderware are trademarks of
AVEVA and/or its subsidiaries. An extensive listing of AVEVA trademarks can be found at:
https://sw.aveva.com/legal. All other brands may be trademarks of their respective owners.
Contact Information
https://sw.aveva.com/
For information on how to contact sales, customer training, and technical support, see
https://sw.aveva.com/contact.
Table of Contents 1
Table of Contents
Module 1 Introduction .................................................................................1-1
Section 1 – Course Introduction......................................................................... 1-3
Section 2 – InTouch Software Overview............................................................ 1-5
Section 3 – System Requirements and Licensing ............................................. 1-7
Section 4 – InTouch Application Types............................................................ 1-11
Lab 1 – Creating the InTouch Application........................................................ 1-15
AVEVA™ Training
Module 1 – Introduction
Section 1 – Course Introduction 1-3
Section 2 – InTouch Software Overview 1-5
Section 3 – System Requirements and Licensing 1-7
Section 4 – InTouch Application Types 1-11
Lab 1 – Creating the InTouch Application 1-15
1-2 Module 1 – Introduction
Module Objectives
List the objectives of the course and establish the agenda
Discuss the key components of InTouch
List the system requirements and licensing
Discuss the InTouch Application types
AVEVA™ Training
Section 1 – Course Introduction 1-3
Course Description
The tag-based AVEVA InTouch HMI 2020 course is a 5-day, instructor-led class that explains how
to create and configure a Stand-alone InTouch application using Industrial Graphics. The course
provides a fundamental understanding of the basic principles of InTouch HMI visualization
software and the steps necessary to develop a Human Machine Interface system for a plant floor
or facility. You are guided through setup, layout, best practice concepts, features, and functions of
the InTouch HMI software platform. Hands-on labs reinforce concepts and features.
Objectives
Upon completion of this course, you will be able to:
Create an InTouch application
Build an HMI with Situational Awareness symbols
Construct a Key Performance Indicator display
Configure an OI Server
Establish communications with I/O-aware programs
Create, export, and import tags
Test and monitor tags
Build displays with pre-built library graphics
Build displays with custom graphics
Visualize and interact with data
Present and manage live and historical alarms
Configure and apply security to an application
Log and trend historical data
Display real-time trend data
Back up and restore an application
Distribute an application to a production environment
View application windows and graphics in a browser
Audience
Individuals who need to configure or modify InTouch HMI applications
Prerequisites
Knowledge of the following tools, features, and technologies is required:
Industrial automation software concepts
Microsoft Excel for modifying a .csv file
AVEVA™ Training
Section 2 – InTouch Software Overview 1-5
Key Benefits
The key benefits of InTouch are:
Developers and operators can create applications quickly and efficiently
Device integration and connectivity
Visual representation and interaction that brings the right information to the right people at
the right time
Key Capabilities
The key capabilities of InTouch are:
Display resolution-independent graphics and intelligent symbols to speed up design
Author sophisticated scripting to extend and customize applications for specific needs
Use real-time distributed alarming with historical views for analysis
Built-in, real-time, and historical trending
Leverage Microsoft .NET controls integration
Access extensible library of predesigned, customizable graphics and symbols
View Application Windows and Industrial Graphics in a web browser
AVEVA™ Training
Section 3 – System Requirements and Licensing 1-7
Hardware Recommendations
The following table provides guidelines for hardware configurations suitable for Aveva InTouch
HMI 2020 software based on the size of the installation. These guidelines are subject to the
limitations of your Windows operating system.
Hardware Requirements
Small Installation (1 - Medium Installation Large Installation (>50K
25K I/O per Node) (25K - 50K I/O per Node) I/O per Node)
CPU Cores (Minimum)1 Greater than or equal to 2 Greater than or equal to 2 Greater than or equal to 8
RAM (GB)1 Greater than or equal to 4 Greater than or equal to 8 Greater than or equal to 16
Storage (GB)2 Greater than or equal to Greater than or equal to Greater than or equal to
30 500 1000
Network (Mbps) Greater than or equal to Greater than or equal to Greater than or equal to
100 1000 1000
1 In redundant environments, increase CPU and RAM to maintain a maximum of 40% typical resource utilization.
2 Minimum amount of storage needed to provide sufficient capacity for 1 week at max frequency.Software Requirements for InTouch 2020.
Note: A Windows Server operating system is required for large installations with more than
50,000 I/O per node.
Note: SQL Server Express is not supported for installations with more than 25,000 I/O per node
(small installations only).
Encrypted Communications
The end to end communication between software applications (server and client) can be
encrypted and secured to prevent eavesdropping and malicious tampering (aka: Man-in-the-
Middle) attacks.
To enable encrypted network communication, one of the nodes in the network must be configured
to host and run the System Management Server. The role of the System Management Server is to
generate, manage, and distribute secure digital certificates used for establishing and maintaining
secure communications.
All other nodes need to be configured to connect to the SMS so they all become part of the same
community.
The System Management Server does not need to be available at runtime for secure
communications to be established. In fact, once joined to the System Management Server, a node
will not need access to the System Management Server until it is time to renew the certificates.
AVEVA™ Training
Section 3 – System Requirements and Licensing 1-9
Licensing
Aveva enforces the use of its products with a software license. InTouch uses the License Server to
make licenses available. The License Manager manages one or more License Servers.
The License Manager interface makes licenses available to InTouch. First, import the entitlement
.xml file received upon purchase of the license. Then, select which licenses on the entitlement to
activate on the License Server. Once activated, it becomes available to WindowMaker or
WindowViewer upon start up. The license is released when InTouch is shut down.
InTouch will run in Demo Mode if it cannot consume a valid license at start up time.
To install licensing, see the Licensing Guide.
Flex Licensing
Starting with AVEVA InTouch HMI 2020, AVEVA offers Flex subscription options offering complete
flexibility in the procurement, design, management and utilization of the industrial control systems
most valuable to your plant operation. For InTouch HMI, Flex Subscriptions enable the ability to
write setpoints and acknowledge alarms. This course has Flex Subscriptions enabled to
demonstrate these features.
Aveva Flex Subscription options offer added levels of flexibility.
AVEVA™ Training
Section 4 – InTouch Application Types 1-11
Overview
You use the InTouch Application Manager to manage most global tasks such as creating InTouch
applications, deleting InTouch applications, and modifying the name, description, and path of your
InTouch applications. Application Manager shows a list of your current InTouch applications. Once
you have created an InTouch application, it appears as a record in the Application Manager. From
there you can select an application from the list to open in WindowMaker or WindowViewer.
The InTouch Application Manager allows you to create InTouch applications.
Application Templates
An Application Template provides a mature starting point for creating a STANDALONE + Symbols
InTouch application. This feature reduces design time by creating reusable standards from pre-
built starter applications.
Target Resolution
A target resolution allows the user to create an application for a production environment with a
screen resolution that is different than the Engineering node. Target resolution is specified during
application creation and can be modified after an application has been created. When a window is
being created, target resolution provides a guideline to stay within the target resolution size.
Historically, InTouch automatically converted the resolution of the original application to match the
resolution of the computer where the application is running. This conversion process could have
had a severe impact on the position of graphics or the placement of windows in an application.
Therefore, the Target Resolution feature prevents automatic conversion by setting the size of the
application up front, regardless of the resolution on the computer that it is being run. If Target
Resolution is set to default resolution, this is equivalent to enabling the automatic conversion
feature.
AVEVA™ Training
Section 4 – InTouch Application Types 1-13
AVEVA™ Training
Lab 1 – Creating the InTouch Application 1-15
Introduction
In this lab, you will create an InTouch application using the InTouch Application Manager. From
Application Manager, you will lock the window size of your application for development in
subsequent labs. Then, you will open your InTouch application in WindowMaker.
Objectives
Upon completion of this lab, you will be able to:
Create an InTouch + Symbol Library application
Open an InTouch application in WindowMaker for editing
2. Click New.
AVEVA™ Training
Lab 1 – Creating the InTouch Application 1-17
The Select a Template dialog box appears with the + Symbol Library template selected.
3. Click Next.
AVEVA™ Training
Lab 1 – Creating the InTouch Application 1-19
Leave the Resolution set to Screen Resolution. This automatically detects the resolution of
your screen and uses that resolution for the application.
8. Click Finish.
The new InTouch Training Application tile appears in the InTouch Application Manager.
AVEVA™ Training
Lab 1 – Creating the InTouch Application 1-21
9. In the InTouch Training Application tile, on the Quick Access Toolbar, click Application
Properties.
10. In the Properties dialog box, click the Lock Window Size toggle.
This setting will prevent graphics and windows from being resized if the screen resolution
changes.
Note: Lock Window Size can also be enabled on the WindowMaker Properties dialog
box. WindowMaker restart is required for this method.
AVEVA™ Training
Lab 1 – Creating the InTouch Application 1-23
12. In the InTouch Training Application tile, Quick Access Toolbar, click WindowMaker.
Note: Double-clicking the InTouch Training Application tile will also open WindowMaker.
AVEVA™ Training
Module 2 – Window Layout and Basic
Navigation
Section 1 – WindowMaker Overview 2-3
Section 2 – WindowViewer Overview 2-7
Section 3 – Configure and Test Navigation Using WindowMaker 2-9
Lab 2 – Setting Up Windows and Navigation 2-11
2-2 Module 2 – Window Layout and Basic Navigation
Module Objectives
Discuss how to lay out Windows
Embed an Industrial graphic and configure wizard options
Add a Show Window animation to an embedded graphic
AVEVA™ Training
Section 1 – WindowMaker Overview 2-3
Overview
WindowMaker is the InTouch application editor used to create and define windows, graphics,
animations, the layout of your windows, and the look and feel of your HMI application.
WindowMaker includes a graphical tool set that is used to design InTouch interfaces.
WindowMaker can also be used to configure and maintain features such as scripts, graphics,
ActiveX controls, .NET clients, alarms, historical logging, and security to create and manage the
visual interface.
WindowMaker helps you build an InTouch application that is comprised of windows that can
contain graphics, text, animations, navigation elements, window scripts, and action scripts. When
you create a window, the window properties of the window are defined, such as background color,
title, and screen position.
InTouch Windows
InTouch is comprised of windows that can contain graphics, text objects, animations, and action
scripts. When a window is first created, properties of the window itself such as title, background
color, and dimensions are defined.
When a new window is created, behaviors and aesthetic properties are defined in the Window
Properties dialog box. You can specify whether or not a window will automatically close other
windows that it intersects with, or position the window on top or behind open windows. Border
style, position and size, and background color can also be defined.
When a new window is created, the default settings are retained from the previously created
window, or of the currently active window. Window names can contain up to 32 characters and can
include any character on the keyboard except quotation marks.
Window Types
Window Type options include the following:
Replace – Automatically closes any windows it intersects when it appears on the screen,
including popup and replace type windows.
Overlay – Appears on top of the currently displayed windows and can be larger than the
windows it is overlaying. Clicking on any visible portion of a window behind an overlay
window makes that window active.
Popup – Is similar to an overlay window, yet always stays on top of all other open
windows even if another window is clicked.
Frame – This window type is used to host a single Industrial graphic. Frame windows
enable panning and zooming at runtime.
Template Windows
Template Windows are reusable application windows that act as a model, or starting point, for
creating new windows; which aid in establishing application design standards. Template windows
are different from other windows as the Template property is enabled, they are listed separately
from other windows in WindowMaker, they can be selected from the Template Window browser,
and they can be used as a template to create new windows.
Embed Industrial Graphic can be used to open the Industrial Graphic Library and
view the library of available Industrial graphics
AVEVA™ Training
Section 1 – WindowMaker Overview 2-5
AVEVA™ Training
Section 2 – WindowViewer Overview 2-7
Overview
InTouch WindowViewer is the runtime visualization application, where users can view and control
processes in a visual display format with animations and user interfaces. It executes scripts,
interfaces with the alarm manager and the historical data retrieval and storage system, drives
animations, connects to IO data, displays graphics and text, and provides interactive tools for
supervisory control and data acquisition.
Menus in WindowViewer allow you to perform basic functions such as opening and closing
windows, starting and stopping logic, logging into and out of security, launching the tag testing tool
Tag Viewer, starting and stopping historical logging, and exiting WindowViewer.
WindowViewer monitors user input by responding to peripheral devices such as a mouse when a
user clicks a graphic. For example, an operator clicks an input field to change a set point, or an
operator might click a button to navigate to a new window.
WindowViewer also supports automation through scripting as a scripting execution engine. Tasks
which require 24-hour-a-day monitoring can be triggered to execute by WindowViewer
automatically without an operator present.
AVEVA™ Training
Section 3 – Configure and Test Navigation Using WindowMaker 2-9
Configure Navigation
A typical window layout built using WindowMaker will include a menu window. A menu window
typically contains some interactive method the user selects to change the content being displayed
in WindowViewer. To provide this interaction, windows are arranged in such a way that the menu
window is always visible as the user navigates to different content. The navigation commonly
takes the form of buttons, where each button represents a single window that can be displayed.
Therefore, each button will be labeled with the name of the window it displays and the animations
applied to it will display that window.
For small applications, rows of buttons is easily manageable. However, it is not scalable for
medium to large applications. This course will explain more than one method of navigation.
AVEVA™ Training
Lab 2 – Setting Up Windows and Navigation 2-11
Introduction
In this lab, you will create windows in WindowMaker, and configure properties and dimensions of
the windows to arrange them into a layout that will be used throughout this course. Then, you will
embed a symbol from the Industrial Graphic Toolbox into a window, edit the label on the symbol,
and add an animation that will allow you to interact with the symbol to open a window. You will
duplicate the symbol and edit the duplicate to produce a row of buttons that open different
windows. Finally, you will test your window layout and navigation in runtime using WindowViewer.
Objectives
Upon completion of this lab, you will be able to:
Create a basic application window layout
Create a menu window used for navigation
Create a Frame window
Create a Template window
Create a window from a Template window
Embed an Industrial Graphic on a window
Add a Show Window animation to a button
Test what you have configured in Runtime using WindowViewer
AVEVA™ Training
Lab 2 – Setting Up Windows and Navigation 2-13
X Location: 0
Y Location: 0
Window Width: 1800
Window Height: 100
6. Click OK.
The new Menu window is listed under the Windows folder in the Windows & Scripts pane,
and is open on the canvas.
AVEVA™ Training
Lab 2 – Setting Up Windows and Navigation 2-15
X Location: 0
Y Location: 100
Window Width: 350
Window Height: 580
The KPI window is listed under the Windows folder in the Windows & Scripts pane, and is
open on the canvas.
Next, you will create Template windows and create windows from these templates.
11. On the File menu, select New Window.
12. In the Name field, enter Content_NonFrame.
AVEVA™ Training
Lab 2 – Setting Up Windows and Navigation 2-17
X Location: 350
Y Location: 100
Window Width: 1450
Window Height: 580
AVEVA™ Training
Lab 2 – Setting Up Windows and Navigation 2-19
Because the settings from the previous template window have become the default settings, the
Window Type, Title Bar, Template, and Dimensions are already configured.
21. Click OK.
The Content_Frame window is listed under the Template Windows folder in the Windows &
Scripts pane, and is open below the Menu window on the canvas.
Next, you will create a new window from a Template window. To do this, you must first save and
close all Template windows.
22. Click the Save All Windows button.
23. In the Windows & Scripts pane, right-click the Content_Frame template window and select
Close.
AVEVA™ Training
Lab 2 – Setting Up Windows and Navigation 2-21
24. In the Windows & Scripts pane, right-click the Content_NonFrame window and select
Close.
AVEVA™ Training
Lab 2 – Setting Up Windows and Navigation 2-23
Notice that Template is not checked because this is a window created from a Template window.
28. In the Name field, enter Mixer.
Next, you will create the remaining template and windows that will be used in this course.
30. On the File menu, select New Window, and configure the Windows Properties dialog box as
follows:
Name: Information_Frame
Frame: checked
Window Type: Replace
Title Bar: checked
Template unchecked
X Location: 0
Y Location: 680
Window Width: 1800
Window Height: 300
The Window Properties dialog box will look like the following image.
AVEVA™ Training
Lab 2 – Setting Up Windows and Navigation 2-25
Next, you will use the drag-and-drop method to make the Information_Frame window a Template
window.
33. In the Windows & Scripts pane, drag the Information_Frame window onto the Template
Windows folder.
The Information_Frame template window can now be used as a template to create other
windows.
34. Close the Information_Frame template window.
AVEVA™ Training
Lab 2 – Setting Up Windows and Navigation 2-27
Next, you will create two windows from the Information_Frame template window.
35. Use the Information_Frame template window to create a new window named
Current_Alarms.
Note: In the Template Window Browser, you will need to scroll down to locate the
Information_Frame template window.
36. Use the Information_Frame template window to create a new window named
Historical_Alarms_and_Events.
AVEVA™ Training
Lab 2 – Setting Up Windows and Navigation 2-29
40. In the Menu window, right-click the embedded instance, and select Substitute | Substitute
Strings.
AVEVA™ Training
Lab 2 – Setting Up Windows and Navigation 2-31
43. On the Arrange toolbar at the bottom of WindowMaker, click the Rotate Clockwise button.
The Mixer symbol is rotated.
44. If necessary, use the arrow keys to ensure the entire Mixer symbol is completely visible within
the Menu window.
45. Right-click the Mixer symbol, and select Animation Links.
AVEVA™ Training
Lab 2 – Setting Up Windows and Navigation 2-33
The symbol is now a button that opens the Mixer window when clicked at runtime.
50. Ensure the Mixer button is selected, then right-click and select Duplicate.
51. Drag the duplicate button to the right of the Mixer button.
52. Right-click the duplicate button, and select Substitute | Substitute Strings.
53. In the New String field, enter Alarms.
AVEVA™ Training
Lab 2 – Setting Up Windows and Navigation 2-35
Test in Runtime
Finally, you will test what you have configured in runtime by opening WindowViewer.
61. In the upper-right corner of WindowMaker, click RUNTIME.
After a moment, WindowViewer opens showing the Menu window, the KPI window, the Mixer
window, and the Current_Alarms window.
AVEVA™ Training
Lab 2 – Setting Up Windows and Navigation 2-37
AVEVA™ Training
Lab 2 – Setting Up Windows and Navigation 2-39
67. Right-click the WindowViewer icon on the task bar and select Close window.
WindowViewer closes.
AVEVA™ Training
Module 3 – InTouch Tagname Dictionary
Section 1 – The Tagname Dictionary 3-3
Lab 3 – Defining Memory Tags 3-9
Section 2 – I/O Configuration 3-17
Lab 4 – Configuring the Communication Driver 3-25
Lab 5 – Creating I/O Access and I/O Tags 3-37
Section 3 – Tag Viewer 3-49
Lab 6 – Watching Tags with Tag Viewer 3-53
Section 4 – DBDump and DBLoad 3-67
Lab 7 – Exporting and Importing Tags 3-71
Section 5 – Other Tag Management Utilities 3-83
3-2 Module 3 – InTouch Tagname Dictionary
Module Objectives
Demonstrate how to use the InTouch Tagname Dictionary
Define an InTouch Access name
Configure an IO Server
Create I/O Tags
AVEVA™ Training
Section 1 – The Tagname Dictionary 3-3
Overview
At the most basic level, a Tag is a named value. Tags are used to store and manipulate values and
properties, such as minimum and maximum ranges or alarm information. Defining tagnames and
properties is done in the InTouch Tagname Dictionary. For communication bandwidth, storage size
and efficiency, and proper handling each tag is defined with a specific data type which designates
that tag for a specific use. In runtime, WindowViewer loads and maintains a copy of the dictionary,
which is updated with all current values and properties for these tagnames.
During runtime, an InTouch application accesses the Tagname Dictionary and provides specific
tag information via animation links, and InTouch subsystems such as Alarms, History, Security,
and scripting.
You can set up an InTouch application to identify a subset of data stored on another node by using
a three-part naming convention. This convention includes the node, application, and topic names.
To obtain data from a remote node, you must configure an Access name for your InTouch
application that specifies these three items.
You must associate InTouch I/O tags with an Access name. Additionally, each I/O tag definition
includes the Item name which, for example, is equivalent to the memory address in a PLC. Tags,
including I/O configuration, and Access names are described in more detail in the following
sections.
Memory Tags
Memory tags are InTouch application tags that do not acquire data from a remote source. For
example, memory tags can store the results from a mathematical calculation performed in an
InTouch QuickScript. WindowViewer can act as an I/O server and provide results to an external
client application requesting this Memory tag.
Memory tags are also used in animations such as a counter used to control a Location or Fill
animation. Memory tags can be used as a logic state flag in a QuickScript or used to track the
toggle state of an action pushbutton. Memory tags also serve as simulation data during the design
phase of an InTouch application where linking to I/O data is not yet possible or presents a risk until
the design is tested and proven.
There are four Memory types:
Memory Discrete: Internal discrete tag with a value of either 0 (False or Off) or 1 (True or
On)
Memory Integer (Analog): A 32-bit signed integer value in whole numbers
Memory Real (Analog): Floating (decimal) point value calculated in 64-bit precision stored
in 32-bit precision
Memory Message: Text string tag that can be up to 131 characters
I/O Tags
All tags that read or write their values to or from an external source are named I/O tags. This
includes all inputs and outputs from programmable controllers, process computers, and data from
network nodes.
I/O tags are accessed either through the Microsoft Dynamic Data Exchange (DDE) or SuiteLink
communication protocols. SuiteLink is a proprietary protocol recommended for network
communication and diagnostics with other I/O applications.
When the value of a read/write I/O tag changes, it is immediately written to the remote application.
The tag can also be updated from the remote application when the item to which the tag is linked
changes in the remote application.
By default, all I/O tags are set to Read/Write. However, you can restrict them to read only by
selecting the Read Only option in the Tagname Dictionary dialog box.
There are four I/O Types:
I/O Discrete: Discrete input/output tag with a value of either 0 (False, Off) or 1 (True, On)
I/O Integer (Analog): A 32-bit signed integer value
I/O Real (Analog): Floating (decimal) point tag
I/O Message: Text string input/output tag that can be up to 131 characters long
AVEVA™ Training
Section 1 – The Tagname Dictionary 3-5
$System Tags
There are a number of pre-built $System tags in the Tagname Dictionary. These $System tags
provide data for security, date information, time information, and miscellaneous functions, such as
determining the vertical and horizontal position of the current selection. $System tags cannot be
deleted or renamed.
$System tags such as $OperatorEntered and $PasswordEntered allow data to be written to
them, allowing these tags to be used to create a login feature for InTouch Security.
$ConfigureUsers, opens the configure users security dialog box when a value of 1 is written to
the tag, but only if the user has the proper access level. Several of the $System tags are also
predefined to log events to the Alarms and Events subsystem when it is enabled. For example,
each time a new alarm occurs, the $NewAlarm tag is set to 1, and this incident is recorded in the
event history.
Group Var
Use the Group Var type for a tag with an assigned Alarm Group to create dynamic alarm displays,
disk logs, and print logs. Group Var tags create alarm windows or alarm logs that display all alarms
associated with a specific group variable. You can also control the alarms that are displayed or
logged by assigning a different Alarm Group to the Group Var tag.
Hist Trend
InTouch requires a Hist Trend tag type when you create a historical trend. All of the fields
associated with historical trends can be applied to Hist Trend tags.
Tag ID Tags
Use Tag ID tags with historical trend objects. Use Tag ID tags to retrieve information about tags
being plotted in a historical trend. In most cases, Tag ID tags display the name of the tag assigned
to a specific pen or to change the tag assigned to the pen.
Creating Tags
Tags and their tagnames are created using the Tagname Dictionary.
There are several ways to open the Tagname Dictionary:
Menu bar: Special | Tagname Dictionary
Tools pane shortcut: Tagname Dictionary
Keyboard shortcut: Ctrl+T
The first time you access the Tagname Dictionary, the definition for the internal system tagname
$AccessLevel appears. This is the first tag in the Tagname Dictionary.
After saving a tag definition in the Tagname Dictionary, the definition for the tag edited last is
displayed.
Many tags require a greater level of detail to be properly handled. A Details area is displayed for
each type of tag to define the details and alarm types for the tag type. This section is seen only if
the Details or Details & Alarms radio buttons are selected at the top of the Tagname Dictionary.
The fields which are shown in the details area vary based on the Type selection.
AVEVA™ Training
Section 1 – The Tagname Dictionary 3-7
Configuring Tags
The following configuration options are available in the Tagname Dictionary.
Group
The Group button assigns the tag to a specific Alarm Group.
Comment
Additional text that can be used to describe the tag. The comment cannot exceed 50 characters.
Log Data
Enables historical logging to the InTouch Historical Logging subsystem. Log Deadband adds a
tolerance to the data logged by the historical logging subsystem. This is used to reduce the
consumption of storage space.
Log Events
Enables tracking of tag state changes to the Alarm and Event subsystem.
Retentive Value
Retains the current value of the tag when WindowViewer is closed.
Retentive Parameters
Retains the current alarm limit when WindowViewer is closed.
Alarm Comment
This field contains default alarm comment text string which can be used when an alarm is
acknowledged.
AVEVA™ Training
Lab 3 – Defining Memory Tags 3-9
Introduction
In this lab, you will create Memory Real, Memory Integer, Memory Discrete, and Memory Message
tags. Some of these tags will be used in subsequent labs.
Objectives
Upon completion of this lab, you will be able to:
Define memory tags
AVEVA™ Training
Lab 3 – Defining Memory Tags 3-11
4. Click Type.
6. Click OK.
The Memory Discrete tag type displays to the right of the Type button.
8. Click Save.
AVEVA™ Training
Lab 3 – Defining Memory Tags 3-13
9. Click New.
Notice that the Tagname field automatically increments to Tag_Discrete2.
Tagname: Tag_Real
Type: Memory Real
Note: Remember that you must click the New button prior to creating a new tag, or your
existing tag will be overwritten.
AVEVA™ Training
Lab 3 – Defining Memory Tags 3-15
19. Repeat the previous steps to create another tag and configure it as follows:
Tagname: Tag_Message
Type: Memory Message
20. Click Close to save the tag definition, and exit the Tagname Dictionary.
Note: Do not confuse the typical Windows Close button [X] at the top right side of the
Tagname Dictionary, which cancels the current definition and exits the window.
AVEVA™ Training
Section 2 – I/O Configuration 3-17
Communication Drivers
The OI Server Manager is a part of the SMC suite of utilities. It enables the configuration,
diagnosis, activation, or deactivation of a local OI Server or a remote OI Server located on a
different node from the OI Server Manager.
You can open multiple instances of the OI Server Manager at the same time; however, you can
only use the first instance to create device hierarchies and configure an OI Server. In all other
instances of the OI Server Manager hierarchy and configuration settings are set to read-only.
Server Groups
A server group comprises one or more server instances that use the same OI Server protocol,
such as a Modbus-MBTCP. When you install a specific OI Server on a computer, a server group
and default server instance are automatically created for that OI Server in the OI Server Manager.
Since there is a limit of one server group per OI Server per computer node, that server group
effectively is the OI Server.
Where the server group appears in the OI Server Manager depends on what type of OI Server it is
for. For the purpose of this course, the MBTCP is optimized and is contained in the Operations
Integration Supervisory Servers folder.
AVEVA™ Training
Section 2 – I/O Configuration 3-19
Server Instances
Each server instance has its own configuration and diagnostics, can be activated and deactivated
separate from all other server instances, and appears as a separate application to external clients.
When you install an OI Server on a computer, a server group and a default server instance are
automatically created for that OI Server in the OI Server Manager. The name of the default server
instance is based on the short name of the OI Server installed. For example, for the Simulation OI
Server, the default server instance is named OI.SIM.1. All server instance names follow this basic
format.
The middle part of a server instance name becomes the application name that external clients will
use to access OI Server data. For example, if a server instance is named OI.SIM_0001.1, the
corresponding application name will be SIM_0001. This middle part of the server instance name is
used in the InTouch runtime client, WindowViewer, to connect to this data source.
Log Viewer
The SMC also includes a health monitoring system for all applications, named the Log Viewer.
The Log Viewer runs as a system service. The Log Viewer records information regarding the
activity occurring on the computer. For example, it records start-up data, error conditions, and OI
Server information.
The Log Viewer is a troubleshooting tool that is installed automatically with the installation of every
application. The Log Viewer should be checked occasionally to monitor the health and
configuration of any system.
Note: The Log Viewer highlights error messages in red. These indicate malfunctioning processes
and should be resolved quickly. Warning messages are highlighted in yellow. These indicate major
events in the system. Text not highlighted indicates informational messages only.
AVEVA™ Training
Section 2 – I/O Configuration 3-21
Using Bookmarks
Bookmarks are unique labels applied to individual messages for quick access. You cannot enter
duplicate bookmark names for more than one message, and a messages can have only one
bookmark. The Message window can display a Bookmark column, which is initially hidden by
default, but can be shown by using a configuration setting.
Set bookmarks in two ways: adding a regular bookmark that you can name and setting a fast
bookmark that is named for you.
Note: Bookmarks are not saved when you quit the Log Viewer application. To mark your message
log more permanently, use the Mark command on the View menu.
PLCSim
The PLCSim used in this course is the Mod_RSsim.exe. It is a publicly available application which
requires script-based logic to represent a simulation, commonly written in Visual Basic. The
student media supplied with this course contains this executable along with its supporting
Mixer.VBS script. To work with the Modbus TCP protocol used by this simulator application, an OI
Server from is required. The OI Server used for this course is MBTCP. It is purchased and
licensed separately and therefore not included with the student media. A standard InTouch license
includes the ability to use two I/O servers.
Option Purpose
Access Name The Access name must be unique for each I/O source (typically the same as the topic
name). InTouch uses Access names to reference real-time I/O data. Each Access
name is associated with an I/O source that must be on the same network as the
InTouch Application Node.
Node Name The Node Name is the computer name or IP address of the computer on the network
which is hosting the I/O source. A blank Node Name implies local node access.
Application Name The Application Name is the process or executable running on the remote computer,
which InTouch will connect to. Note: Do not enter the .exe extension portion of the
program name.
Topic Name The Topic Name is the device group, scan group, or channel used by one or more
items (PLC memory addresses) that will be polled at a specific frequency or rate. The
OI Server will contain the same spelling of the topic name in its device group list
configuration.
Which Protocol to Select DDE (local node only) for support of older I/O servers, or connections to
use Microsoft Office products; or SuiteLink ( proprietary network protocol).
When to advise Advise all items: Select if the server program is to poll for all data whether or not it is
server in visible windows, alarmed, logged, trended or used in a script. Selecting this option
impacts performance and is not recommended.
Advise only active items: Select if the server program is to poll only points in visible
windows and points that are alarmed, logged, trended, or used in any script. An
InTouch Pushbutton action script is not polled unless it opens in a visible window.
AVEVA™ Training
Section 2 – I/O Configuration 3-23
AVEVA™ Training
Lab 4 – Configuring the Communication Driver 3-25
Introduction
In this lab, you will configure an OI Server named MBTCP. This is the OI Server you will use to
connect to a Modbus simulator to provide PLC data throughout this course. Then, you will
configure the OI Server using the System Platform Management Console (SMC). Finally, you will
import a previously configured device item definition list contained in a .csv file. This list is used to
configure aliases for PLC items.
Objectives
Upon completion of this lab, you will be able to:
Configure an OI Server using the SMC
Archive OI Server configuration
Note: Your instructor will provide the name of the Production node.
6. Click OK.
AVEVA™ Training
Lab 4 – Configuring the Communication Driver 3-27
AVEVA™ Training
Lab 4 – Configuring the Communication Driver 3-29
13. In the Network Address field, enter the name of the Production node where the PLC
simulation is running.
Note: Your instructor will provide the name of the Production node.
AVEVA™ Training
Lab 4 – Configuring the Communication Driver 3-31
Note: Be sure to change the name of the default value from Topic_0 to Topic1 before
pressing Enter or moving to another tab. This name will be used as the Access name in
InTouch in a later lab.
16. Click the Device Items tab, right-click inside the table, and then select Import.
17. In the Open dialog box, navigate to C:\Training, and select PLCItemList.
18. Click Open.
After the .csv file is imported, the table will be populated.
19. In the top-right corner, click the Save button to save the configuration.
AVEVA™ Training
Lab 4 – Configuring the Communication Driver 3-33
After it becomes activated, the white x becomes a white check mark inside of a green border.
A license file icon appears, indicating that the server is running and licensed.
AVEVA™ Training
Lab 4 – Configuring the Communication Driver 3-35
Note: Your instructor will provide the name of the Production node.
Note: C:\ProgramData is a hidden folder, which requires you to enter first part of this path
manually.
28. In the OI.MBTCP folder, observe the archive file MixerCfg.aacfg has been saved.
AVEVA™ Training
Lab 5 – Creating I/O Access and I/O Tags 3-37
Introduction
In this lab, you will create an Access name to connect to the Communication Driver. Then, you will
create I/O tags to access device item data from the PLC simulator.
Objectives
Upon completion of this lab, you will be able to:
Create an Access name for the Communication Driver
Create I/O tags
AVEVA™ Training
Lab 5 – Creating I/O Access and I/O Tags 3-39
4. In the Node Name field, enter the name of the Production node where the PLC simulator is
running.
8. Click Close.
AVEVA™ Training
Lab 5 – Creating I/O Access and I/O Tags 3-41
12. Click Type, and in the Tag Types dialog box, check the I/O Discrete check box.
Notice the tagname has been copied into the Item field, but it is grayed out so it cannot be
edited. The Item name can be edited by changing the name of the tag. Otherwise, you must
uncheck Use Tagname as Item Name to edit the Item field.
18. Click Save.
AVEVA™ Training
Lab 5 – Creating I/O Access and I/O Tags 3-43
Note: Remember to click New before defining a new tag and to click Save after the definition
is complete.
AVEVA™ Training
Lab 5 – Creating I/O Access and I/O Tags 3-45
Initial Value: 0
Min EU: 0
Max EU: 300
Deadband: 0
Min Raw: 0
Max Raw: 4095
Eng Units: DegF
Log Deadband: 0
Conversion: Linear
Note: In the Tagname field, you will need to change Mixer101 to Mixer100.
Tagname: Mixer100_Level_PV
Max EU: 1000
Eng Units: Gallons
AVEVA™ Training
Lab 5 – Creating I/O Access and I/O Tags 3-47
Tagname: Mixer100_Inlet1_Position
Type: I/O Integer
Min EU: 0
Max EU: 100
Min Raw: 0
Max Raw: 10
Eng Units: %
Access Name: PLCSim
37. Retain the remaining default settings, and click Close to save the current definition and exit
the Tagname Dictionary.
AVEVA™ Training
Section 3 – Tag Viewer 3-49
Overview
Tag Viewer is an application that allows you to watch and monitor tags, and modify tag values at
runtime. It provides you with a list of all available tags in the application arranged hierarchically,
based on their alarm groups. It displays tags available in the local InTouch application and does
not support remote references.
Tag Viewer is useful during engineering troubleshooting and diagnostic testing. It also reduces
application development and diagnostic time, and enhances application stability and reliability by
providing real-time direct runtime access to the Tagname Dictionary.
To use Tag Viewer, you must first enable it in WindowMaker and then start it from WindowViewer.
You can then start the application at runtime. It can be started through a script or the special
function menu.
Note: You can open only one instance of Tag Viewer at a time.
You can monitor the value, time, and quality of a tag in the watch window to determine if the data
you receive is good, and identify data related issues. Issues include loss of communication or mis-
configured tags.
.Value
Contains the value of the specified tagname. This is also the default dotfield for every InTouch
tagname within the system. If no other dotfield is specified, this dotfield is assumed.
.Time
Time dotfields represent updated time stamps and can be integer, string, or real data types based
on the time values being shown. For example, the .TimeDate indicator is an integer tagname
dotfield used to display the whole number of days since 01/01/1970. TimeDate would then contain
a number which represents the time that has passed since the I/O server sent the value.
AVEVA™ Training
Section 3 – Tag Viewer 3-51
. Quality
The data quality standard is based on the Open Platform Communications (OPC) proposed
quality, which is based on Fieldbus data quality specifications.
Quality flags represent the quality state for the data value of an item. This design makes it fairly
easy for both servers and client applications to determine how much functionality they want to
implement. InTouch typically uses a dozen of these codes.
The Quality field allows the user to access the quality of an I/O tagname as provided by an I/O
Server. If the I/O connection becomes invalid, the quality dotfields are automatically reset to the
initial value of zero. The .ReferenceComplete dotfield is also set to zero to indicate incomplete.
When the client application is unable to communicate with the server .QualityStatus is 0.
The following list shows some of the common codes that are returned by the .Quality dotfield:
Good (.Quality of 192)
The communications link has been verified
The PLC understood the poll request and returned a valid response packet
If a write occurred, there were no errors during the write process
There were no conversion problems with the data contained in the response packet
Example: The value 0x0000A is returned due to a poll of a register containing 10 (decimal).
Clamped High (.Quality of 86)
The communications link has been verified
The PLC understood the poll request and returned a valid response packet
The register was read or written without error
It was necessary to clamp its intended value to a limit because the value was larger than
the maximum allowed
In the case of a string, the string is truncated
Example: An unsigned 16-bit integer is clamped to 65535.
Clamped Low (.Quality of 85)
The communications link has been verified
The PLC understood the poll request and returned a valid response packet
The register was read or written without error
It was necessary to clamp its intended value to a limit because the value was smaller than
the minimum allowed
Example: An unsigned 16-bit integer is clamped to 0.
Cannot Convert (.Quality of 64)
The communications link has been verified
The PLC understood the poll request and returned a valid response packet
The data from the PLC could not be converted into the desired format
Possibilities for cannot convert include, but are not limited to:
The server may return a constant in place of the data or return quality information alone
The data is not usable
It is not known whether the value is too large or too small
The data returned from the PLC is of the incorrect data type
A floating point number is returned, but is not value (for example: Not A Number)
Example: The value of 0x000A is returned from a BCD register in a PLC.
Communications Failed (.Quality of 24)
Any combination of the following:
Data communications are down
The topic is in slow poll (or equivalent) mode
There have been no link validating messages
Lack of resources in the server
For example, a TSR (or driver) cannot allocate memory.
Lack of resources in the communications link
The communications link is offline
All communications channels are in use
The network is unable to route the message to the PLC
Example: Attempting to read data from a PLC that has been powered off.
Cannot Access Point (.Quality of 4)
The communications link has been verified
The PLC understood our poll request and returned a valid response packet
The PLC reported that it could not access the requested point
Possibilities for lack of accessibility include, but are not limited to:
Item does not exist in PLC memory
Item is not currently available (locked in some way due to resource contention)
Item is not of the correct format/data type
A write attempt was made, but item is read-only
In most cases, a group of items will be affected when one item is invalid. This is due to the
block-polling scheme used by the servers
For example, if one item in a block of 10 is invalid, and then the entire block is marked
invalid by the PLC. The Server will report invalid quality for all items in the block.
The data is unusable
Example: Attempting to read R40001, but R40001 is not defined in the PLC's memory map.
AVEVA™ Training
Lab 6 – Watching Tags with Tag Viewer 3-53
Introduction
In this lab, you will use Tag Viewer to monitor I/O data and check the health of I/O communication
for your tags.
Objectives
Upon completion of this lab, you will be able to:
Create watch windows containing tags
Determine the value, time, and quality of I/O tags
Save a watch window in Tag Viewer
Simulator Process
In this course you will use a PLCSim process that simulates a Mixer tank, which adds two
ingredients, blends them together, and then drains the mixer.
The process begins with Inlet1 valve opening and Pump1 running. The Level begins to increase.
Once the Level reaches 60%, the Inlet1 valve closes and Pump1 stops running.
Simultaneously, the Inlet2 valve opens and Pump2 starts running. The Level increases to
approximately 100% (intentionally, the logic in the simulator does not fill the tank to exactly 100%
every single time.)
At 100%, the Inlet2 valve closes and Pump2 stops running. The agitator starts mixing for a time
(typically, 15 seconds). The agitator then stops. At this point the Outlet valve opens and the tank is
drained to 0%.
During the entire process, the Temperature increases and decreases randomly.
The entire process takes approximately 1 minute and 30 seconds, and then repeats itself
indefinitely.
Note: WindowViewer configuration changes, such as enabling Tag Viewer, require WindowViewer
to restart. WindowViewer is currently shut down. Therefore, the configuration changes will take
affect the next time WindowViewer starts.
AVEVA™ Training
Lab 6 – Watching Tags with Tag Viewer 3-55
3. Click the Window Configuration tab, and check the Tag Viewer check box.
Note: This will add a new Tag Viewer menu option under the Special menu at runtime.
4. Click OK.
5. In WindowMaker, click RUNTIME.
AVEVA™ Training
Lab 6 – Watching Tags with Tag Viewer 3-57
In the left pane, a list of all of the tags in the application is displayed.
8. In the tag list, scroll down, and click Mixer100_Inlet1_Position.
9. Press and hold down the Ctrl key, and click to select the following tags:
Mixer100_Inlet2_Position
Mixer100_Outlet_Position
10. Drag and drop the 3 tags down onto the watch list.
All three tags are identified as I/O type because they show a current timestamp.
AVEVA™ Training
Lab 6 – Watching Tags with Tag Viewer 3-59
11. In the watch list window, right-click and select Rename Tab.
14. In the watch list, click in the empty space to ensure that you have no tags selected.
15. Right-click in the empty space and select Add Separator.
AVEVA™ Training
Lab 6 – Watching Tags with Tag Viewer 3-61
19. In the watch list, right-click the empty space, and select Add Separator.
20. Add the following tags to the watch list:
Mixer100_Level_PV
Mixer100_Temperature_PV
AVEVA™ Training
Lab 6 – Watching Tags with Tag Viewer 3-63
26. Add the following tags to the Memory Tags watch window:
Tag_Discrete1
Tag_Discrete2
Tag_Integer
Tag_Message
Tag_Real
27. Verify that all memory tags do not have a timestamp and have a quality of 192.
The reason memory tags do not have a timestamp and the quality is defaulted to 192 is
because they are defined as memory tags and not I/O tags.
AVEVA™ Training
Lab 6 – Watching Tags with Tag Viewer 3-65
AVEVA™ Training
Section 4 – DBDump and DBLoad 3-67
Overview
When you back up the Tagname Dictionary using the DBDump utility, a copy of the Tagname
Dictionary is exported to a file that can be opened by external applications. These files can be
manipulated externally and loaded back into the Tagname Dictionary using the DBLoad utility to
replace existing entries or add new tags.
The Tagname Dictionary is a convenient tool for creating tags. It is a simple interface that makes
this job quite easy. However, when creating thousands of tags for a large application, this task can
be time consuming. You can streamline tag development of large amounts of similar tags using
DBDump and DBLoad to make bulk additions or changes.
These two utilities allow you to copy, modify, or create tags and then load them into one
application. The DBDump and DBLoad utilities are started from the InTouch Application Manager
for STANDALONE + Symbol InTouch applications.
DBDump
Use the DBDump utility to export the Tagname Dictionary from an InTouch application to a file. The
file contains a list of all the tags contained in the Tagname Dictionary. This list can be organized
into section headers based on the type of tag as defined in the Tagname Dictionary. The file also
contains a list of all of the Access names.
DBLoad
Use the DBLoad utility to load, update, or replace a Tagname Dictionary in an InTouch application
from a file. Prior to loading the file, the contents of the file can be modified with mode switches
instructing DBLoad how to handle conflicts. A conflict happens is when a tag in the file matches a
tag that already exists in the Tagname Dictionary. The mode switch determines how the conflict is
handled.
For example, mode=ask, the default, will prompt the user for every conflict encountered. If you are
loading the same file that was just dumped using DBDump, this could mean responding to tens of
thousands of prompts. For this reason, mode=replace is more often used to create new tags or
modify existing tags. However, this option can be dangerous without a backup of your application
prior to using DBLoad. Therefore, DBLoad will prompt you to backup your application before every
use.
You can create a database input file template by creating a new InTouch application and then
running the DBDump program before any new tags have been created. The resulting exported file
represents a template of the Tagname Dictionary format used by the DBDump and DBLoad
utilities.
DBDump and DBLoad is the most common method used to modify tags because it accommodates
version control and tracking of changes made to tags.
Using DBLoad, it is possible to:
Create tags
Modify existing tag properties, such as Access names and Item names
Change logging properties
Make mass changes to the Tagname Dictionary
Keyword Description
:Mode Specifies how duplicate tag records are handled when importing the contents using
DBLoad
:IOAccess Access names defined for the InTouch application
:AlarmGroup Alarm groups defined for the InTouch application
:MemoryDisc Memory discrete tags
:IODisc I/O discrete tags
:MemoryInt Memory integer tags
:IOInt I/O integer tags
:MemoryReal Memory real tags
:IOReal I/O real tags
:MemoryMsg Memory message tags
:IOMsg I/O message tags
:GroupVar Group Var tags
:HistoryTrend Hist Trend tags
:TagID Tag ID tags
:IndirectDisc Indirect discrete tags
:IndirectAnalog Indirect analog tags
:IndirectMsg Indirect message tags
AVEVA™ Training
Section 4 – DBDump and DBLoad 3-69
Each tag type header keyword includes a set of attributes that specify the properties of Access
names, alarm groups, and the fields used by the Tagname Dictionary. For example, the :IOAccess
keyword includes attributes to specify the node, application, topic, and communication protocol,
which are properties of every InTouch Access name.
All data records must begin with the valid keyword for the tagname :type, followed by the valid
keyword for each data record (separated by commas). For example,
:IOMsg,Group,Comment,Logged,EventLogged,Event Logging Priority, …
Note: If a tag is renamed in the file, DBLoad creates a new tag rather than delete the original tag
instance. DBLoad cannot delete a tag from the Tagname Dictionary.
AVEVA™ Training
Lab 7 – Exporting and Importing Tags 3-71
Introduction
In this lab, you will use the DBDump utility to export all of the mixer tags in your application to a
.csv file. You will then modify the .csv file to create another set of mixer tags. These new tags will
link automatically with the PLC simulator configured in an earlier lab. Next, you will import the new
tags from the .csv file and verify that the new tags were created. Then you will use Tag Viewer to
test the communication and quality of the new tags. Finally, you will use the DBLoad utility to add
the remaining mixer tags that will be used throughout the rest of the labs.
Objectives
Upon completion of this lab, you will be able to:
Use the DBDump utility to export tags to a .csv file
Use Microsoft Excel to modify the definition of tags in a .csv file
Use the DBLoad utility to load the modified .csv file to create new tags
4. Ensure InTouch Training Application is selected, and click the DBDump button.
AVEVA™ Training
Lab 7 – Exporting and Importing Tags 3-73
Note: The Group output by types organizes the content of the .csv file into easy-to-read
format. When this option is disabled, it makes the dump faster on slower computers.
7. Click OK.
A Dump successful message appears.
8. Click OK.
Note: Before the next step, ensure that .csv (Comma delimited) is in the Save as type
field.
15. Press Ctrl+H to open the Find and Replace dialog box.
16. In the Find what field, enter Mixer100, and then in the Replace with field, enter Mixer200.
AVEVA™ Training
Lab 7 – Exporting and Importing Tags 3-75
Important: Using the DBLoad utility to replace or modify existing tags can present a risk if the
.csv file is not properly formatted or if errors are introduced by the user. Therefore, it is a best
practice to have a backup of your application, which may be used to restore the application in
the event the Tagname Dictionary becomes corrupted. In this course, you will cover the
detailed steps to properly back up and restore your application in a later lab.
AVEVA™ Training
Lab 7 – Exporting and Importing Tags 3-77
Test in Runtime
Next, you will use Tag Viewer to verify the existence and health of all of the new Mixer200 tags.
32. In the InTouch Application Manager, double-click the InTouch Training Application tile to
open WindowMaker.
After a moment, WindowMaker opens and the Windows to Open dialog box appears with no
windows checked.
33. In the Windows to Open dialog box, click OK.
34. Click RUNTIME.
35. On the WindowViewer Special menu, select Tag Viewer.
36. In the watch list, right-click in the empty space, and select Load Watch List.
37. In the Select a File dialog box, navigate to the C:\Training folder, and open the
My Watch List file.
AVEVA™ Training
Lab 7 – Exporting and Importing Tags 3-79
41. In the watch list right-click in the empty space and select Save Watch List.
46. Ensure InTouch Training Application is selected, and click the DBLoad button.
47. In the Database Load dialog box, click Yes.
48. In the CSV File to Load From dialog box, Files list, select AllMixerTags.CSV.
AVEVA™ Training
Lab 7 – Exporting and Importing Tags 3-81
AVEVA™ Training
Section 5 – Other Tag Management Utilities 3-83
The Cross Reference utility is a modeless window dialog box. This allows you to leave the cross
reference open while working in WindowMaker. This is handy when searching and modifying tag
names and tag values identified in the cross reference list, particularly large applications with tens
of thousands of tags. The initial time to open the Cross Reference utility can take several minutes.
AVEVA™ Training
Section 5 – Other Tag Management Utilities 3-85
Deleting Tags
When a tag is referenced by any script or animation, it cannot be deleted. Use the Cross
Reference tool to determine everywhere the tag is applied.
The Delete button is not available in the Tagname Dictionary if either WindowViewer is running or
the tag is being used in the application. Therefore, techniques must be applied to free tag usage
before a tag can be deleted.
In other words, to delete an unused tag from the Tagname Dictionary, you must complete the
following tasks:
Shut down WindowViewer
Determine tag use with the Cross Reference utility
Delete the tag from all windows, animation links, Failover configuration, ActiveX and .Net
Controls and scripts containing the tagname
Update Use Counts
Delete the tag from the Tagname Dictionary or the Delete Unused Tags utility for bulk tag
deletion
Note: References to a tag inside of quotes (“ “), such as within a script or animation link, excludes
this tag from the use counts check and will cause it to appear in the Delete Unused Tags utility. Be
cautious when deleting any tag that you may be unfamiliar with.
AVEVA™ Training
Module 4 – Situational Awareness
Visualization
Section 1 – Industrial Graphics and Situational Awareness Visualization 4-3
Section 2 – Element Styles 4-7
Lab 8 – Building a Dashboard 4-9
Section 3 – Window Construction Using the Graphic Editor 4-35
Lab 9 – Building the Mixer Operational Display 4-43
Section 4 – Custom Properties and Animations in Symbols 4-89
Lab 10 – Building a Command Symbol 4-95
Section 5 – HTML5 Widgets 4-111
Lab 11 – Creating a Carousel Dashboard 4-113
4-2 Module 4 – Situational Awareness Visualization
Module Objectives
Define the concepts of the Situational Awareness Library
Describe Element Styles
Explain the levels of Situational Awareness Displays
Create detailed displays (similar to P&ID and workflow or procedural displays)
Explain the features of Situational Awareness symbols
Visualize data with displays built using the Situational Awareness Library
AVEVA™ Training
Section 1 – Industrial Graphics and Situational Awareness Visualization 4-3
Overview
The pre-built graphics available out of the box with InTouch are divided into two graphic types. The
first type is Legacy graphics, which are file-based, rasterized, and native to WindowMaker. The
second type is Industrial Graphics, which are database stored, vectorized, and handled outside of
WindowMaker. Our focus for this course will be on Industrial Graphics.
Industrial Graphics are divided into two libraries: the Industrial Graphic Library, and the Situational
Awareness Library. Symbols from these two libraries are accessed from the Industrial Graphic
Toolbox.
When you place a symbol in the graphic toolbox onto a window, this is referred to as embedding
an instance. It is like making a copy of the symbol for use in the window. When you edit the graphic
in the graphic toolbox the changes are propagated, or pushed, to all of the instances of that
symbol throughout the application. This design approach allows you to maintain standards and
propagate modifications everywhere without having to make changes to each instance of the
symbol manually.
After a symbol has been embedded into a window it can be linked to tags so that the graphics
displayed in the window will show current process values in runtime. For example, a pump graphic
has tags linked to command override, operation hours, set point, open limit switch and closed limit
switch, operating temperature, power consumption, and other process values which are
represented on the screen graphically for the pump.
Graphic Assemblies
Symbols from the library can be embedded into another symbol. Using this technique, you could
create an entire process window by assembling valves, pumps, temperature, and level symbols
together inside a single symbol which represents a process. This concept is named a graphic
assembly. A graphic assembly is still referred to as a single symbol, which can then be embedded
on a window and named up using navigation to display the state of the process.
AVEVA™ Training
Section 1 – Industrial Graphics and Situational Awareness Visualization 4-5
Using the Symbol Wizard, a single Situation Awareness Library symbol can support multiple
configurations by showing or hiding functional elements as options that are part of the default
symbol set.
As you can see from the table, the InTouch tag type called Discrete is typically mapped to the
Boolean custom property type in Industrial Graphics. Where a 0 or 1 from the Discrete tag in
InTouch corresponds to False or True or 0 or 1 in Industrial Graphics. However, Industrial
Graphics will not generate an error or complain if any numerical data type is used for Boolean; it is
simply translated as 0 or non-zero. Where zero is False and non-zero is True.
The InTouch tag type called Integer is typically mapped to the Integer custom property in
Industrial Graphics. Integer represents whole numbers without fractions, such as -56 or 2568.
The InTouch tag type called Real is typically mapped to either a Float or Double custom property
in Industrial Graphics. Real represents high resolution values which include a fractional part, such
as -0.336 or 3235.9.
For the InTouch tag type called Message, it is typically mapped to the String custom property in
Industrial Graphics. Message represents string or text data, but may contain numerical characters
and symbols. Message tags in InTouch are limited to 131 characters in length. This is NOT a
restriction of Industrial Graphic String custom properties, so this must be taken into consideration.
In addition to the String custom property type, InTouch Message tags can also be linked to the
custom property types for Time and Elapsed Time, which contain a date and time character mask
for representing time data, in String format.
AVEVA™ Training
Section 2 – Element Styles 4-7
Element Styles
An element style defines a set of visual properties that determine the appearance of text, lines,
graphic outlines, and interior fill shown in Industrial Graphics or graphics. An element style applied
to a symbol sets preconfigured visual property values that take precedence over native visual
properties of a symbol.
Element styles provide the means for developers to establish consistent visual standards in their
applications. An element style can define the same visual properties of text, lines, fill, and outlines
for all symbols or graphics that belong to an application. Likewise, element styles can show the
current status of an object represented by a symbol. For example, an element style animation can
be applied to a symbol when an object transitions to an alarm state.
AVEVA™ Training
Lab 8 – Building a Dashboard 4-9
Introduction
In this lab, you will add two Situational Awareness Library dashboard symbols to a window. Then,
you will configure the wizard options, link tags, and position these symbols to present summary
data at runtime. You will also use the Application Style Library to override element styles.
Objectives
Upon completion of this lab, you will be able to:
Configure wizard options for the look and behavior for Situational Awareness symbols
Link InTouch tags to custom properties of Situational Awareness symbols
Visualize I/O data coming from multiple sources
Override a default element style in the Application Style Library
Import an Application Style Library
AVEVA™ Training
Lab 8 – Building a Dashboard 4-11
Note: Do not resize or reposition the symbol at this time because the wizard options and
choices in the following steps will change the dimensions and appearance of the symbol. You
will resize and reposition the symbol in a later step.
AVEVA™ Training
Lab 8 – Building a Dashboard 4-13
9. In the Bar01A details pane, Default Value field, remove the --- placeholder.
10. On the right side of the Default Value field, click the ellipsis button .
AVEVA™ Training
Lab 8 – Building a Dashboard 4-15
12. Click OK to select the tag and close the Select Tag dialog box.
The tagname is displayed in the Default Value field.
13. Repeat the previous steps to configure the custom property as follows:
j
Bar01B: Mixer100_Totalizer2_PV
Bar02A: Mixer200_Totalizer1_PV
Bar02B: Mixer200_Totalizer2_PV
Bar03A: Mixer300_Totalizer1_PV
Bar03B: Mixer300_Totalizer2_PV
Bar04A: Mixer400_Totalizer1_PV
Bar04B: Mixer400_Totalizer2_PV
Note: Ensure the placeholder (---) is removed before each tag is selected.
AVEVA™ Training
Lab 8 – Building a Dashboard 4-17
15. Right-click the SA_ColumnChart_Pairs symbol, and select Substitute | Substitute Strings.
AVEVA™ Training
Lab 8 – Building a Dashboard 4-19
18. Resize and position the symbol to the right side of the window, leaving space on the left for the
data values to grow and still be fully displayed.
The lower-right corner of WindowMaker shows the position and size of the graphic. These
fields can be edited directly by double-clicking the numbers in the status bar and pressing
Enter after making a change. The values shown here may be used to match the image as
shown.
19. In the Industrial Graphic Toolbox, drag SA_BulletGraph to the bottom of the KPI window.
Do not reposition or resize the graphic at this time.
AVEVA™ Training
Lab 8 – Building a Dashboard 4-21
20. Double-click the embedded instance of SA_BulletGraph to open the Edit Symbol Properties
dialog box.
21. In the Wizard Options pane, select PartialRange.
22. In the PartialRange details pane, Value drop-down list, select True.
23. Click the Custom Properties tab, and ensure Actual is selected.
24. Maximize the Edit Symbol Properties dialog box.
25. In the Actual details pane, replace --- with Mixer100_Totalizer3_PV +
Mixer200_Totalizer3_PV + Mixer300_Totalizer3_PV + Mixer400_Totalizer3_PV.
Note: Entering the addition symbol (+) as part of the expression in the Default Value field
does not require spaces around the operator. However, spaces do help with readability and
are recommended.
Note: The AlarmSeverity Custom Property default value is set to 2. This selects the High
Severity Level 2 alarm border which is yellow in color. This will be seen at runtime.
AVEVA™ Training
Lab 8 – Building a Dashboard 4-23
28. Right-click the SA_BulletGraph symbol and select Substitute | Substitute Strings.
29. Configure the Substitute Strings dialog box as follows:
Current String New String
# #
#.# #.#
Chart Heading Produced Product
Main Label All Mixers
Short Desc Gallons
Short Description Batch Totals
31. Resize and position the symbol to the left side of the window, leaving space on the right.
The lower-right corner of WindowMaker shows the position and size of the graphic.
AVEVA™ Training
Lab 8 – Building a Dashboard 4-25
Test in Runtime
Next, you will test the configured symbols in runtime.
32. Click RUNTIME.
In the WindowViewer KPI window, the two graphics display real-time data.
Note: The yellow alarm border indicates that the production output is not meeting the target
of 6500.
AVEVA™ Training
Lab 8 – Building a Dashboard 4-27
38. With the Actual_Value_Moving_Element selected, click the Fill (Fs) tab.
39. In the Fill Color Override area, to the right of the Fill Color Override check box, click the
color box.
AVEVA™ Training
Lab 8 – Building a Dashboard 4-29
Test in Runtime
Next, you will test the configured symbols in runtime.
43. In WindowMaker, click RUNTIME.
44. In the KPI window, in the Produced Product bullet graph symbol, verify that the current value
indicator is represented by a light blue ellipse.
AVEVA™ Training
Lab 8 – Building a Dashboard 4-31
A dialog box with an Imported Application Style Library successfully message appears.
Test in Runtime
Next you will test the new element style in runtime.
52. In WindowMaker, click RUNTIME.
53. Verify that all of the Situational Awareness graphics use a denim-colored application style.
Notice that the override for the Actual_Value_Moving_Element that was light blue is now
black.
AVEVA™ Training
Lab 8 – Building a Dashboard 4-33
Next you will apply the Application Style Library to the design environment.
54. Close WindowViewer.
55. Close WindowMaker.
56. Open the InTouch Application Manager and double-click the InTouch Training Application
tile.
WindowMaker opens.
57. In the WindowMaker Windows to Open dialog box, select the following windows:
Current_Alarms
KPI
Menu
Mixer
59. Notice that the Application Style Library colors have now been applied to your design time
application.
AVEVA™ Training
Section 3 – Window Construction Using the Graphic Editor 4-35
Graphic Editor
The Graphic Editor is comprised of the following components:
Tools Pane
The Tools pane contains elements you can use to draw on the canvas.
AVEVA™ Training
Section 3 – Window Construction Using the Graphic Editor 4-37
Elements Pane
The Elements pane contains a list of all the elements on the canvas.
The Elements pane is particularly useful for selecting one or more elements that are visually
hidden by other elements on the canvas. You can use the Elements pane to:
See a list of all elements, groups of elements, embedded symbols, and client controls on
the canvas
Select elements or groups of elements to work with them
Rename an element or a group of elements
The z-order of elements specifies which element appears on top of other elements when the
elements overlap on the canvas. When you place new elements on the canvas, they are placed at
the top and can cover all other elements.
The order of the elements can be changed as follows:
Bring one or more elements to the very front
Send one or more elements to the very back
Bring one or more elements one level forward
Send one or more elements one level backward
Properties Pane
You can use the Properties pane to view and configure properties for the selected element or
group of elements. These properties include wizard options, size, location, color, and fill style, as
well as runtime behavior.
Animation Summary
You can use the Animations pane to add or remove animations to elements on the canvas.
Canvas
The canvas is your drawing area. The canvas is used to draw, size, position, and edit elements.
AVEVA™ Training
Section 3 – Window Construction Using the Graphic Editor 4-39
Rotating Elements
You can rotate elements to any orientation (0-359 degrees):
Graphically with the rotation handle
Numerically by typing the orientation angle in the Properties editor
Using the 90-degree rotation tools in a clockwise or counter-clockwise direction
The element is rotated around its point of origin. By default, the point of origin is in the center of the
element.
AVEVA™ Training
Section 3 – Window Construction Using the Graphic Editor 4-41
When selecting tags and tag dotfields within the Symbol Editor they cannot be validated at design
time. Therefore, their color appears maroon, indicating that their source is unknown. This is normal
behavior as these tags will be bound at runtime. Some tags cannot be found in the Tag Selector.
The master alarm group tag $System and any SuperTags will not be visible from the InTouch Tag
Browser tab, but these can be typed into the Default Value field manually.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-43
Introduction
In this lab, you will design a Mixer symbol using Situational Awareness Library graphics. The Mixer
symbol will be reused for different configurations in future labs.
You will arrange the elements in your Mixer symbol as shown in the graphic below.
Objectives
Upon completion of this lab, you will be able to:
Create a symbol in the graphic toolbox in WindowMaker and open it for editing in the
Graphic Editor
Build a graphic assembly using Industrial Graphics from the Situational Awareness Library
Configure the Wizard Options for valves, pumps, meters, and an agitator
Link I/O tagnames and tagname.dotfields to custom properties within embedded symbols
Add Connection Points and Connectors to a symbol
Use the Zoom control bar features at runtime
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-45
Next, you will open the Mixer symbol and embed Situational Awareness Library graphics.
5. Double-click the Mixer symbol.
After a moment, the Graphic Editor appears.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-47
12. On the right side of the Graphic Editor, in the Properties pane Name field, enter Inlet1, and
press Enter.
Note: When changing field properties, press the Enter key as a final step to retain your
changes.
13. In the Wizard Options area, ValveType drop-down list, select Analog.
Note: Double-clicking on the field will also change Wizard Options. This is particularly useful
when there are two options such as True or False.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-49
On the canvas, the Inlet1 graphic changes to reflect the ValveType wizard option. The
graphics below show Inlet1 before and after selecting the Analog ValveType.
14. On the canvas, right-click the Inlet1 symbol, and select Substitute | Substitute Strings.
Note: In the Graphic Editor, Substitute Strings supports the use of special characters,
including spaces whereas the Element Names, Graphic Names, and Group Names do not.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-51
19. In the EquipStateActive details pane, Default Value field, delete False.
When the Default Value field is improperly configured, such as when it is left blank, the field is
highlighted with a red outline and the icons at the top of the details pane and in the Custom
Properties list are marked with a yellow warning triangle.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-53
20. In the Default Value field, double-click to open the Galaxy Browser.
The Galaxy Browser appears.
Note: A magenta text color normally indicates that the reference cannot be found. However,
InTouch tags are resolved at runtime.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-55
24. In the Default Value field, after the Mixer100_Inlet1_OLS tagname, enter a space, and then
type and.
25. In the Default Value field, after the Mixer100_Inlet1_OLS and expression, enter another
space, and then type not.
26. In the Default Value field after the Mixer100_Inlet1_OLS and not expression, enter a space,
and click the Browse Galaxy ellipsis button.
27. In the InTouch Tag Browser tab tag list, scroll down, and select Mixer100_Inlet1_CLS.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-57
Note: Private properties will not be shown when a symbol is embedded in another symbol
or an InTouch window. However, the data of these properties will be used by WindowViewer.
31. In the Custom Properties pane, select EquipStateOutOfRange, and select Private.
32. In the Custom Properties pane, select PV.
34. In the Default Value field, double-click to open the Galaxy Browser.
The Galaxy Browser appears.
35. In the InTouch Tag Browser tab tag list, scroll down, and double-click
Mixer100_Inlet1_Position.
The Default Value field will look like the following image.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-59
Next, you will select tagname dotfields using the Galaxy Browser.
36. In the Custom Properties pane, select PVMax, and delete the Default Value.
41. In the Custom Properties pane, select PVMin, and delete the Default Value.
42. Double-click the Default Value field, and select Mixer100_Inlet1_Position.
43. In the DotFields list, select MinEU.
44. Click OK.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-61
The Custom Properties pane will look like the following image.
Next, you will duplicate Inlet1, and in the duplicate embedded symbol you will substitute strings
and substitute references.
46. On the canvas, right-click the Inlet1 valve graphic, and click Duplicate.
47. On the canvas, drag the duplicate valve below the original valve.
48. With the duplicate selected, in the Properties pane, Name field, enter Inlet2.
49. On the canvas, right-click the duplicate valve, and select Substitute | Substitute Strings.
The Substitute Strings dialog box appears.
50. Enter Inlet 2, and click OK.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-63
51. Right-click the Inlet2 valve, and select Substitute | Substitute References.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-65
The Replace All button replaces all references of Inlet1 with Inlet2.
Next, you will add pumps to the Mixer symbol. The pump symbol is preconfigured with the desired
wizard options. However, you will configure the symbol strings and references.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-67
The Edit Custom Properties dialog box will look like the following image.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-69
Next, you will add an agitator to the Mixer symbol. The Agitator symbol is preconfigured with the
desired wizard options. However, you will configure the symbol strings and references.
74. Place the Agitator symbol to the right of Pump1 and Pump2.
75. Name the symbol Agitator.
76. Change the label to Agitator.
Note: By default the PV and PVRange custom properties are used for a variable speed
motor. The data source used in this course, PLCSim, uses a simple on/off motor for the
agitator. You configured the PV and PVRange properties as fixed values so EquipState, when
set to true, will simulate the motor running at 100%.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-71
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-73
87. Configure the custom properties with tag and dotfields as follows:
Custom Property Default Value Visibility
PV Mixer100_Level_PV Public
PVRangeFullScaleMax Mixer100_Level_PV.MaxEU Public
PVRangeFullScaleMin Mixer100_Level_PV.MinEU Public
Next, you will duplicate Level and modify it to become a temperature meter.
89. Duplicate Level, and place the duplicate to the right of Level.
90. Name the duplicate Temperature.
91. In the Wizard Options area, Type drop-down list, select Temperature.
92. Configure the duplicate symbol as follows:
Change From To
Substitute Strings: Gallons DegF
Substitute Strings: Level Temperature
Substitute References (Find & Replace): Level Temperature
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-75
Next, you will add a tank to the Mixer symbol. In the Tank symbol you will enable the
CustomPropertyLabel feature so that you can modify the display name of the tank by using a
custom property. This feature will be used in future labs.
102.On the canvas, place Tank over the Agitator, Level, and Temperature embedded symbols.
103.In the Elements list, right-click Tank, and select Custom Properties.
104.With the Label custom property selected, in the Default Value field, verify the Static Text
mode is enabled.
This toggle button selects if the contents of the Default Value field will be treated as text or as
a reference. The current setting allows the Default Value field to be treated as text.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-77
106.Click OK.
Notice the Label for Tank is not changed. Unlike Substitute Strings, Custom Property labels
will only show in WindowViewer runtime.
107.In the Elements list, right-click Tank, and select Order | Send To Back.
Tank is positioned in the z-order behind all other elements by appearing at the bottom of the
list.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-79
Next, you will place a Connection Point on the Tank as an anchor point for the connector pipe
that you will add between the pump and the tank.
111.Line up the cursor for the Connection Point on the left side border of the tank directly across
from the built-in Connection Point on the right side of Pump1.
115.Hover over the bottom center of the Tank until the Connection Point displays, click then drag
the Connector to the Connection Point on the lower right side of the Outlet valve.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-81
118.In the Elements list, select Connector2, and on the Properties pane, ConnectionType drop-
down list, select Straight.
119.Create a Connector between Pump1 and the adjacent Connection Point on the Tank.
120.Create a Connector between the right side of Inlet2 and the Connection Point in the center
of Pump2.
121.In the Elements list, select Connector4, and on the Properties pane, ConnectionType
drop-down list, select Straight.
122.Create a Connector between Pump2 and the adjacent Connection Point on the Tank.
123.On the canvas, click Inlet1, hold the Shift key down, and click Inlet2 to add it to the selection.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-83
124.With Inlet1 and Inlet2 selected, use the up or down arrow keys on the keyboard to straighten
the Connectors between the valves and the pumps.
125.In the top-left corner of the Graphic Editor, click the Save and Close button.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-85
Test in Runtime
Finally, you will open WindowViewer and test the Mixer symbol in the Mixer window.
129.Click RUNTIME.
WindowViewer opens and the Mixer window displays the current state of the Mixer100
process.
The process begins with the Inlet1 valve opening and Pump1 running. The Level begins to
increase. Once the Level reaches 60%, the Inlet1 valve closes and Pump1 stops running.
Simultaneously, the Inlet2 valve opens and Pump2 starts running. The Level increases to
approximately 100% (intentionally, the logic in the simulator does not fill the tank to exactly
100% every single time.)
At 100%, the Inlet2 valve closes and Pump2 stops running. The agitator starts mixing for a
time (typically, 15 seconds). The agitator then stops. At this point the Outlet valve opens and
the tank is drained to 0%.
During the entire process, the Temperature increases and decreases randomly.
The entire process takes approximately 1 minute and 30 seconds, and then repeats itself
indefinitely.
Next, you will use the features of the Frame window, including the ZoomControl toobar, to zoom
and pan the Mixer graphic.
Note: If your monitor supports touch gestures, for this runtime test, you may also try pinch to
zoom and swipe to pan using your hand.
130.In the Mixer window, on the ZoomControl toolbar drop-down list, select 125.
AVEVA™ Training
Lab 9 – Building the Mixer Operational Display 4-87
132.In the Mixer window, click and hold down the mouse button, and move the mouse to pan the
graphic.
133.On the ZoomControl toolbar, click the Rubber Band Zoom button.
134.In the Mixer window, click and drag a rectangle over the Temperature and Level graphics.
Notice the window is zoomed to show the area that was captured using the Rubber Band
Zoom tool. More of the window may be visible than what you captured because the window
will maintain aspect ratio.
135.On the ZoomControl toolbar, click the Rubber Band Zoom button to cancel the Rubber
Band Zoom.
Finally, you will use the mouse and keyboard to zoom and pan the Mixer graphic.
136.With the Ctrl button held down on the keyboard, and the cursor hovering over the middle of
the Mixer window, scroll the mouse wheel up and down to zoom.
The Mixer graphic is zoomed in and out at the mouse cursor position.
137.Ensure the Mixer graphic is zoomed above 100 and then on the Mixer graphic, click and hold
down the middle mouse button to pan the graphic.
Observe that the Mixer graphic has been restored to its original size.
139.Click Development!.
AVEVA™ Training
Section 4 – Custom Properties and Animations in Symbols 4-89
Custom Properties
Custom Properties are the only mechanism for customization of a symbol. The custom properties
describe how each part of the graphic is used (Description). Custom properties define the initial
value or starting state of the graphic (Default Value). Custom properties guide the data type
required to link external values (Data Type). Custom properties can be marked Private to prevent
configuration changes when a symbol is embedded in another symbol or window (Visibility).
You can associate custom properties with functionality you want exposed and that you want to be
reusable. You can also use custom properties to connect an embedded Industrial Graphic to
InTouch tags.
In the Visibility box, configure how the symbol is visible. Do one of the following:
Click Public if you want the custom property to be visible (available to be edited or used)
when this symbol is embedded in another symbol or in an InTouch Window.
Click Private if you want the custom property to be hidden. This means the property
cannot be seen or edited when the symbol is embedded in another symbol or in an
InTouch Window.
For custom properties using the String Data Type, the option is presented to treat the default
value as the text as it is entered. Otherwise the default value will be looked up as a reference or
expression. For example, tags, graphic elements, other custom properties, attributes and so on.
This switch is available only for string data types. Other data types do not offer this option.
Select the T icon (Static Text) to indicate that it is a static value. This treats the content of
the Default Value field as-is, a literal string or as text. It takes each character as shown
including white space. No calculations or lookup are performed.
Select the Tag icon (Reference or Expression) to indicate that the Default Value field
contains a link to an external reference such as a tag, custom property, or graphic element
property.
AVEVA™ Training
Section 4 – Custom Properties and Animations in Symbols 4-91
Animations
An animation can be applied to an element or a group of elements on the canvas. The available
animations for selection are limited by the primitive parts that make up the element or group. For
example, a text animation cannot be applied to a rectangle that has no text.
You can use animations to bind the run-time behavior and appearance of elements to InTouch
tags, custom properties, and other element’s properties.
For example, you can bind the vertical fill of a rectangle to an InTouch tag that contains the current
level of a tank.
Animations are specific to the selected element and vary between elements of different types.
AVEVA™ Training
Section 4 – Custom Properties and Animations in Symbols 4-93
ZoomPercent
ZoomPercent is a read/write property that allows you to both monitor and set the zoom level
associated with the symbol hosted by a Frame window. For example, ZoomPercent = 200 will
double the default size of the graphics in a Frame window. The zoom will automatically expand
around the geometric center of the symbol that is hosted.
ZoomPercent can also be used to monitor the current zoom level applied in runtime. For example,
ZoomPercent > 100 will trigger the moment any zoom occurs on the graphic. ZoomPercent can
be a value between 100 and 5000.
AVEVA™ Training
Lab 10 – Building a Command Symbol 4-95
Introduction
In this lab, you will create a custom symbol to be used as a command panel for starting and
stopping pumps. You will create and configure a custom property. Additionally, you will animate the
command buttons with Pushbutton and Element Style animation types.
Objectives
Upon completion of this lab, you will be able to:
Create a custom property
Configure animations
Add a Pushbutton animation
Add an Element Style animation
AVEVA™ Training
Lab 10 – Building a Command Symbol 4-97
5. In the Edit Custom Properties dialog box, click the Add custom property button.
Note: To rename a custom property, first select the property, then click the selected property
text. The rename field will then be shown so the name can be edited. Press enter to accept the
name change.
8. In the CMD details pane, Data Type drop-down list, verify Boolean is selected.
9. In the Default Value field, clear the default contents and enter --- .
Three dashes represent a placeholder for Custom Properties. This suppresses error
messages until this property is linked to I/O data at a later time.
10. In the Visibility area, ensure Public is selected.
11. In the Description field, enter the following:
Used to write command overrides to field devices.
AVEVA™ Training
Lab 10 – Building a Command Symbol 4-99
14. On the canvas, click and drag down and to the right to draw a button.
15. Enter Start for the button text.
AVEVA™ Training
Lab 10 – Building a Command Symbol 4-101
AVEVA™ Training
Lab 10 – Building a Command Symbol 4-103
Note: When an Element Style is disabled, the configured Element Style of the element is
used.
Next, you will duplicate the button and modify the animations.
33. Duplicate the button, and place the duplicate button to the right of StartButton.
AVEVA™ Training
Lab 10 – Building a Command Symbol 4-105
45. On the Quick Access Toolbar, click the Edit Symbol button.
AVEVA™ Training
Lab 10 – Building a Command Symbol 4-107
53. In the CMD details pane, Default Value field, delete --- .
54. In the Default Value field, double-click to open the Galaxy Browser.
55. In the InTouch Tag Browser tab tag list, scroll down and double-click
Mixer100_Pump1_CMD.
Next, you will duplicate Pump1_CMD and in the duplicate, you will substitute references.
57. Duplicate Pump1_CMD.
58. Position the duplicate below Pump2 on the canvas as shown below.
AVEVA™ Training
Lab 10 – Building a Command Symbol 4-109
60. With Pump2_CMD selected, right-click and select Substitute | Substitute References.
61. Use Find and Replace to replace Pump1 with Pump2.
62. Click OK to close the Substitute Reference dialog box.
63. Click Save and Close.
In WindowMaker, notice the Mixer graphic has been updated to show the new CMD buttons.
66. To ensure automatic operation of the simulator, click Start or Stop to ensure the pumps are in
the same state as their associated valves, so that the level in the tank begins moving again.
For example, if Inlet 1 is active, then Pump 1 must also be active (Start).
67. Click Development!.
AVEVA™ Training
Section 5 – HTML5 Widgets 4-111
Introduction
Widgets are small components that can extend the functionality of InTouch. HTML5 Widgets are a self-
contained code block based on website design that can be imported into InTouch without changing any
of its features. The power of this has been added to InTouch which now acts as a container for HTML5
Widgets both in design time and runtime. Widgets are most frequently used to provide on-screen user
interface elements that ingrate with other platforms and data sources. A widget can be run in
WindowViewer with consistent placement and user interface. For example, social media, weather, RSS
or podcast widgets.
By default, the following widget is available under the Widgets folder in the Graphic Toolbox:
Carousel
Carousel Widget
A carousel widget allows you to cycle through Industrial Graphics like a carousel without any user input.
It also supports user selection of the previous or next step in the carousel. For examples, this widget
can be used to display dashboards, alerts or alarm information on large monitors on the plant floor.
Properties
In addition to the standard graphics properties, you can also configure properties specific to the widget,
under Widget Properties in the Graphic Editor.
Name Description
Autoplay If the Autoplay property is set to true, the carousel widget will automatically start
on load. If it is set to false, the user must select the next item to start the carousel.
The default value is True.
GraphicNames A comma separated list of Industrial Graphics the carousel will display in runtime.
Interval The amount of time delay (in milliseconds) between automatically cycling an item.
Keyboard If the Keyboard property is set to true, the carousel will respond to keyboard
inputs. The default value is True.
Loop If the Loop property is set to true, the carousel will cycle through the graphics
continuously, else it will stop after a single cycle. The default value is True.
Pause If the Pause property is set to true, the carousel will pause the cycling of the
graphics, when it detects the mouse hovering or a touch down event. The
graphics will resume cycling when the mouse is moved away. The default value is
True.
AVEVA™ Training
Lab 11 – Creating a Carousel Dashboard 4-113
Introduction
In this lab, you will create an HTML5 carousel widget to use as a dashboard that will display an
existing clock from the library and a symbol built in previous labs.
Objectives
Upon completion of this lab, you will be able to:
Use HTML5 Widgets
Display graphics in the Carousel widget
Name: Home
Frame: checked
Window Type: Replace
Title Bar: unchecked
Template unchecked
X Location: 0
Y Location: 100
Window Width: 1800
Window Height: 880
The Window Properties dialog box will look like the following image.
2. Click OK.
AVEVA™ Training
Lab 11 – Creating a Carousel Dashboard 4-115
8. Click OK.
10. In the Properties pane, scroll down to locate the Widget Properties.
AVEVA™ Training
Lab 11 – Creating a Carousel Dashboard 4-117
Next, you will place the HomeDashboard symbol onto the Home window in WindowMaker.
13. Drag the HomeDashboard symbol onto the Home window.
14. In the Properties pane, Appearance area, change the MaintainAspectRatio property to
False.
Test in Runtime
Finally, you will open WindowViewer and test the new carousel.
15. Close the KPI popup window.
16. Click RUNTIME.
Notice that the Industrial Graphics you listed automatically start scrolling when the Home
window opens in WindowViewer.
Next, you will open Notepad with elevated privileges and use it to modify the Carousel widget’s
cascading style sheet (CSS) file.
17. Click the Windows Start button.
18. In the Search field, begin entering Notepad, until the Notepad, Desktop app appears in the
Start menu.
AVEVA™ Training
Lab 11 – Creating a Carousel Dashboard 4-119
19. Hold down the Shift key, right-click Notepad and in the menu, select Run as administrator.
Notepad opens.
20. In Notepad, on the File menu, click Open.
Next, you will modify the background color of the carousel widget to white.
21. In the Open dialog box, navigate to:
C:\Training\InTouch Training Application\Widgets\carousel\build
22. In the File Type drop-down list, select All Files (*.*).
23. Select the build.min.css file.
Note: Depending on the configuration of your File Explorer, files may display hidden
extensions. Therefore, the file name may display as build.min.css or build.min. You can use
the Type column to determine you have selected the right type of file.
AVEVA™ Training
Lab 11 – Creating a Carousel Dashboard 4-121
Because the carousel's default dark gray background color makes it difficult to read the labels on
the Industrial Graphics, next we will modify the background color in the cascading style sheet file
to use the color white.
25. In the file contents, locate:
carousel-item{background-color:#777}
Next, you will cycle between Runtime and Development to refresh the widget. Alternatively,
this could be accomplished by restarting WindowViewer.
29. Click Development!.
30. Click RUNTIME.
The background color of the widget has changed from grey to white. The text of the industrial
graphics is now more legible.
When your mouse hovers over the carousel, it pauses automatic scrolling because the Pause
property of the widget is set to True by default.
31. Wait until the carousel shows the Mixer graphic, then hover your mouse over the carousel to
pause automatic scrolling with the Mixer graphic showing.
32. Use the pump Cmd buttons in the Mixer graphic to stop or start one of the pumps.
Remember, when you are finished, to resume automatic operation of the simulator, ensure the
pumps are in the same state as their associated valves.
33. Click Development!.
34. Close the Home window.
35. Open the KPI, Mixer, and Current_Alarms windows.
AVEVA™ Training
Module 5 – InTouch Alarms
Section 1 – InTouch Tagname Alarm Configuration 5-3
Lab 12 – Configuring InTouch Alarms 5-11
Section 2 – Live Alarms Management 5-33
Lab 13 – Visualizing and Acknowledging Live Alarms 5-37
Section 3 – Historical Alarms Management 5-59
Lab 14 – Visualizing and Filtering Historical Alarms and Events 5-63
5-2 Module 5 – InTouch Alarms
Module Objectives
Define InTouch Alarms
Describe the Alarm subsystem
Define InTouch Tag alarm types
Describe InTouch Alarm Properties configuration
Explain how Alarms can be visualized
AVEVA™ Training
Section 1 – InTouch Tagname Alarm Configuration 5-3
This section will explain how to configure a discrete alarm, and an analog limit alarm. This section
will also discuss alarm dotfields, priority, groups, severity, and advanced alarm features.
Overview
InTouch has two types of notifications: Alarms and Events.
Alarms represent warnings of process conditions that could cause problems and require a
response. You can configure alarms to require an acknowledgment even if the condition causing
the alarm has passed. This ensures that an operator is aware of events that caused a temporary
alarm state but have returned to normal.
A typical alarm is triggered when a process value exceeds a user-defined limit, such as an analog
value exceeding a hi-limit threshold. This triggers an unacknowledged alarm state that can be
used to notify the operator of a problem. Once the operator acknowledges the alarm, the system
returns to an acknowledged state.
Events are considered informational and represent normal system status messages, and do not
require an operator response. A typical event is triggered when a certain system condition takes
place, such as an operator logging into InTouch. If configured to do so, InTouch can log an event to
the alarm database and print it out to a printer.
Any tag can be configured to do event monitoring while you are defining it in the Tagname
Dictionary. When you define a tag to do event monitoring, an event message is logged to the alarm
system each time the tag value changes. The event message logs how the value changed,
whether the operator, I/O, scripts, or the system initiated the change.
Alarms are enabled in the Tagname Dictionary on a tag-by-tag basis. As a supervisory system,
InTouch is frequently used to monitor discrete alarm outputs from a PLC or DCS system. Then,
InTouch is used primarily to track operator information based on who acknowledges, or who is
logged into the system when an alarm occurs. InTouch can add value with three types of analog
alarm monitoring that may not exist in an existing hardware based system:
Limit Alarms – used to track Lo, LoLo, Hi, and HiHi value limits which can also be
changed in Runtime through InTouch dotfields.
Rate of Change Alarms – used to compare a previous alarm value and its timestamp,
and the current value and timestamp, to determine the value has changed by too much
during that period.
Minor and Major Deviation Alarms – Used to monitor that the current alarm value does
not drift too far from the target value specified. Events are informational data, triggered
when a tag changes is enabled by checking the log events option for any tag type. Events
can be used, for example, to monitor the start-stop cycles on a piece of equipment to
determine the maintenance period. Events can be disabled globally for all tags through
WindowMaker configurable enabled events. Events are not displayed in a live alarm
display and are only shown in the Historical Display option.
Alarm Groups
Tag Viewer allows you to watch tags and monitor their values at runtime. You can view all tags
available in the application. The tags are arranged in a tree structure, based on their alarm groups.
It provides you with a list of all available tags in the application arranged hierarchically, based on
their alarm groups.You can group alarms to make tracking and management easier. Alarm groups
are logical representations of different areas of a factory, pieces of equipment, operator
responsibility, or a manufacturing process. For example, the following figure shows a three-tier
alarm group hierarchy for a tank farm application.
Alarm groups are useful for filtering in alarm displays, alarm printers, and acknowledgment scripts.
Every tag is associated with an alarm group. By default, tags are assigned to main $System group.
You can create a hierarchy of additional alarm groups under the $System group, up to a maximum
of 32 levels.
You create alarm groups and associate tags with them while you are defining your tags in the
Tagname Dictionary.
Critical: 1-249 .
Major: 250-499
Minor: 500-749
Informational: 750-999
AVEVA™ Training
Section 1 – InTouch Tagname Alarm Configuration 5-5
Alarm Annunciation
InTouch provides numerous ways to provide operator notification, and to annunciate that an alarm
has occurred. InTouch provides system tags, alarm groups, tagname dotfields, script functions,
symbol properties, animation links, and popup windows – any or all of which can be used to
monitor and annunciate alarm conditions. By leveraging Industrial Graphics, script functions and
animations in nearly infinite number of possibilities to alert Operators can be achieved.
Alarm Dotfields
You can use alarm dotfields to dynamically manage alarm conditions. Many of these dotfields are
accessible using I/O, expressions, and scripts. Through I/O access, you can monitor and control a
specific tag’s alarm information using other Windows applications, such as Excel, or
WindowViewer running on a remote node.
To access dotfields associated with a tag, use this syntax:
tag.dotfield
For example, if you want to allow runtime changes to the HiHi alarm limit on a tag named
Analog_tag, you can create an Analog - User Input animation link to a button and enter
Analog_tag.HiHiLimit as the expression in the link’s dialog box. During runtime, the operator
simply clicks the button and types in a new value for the HiHi alarm limit assigned to the
Analog_tag.
The following list represents some frequently used alarm dotfields.
Alarm Inhibition
Alarms can be prevented from annunciation such as appearing in the Alarm Client using Alarm
Inhibition Alarms. For example, an Alarm Group named Production1 can have all of its Hi and HiHi
alarms inhibited. Inhibition requires a discrete tag be created and linked to the inhibition field of a
tag or group.
In runtime, when this discrete tag is set to 1, all of the alarm states the inhibition tag was linked to,
are inhibited. For each distinct inhibition, additional discrete tags must be created and linked.
Alarm inhibition can be hidden from the Alarm Client display while still being tracked and recorded.
Alarm border animation also shows an indicator icon at the top-left corner of the border. Alarm
severity appears within the indicator icon as a number from 1 to 4. The indicator icon can be
shown or hidden as an option of Alarm Border animation and can be configured from the
ArchestrA IDE.
Alarm border animation can be applied to all types of symbols except embedded symbols and
nested groups. Alarm border animation can also be applied to graphic elements and group
elements.
AVEVA™ Training
Section 1 – InTouch Tagname Alarm Configuration 5-7
The alarm value returns to normal and the user acknowledges the alarm: Alarm Border
animation no longer appears around a symbol
The user suppresses an alarm: Alarm Border animation remains around the symbol in a
Suppressed visual style; however, an alarm indicator icon does not appear for a
Suppressed state
Note: Alarm Border animation is not used for alarms in an inhibited or a shelved state.
If a new alarm condition occurs when Alarm Border animation appears around a symbol,
the animation updates to show the new alarm state
In the case of aggregation alarms, Alarm Border animation shows the highest current
alarm state
Alarm Border animations can be configured by selecting Alarm Border from the list of
Visualization animations. The Alarm Border pane contains mutually exclusive fields to set the
referenced attributes for aggregate or individual alarms.
For aggregation alarms, users specify Alarm Border animation by entering an attribute or object
name in the Use Standard Alarm-Urgency References field of the Alarm Border pane. The
selected object attributes map to the following aggregation alarm attributes:
AlarmMostUrgentAcked: Indicates the acknowledgment status (True/False) of the
highest priority current alarm
AlarmMostUrgentInAlarm: Indicates the InAlarm status (True/False) of the highest
priority current alarm
AlarmMostUrgentMode: Indicates the mode (Enabled/Silenced/Disabled) of the highest
priority current alarm
AlarmMostUrgentSeverity: Indicates the severity as an integer (1-4) of the highest
priority current alarm; if no alarms are in an InAlarm state or waiting to be acknowledged,
the value is 0
To set Alarm Border animation for individual alarms, users specify references to the following
alarm attributes or tags:
InAlarm attribute
Acked attribute
Mode attribute
Severity attribute
Alarm Border animation subscribes to these attributes. Based on the alarm state of these
attributes, Alarm Border animation is applied to the graphic element in runtime.
AVEVA™ Training
Section 1 – InTouch Tagname Alarm Configuration 5-9
AVEVA™ Training
Lab 12 – Configuring InTouch Alarms 5-11
Introduction
In this lab, you will configure alarm limits for InTouch tags. Then, you will use the Situational
Awareness Wizard Options to enable alarm limit indicators, and an alarm border animation for the
SA_Meters symbol.
Objectives
Upon completion to this lab, you will be able to:
Define alarm limits for an Analog tag
Define a Discrete alarm for a Discrete tag
Enable advanced settings on the SA_Meters symbol including Alarm Limits and Alarm
Border
Set fixed values for AlarmMostUrgentMode and AlarmMostUrgentSeverity properties
Link InTouch alarm dotfields to custom properties
Identify Element Styles associated with an Alarm Border
Configure the Alarm Acknowledgment Model for a tagname
Create Alarm Groups and configure tags to use Alarm Groups
Configure an Inhibit tag and use it to inhibit alarms
4. Click OK.
AVEVA™ Training
Lab 12 – Configuring InTouch Alarms 5-13
In the Tagname Dictionary, the tag is displayed and the Alarms pane appears.
5. In the Alarms pane, check the LoLo and High check boxes.
6. In the LoLo Alarm Value field, enter 120, and in the High Alarm Value field, enter 150.
7. Click Save.
8. Repeat the previous steps to select the following tags, and enable the same alarm limits and
alarm values as follows:
Tagname Enable LoLo Limit Enable Hi Limit
Mixer200_Temperature_PV 120 150
Mixer300_Temperature_PV 120 150
Mixer400_Temperature_PV 120 150
Next, you will add an alarm border to the mixer temperature element.
10. In WindowMaker, in the opened Mixer window, click on the Mixer graphic to ensure the
Quick Access Toolbar is showing.
11. On the Quick Access Toolbar, click the Edit Symbol button.
AVEVA™ Training
Lab 12 – Configuring InTouch Alarms 5-15
AlarmHiLimitIndicator: True
AlarmLoLoLimitIndicator: True
AlarmBorder: True
AVEVA™ Training
Lab 12 – Configuring InTouch Alarms 5-17
Note: For tag-based designs, Alarm-Urgency Reference sources (Mode, Severity, and
Shelved) must be set to fixed values.
Test in Runtime
Next, you will test what you have configured in runtime.
19. Click RUNTIME.
20. Verify the alarm border displays when any temperature exceeds the alarm limits.
The alarm limit indicators are shown on the Temperature symbol where the HiLimit and the
LoLoLimit are positioned relative to the MinEU and MaxEU values defined for the tag.
21. Click Development!.
AVEVA™ Training
Lab 12 – Configuring InTouch Alarms 5-19
AVEVA™ Training
Lab 12 – Configuring InTouch Alarms 5-21
27. Click the Element Styles tab, and in the Element Style Overrides list, scroll down and select
AlarmBorder_Critical_RTN.
The line color and pattern of AlarmBorder_Critical_RTN are displayed.
The Line Pattern, Line Weight, and Line Color of the border are displayed.
The Preview area shows the appearance of alarm border configurations. In this case, it
displays the cross-hatch pattern, which looks like small evenly-spaced triangles.The settings
in the Outline tab can be configured to override default alarm border settings.
29. Click Cancel.
AVEVA™ Training
Lab 12 – Configuring InTouch Alarms 5-23
Test in Runtime
Next, you will test what you have configured in runtime.
30. Click RUNTIME.
31. In the Mixer window, notice the AlarmBorder_Critical_RTN is represented on the screen by
the cross-hatch pattern.
Note: Depending upon the state of the simulator, you may have to wait for up to 30 seconds
to notice this behavior.
Tagname: MixerGroup_Inhibit
Data Type: Memory Discrete
AVEVA™ Training
Lab 12 – Configuring InTouch Alarms 5-25
41. In the Value area to the right of the LoLo field, click the ellipsis button.
AVEVA™ Training
Lab 12 – Configuring InTouch Alarms 5-27
42. In the Select Tag dialog box, select the MixerGroup_Inhibit tag, and click OK.
MixerGroup_Inhibit is displayed in the LoLo field.
43. Repeat the previous steps to configure the High field with the same inhibit tag.
AVEVA™ Training
Lab 12 – Configuring InTouch Alarms 5-29
Notice the Group is $System and the ACK Model is set to Condition.
52. Click Close.
Test in Runtime
53. Click RUNTIME.
54. On the WindowViewer Special menu, click Tag Viewer.
55. In the watch window, right-click, and select Load Watch List.
59. Click a blank space on the watch window, right-click and select Add Separator.
AVEVA™ Training
Lab 12 – Configuring InTouch Alarms 5-31
61. From the Dotfield Name list on the right, drag Alarm to the watch list.
$System.Alarm appears at the bottom of the watch list.
63. From the Dotfield Name list on the right, drag Alarm to the watch list.
Mixers.Alarm appears at the bottom of the watch list.
Note: The Mixer100_Temperature_PV value between 120 and 150 will cause the
Mixer100_Temperature_PV.Alarm value to show False.
69. In the Modify Discrete Value dialog box, click True, and click Apply.
70. Notice the following:
Mixers.Alarm and Mixer100_Temperature_PV.Alarm are set to False.
$System.Alarm is True because Tag_Discrete1.Alarm is true.
Tag_Discrete1 is not defined to use the Mixers alarm group.
The MixerGroup_Inhibit tag inhibits only tags using the Mixers alarm group.
$System.Alarm is True when any uninhibited alarm is true.
Mixers.Alarm is True when any temperature alarm is true.
71. In the Modify Discrete Value dialog box, click False, and click OK.
72. In the watch list, right-click, and select Save Watch List.
73. Close Tag Viewer.
74. Click Development!.
AVEVA™ Training
Section 2 – Live Alarms Management 5-33
When the Save User Queries and Filters option is selected, modifications made to queries or
filters at runtime are saved on a per user, and alarm control, instance to a .xml file. For example, a
saved query will save as UserQueryFilter_001.xml. Modifications are saved in the following
default directory:
C:\Users\<OS Login Name>\AppData\Local\
The map between the Alarm Control instance and the above .xml file is saved in a map file,
InstancesMap.dat. Modified queries and filters will be available upon closing and restarting the
alarm control window or WindowViewer.
If you uncheck the Save User Queries and Filters option, updates made to queries and filters
during run-time will not be saved.
Note: When the Save User Queries and Filter option is checked, the Overwrite Design Time
Queries and Filters option is enabled and checked by default. When checked, this option
resolves naming conflicts between design-time queries and filters and run-time queries and filters
loaded from the .xml file. Naming conflicts will be resolved by overwriting the design time queries
and filters.
AVEVA™ Training
Section 2 – Live Alarms Management 5-35
Alarm Management
The Alarm Client is the primary tool used to manage alarms in your InTouch application.
Management of alarms involves identifying the when, where, and what of each alarm occurrence.
By interacting with the Alarm Client a user can perform management functions such as
acknowledging an alarm, hiding an alarm, or filtering the list of alarms to show a specific
occurrence of an alarm or event. Filters allow alarms to be displayed by group, tagname, or
priority.
Acknowledging Alarms
Every alarm in InTouch has two binary states. The first state is in alarm or not. The second is
acknowledged or not. These two binary states form a simple four-part truth table. The Alarm Client
allows you to manage this by displaying alarms in red, white, and rose colors. The fourth state is
when the alarm disappears from the Alarm Client.
When an alarm is first triggered it is both in alarm and unacknowledged. This state is named
UNACK_ALM. Before the problem that caused the alarm is resolved an operator can
acknowledge the alarm and take action to resolve the cause. This changes the state of the alarm
from UNACK_ALM to ACK_ALM. To acknowledge an alarm using the Alarm Client, the operator
must right-click the row of the alarm and chose Ack Selected. This causes a dialog box to appear
in which the operator must enter an alarm comment in order to acknowledged the alarm.
Once the cause of the alarm has been resolved an acknowledged alarm will disappear form the
Alarm Client. It is also possible that an alarm will return to normal before a user has time to
acknowledge it. This is named UNACK_RTN. An alarm in this state will remain visible in the Alarm
Client until it is acknowledged. In all cases an alarm must be both acknowledged and returned to
normal for it to disappear from the Alarm Client.
The User Input animation allows you to create a prompt message that appears for the user. The
resulting dialog box presents a list of choices that they can select from. You can use these choices
to set a reference for an InTouch tag. The User Input animation supports encryption to protect the
characters which are typed from observation from an onlooker and supports reflecting the input
selected back to the graphic or button through visual presentation.
AVEVA™ Training
Lab 13 – Visualizing and Acknowledging Live Alarms 5-37
Introduction
In this lab, you will create a symbol, and embed and configure a .NET Alarm Client. Then you will
use the Alarm Client to visualize and acknowledge current alarms at runtime.
Objectives
Upon completion of this lab, you will be able to:
Configure the .NET Alarm Client for current alarms
Visualize alarms using the .NET Alarm Client
Acknowledge alarms using the .NET Alarm Client
Configure a User Input animation
AVEVA™ Training
Lab 13 – Visualizing and Acknowledging Live Alarms 5-39
The Alarm Mode configuration uses a valid default for InTouch HMI applications. You will
manipulate the Alarm Query later in this lab.
6. In the Animations pane, select Column Details.
7. In the Column Details details animations pane, Column Details list, uncheck the User1
check box.
In the grid preview below the Column Details list, the User1 column has been removed.
8. In the Column Details animations pane, Column Details list, select Name.
AVEVA™ Training
Lab 13 – Visualizing and Acknowledging Live Alarms 5-41
10. With Tag selected, click the up arrow button until Tag appears below User1.
12. In the Run-Time Behavior animations pane, Show Context Menu list, uncheck the check
boxes next to the following menu items:
Ack Others
Shelve Selected
Shelve Others
Unshelve Selected
Unshelve Others
Hide Selected
Hide Others
Hidden
Sort
Queries and Filters
Freeze
AVEVA™ Training
Lab 13 – Visualizing and Acknowledging Live Alarms 5-43
15. On the canvas, draw a button next to the lower left corner of LiveAlarms.
AVEVA™ Training
Lab 13 – Visualizing and Acknowledging Live Alarms 5-45
23. In the Values area, True, 1, On field, on the drop-down list, select Intensity4.
24. In the False, 0, Off field, uncheck the Element Style check box.
AVEVA™ Training
Lab 13 – Visualizing and Acknowledging Live Alarms 5-47
36. In the Pushbutton animations pane, Value1 field, replace $System with Mixers.
AVEVA™ Training
Lab 13 – Visualizing and Acknowledging Live Alarms 5-49
43. Adjust the size of the button so the whole label is displayed.
AVEVA™ Training
Lab 13 – Visualizing and Acknowledging Live Alarms 5-51
Next, you will create a new button instead of duplicating the existing button so that you do not have
to delete animations inherited from the button that was created previously.
51. Create a new button and place it to the right of DiscreteAlarmTestButton.
52. In the Properties pane, name the button AckAllButton.
53. On the ElementStyle drop-down list, select Intensity1.
54. In the Text field, enter Ack All.
56. In the User Input animations pane, configure the User Input animation as follows:
States: Boolean
Reference
Boolean: InTouch:$System.Ack
Message to User: Are you sure you want to acknowledge ALL alarms?
Prompt
True Message: Yes
False Message: No
Interaction
Input Only: checked
AVEVA™ Training
Lab 13 – Visualizing and Acknowledging Live Alarms 5-53
58. Adjust the height of LiveAlarms to approximately half the original height.
59. Adjust the width of the LiveAlarms element to fit the width of the buttons.
Notice the Alarm Client does not fill the entire window. We will modify this next.
62. In the Properties pane, MaintainAspectRatio property, set the value to False.
The CurrentAlarms symbol is stretched to fill the entire frame window.
AVEVA™ Training
Lab 13 – Visualizing and Acknowledging Live Alarms 5-55
Note: You may have to scroll down to view the Tag_Discrete1 record.
Finally, you will set Tag_Discrete1 to False, which will return to normal and cause Tag_Discrete1
to disappear from the Alarm Client.
69. Click the Discrete Alarm Test button.
The Tag_Discrete1 record no longer appears in the list.
70. Open Tag Viewer, and ensure the My Watch List file is loaded.
71. In the Alarms watch list, double-click MixerGroup_Inhibit.
72. In the Modify Discrete Value dialog box, click True, and click OK.
In the watch list the MixerGroup_Inhibit tag is set to True.
73. Close Tag Viewer.
74. Click the Discrete Alarm Test button to enable it.
The Tag_Discrete1 tag is the only alarm displayed in the Alarm Client because all of the Mixer
tags have been inhibited.
AVEVA™ Training
Lab 13 – Visualizing and Acknowledging Live Alarms 5-57
75. In the Alarm Client, click the Tag_Discrete1 record to select it.
76. Right-click the Tag_Discrete1 record.
After a moment the context menu appears.
77. Click Ack Selected.
AVEVA™ Training
Section 3 – Historical Alarms Management 5-59
Overview
Historical alarms and events are managed in InTouch with a few utilities. In this section, event
configuration, historical alarm configuration, and the use of the alarm client for visualizing alarms
and events are discussed. Alarms and events are recorded to a database and later extracted for
visualization. The tools which are used for these functions are discussed below.
Alarm DB Logger
The Alarm DB Logger is an alarm consumer that uses an alarm query to determine which alarms
will be logged to a database. These alarm queries are sent to the Alarm Manager which sends all
alarms matching the query to the Alarm DB Logger.
The Alarm DB Logger also has the ability to automatically reconnect. The Alarm DB Logger
reports any errors to the ArchestrA Logger which can be viewed in the System Platform
Management Console (SMC).
The Alarm DB Logger Manager can also be used to monitor the Alarm DB Logger smart cache,
which represents the in-memory buffer used to hold alarm records. The smart cache holds alarms
retrieved from the Alarm Manager until these are logged to the database. As records are written
the count is decremented. Most of the time the count will show 0 unless a large number of alarms
is sent at one time.
Unwritten alarm records are buffered in the smart cache when the SQL Server connection is down
or when the alarms come at a rate faster than the logging rate of the Alarm DB Logger, which, by
default, is 10 records per second.
The Alarm DB Logger Manager utility can be launched from a shortcut in the WindowMaker Tools
pane Applications toolset, or from the Start menu.
The Alarm DB Logger Manager provides you with the ability to:
Run the application
Select the database connection type
Create the database and necessary SQL tables in the database
Delete the alarm database
Specify the alarm query
Select the logging mode – Detailed or Consolidated
Enable logging of events
Set performance tuning parameter
Store settings in the registry
AVEVA™ Training
Section 3 – Historical Alarms Management 5-61
Before you begin using the Alarm DB Logger, you must use the Alarm DB Logger Manager to
connect to MSSQL by configuring the node where SQL is running, setup login authentication
information, create a database (which automatically creates the necessary tables, views, and
stored procedures), test your database connection, delete the database if necessary, configure an
alarm query and the logging mode, and configure other settings, such as whether to log events
and the rate of logging.
AVEVA™ Training
Lab 14 – Visualizing and Filtering Historical Alarms and Events 5-63
Introduction
In this lab, you will use the Alarm DB Logger Manager to configure the Alarm DB Logger to record
historical alarms and events in a database. You will then duplicate the CurrentAlarms symbol
created in a previous lab and configure the duplicate to connect to a database and retrieve
historical alarms and events.
Objectives
Upon completion of the lab, you will be able to:
Configure a tag to log events
Configure and start the Alarm DB Logger
Configure a .NET Alarm Client for historical alarms and events
Construct Queries and Filters
Filter alarm records in the Alarm Client in runtime
5. Click Close.
6. Click RUNTIME.
This will start WindowViewer and generate alarms which are needed for the remainder of this
lab.
7. Click Development!.
AVEVA™ Training
Lab 14 – Visualizing and Filtering Historical Alarms and Events 5-65
9. Click Settings.
The Alarm DB Logger Manager - Configuration dialog box appears.
10. In the SQL Server/MSDE area, Authentication drop-down list, verify Windows
Authentication is selected.
Notice the User Info area is now grayed out because User Info fields are only used when
using SQL Server Authentication.
11. In the Server Name field, enter your Engineering node name.
12. In the Database name field, ensure the default WWALMDB is entered.
13. Click Create.
A Success message appears.
AVEVA™ Training
Lab 14 – Visualizing and Filtering Historical Alarms and Events 5-67
The Alarm DB Logger Manager fills the smart cache first with records that match the
\InTouch!$System (all alarms) alarm query. Then, at a rate of 10 per second, it writes these
alarms and events into the database until the smart cache is empty. As new alarms occur
these are written to the WWALMDB database.
19. Close the Alarm DB Logger Manager dialog box.
The Alarm DB Logger (wwalmlogger.exe) continues running and recording alarms even after
you close the Alarm DB Logger Manager.
AVEVA™ Training
Lab 14 – Visualizing and Filtering Historical Alarms and Events 5-69
27. In the Database Connectivity area, Authentication Mode drop-down list, ensure Windows
Integrated is selected.
AVEVA™ Training
Lab 14 – Visualizing and Filtering Historical Alarms and Events 5-71
28. In the Server Name field, enter your Engineering node name.
This is the same node name provided by your instructor earlier in this lab.
32. In the top-right corner of the Queries and Filters animations pane, click the Add new query
button.
AVEVA™ Training
Lab 14 – Visualizing and Filtering Historical Alarms and Events 5-73
34. In the name list, select State, and then click the right arrow button to add it to the filter
definition list.
35. In the filter definition list, select State, and configure the area to the right as follows:
Operator: =
Value: UNACK_RTN
37. Add Tag to the filter definition list, select Tag, and configure the area to the right as follows:
Operator: =
Value: Mixer100_Temperature_PV
AVEVA™ Training
Lab 14 – Visualizing and Filtering Historical Alarms and Events 5-75
AVEVA™ Training
Lab 14 – Visualizing and Filtering Historical Alarms and Events 5-77
After a moment, the Query and Filter Favorites dialog box appears.
AVEVA™ Training
Lab 14 – Visualizing and Filtering Historical Alarms and Events 5-79
Next you will generate an event, then change the filter to view the event.
54. Use Tag Viewer to toggle MixerGroup_Inhibit to True.
Load the C:\Training\My Watch List watch window if it has been closed.
55. Use Tag Viewer to toggle MixerGroup_Inhibit to False.
56. Close Tag Viewer.
57. In the Historical_Alarms_and_Events window, right-click the HistoricalAlarmsEvents
symbol and select Queries and Filters.
58. In the Filters area, click Add New Filter.
60. In the name list, select Class, and then click the right arrow button to add it to the filter
definition list.
61. In the filter definition list, select Class, and configure the area to the right as follows:
Operator: =
Value: Event
AVEVA™ Training
Lab 14 – Visualizing and Filtering Historical Alarms and Events 5-81
64. In the Query and Filter Favorites dialog box, check the Default and Events Only filters.
AVEVA™ Training
Lab 14 – Visualizing and Filtering Historical Alarms and Events 5-83
Earlier in this lab, when configuring the HistAlarms grid, you unchecked to disable a setting in
the Queries and filters conflict resolution area, called Overwrite Design Time Queries. You will
see the effect of this setting next.
70. Click Development!.
71. Click RUNTIME.
72. In the Historical_Alarms_and_Events window, right-click the grid and select Queries and
Filters.
73. Observe your Runtime filter called Events Only has been deleted.
The design time Queries and Filters did not have an Events Only filter and this has
overwritten Runtime.
AVEVA™ Training
Module 6 – Data Logging and Trending
Section 1 – InTouch History and Real-Time Trending 6-3
Lab 15 – Logging Historical Data Using InTouch History 6-7
Lab 16 – Trending Real-Time Data 6-27
Section 2 – Using Historian with InTouch 6-39
Lab 17 – Building a Historian Client Trend Display 6-45
Section 3 – Trend Pen 6-61
Lab 18 – Trending with Trend Pen 6-67
6-2 Module 6 – Data Logging and Trending
Module Objectives
Explain the differences between real-time and historical trends
Enable historical logging in InTouch
Use historical trend wizards
Examine historical data
Import InTouch tags into Historian
Verify imported tags are acquiring data to access in Historian
Use Historian Client Trend .NET control to retrieve data from Historian
AVEVA™ Training
Section 1 – InTouch History and Real-Time Trending 6-3
AVEVA™ Training
Section 1 – InTouch History and Real-Time Trending 6-5
Pens
The Pens animation allows you to add references to tags for plotting traces on the Trend Client
chart in real-time. Pen configuration induces a legend description, data range, width of the pen,
color of the pen, numerical formatting, and the historical source for backfill purposes.
You can connect a pen to an InTouch tagname using the tagname. You can also reference
tagname dotfields using tagname.EngUnits. You can browse InTouch tags on the InTouch
Browser tab in the Galaxy Browser. An ellipsis button is provided in the UI for each location
where a reference can be specified.
Use reference mode to specify a reference to an attribute or symbol property such as
Tank_001.PV. You can enclose static string values with double quotes (such as “Description:” or
“+Tank_001.Desc”) with or without references in Reference mode. When you are in Reference
mode, you can also click the ellipsis button to the right of the box to show a selection tool such as
the Galaxy Browser or the Tag Picker.
For analog tag values options such as Min, Max, and Units can be specified using InTouch
dotfields. Discrete tags, also named Boolean, do not have definitions for Min, Max, or EngUnits.
For these data types you must specify the configuration as a static value by changing the input
mode toggle switch to static text next to each field where a value will be entered.
AVEVA™ Training
Lab 15 – Logging Historical Data Using InTouch History 6-7
Introduction
In this lab, you will configure the application to begin historical logging. Then, you will configure the
tags that will log data. Next, you will create a window that will contain the historical trend wizards.
Then, you will test the window in runtime.
Objectives
Upon completion of this lab, you will be able to:
Enable historical logging
Configure a tag for log data
Build a window using historical trend wizards
AVEVA™ Training
Lab 15 – Logging Historical Data Using InTouch History 6-9
4. Select the Store Log Files in Specific Directory option, and enter C:\Training.
5. Click OK.
8. Click Save.
9. Repeat the previous steps to check the Log Data check box for the following tags:
Mixer100_Level_PV
Mixer100_Temperature_PV
10. Close the Tagname Dictionary.
AVEVA™ Training
Lab 15 – Logging Historical Data Using InTouch History 6-11
17. Change the Show Window animation link to show only the InTouch_History window.
AVEVA™ Training
Lab 15 – Logging Historical Data Using InTouch History 6-13
23. Double-click Hist Trend w/Scooter and Scale to configure the trend.
The Historical Trend Chart Wizard dialog box appears.
24. Click Suggest.
Pen 2: Mixer100_Level_PV
Pen 3: Mixer100_Temperature_PV
AVEVA™ Training
Lab 15 – Logging Historical Data Using InTouch History 6-15
33. In the left pane, select Trends, and in the right pane, select Trend Zoom/Pan Panel.
The HistTrend tag is used to communicate between the wizards, therefore the tagname must
be the same.
AVEVA™ Training
Lab 15 – Logging Historical Data Using InTouch History 6-17
40. Reposition and resize the wizards to fit the height of the window.
Your screen will look similar to the following image.
44. Place the Trend Pen Legend to the right of the chart.
The remaining settings for the first legend are already correct for the Pen Number 1
configuration.
48. Click OK.
AVEVA™ Training
Lab 15 – Logging Historical Data Using InTouch History 6-19
49. Duplicate the first legend, and place the duplicate below Pen Number 1.
54. Duplicate the second legend, and place the duplicate below Pen Number 2.
55. Double-click the duplicate, and in the Pen Number field, enter 3.
56. In the Colors area, Trend Pen option, click the box to the right and select yellow.
AVEVA™ Training
Lab 15 – Logging Historical Data Using InTouch History 6-21
59. In the History window, click the Update to Current Time button.
60. Slide the left scooter until it touches the left edge of the visible data in the chart.
AVEVA™ Training
Lab 15 – Logging Historical Data Using InTouch History 6-23
The legend values on the right are based on the location of the right scooter. If a scooter
crosses an empty area of the chart where no traces are shown, the word Unavail will appear
instead of values.
63. Click Zoom In, or Zoom Out, to view different levels of detail.
64. Click Development!.
68. Ensure InTouch Training Application tile is selected and click the DBLoad button.
AVEVA™ Training
Lab 15 – Logging Historical Data Using InTouch History 6-25
AVEVA™ Training
Lab 16 – Trending Real-Time Data 6-27
Introduction
In this lab, you will create a real-time trend symbol and embed a .NET Trend Client control. You will
configure the Trend Client to display mixer tags in real-time. Additionally, you will connect the
Trend Client to InTouch history to backfill the chart from historical data.
Objectives
Upon completion of this lab, you will be able to:
Use a Trend Client to display real-time production data
Configure a Trend Client to display mixer process tags
Backfill a Trend Client with InTouch historical data
4. Click OK.
5. Close the InTouch_History window.
6. In the Menu window, add a duplicate navigation button labeled RealTime, with an animation
link to show only the RealTime window.
AVEVA™ Training
Lab 16 – Trending Real-Time Data 6-29
13. In the top-right corner of the Historical Sources animations pane, click the Add Row
button.
14. At the bottom of the Historical Sources animations pane, select the
InTouch Log History/LGH option.
15. In the Name field, enter InTouchHistory.
16. In the UNC Path field, enter C:\Training.
AVEVA™ Training
Lab 16 – Trending Real-Time Data 6-31
Next, you will add one discrete InTouch tag pen and one analog InTouch tag pen to the Trend
Client.
17. In the Animations pane, select the Pens animation.
18. In the Pens animations pane, click the Add Row button.
19. In the Pen Name field, enter Level.
20. In the Expression or Reference field, enter Mixer100_Level_PV.
21. In the Pen Details area, ensure that the Description field is set to the 'Static Text' mode,
as shown below.
23. In the Units field, switch to Expression or Reference mode, and enter
Mixer100_Level_PV.EngUnits.
24. In the Min field, switch to Expression or Reference mode, and enter
Mixer100_Level_PV.MinEU.
25. In the Max field, switch to Expression or Reference mode, and enter
Mixer100_Level_PV.MaxEU.
26. In the Pen Options area, change the color to bright green.
27. Change the Width to 2.
28. In the Pen Options area, retain the default settings for all other options.
29. In the Historical area, ensure Source is 'Static Text' mode, and enter InTouchHistory.
30. Ensure Tag is 'Static Text' mode, and enter Mixer100_Level_PV.
AVEVA™ Training
Lab 16 – Trending Real-Time Data 6-33
31. Add another pen to the Pens animation, and configure it as follows:
Note: Discrete InTouch tags, such as the Mixer100_Agitator_PV, do not have Engineering
Units. To display a clean square waveform on the Trend Client that fills the full height of the
chart, you will provide static values of 0 for Min and 1 for Max.
Pen Options
Color: Bright Red
Width: 2
Historical
Source: InTouchHistory
Tag: Mixer100_Agitator_PV
33. In the Appearance animations pane, change the Background color to black.
34. Change Highlight color to white.
35. Change Width to 3.
36. On the Style drop-down list, select the last option.
AVEVA™ Training
Lab 16 – Trending Real-Time Data 6-35
38. In the Options animations pane, check the Show pen selector check box.
AVEVA™ Training
Lab 16 – Trending Real-Time Data 6-37
The Agitator pen is selected by default in the pen selector (legend). The Allow highlight pen
option that was selected in the Appearance animation makes the Agitator pen a thick white
line on the trend.
44. Select the Level pen.
Notice in the rising slope of the level at 60% full, a small, flat line indicating the moment when
ingredient 1 and ingredient 2 are transitioning. During this 4-second window, the level remains
steady in the mixer. You can also see the agitator only runs when the mixer is full.
45. Click Development!.
46. In WindowMaker, close the RealTime window.
AVEVA™ Training
Section 2 – Using Historian with InTouch 6-39
AVEVA™ Training
Section 2 – Using Historian with InTouch 6-41
AVEVA™ Training
Section 2 – Using Historian with InTouch 6-43
AVEVA™ Training
Lab 17 – Building a Historian Client Trend Display 6-45
Introduction
In this lab, you will enable storage to Historian and use the Historian Client Trend .NET control to
create a display for tag data from Historian Server in a trend chart.
Objectives
Upon completion of this lab, you will be able to:
Enable Storage to Historian
Use the Historian Client Trend .NET control in InTouch
Import a .NET client control library file using WindowMaker
Use Live Mode to continuously refresh the trend with current data
AVEVA™ Training
Lab 17 – Building a Historian Client Trend Display 6-47
3. In the Historical Logging Properties dialog box, check Enable Storage to Historian.
4. In the Historian node name field, enter the name of your Historian Server (Engineering
node).
Note: Your instructor will provide the name of your Historian Server (Engineering node).
5. Click OK.
AVEVA™ Training
Lab 17 – Building a Historian Client Trend Display 6-49
9. Click Close.
The aaTrendControl has been imported into the Industrial Graphic Toolbox.
AVEVA™ Training
Lab 17 – Building a Historian Client Trend Display 6-51
Test in Runtime
Next, you will view the historian tag data in the trend in runtime.
24. Click RUNTIME.
The Trend window appears with an empty chart.
AVEVA™ Training
Lab 17 – Building a Historian Client Trend Display 6-53
26. In the Server field, enter the name of your Historian Server (Engineering node).
Note: Your instructor will provide the name of your Historian Server (Engineering node).
Note: If special instructions are required, your instructor will provide this information.
AVEVA™ Training
Lab 17 – Building a Historian Client Trend Display 6-55
The Server list displays your Historian Server (Engineering node) name. The font face will be
normal text if a successful connection was made to your Historian Server. The font will be
italicized if trend was unable to connect successfully to your Historian Server.
30. In the Tag Picker, Servers list, select the Historian Server (Engineering node) name.
The list of tags available from the Historian Server appears in the Tags List.
AVEVA™ Training
Lab 17 – Building a Historian Client Trend Display 6-57
33. In the Tag Picker, drag the following tags onto the chart.
Mixer100_Level_PV
Mixer100_Temperature_PV
All three tags are now plotted on the chart.
The trend chart updates to display the 4-hour time span. Because you only started
WindowViewer a minute ago, the majority of the chart will be empty.
35. On the Duration drop-down list, click 1 minute.
AVEVA™ Training
Lab 17 – Building a Historian Client Trend Display 6-59
AVEVA™ Training
Section 3 – Trend Pen 6-61
A Step Line plot draws a horizontal line from a trend data point to the time of the next point on the
trend’s X-axis, and then draws a vertical line to the data point. A Step Line plot is the default for a
Trend Pen.
The Trend Pen dialog box appears when the mouse key is released. You can also show the Trend
Pen dialog box by double-clicking on the Trend Pen graphic or selecting Edit Animations from
the Special menu.
Reference Field
The reference is the data source that appears as the value shown by the trend, which can be
an external reference like an object’s attribute, an InTouch analog tag value, or a custom
property. Constants and expressions are not allowed.
Auto-Detect
The Historian server is auto-detected from the AppEngine on which the reference attribute is
running. For example, if the Reference field is set to UDO.UDA1, then Auto-Detect is set to
the Historian server name configured for the AppEngine on which UDO is running.
AVEVA™ Training
Section 3 – Trend Pen 6-63
Expression
When an expression or reference is entered in the Server Name field, the Trend Pen connects
to the specified Historian Server.
The icon to the left of the Server Name field toggles input to the field as an expression or
Static Text mode.
A Trend Pen only shows live data if the Server Name field is left blank in Expression mode.
Moving
The start time of a trend period is the current time. The end time is the duration of the time
period from the start time. The start time for the next period is set to the end time of the
previous trend period.
Fixed
In a Fixed trend time period, the StartTime and EndTime properties do not change
automatically. The start time of a trend period is the current time initially. The StartTime
property can be changed by a script.
The EndTime property of a Fixed trend period is read only. The end time of a trend period is
the duration of the trend from the specified start time of the period.
Duration (Minutes) Field
The trend time period can be specified as a constant, an external reference, an expression, or
custom property. If a floating point number is entered, the period is rounded up to the nearest
minute.
The minimum trend period is 1 minute and the maximum period is 10080 minutes (1week).
Auto-Range or Clip out of Range Values
If Auto-Range is selected, the Min Range and Max Range fields are disabled. The Y-axis of
the trend line is automatically adjusted to show the full range of trend values within the upper
and lower boundaries of the Trend Pen graphic.
If Clip out of Range Values is selected, the Min Range and Max Range fields are enabled.
Min Range and Max Range set the lower and upper limits of the trend’s Y-axis value range.
Both fields can be set to constants, external references, or custom properties.
When a value exceeds the trend’s minimum or maximum limits using Clip out of Range
Values, the trend line is truncated at the limit of the value range and appears as a horizontal
line for the period when the process value is out of trend’s value range.
Plot Type
Step Line: A plot draws a horizontal line from a trend data point to the time of the next data
point on the trend’s X-axis, and then draws a vertical line to the data point.
Line: A plot draws a line directly to each successive point within the trend period.
SA_Trend_SinglePen Symbol
The SA_Trend_SinglePen symbol shows a single measured value as a trend line over a specified
period. The symbol includes a Type Wizard Option to show a trend line as a Tail trend by itself
without a trend client area or as a Simple trend that includes more visual elements.
The symbol includes a set of run time controls to show additional data about the measured value
in a floating tooltip or along the Y axis of the trend. Operators can also change the length of the
trend period while the application is running by selecting another trend period from a control.
The symbol includes a Wizard Option to insert a meter at either side of the trend with the trend line
showing a meter's measured value over the trend period. The trend can show the typical symbol
components of meter symbols with an optimal value range, a setpoint, and tracker line shown in
the trend client area. The meter is similar to the general purpose SA_Meters symbol with an option
to select from eight different types of meters.
AVEVA™ Training
Section 3 – Trend Pen 6-65
SA_Trend_MultiPen Symbol
The SA_Trend_MultiPen symbol supports up to four concurrent trend lines that show measured
values over a specified trend period. The symbol provides Wizard Options to change the trend plot
type, the mode of the trend period, and how trend lines are drawn when their measured values
exceed the range shown on the Y axis of the trend grid.
The symbol can show real time and historical data when the trend pens are set to reference
InTouch tags. The trend can only show real-time data when the pens are set to InTouch tags.
The symbol includes a set of run time controls for operators to select a pen to show additional data
about its measured value in a floating tooltip or along the Y axis of the trend. Operators can also
change the length of the trend period while the application is running by selecting another trend
period from a control.
Each pen appears as a graphic square in a pen selector panel above the trend grid. The border
color of each pen square matches the color of the pen line shown in the trend. When a pen's
measured value goes into an alarm state, Alarm Border animation appears around the pen
square.
AVEVA™ Training
Lab 18 – Trending with Trend Pen 6-67
Introduction
In this lab, you will create a Trend Pen element to show the recent history from a field device.
Objectives
Upon completion of this lab, you will be able to:
Use the Trend Pen element to display historical data
Use the FillTrend color option for the Trend Pen
Use fixed width and height for a symbol
AVEVA™ Training
Lab 18 – Trending with Trend Pen 6-69
The Temperature meter is now positioned on the right side of the tank.
7. In the Elements list, with Temperature selected, hold down the Ctrl key and click on Level
and Agitator to add them to the selection.
8. With the Temperature, Level and Agitator elements selected, on the toolbar, click Make
Horizontal Spacing Equal.
AVEVA™ Training
Lab 18 – Trending with Trend Pen 6-71
The canvas is resized to the fixed width and height, and handles appear for resizing.
13. Drag to resize the canvas to provide one blank grid space on the bottom and right side of the
symbol.
The canvas size determines how much white space is included with the symbol to maintain its
aspect ratio in frame windows and at runtime. This helps when displaying a symbol with a
different shape than the frame window hosting it.
Data
Name Default Value Visibility
Type
TempPen_PV Float Mixer100_Temperature_PV Public
TempPen_Min Float Mixer100_Temperature_PV.MinEU Public
TempPen_Max Float Mixer100_Temperature_PV.MaxEU Public
15. In the Symbol Editor, from the Zoom drop-down list, select 300%.
AVEVA™ Training
Lab 18 – Trending with Trend Pen 6-73
17. In the space between Level and Temperature, click and drag to the right and down to draw a
trend pen on the canvas.
Upon release of the mouse, the Edit Animations dialog box opens with the Trend Pen
animation showing.
18. In the Trend Pen details pane, enter the details as follows:
Details Value
Reference TempPen_PV
Historical Source InTouch Log History/LGH
UNC Path C:\Training
Time Period Moving
Duration 5
Y Axis Range Clip out of range values
Min Range TempPen_Min
Max Range TempPen_Max
Plot Type Line
AVEVA™ Training
Lab 18 – Trending with Trend Pen 6-75
Note: If necessary, disable Snap to Grid to accurately align the Trend Pen.
23. In the Properties pane, Fill Style area, set FillTrend to True.
24. In the Properties pane, Fill Style area, click FillColor then click the ellipsis button to open the
Select FillColor dialog box.
26. With the eye dropper cursor, click on the denim color element style of the temperature symbol.
AVEVA™ Training
Lab 18 – Trending with Trend Pen 6-77
27. Using the color intensity bar, click and drag to select a lighter shade of denim for the FillColor.
29. With the TempPen selected, click Send to Back on the toolbar.
Test in Runtime
Next, you will test the Trend Pen in runtime.
33. Click RUNTIME.
The trend will backfill and display the last five minutes of data, and then continuously plot in
real time.
AVEVA™ Training
Lab 18 – Trending with Trend Pen 6-79
36. Right-click the canvas and select Custom Properties and create the following:
Data
Name Default Value Visibility
Type
LevelPen_PV Float Mixer100_Level_PV Public
LevelPen_Min Float Mixer100_Level_PV.MinEU Public
LevelPen_Max Float Mixer100_Level_PV.MaxEU Public
37. In the Symbol Editor, from the Zoom drop-down list, select 300%.
38. In the Tools pane, click Trend Pen.
39. In the space between Agitator and Level, click and drag to the right and down to draw a trend
pen on the canvas.
Upon release of the mouse, the Edit Animations dialog box opens with the Trend Pen
animation showing.
AVEVA™ Training
Lab 18 – Trending with Trend Pen 6-81
40. In the Trend Pen details pane, enter the details as follows:
Details Value
Reference LevelPen_PV
Historical Source Historian
Historian Expression
Server Name <Historian Node Name>
(Instructor will provide)
Time Period Moving
Duration 5
Y Axis Range Clip out of range values
Min Range LevelPen_Min
Max Range LevelPen_Max
Plot Type Line
AVEVA™ Training
Module 7 – Introduction to QuickScript
Section 1 – Introduction to InTouch QuickScript 7-3
Lab 19 – Opening an Application with QuickScript 7-17
7-2 Module 7 – Introduction to QuickScript
Module Objectives
Introduce QuickScript
Describe InTouch scripting
AVEVA™ Training
Section 1 – Introduction to InTouch QuickScript 7-3
This section will provide an overview of the various InTouch QuickScript types, and describe the
features and functions that are unique to each QuickScript type. This section will also explain the
QuickScript Editor.
QuickScript
QuickScript is the name of the script language, and functionality used in the InTouch environment.
The actual script language is very similar to PLC languages like IEC611-31 and Structured Text.
InTouch QuickScript capabilities allow you to execute commands and logical operations based on
specified criteria being met. All InTouch QuickScripts are event driven, such as a data change, a
condition, a mouse click, or a timer. You can add conditional statements, loops, and local variables
to the basic scripts to create complex effects in your application.
QuickScript types include the following:
Application – Scripts linked to the entire application
Window – Scripts linked to a specific window
Key – Scripts linked to a specific key or key combination on the keyboard
Action – Scripts associated with an object linked to a Touch Link - Touch Pushbutton -
Action animation link
Data Change – Scripts linked to a tagname and/or tagname.field only
Condition – Scripts linked to a discrete tagname or expression
ActiveX Event – Scripts that execute ActiveX control events in runtime
QuickFunctions – Scripts you create that can be named from other InTouch QuickScripts
using CALL FunctionName(); or inside animation link expressions. QuickFunctions can
be either synchronous or asynchronous, while all other script types are synchronous only
Specific functions already configured to the proper syntax and format, are available from the script
dialog box and can be pasted with a single mouse click. Additional information about scripting
concepts and about creating and editing scripts is available in the application Help and in the
InTouch HMI Scripting and Logic Guide, available within your local installation of InTouch.
You can configure most script types to execute based on multiple conditions using script triggers.
For example, you can define a script to run when WindowViewer is started, and then periodically at
fixed intervals while WindowViewer is running. Each script type has one or more triggers.
The order in which scripts are processed is based on a complex set of variables as the InTouch
WindowViewer application’s QuickScript engine is not scan based, therefore, the order of
execution cannot be guaranteed. When using QuickScript, avoid building script dependencies
based on any perceived sequence, the sequence can change as well based on criteria beyond the
control of application designers.
For all InTouch While scripts (repeating at specified interval), the script will not execute the first
time until the period has elapsed. Additionally, InTouch is not based on a scan engine with
guaranteed interval, so the only guarantee is that the script will NOT execute faster than the
interval specified. Finally, WindowViewer will make every attempt possible to run scripts as fast as
the specified time, however, no script can run faster than the Tick Interval setting specified in
WindowViewer properties.
Global Scripts
The scope of execution (where the script lives) determines when or even if data from those scripts
tags or functions is available throughout the application. Global scope means no matter where an
operator has navigated within the application, these scripts continue executing in the background,
as needed, and make their results continuously available. Global scope script types are limited to
Application scripts, Data Change scripts, Condition scripts, Key scripts, and QuickFunctions.
Application Scripts
Application Scripts are linked to the entire InTouch application. These scripts execute one time
when the application is started or shut down. Or run continuously while WindowViewer is in
memory.
There are three types of Application Scripts:
On Startup – Executes once when the application is initially started up. Executes before
any window opens or any runtime initialization occurs. You cannot refer to ActiveX
methods, properties, or events in an On Startup script. I/O communications are initialized
after the application On Startup script executes. I/O tags or remote tagname references
cannot be referred to in an On Startup script.
While Running – Executes repeatedly at the specified frequency while the application is
running. When a While Running script is selected, the Every Msec field becomes active.
The field contains the number of milliseconds that must elapse before the script executes.
The While Running script will repeatedly execute no sooner than the specified frequency,
however, the script will execute as long as WindowViewer is running.
On Shutdown – Executes once when the application is closed. I/O tags and remote
tagname references will not update in an On Shutdown script. An On Shutdown script
cannot be used to startup other applications.
Condition Scripts
Condition scripts execute when a logical condition occurs. Condition scripts are linked to a discrete
tag or expression that equates to TRUE or FALSE. The condition can contain expressions of up to
1024 characters.
Since Condition scripts are executed based on a condition being met, you must specify the
condition (a discrete tag or Boolean expression) in the Condition field. The expression must
equate to a 1 (TRUE) or 0 (FALSE) result. For example, the following expression remains true for
1 minute out of every day, just prior to midnight.
$Hour == 23 AND $Minute == 59
There are four types of scripts that can be applied to a condition:
On False – Executes once when the condition transitions to false
While False – Executes repeatedly while the condition is false. Frequency of execution is
based upon the value of the Every msec field
On True – Executes once when the condition transitions to true
While True – Executes repeatedly while the condition is true. Frequency of execution is
based upon the value of the Every msec field
Both While True and While False scripts begin executing after the specified number of
milliseconds has elapsed. To cause immediate execution, create duplicate On True or On False
scripts. All four script types can be applied to the same condition.
AVEVA™ Training
Section 1 – Introduction to InTouch QuickScript 7-5
Key Scripts
Key scripts execute on a specific key or key combinations on the keyboard. They can be used to
create global keys for the application, such as returning to a main menu window, or logging off the
operator.
There are three types of Key scripts:
On Key Down – Executes once when the key is initially pressed
While Down – Executes repeatedly at the specified frequency while the key is held down.
When While Down is selected, the Every msec field is enabled. The field contains the
number of milliseconds that must elapse before the script executes
To execute the script immediately, create an identical On Key Down script. As long as the
condition or event for the While Down script is met, the script will repeatedly execute at the
specified frequency
On Key Up – Executes once when the key is released
If an action script on a window is assigned to a Key that is already used in a global Key script, the
local action script overrides the global Key script.
Local Scripts
The scope of execution for all other script types including Window scripts, Action scripts, ActiveX
scripts, and Industrial Graphic scripts are local execution only. Local scripts only run from an open
window. These scripts run when the operator takes a specific action on the window. When a
window closes all scripts on that window stop executing. Local window script functionality includes
Action, Window on Show, Window on Hide, Window While Showing, Industrial Graphic
QuickScript .NET, and ActiveX scripts.
Action Scripts
Action scripts are similar to Key scripts, except they are associated with an object linked to a
Touch Link – Touch Pushbutton – Action. They are executed when the operator clicks or
presses the object or button assigned to the link.
There are 13 types of Action scripts. But they can be broken down into four simple categories
based on a simple pointing device such as a three-button Mouse. For each of the three buttons,
there are four possible states: click, double-click, held-down, and released. This represents 12 of
the Touch Action script options. The last script type executes when the mouse hovers over the
object without clicking.
The following Action scripts execute once when the key or button is initially pressed.
On Left Click/Key Down
On Right Click
On Center Click
The following Action scripts execute repeatedly at the specified frequency while the key or button
is held down. When this is selected, the Every msec field is active. The field contains the number
of milliseconds that must elapse before the script executes:
While Left/Key Down
While Right Down
While Center Down
The following Action scripts execute once when the key or button is released:
On Left/Key Up
On Right Up
On Center Up
The following Action scripts execute when the mouse button is double-clicked. The key equivalent
feature disables when these are selected, since there is no keyboard equivalent for a mouse
button double-click action:
On Left Double-Click
On Right Double-Click
On Center Double-Click
The following Action scripts execute one time when the cursor rests over an object. The script
does not trigger until the After msec field value is exceeded, this helps avoid unintentional
triggering as the mouse is being moved around the screen, only deliberately coming to rest over
the object will trigger the script. After msec is the length of time the cursor must be over the object
before the script executes. The key equivalent feature is disabled when this condition type is
selected, since there is no keyboard equivalent for moving the mouse cursor over an object.
On Mouse Over
AVEVA™ Training
Section 1 – Introduction to InTouch QuickScript 7-7
Window Scripts
Window scripts function within a specific window.
There are three types of Window scripts:
On Show – Executes once when the window is initially opened
While Showing – Executes repeatedly at the specified frequency while the window is
showing. When While Showing is selected, the Every msec field becomes active. The
field contains the number of milliseconds that must elapse before the script executes. To
execute the script immediately, create an identical On Show script. As long as the
condition or event for the While Showing script is met, the script will repeatedly execute at
the specified frequency
On Hide – Executes once when the window is closed. A window that is covered or hidden
by other windows or whose x, y location is off the display is still active and running in
memory, even if the operator cannot see its contents
ActiveX Scripts
Many ActiveX controls have events for handling things like click, double-click, mouse down, and
key press. An ActiveX Event script tied to a specific event in an ActiveX control placed on an
window will execute when that event occurs. You may associate one ActiveX Event script to one
event in an ActiveX control. If an ActiveX script is written in a generic way so as to be reusable, it
may be used and called from more than one ActiveX control event.
Area Description
1 Toolbars
2 Condition definition area
The Condition Type box provides the available execution conditions for the type of script you
are writing.
3 Script text window
4 Command buttons
5 Built-in script function buttons
6 MEM OLE button
The MEM OLE button in the lower right corner only appears if the Manufacturing Engineering
Module (MEM) is installed with the InTouch HMI installation. Clicking this button allows you to
script with MEM.
AVEVA™ Training
Section 1 – Introduction to InTouch QuickScript 7-9
Element Color
Keywords Blue
Syntax highlighted while typing.
Comments (both single line and multi-line) Green
Syntax highlighted while typing.
Strings Purple
Syntax highlighted while typing.
Function names, numeric constants, Black
operators, semicolons, dim variables, alias
See descriptions for Attribute names and Reserved words.
variables, and so on
Attributes, InTouch Tags, Reference Strings Maroon, bold face
Reserved words Red, non-bold face
.NET type names Teal, non-bold face
Autocomplete Features
The InTouch script editor autocomplete incorporates several features for use while authoring
InTouch scripts. Autocomplete displays a context-sensitive list of options for script elements,
keywords, object and attribute names, and programmatic constructs. You can identify the context
from the icons displayed at the bottom of the autocomplete pop-up window. Autocomplete has the
following features:
Provides an autocomplete tag reference in a selectable list box.
Provides method parameter help in an autocomplete list box including context-specific
suggestions covering definitions, keywords, script elements, and programmatic
constructs.
Automatic word completion of tags, dotfields, methods, programmatic constructs, and
other script elements.
Press Ctrl+Space to display all available autocomplete options and variables for the selected
location in the script. Autocomplete represents each scripting element with a different icon. Icons
represent keywords, operators, Variables, tags, windows, and ActiveX instances.
Change Bars
As a visual reference for script changes in-progress, yellow change bars on the left margin of the
script text window indicate additions and line insertions and edits.
Tag Definition
You can enter a new tagname in the InTouch script editor, then press Ctrl+T or click Edit on the
main menu to define a tag. The Tagname Dictionary appears so you can complete the tagname
definition.
AVEVA™ Training
Section 1 – Introduction to InTouch QuickScript 7-11
Script Functions
A script function is a script which has been written and made available from the function list for
calling from other scripts. A script function may include arguments or parameters which must be
specified when the function is called. For example, the following shows a syntax for a function with
two parameters:
StringLeft( Text, Chars );
This example will select the number of characters specified in the Chars parameter from the left
side of the text parameter. If Text contained Mixer100_Temperature_PV, and Chars contained 8,
the StringLeft function would return Mixer100.
Some functions do not require parenthesis around the parameters or arguments. For example, the
Show function uses the following syntax:
Show “My Window”;
In this example “My Window” is a parameter required by the Show function. The Show function
opens a window at runtime.
Some functions return a result. When a function returns a result this must be captured in either a
tag or a local variable. Without assigning the return result, the script function will fail to validate and
the script will not save. Some functions which return a result can also be used in an animation
expression directly.
Function Help
To access help documentation for a script function, click the Help button in the script editor and
select the function you wish to look up. Help documentation for each function includes proper
syntax usage, details on each parameter, and examples of how to use the script function in the
script.
The simplest form of this conditional branching functionality is illustrated by the following example:
IF UnauthorizedAccess == 1 THEN
Show “Security Alert”;
ENDIF;
In the above script, a tagname named UnauthorizedAccess is evaluated and compared to a
numeric value of 1, and if it is found to be TRUE, the script will proceed to the statement Show
“Security Alert”; which will open a window named Security Alert.
If the tagname UnauthorizedAccess contained any value other than 1, even a value such as
1.0001 (which is not equal to 1), and then the system skips over the statement and ends after the
ENDIF; portion of the script. IF THEN ENDIF; is the most basic form of a decision making tool.
The following comparison operators are also valid for conditional expressions:
AVEVA™ Training
Section 1 – Introduction to InTouch QuickScript 7-13
Syntax
FOR LoopTag = StartExpression TO EndExpression [STEP ChangeExpression]
... statements or another FOR loop ...
NEXT;
StartExpression, EndExpression and ChangeExpression together define the
number of iterations.
StartExpression sets the start value of the loop range. EndExpression sets the
end value of the loop range.
STEP ChangeExpression optionally sets the value by which the loop tag is
incremented or decremented during each loop iteration; if you do not specify this, a default
of 1 is used.
When you execute a FOR loop, the InTouch HMI:
1. Sets LoopTag to the value of StartExpression.
2. Tests whether LoopTag is greater than EndExpression. If so, the InTouch HMI exits the
loop. (If ChangeExpression is negative, the InTouch HMI tests whether LoopTag is less
than EndExpression.)
3. Executes the statements within the loop.
4. Increments LoopTag by the value of ChangeExpression (1 unless otherwise specified).
5. Repeats steps 2 through 4.
Remember the following rules when working with FOR loops:
FOR loops can be nested. The maximum number of nesting levels depends on the
available memory and system resources.
For every FOR statement, there must be a closing NEXT statement. A NEXT statement
always applies to the nearest prior FOR statement on the same nesting level.
LoopTag must be a numeric tag (or local variable).
StartExpression, EndExpression and ChangeExpression must be valid
expressions that evaluate to a numeric result.
If ChangeExpression is positive, EndExpression must be greater than
StartExpression; if ChangeExpression is negative, StartExpression must be
greater than EndExpression. Otherwise, the loop does not start.
To exit a loop, use the EXIT FOR statement.
There is a time limit for loops.
Example
The following code fragment uses a loop to insert a large number of dummy records into a
database table. If there is an error inserting a record, the loop is aborted to prevent creating more
errors.
FOR Counter = 1 TO 1000
ResultCode = SQLInsert(ConnectionID, "BatchDetails", "BindList1");
IF ResultCode <> 0 THEN
LogMessage("Error creating records! Aborting...");
EXIT FOR;
ENDIF;
NEXT;
Note: The time limit is checked only at the NEXT statement of the loop. Therefore, the first
iteration of the loop is always executed, even if it takes longer than the time limit.
AVEVA™ Training
Section 1 – Introduction to InTouch QuickScript 7-15
Examples of Loops
The following script uses a simple loop and an indirect tag to re initialize 100 tags (Tag001 to Tag100)
with a value of 0.
DIM Counter AS INTEGER;
FOR Counter = 1 TO 100
IndirectInteger.Name = "Tag" + Text(Counter, "000");
IndirectInteger.Value = 0;
NEXT;
The following script uses two nested loops and an indirect tag to reinitialize 1000 tags
(Line01_Tag001 to Line10_Tag100) with a value of 0.
DIM LineCounter AS INTEGER;
DIM TagCounter AS INTEGER;
FOR LineCounter = 1 TO 10
FOR TagCounter = 1 TO 100
IndirectInteger.Name = "Line" + Text(LineCounter, "00") + "_Tag" +
Text(TagCounter, "000");
IndirectInteger.Value = 0;
NEXT;
NEXT;
AVEVA™ Training
Lab 19 – Opening an Application with QuickScript 7-17
Introduction
In this lab, you will write a Key script that uses the F12 key on your keyboard to open the Microsoft
Calculator in Windows multiple times. Then, you will change the script so that if the calculator is
already opened, it calls the current instance when the F12 key is pressed, instead of opening a
new instance.
Objectives
Upon completion of this lab, you will be able to:
Write a Key script
Call a script function with parameters
Add conditional branching to a script using IF THEN ELSE ENDIF keywords
AVEVA™ Training
Lab 19 – Opening an Application with QuickScript 7-19
6. On the right side of the Key Scripts dialog box, click System.
AVEVA™ Training
Lab 19 – Opening an Application with QuickScript 7-21
8. In the body of the script, after StartApp, enter a space, followed by “calc”.
The line of script will look like the following image.
StartApp “calc”
9. On the right side of the Key Scripts dialog box, click Validate.
AVEVA™ Training
Lab 19 – Opening an Application with QuickScript 7-23
Test in Runtime
Next, you will test your Key script.
14. Click RUNTIME.
15. In WindowViewer, press F12 on your keyboard.
The calculator opens.
WindowViewer now becomes the active Windows application and the calculator is hidden
behind WindowViewer.
AVEVA™ Training
Lab 19 – Opening an Application with QuickScript 7-25
23. On the right side of the Key Scripts dialog box, click System.
The Choose Function dialog box appears.
24. Click InfoAppActive.
The InfoAppActive function is inserted in Line 1.
AVEVA™ Training
Lab 19 – Opening an Application with QuickScript 7-27
Note: This script checks if the calculator is already open. If it is opened it activates the
currently-opened instance by bringing the calculator into the foreground. Lines 3-5 of the script
start a new calculator only if one is not already opened.
Test in Runtime
Next, you will test your modified Key script.
44. Click RUNTIME.
45. In WindowViewer, press F12 on your keyboard.
The calculator opens.
46. Click the WindowViewer title bar.
WindowViewer now becomes the active application and the calculator is hidden behind
WindowViewer.
47. Press F12.
The activated calculator is displayed in the foreground in front of WindowViewer instead of
opening a new calculator instance. Only one instance can be seen on the task bar.
48. Close the calculator.
49. Click Development!.
AVEVA™ Training
Module 8 – Introduction to Industrial
Graphic QuickScript .NET
Section 1 – Industrial Graphic QuickScript.NET 8-3
Section 2 – ShowGraphic and InTouch Windows 8-17
Lab 20 – Creating a Scalable Window Navigation Control 8-21
Section 3 – ShowGraphic and Industrial Graphics 8-31
Lab 21 – Building a Mixer Browser Using ShowGraphic 8-33
Lab 22 – Creating a Context Driven Alarm Window Using ShowGraphic 8-43
8-2 Module 8 – Introduction to Industrial Graphic QuickScript .NET
Module Objectives
Explain differences between Industrial Graphic QuickScript .NET and QuickScript
Explain how to use the Industrial Graphic QuickScript Editor
Describe how to create Predefined scripts in an Industrial Graphic
Describe how to create Named scripts in an Industrial Graphic
AVEVA™ Training
Section 1 – Industrial Graphic QuickScript.NET 8-3
QuickScript.NET
QuickScript.NET is the name of the script language, and functionality used by Industrial Graphics
in the InTouch environment. InTouch QuickScript.NET capabilities allow you to execute commands
and logical operations based on specified criteria being met. All Industrial Graphic
QuickScript.NET scripts are event driven, such as a data change, a condition, a mouse click, or a
timer. You can add conditional statements, loops, and local variables to the basic scripts to create
complex effects in your application.
QuickScript.NET types include the following:
Predefined On Show– Scripts that execute when the window on which the symbol is
embedded is opened
Predefined While Showing – Scripts that execute periodically while the window on which
the symbol is embedded remains open
Predefined On Hide – Scripts that execute when the window on which the symbol is
embedded is closed
Named Scripts:
Data Change – Scripts that execute each time a monitored expression changes
WhileTrue – Scripts that execute periodically while an expression remains true
WhileFalse – Scripts that execute periodically while an expression remains false
OnTrue – Scripts that execute when an expression transitions from false to true
OnFalse – Scripts that execute when an expression transitions from true to false
Action Scripts – An animation type which supports scripts that execute when a user
action is performed, such as clicking a mouse
QuickScript.NET includes library functions which act like pre-written scripts that can be called and
executed to perform additional complex functionality. These can be selected quickly by picking
them from a list to include in the script.
Because Industrial Graphic QuickScript.NET is event based, every script you build will require a
trigger to execute. For some scripts, the trigger is fixed by the script type you choose. For
example, the Predefined On Show script is driven by opening the window on which the symbol is
embedded. For this script type, you cannot modify the trigger behavior. On the other hand, if you
choose a Named Script, you must write an expression, either mathematical or logical, to trigger the
execution of the script. For example, the expression Pump == True, is a trigger that will execute
the script when the pump starts.
Some Industrial Graphic QuickScript.NET scripts execute periodically. These scripts always
include the word While in the name of the script type. These scripts provide a time field specified in
milliseconds for the frequency at which the script will execute. For example, a Named Script
WhileFalse, has its period field set to 1000 ms. This means as long as the expression evaluates to
False, once per second, or 1000 ms, the script will repeated execute indefinitely. As soon as the
script expression evaluates to True, script execution stops.
For all While scripts (repeating at a specified period), the script will not execute the first time until
the period has elapsed. Additionally, InTouch is not based on a scan engine with guaranteed
interval, so the only guarantee is that the script will NOT execute faster than the period specified.
Finally, WindowViewer will make every attempt possible to run scripts as fast as the specified time,
however, the Windows operating system is not deterministic, like a PLC so WindowViewer is
subject to the operating system behavior.
Global Scope
Because Industrial Graphic QuickScript.NET only exists inside symbols, and symbols are
associated with a window being opened in memory, therefore, these scripts cannot executed in
WindowViewer at a system-wide level. For example, you build a security logon symbol which
manages authentication and access to your InTouch application and place this symbol on a menu
window. If the menu window is accidentally closed, your entire application becomes unsecured
and unauthorized individuals can access any part of your application. It is therefore, not
recommended to perform global scope scripting using Industrial Graphic QuickScript.NET.
Local Scope
Industrial Graphic QuickScript.NET only exists inside symbols. Therefore, these scripts are local
scope execution only. Without the window on which the graphic is embedded opened, the triggers
which drive the execution of these scripts do not exist. A work-aound to this behavior is to place a
window in a location where it cannot be closed by operator interaction or a replace type window
that may touch it. By opening this window when WindowViewer starts, this ensures that the scripts
on that window continue to run for the life of the application. However, if anything should close that
window, all Industrial Graphic QuickScript.NET scripts embedded on that window will stop.
Predefined Scripts
Predefined Scripts are built into Industrial Graphics The three types On Show, While Showing and
On Hide closely match the three window script types of InTouch. This is because the symbol is
embedded on the window and its own open (Show), running (Showing) and closed (Hide) status is
tied to the window on which it is embedded.
The three types of Predefined scripts are:
On Show – The symbol is shown when the window is opened. This script type is typically
used to perform any setup such as initializing custom properties or tags which are required
for the execution of Industrial Graphic QuickScript.NET. However, any script which needs
to be executed the moment the symbol appears is appropriate for this script type.
While Showing – As long as the window remains open in memory, the symbol is showing.
This script is typically used to monitor or modify state changes to uppdate counters,
change flags, and perform other periodic functions. While Showing scripts require a
period, or frequency, at which the script will repeatedly execute. The While Showing script
will repeatedly execute no sooner than the specified period, however, the script will
execute as long as the window on which the symbol is embedded remains open.
On Hide – When the window closes, all of the symbols embedded on the window are
unloaded from memory. Prior to this, all On Hide scripts will execute. Any states of custom
properties or tags can be stored or modified at this point to reflect the final condition of the
symbol when it is closed.
AVEVA™ Training
Section 1 – Industrial Graphic QuickScript.NET 8-5
Named Scripts
Named Scripts are user created scripts with a predefined list of triggers. Each Named Script
requires an expression. Expressions can be as simple as a custom property or tag that is being
monitored for state change or as complicated as a mathematical formula or logical evaluation. The
trigger types for the Named Scripts are as follows:
Data Change – Scripts that execute each time a monitored expression changes. For
example, a Data Change Script could monitor each time a lot number is increased. Data
Change scripts are ideal for relatively slower changing process values. Performance could
be impacted if a Data Change script were tied to a temperature sensor or other rapidly
changing data value.
WhileTrue – Scripts that execute periodically while an expression remains true. For
example, the expression Temperature > 120 could be used to monitor when the
temperature exceeds 120 degrees.
WhileFalse – Scripts that execute periodically while an expression remains false. For
example, Connection == True could be monitored to provide an alert to an operator when
a connection is lost.
OnTrue – Scripts that execute when an expression transitions from false to true. For
example, CookieBatchStart == True could monitor the start of a cookie batch process.
OnFalse – Scripts that execute when an expression transitions from true to false. For
example, an expression of Flag == True could be used to monitor any time the flag is
reset.
Action Scripts
Action Scripts are an animation type which supports scripts that execute when a user action is
performed, such as clicking a mouse. Action scripts have 15 trigger types. These can be
summarized as four behaviors with each mouse button: click, double-click, hold, release. The last
three are cursor hover functionality. When the cursor is floating over the graphic element, On
Mouse Over, when the cursor stops floating over the graphic element, On Mouse Leave, and while
the cursor is floating over the graphic element, While Mouse Over. These last three Action Script
triggers include an after period field. This field allows you to control how long to wait before
executing the script. This allows normal mouse operation without accidentally firing Action scripts.
If the delay is sufficient, the operators actions must be deliberate in order to execute the script.
Area Description
1 Script List
2 Expression Field
Provides the available execution conditions for the type of script you are writing.
3 Trigger Type
Drop-down list to select the method of execution.
4 Period
Frequency at which the script will execute. Applies only to While type scripts.
5 Toolbar
Select lists for functions, graphics, objects, and attributes, tags and custom properties.
6 Error Message Display
Line number and column where the error occurred in the body of the script.
7 Body of Script
Line numbered script entry field. Includes color coded key words and operators with auto-
complete functionality.
8 Script Erase and Validate Buttons
AVEVA™ Training
Section 1 – Industrial Graphic QuickScript.NET 8-7
Element Color
Keywords Blue
Syntax highlighted while typing.
Comments (both single line and multi-line) Green
Syntax highlighted while typing.
Strings Purple
Syntax highlighted while typing.
Function names, numeric constants, Black
operators, semicolons, dim variables, alias
See descriptions for Attribute names and Reserved words.
variables, and so on
Attributes, InTouch Tags, Reference Strings Maroon, bold face
Reserved words Red, non-bold face
.NET type names Teal, non-bold face
Autocomplete Features
The script editor autocomplete incorporates several features for use while authoring Industrial
Graphic QuickScript.NET scripts. Autocomplete displays a context-sensitive list of options for
script elements, keywords, object and attribute names, and programmatic constructs. You can
identify the context from the icons displayed at the bottom of the autocomplete pop-up window.
Autocomplete has the following features:
Provides an autocomplete tag reference in a selectable list box.
Provides method parameter help in an autocomplete list box including context-specific
suggestions covering definitions, keywords, script elements, and programmatic
constructs.
Automatic word completion of custom properties, element properties, tags, dotfields,
methods, programmatic constructs, and other script elements.
Press Ctrl+Space to display all available autocomplete options and variables for the selected
location in the script. Autocomplete represents each scripting element with a different icon. Icons
represent keywords, operators, Variables, tags, and windows.
AVEVA™ Training
Section 1 – Industrial Graphic QuickScript.NET 8-9
Script Functions
A script function is a script which has been written and made available from the function list for
calling from other scripts. A script function may include arguments or parameters which must be
specified when the function is called. For example, the following shows a syntax for a function with
two parameters:
StringLeft( Text, Chars );
This example will select the number of characters specified in the Chars parameter from the left
side of the text parameter. If Text contained Mixer100_Temperature_PV, and Chars contained 8,
the StringLeft function would return Mixer100.
Some functions return a result. When a function returns a result this must be captured in either a
tag or a local variable if required. Without assigning the return result, the script function will fail to
validate and the script will not save. Some functions which return a result can also be used in an
animation expression directly.
Function Help
To access help documentation for a script function, in the function selector, click the Help button.
Help documentation for each function includes proper syntax usage, details on each parameter,
and examples of how to use the script function in the script.
Script Syntax
The syntax in scripts is similar to the algebraic syntax of a calculator. Most statements are
presented using the following form:
a = (b - c) / (2 + x) * xyz;
This statement places the value of the expression to the right of the equal sign (=) in the variable
location named “a.”
A single entity must appear to the left of the assignment operator =
The operands in an expression can be constants or variables
Statements must end with a semicolon (;)
Entities can be concatenated by using the plus (+) operator. For example, if a data change script
such as the one below is created, each time the value of “Number” changes, the indirect entity
“Setpoint” changes accordingly:
Number=1;
Setpoint = "Setpoint" + Text(Number, "#");
Where the result is “Setpoint1.”
Documenting Scripts
Both single line and multi-line comments are supported. Single line comments start at an '
(apostrophe) in a source code line that has no matching ending ' in the line. Multi-line comments
start with a { (opening curly brace) and end with a } (closing curly brace) and can span multiple
lines as the name suggests.
Examples:
Dim A; 'This is a single line comment
Dim B; {This is an example
of a multi-line comment}
AVEVA™ Training
Section 1 – Industrial Graphic QuickScript.NET 8-11
In the above script, a custom property named UnauthorizedAccess is evaluated and compared
to a numeric value of 1, and if it is found to be TRUE, the script will proceed to the statement
SecurityAlert = True; which will set the custom poperty named SecurityAlert to True.
If the custom property UnauthorizedAccess contained any value other than 1, even a value such
as 1.0001 (which is not equal to 1), then the system skips over the statement and ends after the
ENDIF; portion of the script. IF THEN ENDIF; is the most basic form of decision making in a script.
The following comparison operators are also valid for conditional expressions:
Note: FOR-NEXT loops can be nested. The number of levels of nesting possible depends on
memory and resource availability.
AVEVA™ Training
Section 1 – Industrial Graphic QuickScript.NET 8-13
WHILE Loop
WHILE loop performs a function or set of functions within a script several times during a single
execution of a script while a condition is true. The general format of the WHILE loop is as follows:
WHILE <Boolean_expression>
[statements]
[EXIT WHILE;]
[statements]
ENDWHILE;
Where: Boolean_expression is an expression that can be evaluated as a Boolean as defined in the
description of IF…THEN statements.
It is possible to exit the loop from the body of the loop through the EXIT WHILE statement.
The WHILE loop is executed as follows:
1. The script evaluates whether the Boolean_expression is true or not. If not, program execution
exits the loop and continues after the ENDWHILE statement.
2. The statements in the body of the loop are executed. The loop can be exited through the EXIT
WHILE statement.
3. Steps 1 through 2 are repeated.
Note: WHILE loops can be nested. The number of levels of nesting possible depends on memory
and resource availability.
ShowGraphic() Function
The ShowGraphic() script function allows two distinct work flows which are controlled by the
Identity property of the function. The first is: using an InTouch: prefix followed by the name of an
existing InTouch window allows the function to open that window. Additionally, the function can
change the symbol hosted by an InTouch application window. The second is: any name used for
the identity, but without the InTouch: prefix will cause the function to create a brand new popup
window hosting the called graphic. The ShowGraphic() function has a property to specify the
name of the graphic being used.
Important: The ShowGraphic script function can be used in the action script of a symbol, named
script, and predefined script. Although the system allows the inclusion of it in a server script, such
as Start Up, On Scan, Off Scan, Shut Down, and Execute, the function cannot be ran at runtime.
The HideGraphic script function can be called from any Industrial graphic that is being used in the
InTouch application.
AVEVA™ Training
Section 1 – Industrial Graphic QuickScript.NET 8-15
ShowGraphic() Syntax
Use the ShowGraphic() to display a graphic within a popup window.
Dim graphicInfo as aaGraphic.GraphicInfo;
graphicInfo.Identity = "<Identity>";
graphicInfo.GraphicName = "<SymbolName>";
ShowGraphic( graphicInfo );
HideGraphic() Syntax
Use the HideGraphic() script function to close any displayed graphic given its Identity.
HideGraphic(string identity);
The ShowGraphic() and HideGraphic() script functions are available in managed or published
InTouch applications only.
Closing a Symbol
You can close a symbol, displayed using the ShowGraphic script function, by running the
HideGraphic or HideSelf script functions, clicking the Close Window button of the graphic popup
window, if configured, or by closing WindowViewer. You cannot close the graphic by closing the
InTouch window or the symbol that opened the graphic.
Windows opened by the ShowGraphic script function or ShowSymbol animation are loaded
dynamically and are not exposed at runtime. You cannot close these windows using the
WindowViewer Close Window dialog box.
AVEVA™ Training
Section 2 – ShowGraphic and InTouch Windows 8-17
Overview
Earlier in this course, you used a simple mechanism for navigating through the windows of an
InTouch application using pushbuttons with Show Window animations. This simple concept of
clicking a button to go to a window is easy to understand when learning InTouch for the first time,
and it works for an application that only has a few windows.
However, designs based on one pushbutton for each window in the application will likely run into
scalability issues as the application grows. This method may be entirely impractical for medium- to
large-sized applications without extensive management of menu windows and maintenance of
those windows. If an application had 200 windows, would you design a single large menu window
with 200 tiny buttons with labels to navigate around your application? Maybe you would create a
window with a few buttons that call up additional menu windows with more buttons. What if you
need to add new windows in the middle of your existing menu design? Would the design require
repositioning and resizing dozens of buttons to add one or more new buttons? What if the InTouch
application starts out small at the beginning of the project, but will grow to 1,000 windows after
many years when the project is completed? How will you maintain your navigation design? How
many windows will your menu system require and how much screen real estate will be consumed
by the layout of all these navigation buttons? Will operators be able to find things easily and
navigate quickly?
Now, you will address issues of navigation scalability and maintenance. This will be done using a
method that allows for the easy organization of window names using the Combo Box windows
controls. Window lists can be auto sorted, avoid duplicates, and allow the easy insertion of new
window names into the list. Navigation designs using window controls can scale from a few
windows all the way up to thousands, while using a minimum of screen real estate and keeping all
navigation in a single place.
ShowGraphic( ) Scripting
Show Symbol animation has limitations, such as only allowing one Popup window, and requiring
fixed references to InTouch tagnames, which makes working with custom properties more
complicated. The ShowGraphic script function improves all of these items.
The ShowGraphic script function imitates most of the features of the Show Symbol animation. For
each Show Symbol animation feature in the Edit Animations window, there is an equivalent line of
script in the ShowGraphic script function. For example, in the Show Symbol animation, there is a
check box named Has title bar. In ShowGraphic, there is a line of script named
GraphicInfo.HasTitleBar = true;.
Using the ShowGraphic script function, you can design a layered application where additional
detail can be discovered by drilling down into a process. Each click brings up a window with more
detail; as you close the detailed windows, you are returned to the top level displays again. Or, you
can bring up multiple graphics arranged in rows and columns to show comparative process details
side-by-side. You can create building blocks that can be reused in many combinations of
arrangements and displays. The power of the ShowGraphic function is astounding with just a little
imagination.
The minimum ShowGraphic script must contain the following four lines:
Dim graphicInfo as aaGraphic.GraphicInfo;
graphicInfo.Identity = "<Identity>";
graphicInfo.GraphicName = "<SymbolName>";
ShowGraphic( graphicInfo );
The ShowGraphic function is really made up of two parts. The key execution part is the last line of
the script, which actually performs the task of making the popup window appear, (ShowGraphic
( graphicInfo); this must always be the very last line of the ShowGraphic function. The second part
is all of the other lines of script that define the popup window.
GraphicInfo is a structure that holds the definitions, configuration options, and properties that
describe the popup window. This includes: (1) identifying the popup window, (2) specifying what
graphic to show in the popup window, (3) if the popup window will be user interactive, (4) where on
the screen the popup window will appear, (5) the size of the popup window, (6) what value to set
for each custom property in the graphic, and (7) what additional features the popup window will
have. For example, will it have a title bar and if yes what will be the caption, will it have a close
button or not, and will it be resizable?
The ShowGraphic function can be called from any symbol script, including a predefined script (On
Show, While Showing, On Hide), a Named Script, or an Action Script. Within the Script Function
Browser, called from within any Symbol script editor, highlight the ShowGraphic function, and click
Help to open detailed help on the ShowGraphic function. The Help file includes detailed
enumeration tables of all the positions, sizes, and properties that can be used within the function.
The Help file also includes examples that can be copied and pasted into the script as-is.
AVEVA™ Training
Section 2 – ShowGraphic and InTouch Windows 8-19
One of the most powerful aspects of the ShowGraphic function is the CustomProperty-Value pair
array. The last portion of the script before calling the graphic, this array defines each Value,
Reference, or Expression that will be assigned to each custom property in the symbol (graphic)
being shown. This allows any symbol from the library to be shown in runtime with all of its custom
properties assigned at runtime, such as linked to InTouch tagnames.
AVEVA™ Training
Lab 20 – Creating a Scalable Window Navigation Control 8-21
Introduction
In this lab, you will create the Nav symbol, which uses a Windows control to allow the operator to
navigate between different windows in the application. This scalable method of navigation uses
the smallest amount of screen space.
Objectives
Upon completion of the this lab, you will be able to:
Build a combo box containing window names
Use the ShowGraphic function to open native InTouch windows
5. Click OK.
AVEVA™ Training
Lab 20 – Creating a Scalable Window Navigation Control 8-23
AVEVA™ Training
Lab 20 – Creating a Scalable Window Navigation Control 8-25
AVEVA™ Training
Lab 20 – Creating a Scalable Window Navigation Control 8-27
22. In the Script Function Browser dialog box, expand Graphic Client, and select
ShowGraphic.
Note: “InTouch:” is required in the ShowGraphic script function to indicate what follows is a
pre-built application window. When "InTouch:" is not used, the .Identity property represents the
name Microsoft Windows uses to identify the popup window that gets created by
ShowGraphic.
27. In Line 2, place the cursor between the quote and semicolon, and enter + WindowName.
AVEVA™ Training
Lab 20 – Creating a Scalable Window Navigation Control 8-29
AVEVA™ Training
Section 3 – ShowGraphic and Industrial Graphics 8-31
This section will explain how to use advanced features of the ShowGraphic script function.
Overview
This section explains how to use advanced features of the ShowGraphic script function to popup a
window in runtime. Advanced ShowGraphic functionality includes popup window size, position,
behavior, and assigning custom property value pairs. At runtime the ShowGraphic script function
can be used to call a graphic from the library into a popup window that can be positioned and sized
as desired.
Configuration options include the ability to set the modal/modeless property. Which means the
popup window can be configured as a modal window to prevent interaction with WindowViewer
until the popup window is closed. Additional properties allow you to enable or disable the title bar,
to change the caption of the title bar, to allow the popup window to be resized, or to change the
scale of the graphic.
A powerful feature of the ShowGraphic advanced functionality is the ability to assign InTouch tags
to the custom properties of the called graphic. This enables ShowGraphic to be used as a data
browser. A reusable symbol can be called and the data points in the graphic changed dynamically
to point to different data sources from the field. For example, the Mixer graphic used in this course
can be called by ShowGraphic with custom property value pairs assigned to Mixer300 data. This
technique acts like a mixer browser, allowing the same graphic to be called over and over again
depending upon which mixer you want to view.
Closing a Symbol
You can close a symbol, displayed using the ShowGraphic script function, by executing the
HideGraphic() or HideSelf() script functions, clicking the Close Window button of the graphic
popup window if configured, or closing WindowViewer. You cannot close the graphic by closing the
InTouch window or the symbol that launched the graphic. Windows opened by the ShowGraphic()
script function are loaded dynamically at runtime. You cannot close these windows using the
WindowViewer close window dialog box.
AVEVA™ Training
Lab 21 – Building a Mixer Browser Using ShowGraphic 8-33
Introduction
In this lab, you will build a mixer browser using the Mixer symbol. The Mixer symbol will be called
in a Frame window. You will add navigation for the operator to select a mixer and use the
ShowGraphic function to update the custom properties of the Mixer symbol to link the mixer’s
InTouch tags.
Objectives
Upon completion of this lab, you will be able to:
Use ShowGraphic to create a mixer navigation view with a Frame window
4. Click OK.
The new window is created and opened.
AVEVA™ Training
Lab 21 – Building a Mixer Browser Using ShowGraphic 8-35
AVEVA™ Training
Lab 21 – Building a Mixer Browser Using ShowGraphic 8-37
16. In the Static Values and Captions area, delete a row so there are only four rows available,
and edit the Value column as follows:
Mixer100
Mixer200
Mixer300
Mixer400
Note: You may also use Ctrl + mouse wheel to change the text size in this window.
Next, you will modify the script clearing the contents and adding a new script.
24. Delete any existing text from the body of the script.
AVEVA™ Training
Lab 21 – Building a Mixer Browser Using ShowGraphic 8-39
Note: You may copy and paste the script from the
C:\Training\Lab 21 - Building a Mixer Browser Using ShowGraphic file.
'+-----------------------------------------------------+
' Lab 21 - Building a Mixer Browser Using ShowGraphic
'+-----------------------------------------------------+
'===========================
'Named Script
'Name - OpenWindow
'Expression - WindowName + MixerName
'Trigger - DataChange
'===========================
ShowGraphic( graphicInfo );
AVEVA™ Training
Lab 21 – Building a Mixer Browser Using ShowGraphic 8-41
AVEVA™ Training
Lab 22 – Creating a Context Driven Alarm Window Using ShowGraphic 8-43
Introduction
In this lab, you will add a button to the Mixer symbol to create a popup alarm window that filters an
Alarm Client to show only alarms for the current mixer.
Objectives
Upon completion of this lab, you will be able to:
Use ShowGraphic to create a popup Window
Create a Popup context Alarm View
Use HideSelf functionality
Create an Action Script with On Left Click/Key/Touch Down Trigger
Name: Query
Data Type: String
7. Click OK.
AVEVA™ Training
Lab 22 – Creating a Context Driven Alarm Window Using ShowGraphic 8-45
8. Add a button at the bottom of the Alarm Client, and configure the properties as follows:
Name: OkButton
Element Style: Intensity1
Text: OK
Name: AlarmsButton
Element Style: Intensity1
Text: Alarms
AVEVA™ Training
Lab 22 – Creating a Context Driven Alarm Window Using ShowGraphic 8-47
Note: You may copy and paste the script from the C:\Training\Lab 22 - Creating a Context
Sensitive Alarm Popup View file.
'+-----------------------------------------------------+
' Lab 22 - Creating a Context Sensitive Alarm Popup View
'+-----------------------------------------------------+
'===========================
'Alarmsbutton Action Script
'Trigger - On Left Click/Key/Touch Down
'===========================
AVEVA™ Training
Module 9 – Security
Section 1 – OS Security Implementation 9-3
Lab 23 – Setting Up and Using OS Security 9-13
Section 2 – Lock Down Your Application 9-29
Lab 24 – Locking Down Your Application 9-35
9-2 Module 9 – Security
Module Objectives
Define the InTouch Security Options
InTouch Security
OS Security
ArchestrA Security
AVEVA™ Training
Section 1 – OS Security Implementation 9-3
Overview
InTouch security is a two-step process of first determining if the person attempting to use an
application is recognized as a valid user. The second step determines what InTouch privileges are
granted to an authenticated user.
InTouch security includes options for a variety of applications. Securing an InTouch application
requires both configuration and application design changes. Application designers may want to
secure the operating system, audit operators' actions, or secure the InTouch application itself. In
embedded or restricted environments, the top concern may be to limit the operator's access to other
Windows applications or the operating system. There are script functions available to restrict
access to certain keys on the Windows keyboard. There are ways to configure WindowViewer™
(View) to always run maximized and to hide its menu so that operators cannot close or minimize it.
In other instances, the primary goal of operator login is to audit the operator's actions and track these
actions. The InTouch Alarm and Event system may be configured to record operator actions along with a
time stamp and the name of the operator who performed the action or acknowledged the alarm, or failed to
take action or acknowledge the alarm.
In some other cases, security means restricting features or restricting access to areas of the
application based on user names or roles. This is done by setting a visibility or disable link on the
graphic, such as only allowing a button to be clicked if the operator is part of the supervisor’s group
with the proper training.
The operating system security type passes authentication requests to the Windows operating system
or to the domain security through Active Directory. The OS Security option allows InTouch to meet
security requirements in regulated industries. These specifications are established by the Food
and Drug Administration (FDA) in 21 CFR Part 11.
OS Security adds the benefits of password expiration, restricting the number of unsuccessful login
attempts, policing to restrict the strength of passwords, and the use of special characters,
encryption, and other benefits.
Using OS Security
An OS security (operating system-based) authentication method inherits enforcement of
some account policies from the Windows operating system, while other policies are
enforced from the InTouch HMI. Password policies such as maximum and minimum
password age and minimum password length are enforced by the operating system.
User names used during installation act as a part of the operating system. The Windows
domain must be set up with the desired account policies to enforce these standards. The
InTouch HMI enforces the inactivity time-out period.
In the operating system-based authentication method, user names can be chosen from
the list of users associated with a Windows Network Domain or Workgroup. Each user
name has an assigned access level that determines the user's authorization for a given
activity. Because the operating system manages passwords internally, the InTouch HMI
does not store passwords on the node hosting the application.
Operating system-based security uses the InTouch AddPermission() script function to
define and maintain a list of users and their corresponding access levels. This list, created
after the execution of the AddPermission() call, is written to disk. The file containing the
authentication details of users is not copied to NAD client nodes.
The operator can log on to the application by executing the
AVEVA™ Training
Section 1 – OS Security Implementation 9-5
Log on menu command under Security in the WindowViewer Special menu (if the
Special menu is shown), or you can create a custom log on window with touch-sensitive
input objects that are linked to internal security tags.
The commands used to establish security on an application are located under
Security on the Special menu in both WindowMaker and WindowViewer. The security
commands are used to log on and off the application, change passwords, and to configure
the list of valid user names, passwords, and access levels.
For example, you can control access to a window, the visibility of an object, and so on, by
specifying the logged on operator's access level must be greater than 2000.
Auditing
Tracking operator log in and log out, and tracking operator’s actions, requires enabling both
security and the InTouch Alarms and Events subsystem. When users are created to be used in
an InTouch application, audit trails can tie operators to all alarms/events that occur during the time
that they are logged in to the system. Using the .NET Alarm Client along with the Alarm DB
Logger, it is possible to search through historical events and alarms to determine who the
operator was at the time the event occurred.
Note: InTouch logs activities of the user who is logged in. Proper training is necessary to make sure
operators log in and out of the system during shift turnover to ensure the person performing the
activities is the person logged in.
No Authentication
The default security setting for InTouch applications is "None." When no authentication is used,
$Operator and $OperatorName are both set to None and $AccessLevel is 9999. The Special/
Security options in the menu bar in View are all disabled. Also, the binary file password.bin is not
created in the application directory.
AVEVA™ Training
Section 1 – OS Security Implementation 9-7
OS Authentication
With OS authentication, users and groups configured in the local machine (when leaving the
domain field blank or specifying the node name of the local machine), or when using Domain
Security such as through Microsoft Active Directory, are assigned access levels using the
AddPermission() script function. There is a tight coupling of the Microsoft group name with a
specific $AccessLevel through this script function. Beyond this relationship, there is no means for
InTouch to know how your IT department or HR Department are using those groups. For example,
your HR Department may have an employment category in Active Directory named Guests and
Visitors, which an InTouch designer may choose to grant an $AccessLevel of 9000, giving them
administrator rights within InTouch. Beyond this association through scripting, InTouch has no
ability to check the meaning or usage of the Microsoft group. Therefore, InTouch designers must
work closely with IT and HR to establish the proper associations based on certifications,
experience, and training within these groups.
OS Users may be part of one or more groups; if multiple access levels are set to multiple groups, a
user logging in to the InTouch application will get the highest access level assigned by any of the
groups he/she is part of.
Note: Once the OS Security Type has been selected, the user registered during the InTouch
installation is the only user who has permission to change the Security Type.
Three internal security tags are used in buttons in animation link expressions or QuickScripts, and
so on. They are $Operator, $AccessLevel, and $OperatorName. These tags control whether or
not the logged-on user is allowed to perform specific functions.
For example, to make an object become visible based on the logged on users’ access level, the
following statement could be used in a Visibility animation link expression:
$AccessLevel >= 2000
Or, a QuickScript can be bounded by an IF statement:
IF $Operator == "DayShift" THEN
Show "Control Panel Window";
{and other lines that only execute for the DayShift Operator}
ENDIF;
You can also control an object's touch functionality based on the value of an internal security
tagname by using the Disable animation link.
For example:
In this example, when no one is logged on, the object or button is secured from tampering.
AVEVA™ Training
Section 1 – OS Security Implementation 9-9
AttemptInvisibleLogon()
Attempts to log in to InTouch using the supplied credentials.
Syntax
DiscreteTag=AttemptInvisibleLogon
( "UserId","Password", "Domain" );
Remarks
An attempt is made to log in to InTouch using the supplied credentials. The domain is ignored if
the security mode is not OS. If the log in attempt succeeds, TRUE is returned and the system
tags $OperatorDomain, $OperatorName, $AccessLevel, and $Operator are updated
accordingly. If the log in attempt fails, FALSE is returned and the currently logged in user (if
any) continues to be the current user.
Logoff()
Logs the user out of InTouch.
Syntax
DiscreteTag=LogonOff();
Remarks
Logs the user off.
AVEVA™ Training
Section 1 – OS Security Implementation 9-11
GetAccountStatus()
Used to determine when a user’s password will expire.
Syntax
GetAccountStatus( Domain, UserID );
Remarks
This is used to determine when a user’s password will expire. Return value will display the
number of days (positive value) until the user’s password expires. GetAccountStatus also
displays the following account status values:
Account password expired = -1
Account password will never expire = -2
Account locked out = -3
Account disabled = -4
Account info failed = -5
Users can write a script to display a window with either the number of days until the user’s
passcode expires or the proper message/warning that corresponds to the return value of the
function.
LogonCurrentUser()
Whoever is logged in to the computer will be logged in to InTouch.
Syntax
LogonCurrentUser();
Remarks
This script function is designed for InTouch to run in OS security mode. When the script
function is called, whoever is logged in to the computer will be logged in to InTouch.
QueryGroupMembership() Syntax
DiscreteTag=QueryGroupMembership("Domain","Group");
Remarks
This is valid for OS security mode only and applies to the currently logged in user. If a user is
currently logged in and is part of the group that is located on the domain, a TRUE is returned;
in all other cases, a FALSE is returned.
AVEVA™ Training
Lab 23 – Setting Up and Using OS Security 9-13
Introduction
In this lab, you will set up Operating System (OS) Security in InTouch. OS Security allows InTouch
to use Active Directory or Local Machine security to authenticate users. You will set up the user
interface for operators to log in to the application, assign InTouch access levels based on group
membership, and verify group membership.
Objectives
Upon completion of this lab, you will be able to:
Configure a security environment with OS Security
Use a native InTouch Application script to set up user permissions and access levels
Use a native InTouch Data Change script to monitor user changeover
Use Condition scripts in Industrial Graphics
Log in using the PostLogonDialog( ) script function in Industrial Graphics
Log off the current user with the LogOff( ) script function in Industrial Graphics
Set Up OS Security
For classrooms without a domain set up, local users and groups must be created before starting
this lab. If your instructor directs you to “Create Local Users and Groups (Non-domain
Classroom Setting Only)” on page 9-26, follow the steps there first, and then come back here to
follow the steps below. If your instructor does not direct you to Create Local Users and Groups
later in the lab, follow the steps below.
In the following steps, you will enable OS Security and create security scripts.
1. Close WindowViewer.
2. On the WindowMaker Special menu, select Security | Select Security Type | OS.
AVEVA™ Training
Lab 23 – Setting Up and Using OS Security 9-15
Note: You may copy and paste the script from the following text file:
C:\Training\Lab 23 - Setting Up and Using OS Security.txt
Note: Your instructor will provide the domain name for this script.
The Application On Startup script executes when WindowViewer starts. Any modifications
made to this script after WindowViewer is launched will require WindowViewer to be restarted.
6. Click OK.
7. In the Tagname Dictionary, create a tag named GroupMembership.
8. Change the Type to Memory Message.
9. In the Initial Value field, enter None.
AVEVA™ Training
Lab 23 – Setting Up and Using OS Security 9-17
Note: You may copy and paste the script from the C:\Training\Lab 23 - Setting Up and
Using OS Security.txt file.
GroupMembership = "";
IF QueryGroupMembership( "CLOUD", "Plant Operators 1" ) == 1 THEN
GroupMembership = "Operator";
ENDIF;
IF QueryGroupMembership( "CLOUD", "Plant Supervisors 1" ) == 1 THEN
GroupMembership = "Super";
ENDIF;
IF QueryGroupMembership( "CLOUD", "Application Administrators" ) == 1 THEN
GroupMembership = "Admin";
ENDIF;
IF $Operator == "None" THEN
GroupMembership = "None";
ENDIF;
AVEVA™ Training
Lab 23 – Setting Up and Using OS Security 9-19
Name: DisplayAccessLevel
Type: Output
EngUnits: False
QualityStatusIndicator: False
Outline: False
Old New
##.## #
Label Access Level
Name: DisplayOperator
Type: Output
QualityStatusIndicator: False
Outline: False
Old New
##.## #
Label Operator
AVEVA™ Training
Lab 23 – Setting Up and Using OS Security 9-21
25. On the canvas, duplicate DisplayOperator, and place the duplicate below the original.
26. Name the duplicate DisplayGroup.
27. Substitute strings, and replace Operator with Group.
28. Substitute references, and replace $Operator with GroupMembership.
29. Right-click the canvas and select Select All.
30. On the Alignment toolbar, click Align Left.
32. Reposition the elements to make room on the left for buttons that will be added in the following
steps.
Name: LogOnButton
Element Style: Intensity1
AVEVA™ Training
Lab 23 – Setting Up and Using OS Security 9-23
Test in Runtime
Finally, you will test logging in and logging off at runtime.
54. Click RUNTIME.
The SecurityLogon symbol is displayed in the Menu window.
AVEVA™ Training
Lab 23 – Setting Up and Using OS Security 9-25
Note: Your instructor will provide passwords that adhere to the local security policy.
User name Full name Password User must change password at next logon
maryl Mary Lee unchecked
karent Karen Turner unchecked
johnj John Johnson unchecked
5. Click Close.
Next, you will create new local groups and assign users.
6. In Computer Management, right-click Groups, and select New Group.
AVEVA™ Training
Lab 23 – Setting Up and Using OS Security 9-27
7. Configure each of the groups, and add the user associated with that group as follows:
8. Click Close.
9. Close Computer Management.
10. Return to “Set Up OS Security” on page 9-14 and continue this lab.
AVEVA™ Training
Section 2 – Lock Down Your Application 9-29
Overview
Enhancing Security may begin with basic configuration options available on Special | Configure
options, including the ability to disable the menu bar or individual menu items, the Tag Viewer, or
even make WindowViewer impossible to close.
WindowViewer can be configured to automatically logout users based on inactivity. The Inactivity
timeout option is accessible on Special | Configure | WindowViewer. Additionally, Home
windows may be defined on Special | Configure | Home Windows so that the initial window or
windows, which appear when WindowViewer is first started do not give access to any sensitive
areas.
But the most significant power in customizing and enhancing security is done through InTouch
scripts to build sophisticated and robust applications. You may use InTouch scripts to create a
completely regulation compliant and secure application.
In terms of security, scripts can generally be run in two different ways:
Event-based scripts run once when an event occurs allowing you to take immediate,
unassisted action. For example, an event-based script can run after a condition is met or
the value of a key process I/O point changes. Using I/O tagnames tied to external security
systems, such as door locks and proximity alarms, or other external security stimuli,
InTouch scripts can be used then to handle a wide array of standard operating procedures,
work flow, or processes insuring your people, facility, products, services, and investments
remain secure
Time-based scripts run periodically to continue to keep systems running within
operational norms or where predictive measures can be taken to avert failure or downtime
InTouch provides a number of System tags and script functions that allow you to configure security
for the individual application. By combining scripts with system tags related to security, you can
add a number of powerful features to your application, monitoring special conditions, and dealing
with critical events for example environmental or safety issues. You can also use Touch scripts for
sophisticated operator input into the system, and apply levels of security to various functions.
Note: You can use $InactivityWarning in a Condition QuickScript to show a window warning to
operators that they are about to be logged off the system. If the operators click the mouse, press a
key, or perform an action using any other pointing device before the specified timeout elapses, they
are not logged off. $InactivityWarning and the timer are reset.
In the Timeout field, type the number of seconds that can elapse with no operator activity (mouse
clicks or keystrokes) before the system discrete tagname $InactivityTimeout is set to 1 (True).
When $InactivityTimeout is true, the system sets the logged on operator name to the reserved
name None and sets the security tagname, $AccessLevel, to 0.
Note: You can use $InactivityTimeout in a Condition QuickScript to show a window telling the
operators that they have been logged off the application.
You can use the Timeout feature independently of the Warning feature. However, the Timeout
value must be greater than the Warning value for proper use of both system tagnames. After a
successful log in, the timers for both the warning and timeout start. For example, set
$InactivityWarning to 30 and $InactivityTimeout to 45. The operator will be logged off 15
seconds after the $InactivityWarning variable is set to 1.
AVEVA™ Training
Section 2 – Lock Down Your Application 9-31
InTouch Authentication
InTouch authentication uses a binary password file that contains user identification, passwords,
and access levels. In addition, you can use Operating System authentication, ArchestrA
authentication, or no authentication at all.
In WindowMaker, access security commands are available from the Special menu, Security
options. These commands are used to log on and off the application, change passwords and to
configure the list of valid user names, passwords, and access levels.
You can link a User Input - Discrete button to the $ConfigureUsers tag to allow an authorized
user with an access level of equal to or greater than 9000 to display the Configure Users dialog
box. The dialog box is used to edit the security user name list.
When the user clicks the button, the value of the $ConfigureUsers tagname is set to 1 and the
Configure Users dialog box appears. When the user closes the dialog box, the system resets the
value to 0 (This is a system discrete tag intended for write-operation only).
If the Special menu does not display in WindowViewer, you can create a custom logon window to
allow users to log on to the application.
You can also link a User Input - Discrete button to the $ChangePassword tagname to show the
Change Password dialog box and allow the user to change his/her password. When the user
clicks the button, the value of the $ChangePassword tagname is set to 1 and the Change
Password dialog box appears.
When the user closes the dialog box, the system resets the value to 0 (This is a system discrete
tagname intended for write operation only.)
The None and Administrator names are reserved. Only the password of the Administrator may
be changed. Once you have configured user names for your application, you should change the
Administrator name's password since it will more than likely become known to most users of the
system. The Administrator default access level (9999) is the highest and allows access to
everything including the Configure Users menu command.
AVEVA™ Training
Section 2 – Lock Down Your Application 9-33
Log on
In addition to configuring user log on, you can configure log on options using scripts and with
system tags.
Use the PostLogonDialog() script to show the InTouch Logon dialog box and return
TRUE.
Use the AttemptInvisibleLogin() to attempt logging in to InTouch using the supplied
credentials.
Use System Tags $OperatorEntered, $PasswordEntered and $OperatorDomainEntered
in a script to set the user name, password, and domain name. These tags are internal
message type tags that are intended for write operation only.
If the log on is successful, the $AccessLevel system tag is set to the predefined value associated
with the user in the InTouch security user list.
Log Off
Use the following scripting and system tag options to configure user log off options.
There are two topics pertinent to logging out of the InTouch security system:
Use the LogOff() script to set the current user status to the default None user.
Use the $OperatorEntered = “None” System Tag when you create a custom log on
window. You can link touch-sensitive input objects and QuickScripts to this tag to set the
user name for the logon.
When you log off your InTouch application using the Log Off option from Special | Security, the
User Name is reset to None with an Access Level of 0.
EnableDisableKeys() Function
You can write a script to enable or disable the Alt, Escape, and Windows system keys based on
the access level of the user logging in to WindowViewer. This is one way of securing your
application and preventing operators from closing an InTouch application in WindowViewer.
The details of the function are provided below.
Category
View
Syntax
EnableDisableKeys(AltKey, EscKey, WinKey);
Parameters
AltKey
Integer to enable or disable key filters for the Alt key:
1 = enable filter (disable Alt key)
0 = disable filter (enable Alt key)
EscKey
Integer to enable or disable key filters for the Escape key:
1 = enable filter (disable Esc key)
0 = disable filter (enable Esc key)
WinKey
Integer to enable or disable key filters for the Windows key:
1 = enable filter (disable Win key)
0 = disable filter (enable Win key)
Disabling the Alt key also disables the Win+L key combination (for locking the Windows desktop).
Win+L is the shortcut for another combination of keys that involves the Alt key. Disabling the Alt
key also disables the shortcut for locking the Windows desktop.
Disabling the Esc key disables it for all actions.
Examples of the functions you would use to disable/enable the keys are shown below:
Enable All Three Keys:EnableDisableKeys(0,0,0);
Disable All Three Keys:EnableDisableKeys(1,1,1);
Disable Windows Key only:EnableDisableKeys(0,0,1);
In virtual environments, such as those often used for classroom instruction, keystroke
combinations involving Alt, Esc, and Win are captured by the host operating system and not
passed through to the virtual environment. This makes it impossible to properly test all key
combinations. Quite often the affected key combinations include Ctrl + Shift + Esc for launching
Task Manager or Ctrl + Alt + Delete for OS Logon and OS Logoff or the Win key for calling Start
Menu appear unaffected by lockdown features. Consistently however, the Alt key will work in
combinations such as Alt + F for the WindowViewer File menu, or Alt + S for the WindowViewer
Special menu and may be tested faithfully within all virtual classroom environments.
AVEVA™ Training
Lab 24 – Locking Down Your Application 9-35
Introduction
In this lab you will configure automatic logoff and secure your application from unauthorized
access. When no user is logged into the application you will hide sensitive information from
unauthorized users, and restrict unauthorized access to the application using a variety of script
types. You will also modify the Menu window to hide the WindowViewer menu bar. Finally, you will
create a script to prevent the use of special access keys, including the Win and Alt keys.
Objectives
Upon completion of this lab, you will be able to:
Configure automatic logoff
Permit window navigation for authorized users
Hide menu access in WindowViewer
Select Home Windows for your application
4. Click OK.
5. Ensure only the Menu window is open.
AVEVA™ Training
Lab 24 – Locking Down Your Application 9-37
The automatic logoff Timeout is reset when a user clicks any part of WindowViewer.
9. Click Development!.
Automatic logoff will be turned off to prevent it from interfering with the remaining steps in this
course.
10. Close WindowViewer.
11. Open WindowViewer Properties, and set the Timeout field to 0 seconds.
Note: You may copy and paste the script from the C:\Training\Lab 24 - Locking Down
Your Application.txt file.
Show "Home";
ELSE
Show "KPI";
Show "Mixer";
Show "Current_Alarms";
The modified script will look like the following image.
AVEVA™ Training
Lab 24 – Locking Down Your Application 9-39
Note: The WindowViewer Home Windows feature will be tested in a future lab.
AVEVA™ Training
Lab 24 – Locking Down Your Application 9-41
AVEVA™ Training
Lab 24 – Locking Down Your Application 9-43
Note: Typically an application design would not have both a navigation combo box and
navigation buttons. But if it did, additional security would have to be added in the Menu
window to disable the SA_PageNavigation buttons such as Mixer or Alarms, but these steps
are not covered in this lab.
28. Click OK to save and close the Object Disabled -> Discrete Value dialog box.
29. Click OK to save and close the Animation Links dialog box.
AVEVA™ Training
Lab 24 – Locking Down Your Application 9-45
Y Location: -40
Window Height: 140
The Popup Window Type can cover the title bar and menu bar of WindowViewer, which are
located in the negative Y location of WindowViewer. The actual height of the Title Bar and
menu bar will differ depending on the theme and resolution of the windows environment.
40. Click OK.
41. In the Menu window, right-click, and select Select All.
42. Press and hold the Ctrl key, and then press the Down Arrow key once to reposition all of the
graphics on the Menu window.
Note: The labs in this course were intentionally limited to the screen space used for the
windows in the InTouch application. In your plant you would create your windows to take
advantage of maximum screen size, including multiple monitors.
Note: In virtual environments the host computer captures certain key combinations, and does not
pass these through to a virtual environment. If you are taking this course from a virtual machine,
you will need to use special shortcuts, or a virtual keyboard, to recreate these key combinations,
your instructor will provide these alternatives so you can test locking down keyboard access.
45. Press the Ctrl + Shift + Esc keys, and verify you can open Task Manager.
From here, you could potentially end any process, including InTouch WindowViewer.
AVEVA™ Training
Lab 24 – Locking Down Your Application 9-47
Note: You may copy and paste the script from the C:\Training\Lab 24 - Locking Down
Your Application.txt file.
EnableDisableKeys(1,0,1);
Note: For the EnableDisableKeys() function a value of 1 disables a key whereas a value of 0
enables a key. Therefore, EnableDisableKeys(1,0,1) disables the ALT key and the WIN key on
the keyboard.
AVEVA™ Training
Lab 24 – Locking Down Your Application 9-49
Note: You may copy and paste the script from the C:\Training\Lab 24 - Locking Down
Your Application.txt file.
This script enables the Alt, Esc, and Win keys when someone with an access level greater
than or equal to 8000 logs in. Users with an access level of 5000, but less than 8000, will have
access to the Win key.
59. Click OK.
Note: Each user has access to different features. For example, karent and maryl have
different access than johnj.
AVEVA™ Training
Module 10 – Application Distribution
Section 1 – Network Application Distribution 10-3
Lab 25 – Distributing an InTouch Application 10-7
10-2 Module 10 – Application Distribution
Module Objectives
Explain how to configure NAD
Explain how NAD delivers changes to the Production machine
AVEVA™ Training
Section 1 – Network Application Distribution 10-3
Overview
The Application Manager is used to configure Network Application Development (NAD), which is
two distinct technologies. The first is the ability to use the InTouch Application Manager to
remotely develop and edit an InTouch application that has its application directory shared. The
second is the ability of a WindowViewer client on a runtime Production node to monitor changes in
a shared InTouch master application directory. When the master application notifies clients a new
application is ready the changed application files are copied to a working folder on the Production
node and WindowViewer is restarted automatically.
What is NAD?
Network Application Development or NAD is an architecture that combines the best of the client-
based and server-based architectures. NAD provides automatic notification of application changes
and automatic distribution of the updated applications to View nodes. NAD can even be used to
automatically distribute master/slave applications.
Note: You cannot use the NAD features, if you are using WindowViewer as an NT service.
Advantages
Distributing the application
Single client application to maintain
View nodes automatically notified when application changes
Each node defines action to take on change
Unrestricted development of the application
Disadvantages
Distributing a large, complex application takes time
Limits flexibility of having different applications running on different nodes
View is suspended while application is transferred and compiled
Action Description
Ignore changes Causes the runtime (WindowViewer) node to ignore any
change made on the development node.
Restart WindowViewer The runtime node copies the updated master application
(if configured to do so) and then restarts WindowViewer
on the runtime node.
Prompt user to Restart Causes and interactive message box to appear, notifying
WindowViewer the operator that the application has changed. The
operation is asked if they want to restart WindowViewer.
Load Changes into Causes change made in the development node to
WindowViewer dynamically be loaded into WindowViewer. This may
affect performance for large updates.
Prompt user to load Cause an interactive message box to appear, notifying the
changes into operator that the application has changed. The operator is
WindowViewer asked if they want to load the changes to dynamically into
WindowViewer.
AVEVA™ Training
Section 1 – Network Application Distribution 10-5
When the Ignore option is used or when a prompt option is used and the user declines an update,
NAD functionality can be handled manually. NAD provides the following tools used to customize
the update behavior of an application:
Tool Description
$ApplicationChanged provides an indication when a master application has changed. This
tagname could be used to cause a message to appear telling the operator that the master
application has changed.
You can also use the $ApplicationChanged system tagname in a data change script to build a
node update notification script. This script could include launching your own dialog boxes or
closing down certain processes. RestartWindowViewer() can then be used to initiate the
shutdown process.
RestartWindowViewer() This function will shut down and restart WindowViewer. It is used to
update an application when the automatic update Network Application Development (NAD)
functions are not used. This function can be used with $ApplicationChanged to determine when
a NAD update has occurred and then provide an update of the View node by shutting down and
restarting WindowViewer.
When using the Notify Clients command, the operator may want to delay the update until a later
time. This function can be placed in a touch Pushbutton Action QuickScript. Therefore, an operator
can perform an automatic shutdown and restart of WindowViewer when it is convenient. This
function has generally been superseded by the ReloadWindowViewer() function which updates
the View node without shutting down Viewer.
ReloadWindowViewer() This function will automatically update WindowViewer. It is used to
update an application when the automatic update Network Application Development (NAD)
functions are not used. This function can be used with $ApplicationChanged to determine when
a NAD update has occurred and then provide an update of the View node without interrupting the
operation of that node.
When using the Notify clients command, the operator may want to delay the update until a later
time. This function can be placed in a Touch Pushbutton Action QuickScript. Therefore, an
operator can perform a dynamic update of WindowViewer when it is convenient. This function
effectively replaces the RestartWindowViewer() function.
Note: To use these functions, in the NAD Configuration dialog box, the When Application
Changes option must be set to: Ignore changes - do not restart. Setting this option prevents the
system from interfering with customized functions defined.
During application development, you can use the WindowMaker Special | Notify Clients
command to automatically update InTouch client applications. When this command is executed, a
flag is set to notify all remote View nodes that the master application has changed. These clients,
in turn, may automatically start an update process based on the parameters defined for each
node.
Note: If WindowMaker is abnormally shut down with an application loaded, the APPEDIT.LOK file
may not be automatically deleted. However, you can manually remove the lock by deleting the
APPEDIT.LOK file from the application directory.
AVEVA™ Training
Lab 25 – Distributing an InTouch Application 10-7
Introduction
In this lab, you will configure Network Application Development (NAD) to copy your application to a
Production node, similar to what an operator would use out in the field. You will then make
changes to the application and view how those changes affect the Production node.
Objectives
Upon completion of this lab, you will be able to:
Configure how WindowViewer will receive application updates
Configure NAD on the Production node
Distribute your application to the Production node
Notify clients of changes
4. Click Share.
AVEVA™ Training
Lab 25 – Distributing an InTouch Application 10-9
5. Click Share.
Note: NAD requires network discovery and file sharing to be enabled. If this Windows
feature is not enabled on your node, you will be prompted to enable it.
6. Click Done.
7. Close Windows Explorer.
The menu option Prompt to Notify Clients on Close is a toggle that, when enabled, will
prompt you to notify clients when WindowMaker is closed.
9. Switch to your Production node.
Note: Your instructor will provide the steps to connect and login to the Production node.
AVEVA™ Training
Lab 25 – Distributing an InTouch Application 10-11
17. In the Browse For Folder dialog box, Folder field, enter \\S01ENG\Training\InTouch
Training Application, where S01ENG is your Engineering node.
Note: Your instructor will provide the name of the Engineering node.
AVEVA™ Training
Lab 25 – Distributing an InTouch Application 10-13
20. In the InTouch Training Application tile Quick Access Toolbar, click the WindowViewer
button.
After a few moments, the application starts with Home Windows displayed.
AVEVA™ Training
Lab 25 – Distributing an InTouch Application 10-15
AVEVA™ Training
Module 11 – Application Maintenance
Section 1 – Manage Industrial Graphics 11-3
Section 2 – Convert Windows to Industrial Graphics and Frame Windows 11-5
Lab 26 – Converting Windows to Industrial Graphics and Frame Windows 11-7
Section 3 – Application Backup and Restore 11-15
Lab 27 – Backing Up and Restoring an InTouch Application 11-17
11-2 Module 11 – Application Maintenance
Module Objectives
Describe application maintenance considerations
Describe how to back-up and restore an InTouch application
Explain how NAD distributes an InTouch application to a production environment
Describe how to export and import Industrial Graphics
Explain how to publish an InTouch application for runtime operators
AVEVA™ Training
Section 1 – Manage Industrial Graphics 11-3
AVEVA™ Training
Section 2 – Convert Windows to Industrial Graphics and Frame Windows 11-5
AVEVA™ Training
Lab 26 – Converting Windows to Industrial Graphics and Frame Windows 11-7
Introduction
In this lab, you will convert two legacy windows and their contents into Frame Windows hosting
Industrial Graphics.
Objectives
Upon completion of this lab, you will be able to:
Convert a window using Convert to Industrial Graphic
AVEVA™ Training
Lab 26 – Converting Windows to Industrial Graphics and Frame Windows 11-9
5. Click OK.
The Converting Windows to Symbols dialog box appears and displays the progress of the
conversion.
The conversion report will inform you of any graphic elements that could not be converted and
the reason for this. This is particularly useful when converting legacy graphics containing
ActiveX controls, which cannot be converted to Industrial Graphics.
9. Close the Window Conversion Report Dialog window.
10. Click Close to close the Converting Windows to Symbols dialog box.
AVEVA™ Training
Lab 26 – Converting Windows to Industrial Graphics and Frame Windows 11-11
Both the KPI and Menu windows rapidly open, then close. This process creates new KPI and
Menu windows, backs up the original windows, and names them KPI_bak and Menu_bak.
This conversion also creates a new toolset in the Industrial Graphics Toolbox named
InTouch Training Application, which contains the new KPI and Menu symbols.
11. In the Industrial Graphic Toolbox, expand the InTouch Training Application toolset, and
observe that the KPI symbol and the Menu symbol have been added to the library.
13. In the Windows & Scripts pane, observe that your original windows have been renamed to
KPI_bak and Menu_bak and have been moved to the Backup Windows folder.
Additionally, the new KPI and Menu windows have been created and converted to a frame
window.
AVEVA™ Training
Lab 26 – Converting Windows to Industrial Graphics and Frame Windows 11-13
Edit Symbol
Save Window
Save Window As
Delete Window
AVEVA™ Training
Section 3 – Application Backup and Restore 11-15
Backing Up an Application
Backing up a Stand-alone + Symbols InTouch application is as simple as copying your InTouch
application folder with all subfolders and files to a new location. However, for convenience, a tool
in WindowMaker called Application Publisher which allows you to create a self-extracting .exe file
that contains the contents fo your InTouch application folder for easy portability.
Using this tool, the backup of the InTouch application is stored as a .exe file. This file can be used
to restore the InTouch application wherever InTouch Application Manager is installed.
Restoring an Application
Restoring an application requires the InTouch application folder to be accessible by InTouch
Application Manager. Regardless of whether the InTouch application folder was manually copied
or restored from the self-extracting Zip file created by the Application Publisher or any other tool
which compresses the contents of the InTouch application folder. The InTouch application folder
contains all of the necessary components to recreate the InTouch application with exceptions. For
example, if you have configured InTouch Historical Logging to record .LGH and .IDX files in a path
outside the InTouch application folder, these files will need to be copied to the new location or
made accessible in their old location. Another example is the Template Maker file which stores
template definitions for creating Super Tags in InTouch. Please consult user documentation for
details.
Applications can be reused anywhere InTouch Application Manager is installed. It is considered a
good practice to restore your application as a separate application and not to overwrite the existing
application. Once you have verified that the restored application functions properly, you can then
delete the original application, if desired.
Adding a restored application is as easy as clicking the Find Application tool in InTouch Application
Manager.
AVEVA™ Training
Lab 27 – Backing Up and Restoring an InTouch Application 11-17
Introduction
In this lab, you will back up your application to a local path. You will then restore the backup.
Objectives
Upon completion of this lab, you will be able to:
Back up your InTouch application
Restore your InTouch application
Note: Be careful, WindowViewer and WindowMaker have swapped places on the task bar
due to the order of steps in the previous lab. Ensure you are closing WindowViewer, not
WindowMaker.
7. Click Next.
AVEVA™ Training
Lab 27 – Backing Up and Restoring an InTouch Application 11-19
Note: The Enter the InTouch application source directory to be published field is
automatically filled with the path to your current application. The Runtime only check box
removes the editable window files from the resulting self-extracting .exe, which protects the
intellectual property by preventing someone else from using WindowMaker to modify the
application.
The Composing Package dialog box appears. This may take a few moments to finish.
AVEVA™ Training
Lab 27 – Backing Up and Restoring an InTouch Application 11-21
When the process is complete, the dialog box closes and the Restored Training folder
appears in Windows File Explorer.
18. Close Windows File Explorer.
19. Open the InTouch Application Manager.
24. In the Windows to Open dialog box, ensure Home and Menu are selected.
AVEVA™ Training
Lab 27 – Backing Up and Restoring an InTouch Application 11-23
Note: There are many ways to capture a screenshot in a Windows environment. Your
instructor can provide details because most of the other methods will capture a screenshot of
your host computer and not the desktop of your virtual machine or Remote Desktop Protocol
(RDP) session as is typically used in a training classroom.
AVEVA™ Training
Lab 27 – Backing Up and Restoring an InTouch Application 11-25
40. In the InTouch Training Application tile, Quick Access bar, click Change Thumbnail.
AVEVA™ Training
Lab 27 – Backing Up and Restoring an InTouch Application 11-27
AVEVA™ Training
Module 12 – Web Client
Section 1 – Web Client 12-3
Lab 28 – Using the Web Client 12-11
12-2 Module 12 – Web Client
Module Objectives
Describe the Web Client features and dependencies
Explain how to enable the Web Client
Explain how to navigate graphics in the Web Client
Explain to use the Web Client fast switch
Explain security for Web Client access and read/write function
AVEVA™ Training
Section 1 – Web Client 12-3
This section will describe the Web Client features and dependencies.
Overview
The InTouch Web Client feature (Web Client) allows you to view specific Industrial graphics used
within an InTouch HMI application on any HTML5-supported web browser. A built-in web server
enables web browsers to access application graphics, from any Microsoft Windows client or server
operating system without the use of Remote Desktop Protocol (RDP) or Internet Information
Services (IIS) for Microsoft Windows Server. You can view application Industrial graphics in a web
browser for STANDALONE + Symbol applications only.
When the Web Client is disabled, the InTouch Web service indicates a Manual startup type:
This tool in the InTouch Application Manager represents the Web Client enabled:
When the Web Client is enabled, the InTouch Web service is in Automatic startup type with a
status of Running:
AVEVA™ Training
Section 1 – Web Client 12-5
A single symbol within the Web Client Root Folder may be configured by enabling Set Web Client
Home Symbol. The Home symbol will be automatically selected and displayed when the InTouch
Web Client is accessed using a browser. Additionally, the Web Client interface provides a Home
button which may be used to display the Home symbol. The Home symbol is marked in the
Industrial Graphic Toolbox with a Home icon.
AVEVA™ Training
Section 1 – Web Client 12-7
AVEVA™ Training
Section 1 – Web Client 12-9
Known Limitations
A number of features common to InTouch HMI applications are not yet supported by the Web
Client. For example, no ActiveX or .NET controls, such as the Alarm Client, are supported at this
time. For a detailed list and description of known limitations with Web Client consult the PDF file
entitled: Viewing InTouch Application Graphics in a Web Browser.
Acquiring a License
After the Web Server starts up, it will first Authenticate the user and then determine the user’s
Authorization. During auththentication, the web server will validate if the user is part of either the
"aaInTouchUsers" or the "aaInTouchRWUsers" to be authenticated to use the Web Client. Both the
user groups will be created during installation. The login user at the time of Web Client installation
will be automatically added to both user groups. Additional users can be added later. After adding
the new user to the group, the new user must log off and then re-login for the change to take
effective.
Next, the web server determines authorization for Read-Only or ReadWrite capability. First, the
web server will attempt to acquire the ReadWrite license. If a ReadWrite license is not available,
then it will attempt to acquire the Read-Only license. If a ReadOnly license is not available, then
the web client will operate in a Single Session Mode.
AVEVA™ Training
Lab 28 – Using the Web Client 12-11
Introduction
In this lab, you will enable the Web Client server, which provides access to the Web Client feature.
In the Industrial Graphic Toolbox you will set the Home folder for the Web Client. Then, you will use
the Web Client fast switch to open your Home windows, preview navigation, and display graphics
in a browser.
Objectives
Upon completion of this lab, you will be able to:
Enable Web Client
Set the Web Client Root folder
View Application Windows
Use the Web Client fast switch to open the Web Client in the default web browser
Pan and zoom an Industrial Graphic in a web browser using a mouse and keyboard
Navigate Application Windows
Use Navigation Search
Use the Hyperlink animation to call a specific symbol
Visualize and acknowledge alarms in Web Client
Write to an IO Tag in Web Client by commanding a pump to start or stop
Test access to Web Client to verify access is denied for an unauthorized user
After a few moments, the Web Client displays the Home Windows in your default web
browser. The examples that follow, use the Google Chrome browser.
.
AVEVA™ Training
Lab 28 – Using the Web Client 12-13
Notice the LABEL still uses the default string from the original library. The Web Client converts
every symbol in the Root Folder which by default is the InTouch Training Application’s top
node in the Graphic Toolbox to be used by Web Client without further configuration. The
majority of these symbols require further configuration to make them more usable.
AVEVA™ Training
Lab 28 – Using the Web Client 12-15
AVEVA™ Training
Lab 28 – Using the Web Client 12-17
20. With the cursor hovering over the middle of the Mixer symbol, click and hold down the mouse
wheel, and drag the mouse to pan the graphic.
21. With the Ctrl button held down on the keyboard, and the cursor hovering over the middle of
the Mixer symbol, scroll the mouse wheel down to zoom out.
AVEVA™ Training
Lab 28 – Using the Web Client 12-19
The Mixer window replaces the Home window. Recall that the Mixer window is a Replace
type Frame Window.
25. In the Web Client menu, expand Windows and click KPI.
AVEVA™ Training
Lab 28 – Using the Web Client 12-21
The alarms that were active at the moment you clicked Ack All are acknowledged. In the brief
time it took to enter the brief comment and click OK, new alarms have already been added to
the Active list.
Next, you will use a pump command button to override a pump.
29. In the Mixer window, click one of the passive CMD buttons to change state of a pump.
AVEVA™ Training
Lab 28 – Using the Web Client 12-23
A list of features not yet supported appears. For example, in this list, both the Temp and Level
Trend Pens have an Animation/Property called Fixed.
Recall, when configuring the Trend Pen, the Time Period area of the animation offered both a
moving and fixed animation type for the Time Axis of the Trend Pen. Only the moving option is
supported by Web Client.
35. In the Properties pane, Animations area, select Action Scripts and click Remove
Animations.
AVEVA™ Training
Lab 28 – Using the Web Client 12-25
AVEVA™ Training
Lab 28 – Using the Web Client 12-27
The KPI symbol appears in a separate tab (depending on browser configuration) without the
Web Client menu and toolbar. The hyperlink URL appears in the web browser address bar.
Even without the Web Client interface, the graphic supports zoom and pan.
Note: Your instructor will provide the steps to connect and login to the Production node.
45. On the Production node, in WindowViewer, in the Application Change dialog box, click Yes.
46. Monitor the NAD process until WindowViewer restarts.
You need to ensure WindowViewer is running in order to provide data and animation for future
steps. The NAD update may take several minutes.
47. Switch to your Engineering node.
48. In the web browser, address bar, enter the following URL:
http://s01prod/intouchweb where S01ENG is your Engineering node.
49. Press Enter.
The Web Server on the Production node displays in the Web Client on the Engineering node.
This is possible because the Student account was used to install InTouch and has been added
automatically to the appropriate security groups. Refer to section content preceding this lab for
more details. Note that the license on the Production node allows Read Only access for
connecting browsers.
AVEVA™ Training
Lab 28 – Using the Web Client 12-29
Next, you will attempt to connect to the Production node with a user who has not been added to
the appropriate security groups.
50. On the Engineering node, close Web Client.
51. In the Start menu, locate the your web browser icon.
52. Hold down the Shift key, right-click your web browser icon, select More | Run as a different
user.
The Windows Security dialog box appears.
53. In the Windows Security dialog box, enter the following credential information:
AVEVA™ Training
Course Outline
Module 1 – Introduction
Section 1 – Course Introduction
This section will explain the objectives and agenda for this course. It will also outline products
by AVEVA and how InTouch meets the human-machine interface requirements for
visualization.
Section 2 – InTouch Software Overview
This section will introduce the InTouch, explains the benefits of using InTouch, discusses its
key capabilities, and provides an overview of its features.
Section 3 – System Requirements and Licensing
This section will describe the operating systems and other software requirements the host
computer must meet prior to installing InTouch 2020.
Section 4 – InTouch Application Types
This section will provide an overview of the different types of InTouch applications.
Module 9 – Security
Section 1 – OS Security Implementation
This section will discuss how to prepare your environment for using OS security. This section
will also provide an overview of scripting for OS security.
Section 2 – Lock Down Your Application
This section will provide an overview of the Animation Links dialog box and explain Action
Script methods you can use to secure your application. This section will also describe the
function used to enable and disable the Alt, Escape, and Windows keys.