You are on page 1of 746

W O N D E R W A R E ® T R A I N I N G

Training Manual
Revision A
November 2007
Part Number 05-2087

InTouch® HMI 10.0 –


Advanced Application
Development Course
INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE.

© 2007 by Invensys Systems, Inc. All rights reserved. No part of this document may be reproduced, stored in
or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical,
photocopying, recording or otherwise), or for any purpose, without the express written permission of Invensys
Systems, Inc. Except where noted, the companies, organizations, products, domain names, e-mail
addresses, logos, people, places and events depicted herein are fictitious and no association with any real
company, organization, product, domain name, e-mail address, logo, person, place or event is intended or
should be inferred.

Invensys and the author(s) assume no responsibility for errors or omissions and no liability is assumed for
damages resulting from the use of the information contained herein. Use of the Invensys software described
in this document is subject to the terms of the applicable Wonderware Corporation or Invensys Systems, Inc.,
license. These terms include provisions that limit your rights such as use restrictions, disclaimers of
warranties and limitations of Wonderware and Invensys liability. A copy of the applicable license will be
displayed upon initial installation of the software. If a copy of the license is not displayed or you require an
additional copy of the license, you may obtain one from Invensys' Wonderware business unit upon request by
calling 1.949.727.3200 or by sending an e-mail to support@wonderware.com.

Invensys; Wonderware; ActiveFactory; ArchestrA; DT Analyst; FactorySuite; FactorySuite A2; InBatch;


InControl; IndustrialSQL Server; InTouch; InTrack; QI Analyst; SCADAlarm; SPCPro; SuiteLink;
SuiteVoyager; WindowMaker; WindowViewer; Every system in your plant, working in concert; and the
Visualize, Analyze, Optimize logo are trademarks or service marks of Invensys plc, its subsidiaries and
affiliated companies. All other brands and product or service names may be the trademarks or service marks
of their respective owners.
Table of Contents 1

Table of Contents
Module 1 Introduction ................................................................................1–1
Section 1 – Course Introduction.........................................................................1–3
Section 2 – InTouch HMI and ArchestrA Integration........................................1–17
Lab 1 – Creating and Importing Applications Into the Galaxy ...................1–33

Module 2 Fundamentals of Application Development ............................2–1


Section 1 – Review of Basics.............................................................................2–3
Lab 2 – Standard Tag Addressing...............................................................2–5
Section 2 – Using SmartSymbols ....................................................................2–15

Module 3 ArchestrA Graphics ...................................................................3–1


Section 1 – Creating and Managing Symbols....................................................3–3
Section 2 – Using ArchestrA Symbols in WindowMaker..................................3–85
Lab 3 – Symbol Creation ...........................................................................3–93
Section 3 – Using Custom Properties ............................................................3–103
Lab 4 – Defining Custom Properties .......................................................3–109
Section 4 – Animating Graphic Elements ......................................................3–117
Lab 5 – Animation ...................................................................................3–193
Lab 6 – Referencing a Symbol ................................................................3–203
Section 5 – Associating Scripts with Symbols ...............................................3–209
Lab 7 – Scripting .....................................................................................3–221

Module 4 Advanced Tag Functionality .....................................................4–1


Section 1 – Indirect Addressing .........................................................................4–3
Lab 8 – Indirect Addressing and
Remote Data Access ...............................................................................4–5
Section 2 – SuperTags ....................................................................................4–13
Lab 9 – Creating SuperTags .....................................................................4–23
Section 3 – Dynamic Referencing....................................................................4–33
Lab 10 – Dynamic Reference Addressing (DRA) ......................................4–37
Section 4 – Remote Tag Referencing..............................................................4–43
Lab 11 – Remote Tagname Referencing ..................................................4–51
Section 5 – Redirecting Remote References...................................................4–59

Module 5 Data Monitoring..........................................................................5–1


Section 1 – Value, Time and Quality (VTQ).......................................................5–3
Lab 12 – Troubleshooting With VTQ .........................................................5–15
Section 2 – Quality and Status in ArchestrA ....................................................5–19
Lab 13 – Implementing Quality & Status In
ArchestrA Graphics ................................................................................5–23
Section 3 – I/O Failover ...................................................................................5–29
Lab 14 – Monitoring I/O Communication ...................................................5–31

Module 6 Security .......................................................................................6–1


Section 1 – Application Security ........................................................................6–3
Section 2 – Security Models and Functionality ..................................................6–7
Lab 15 – Implementing Security ................................................................6–23

InTouch 10.0 – Advanced Application Development Course


2 InTouch 10.0 – Advanced Application Development Course

Module 7 ActiveX® and .NET Controls ..................................................... 7–1


Section 1 – ActiveX Controls ............................................................................. 7–3
Lab 16 – Using ActiveX with InTouch ....................................................... 7–21
Section 2 – Using .NET Client Controls .......................................................... 7–27
Lab 17 – Using Client Controls ................................................................. 7–41

Module 8 Alarm Distribution ..................................................................... 8–1


Section 1 – Alarm Subsystem Overview ........................................................... 8–3
Section 2 – Alarm Viewer Control ..................................................................... 8–9
Lab 18 – Working With the
Alarm Viewer Control............................................................................. 8–25
Section 3 – Alarm Suppression ....................................................................... 8–39
Lab 19 – Alarm Suppression..................................................................... 8–43
Section 4 – Alarm Tree View Control .............................................................. 8–49
Lab 20 – Configure an Alarm Tree View Control ...................................... 8–55
Section 5 – Alarm Hot Backup Manager ......................................................... 8–61
Lab 21 – Configure the Alarm Hot Backup Manager ................................ 8–75
Section 6 – Alarm Printer ................................................................................ 8–79
Section 7 – Alarm Databasing Tools ............................................................... 8–89
Lab 22 – Alarm Database Logger &
Alarm Database View Control.............................................................. 8–101
Lab 23 – Configure an Alarm Pareto Control.......................................... 8–113

Module 9 History Distribution ................................................................... 9–1


Section 1 – Distributed History .......................................................................... 9–3
Lab 24 – InTouch as a History Provider.................................................... 9–11
Lab 25 – Wonderware Historian as a
History Provider ..................................................................................... 9–21

Module 10 Runtime Language Switching ................................................ 10–1


Section 1 – Runtime Languages ..................................................................... 10–3
Lab 26 – Configuring Languages for Runtime ........................................ 10–15

Module 11 Application Distribution.......................................................... 11–1


Section 1 – Copying the Application................................................................ 11–3
Lab 27 – Publishing and Exporting
the Application ....................................................................................... 11–7
Section 2 – Network Application Development ............................................. 11–11
Lab 28 – Using Network Application Development................................. 11–31
Section 3 – Using InTouch on a Tablet PC ................................................... 11–37
Section 4 – Introduction to Terminal Services ............................................... 11–45
Section 5 – Introduction to Information Server .............................................. 11–59

Module 12 Implementation Considerations............................................. 12–1


Section 1 – Implementation Considerations .................................................... 12–3
Section 2 – Services...................................................................................... 12–17

Appendix A Keyboard Shortcuts for InTouch .............................................A–1

Wonderware Training
Module 1

Introduction
Section 1 – Course Introduction 1-3
Section 2 – InTouch HMI and ArchestrA Integration 1-17
Lab 1 – Creating and Importing Applications Into the Galaxy 1-33
1-2 Module 1 – Introduction

Module Objective
z Introduce the InTouch® 10.0 Advanced Course and review how to build standard
InTouch® applications.

Wonderware Training
Section 1 – Course Introduction 1-3

Section 1 – Course Introduction

Section Objectives
z Introduce the InTouch® HMI 10.0 Advanced Application Development course.
z Review System Requirements, ArchestrA® Licensing and Technical Support options.

This section will familiarize you with the objectives and agenda for the InTouch® HMI 10.0
Advanced Application Development course as well as Wonderware® basics, System
Requirements, Licensing and Technical Support.

Course Description
InTouch® 10.0 HMI Advanced Application Development Course is a 4-day instructor led class
designed to teach advanced functionality of the Wonderware® visualization module. The focus of
this course is on distributed applications. Students will gain the InTouch knowledge necessary to
develop networked HMI systems for their specific plant floor environment using the following
features/functionality: ArchestrA Graphics, Network Application Development (NAD), Indirect
Tags, Dynamic Reference Addressing, Remote Tagname Referencing, SuperTags, I/O Failover,
InTouch and Operating System Security, Distributed Alarms, Distributed History, SuiteLink, OPC,
VTQ, .NET, ActiveX, Services and Internet functionality. Students will also be introduced to
InTouch for Terminal Services, and on a Tablet PC, as well as a demonstration of how to view
their InTouch applications over their intranet or the internet using the Wonderware® Information
Server web portal.

Course Objective
Upon completion of this course, students should be able to:
z Create client/server InTouch applications and distribute them over networks
z Use InTouch as part of the Wonderware® System Platform
z Implement advanced tag strategies
z Configure I/O Failover
z Configure security
z Distribute alarms and history
z Secure InTouch Applications
z Work with ActiveX controls
z Develop communication solutions
z Create ArchestrA Graphics

Audience
System integrators, plant floor operators and managers, system administrators, and other
individuals who need to use the advanced features of InTouch HMI in a distributed environment.

Prerequisites
The prerequisites for this course are:
z Completion of the InTouch™ HMI 10.0 Fundamentals of Application Development Course
z Familiarity with networking
z Extensive knowledge of Microsoft Windows
z InTouch scripting experience

InTouch 10.0 – Advanced Application Development Course


1-4 Module 1 – Introduction

z Manufacturing industry experience


z Exposure to Wonderware® Application Server helpful

Wonderware Software Solutions


Wonderware® Software Solutions provide valuable tools for optimizing and standardizing your
industrial organization. They offer essential time- and cost-saving techniques that increase
efficiency and reduce application engineering effort and deployment.
The solutions deliver manufacturing and operational performance improvements that can reduce
the amount of project-specific work required to develop information and automation applications
that are integrated across entire operational enterprises. These solutions can also be implemented
in the context of existing systems, at your own pace and to the extent that you choose.
The Wonderware solutions leverage a powerful, layered software architecture that enables a
variety of features and capabilities.

z Microsoft® Technologies, such as Microsoft Windows®, Microsoft SQL Server, and


.NET, are applied as a basis, enabling compatibility with commercial IT hardware and
software.
z Wonderware System Platform and Wonderware Client Software provide a
comprehensive set of services and capabilities to enable an industrial infrastructure that
includes all the necessary functions needed by any industrial application solution.
z Function-Specific Modules make it easier than ever before to optimize production and
performance management by providing common tools for a variety of functions, from
tracking production orders to analyzing performance data.
z Wonderware QuickStarts provide examples of configuration best practices, pre-defined
graphics, and Web reports, using a fully functional and documented demo application.
All Wonderware Software Solutions—whether in the areas of Supervisory HMI, Production and
Performance Management, or Geo-SCADA—leverage the comprehensive ArchestrA® industrial
automation and information software architecture.

Wonderware Training
Section 1 – Course Introduction 1-5

Wonderware System Platform


The Wonderware System Platform provides a single platform for all the SCADA, Supervisory HMI,
and Production and Performance Management needs of industrial automation and information
personnel. The Wonderware System Platform, built on ArchestrA technologies, is a strategic
application infrastructure. Its modular approach allows new application components to be created
now, with the understanding that the requirements, and even the application itself, could
completely change tomorrow.

Functional Capabilities
The Wonderware System Platform contains an integral core set of capabilities and services to
support sustainable production and operations performance improvements via a comprehensive
set of six capability areas:
z Industrial domain services for industrial computing functions that are not provided by
commercial operating systems or products
z Software and device connectivity services for easy communication to any plant or
business information source
z Information and data management services for management of real-time and historical
information
z Information-delivery and visualization services for functions that provide information to
the right user at the right time, and in the form in which they expect it
z Application development services that provide easy and intuitive development of
modular industrial software solutions that are easily changed to meet future needs
z System management and extensibility services that provide easy management,
expansion, and modification of the application or host computing architecture

3rd Party
Clients

Modular Industrial and Manufacturing Solutions

Wonderware Clients

Industrial Domain Application System Mgmt and


Features Development Extensibility
Information Delivery
and Visualization
Information and
Database and
ArchestrA Data Management
Historian
Applications Architecture

Software and Device Connectivity

Existing HMI’s, Software Applications - Field Devices - PLC’s,


Historian, Lab Systems, Business Systems, MES RTU’s, DCS
CMM’s Databases

InTouch 10.0 – Advanced Application Development Course


1-6 Module 1 – Introduction

System Platform Components


The Wonderware System Platform consists of a variety of software components.

Wonderware Clients

InTouch View ActiveFactory Reporting Client


(Information Server CAL)

Functional
Modules Wonderware System Platform

Application Server Historian Information Server


(IAS) (InSQL) (SuiteVoyager)

Device Integration

3rd Party S/W Field Devices


Data Sources Applications PLC, RTU
HMI, LIMS DB, MES DCS

Wonderware System Platform


z Wonderware Application Server (formerly known as Industrial Application Server)
framework for system-wide, real-time data acquisition, alarm and event management,
centralized security, data manipulation, remote deployment, and collaborative engineering
z Wonderware Historian (formerly known as IndustrialSQL Server™) plant data historian
z Wonderware Information Server (formerly known as SuiteVoyager®) industrial portal
software for Internet/intranet visualization and content management
z Wonderware Device Integration Tools for field device connectivity
Wonderware Clients
z Wonderware InTouch® View human-machine interface (HMI) software as a visualization
client for the System Platform
z ActiveFactory™ trending and analysis software
z Reporting Client-Access Licenses for Information Server to enable information-sharing
and reporting over the Web
Wonderware Functional Modules
To complement the capabilities and benefits offered by the Wonderware System Platform,
Wonderware also offers a set of easily implemented add-on modules to assist you in the areas of
Performance Management, Production Management, Supervisory Control, and Geo-SCADA.

Wonderware Training
Section 1 – Course Introduction 1-7

Production and Performance Management Software Solutions


Wonderware provides tools that empower you to take a proactive approach to production and
performance management. Appropriate for a wide range of manufacturing and production
operations, these integrated software applications are designed to drive operational improvements
and substantially decrease total cost of ownership.

These software solutions:


z Integrate with your existing plant, IT and business systems, creating one effective system
for the entire organization
z Leverage a single, open and scalable software architecture called the ArchestrA industrial
automation and information software architecture
z Complete MES and flexible batching capabilities that can help you actively manage
production and collect data for analysis and reporting
z Enable secure, wide-scale delivery of reports on KPIs, downtime, OEE, and SPC through
a powerful portal that delivers the information contextually
z Improve data analysis and information sharing with advanced trending and reporting
capabilities

InTouch 10.0 – Advanced Application Development Course


1-8 Module 1 – Introduction

Product Offerings
The Wonderware Production and Performance Management Software Solutions consist of a
variety of products:
z Wonderware System Platform providing a core set of service capabilities as a
foundation for application development, operations, and information delivery
z InBatch™ flexible batch management software
z Manufacturing Execution Module (formerly known as InTrack™) resource and WIP
tracking software
z Equipment Operations Module for formula management including product definitions
and equipment setups, and for capturing and storing information from production events
including product and production history and genealogy
z Equipment Performance Module (formerly known as DT Analyst™) equipment
downtime tracking and performance management software
z QI Analyst™ for using real-time and historical data to monitor, analyze, and predict
potentially harmful process variations, allowing for online adjustments for improved
production quality and consistency

Supervisory HMI Software Solutions


The Wonderware market-leading Supervisory HMI Software Solutions can be applied in process,
discrete, and hybrid markets where there is demand for an information and automation
infrastructure for centralized monitoring and control. These software solutions enable plant
personnel to:
z Easily design, build, deploy and maintain the most flexible and secure supervisory
solutions with the lowest total life-cycle costs
z Scale from a single machine up to multiple networked supervisory stations
z Integrate plant devices, databases, and control systems
z Incorporate strong security at the data-element level and for every user in the system
z Rapidly expand production and performance management solutions
z Standardize on a common set of supervisory HMI tools at all levels of the plant with
rugged Wonderware Industrial Tablets and Touch Panel Computers, which are pre-
bundled with powerful visualization software

Product Offerings
The Wonderware Supervisory HMI Software Solutions consist of a variety of products:
z Wonderware System Platform providing a core set of service capabilities as a
foundation for application development, operations, and information delivery
z InTouch human-machine interface (HMI) software for process visualization and control
z InControl™ real-time control software

Wonderware Training
Section 1 – Course Introduction 1-9

Geographically Distributed SCADA (Geo-SCADA) Software Solutions


Since the late 1980s, the Wonderware Geographically Distributed (Geo-SCADA) Software
Solutions have been present in almost every industry including water & wastewater, oil & gas,
facility management, power delivery, transportation, and telecommunications.

These solutions offer several unique features that can greatly benefit companies looking to
implement a new SCADA solution or upgrade an existing system.
z The easiest and most efficient, open software solution for SCADA
z Highly available, reliable, and scalable SCADA applications
z Single-click software redundancy
z Leverages ArchestrA architecture for easy configuration and management of operational
and system security that is compatible with existing IT security capabilities
z Empowers users to design, build, deploy, and maintain standardized SCADA applications
z Lowest total system lifecycle costs

Product Offerings
The Wonderware Geo-SCADA Software Solutions consist of a variety of products:
z Wonderware System Platform providing a core set of service capabilities as a
foundation for application development, operations, and information delivery.
z InTouch human-machine interface (HMI) software for process visualization and control
z SCADAlarm™ event notification software for real-time alarm notification, data acquisition,
and remote control from telecommunication devices to industrial automation software
systems

InTouch 10.0 – Advanced Application Development Course


1-10 Module 1 – Introduction

Wonderware Individual Software Products


All the latest Wonderware software offerings leverage the latest ArchestrA technology and are
essential to the Wonderware Production and Performance Management, GEO-SCADA, and
Supervisory HMI Software Solutions.
The following Wonderware products offer increased functionality and flexibility as well as
extensive connectivity:
z Wonderware Application Server (formerly known as Industrial Application Server) for
system-wide, real-time data acquisition, alarm and event management, centralized
security, data manipulation, remote deployment, and collaborative engineering
„ ArchestrA Object Toolkit for creating application objects for use within the
Wonderware Application Server
z InTouch human-machine interface (HMI) software for process visualization and control
z Wonderware System Platform providing a core set of service capabilities as a
foundation for application development, operations, and information delivery
z Functional Modules for seamlessly integrating new functional capabilities into
Wonderware Application Server applications using a modular approach, including:
„ Equipment Operations Module for formula management and real-time production
events collection
„ Equipment Performance Module (formerly known as DT Analyst) for equipment
downtime tracking and performance management
„ Manufacturing Execution Module (formerly known as InTrack) for resource and
WIP tracking
z Wonderware Historian (formerly known as IndustrialSQL Server) real-time historian for
SCADA and factory data
z Wonderware Information Server (formerly known as SuiteVoyager) Web analysis
software for Internet/intranet visualization and content management
z Device and Software Connectivity Tools offering a library of hundreds of DA Servers
and I/O Servers, the DA Server Toolkit, and Device Integration (DI) Objects
z InTouch View human-machine interface (HMI) software as a visualization client for the
System Platform
z ActiveFactory trending and analysis software for accelerating and improving decision-
making at all levels within an organization
z QI Analyst statistical process and quality control software to predict process variations
and enable online adjustments for improved production
z InControl real-time control software
z InBatch flexible batch management software
z SCADAlarm event notification software for real-time alarm notification, data acquisition,
and remote control from telecommunication devices to industrial automation software
systems
z InTouch for Terminal Services software for remote hosting of InTouch applications
Wonderware software offers robust, best-of-breed software components that empower customers
to effectively develop and manage their automation and information applications in continuous,
discrete, process, hybrid, and batch manufacturing environments.
The Wonderware mission is to power intelligent plant decisions in real time.

Wonderware Training
Section 1 – Course Introduction 1-11

System Requirements This section describes the hardware and software requirements to install
InTouch HMI version 10. For updates to this information, see the Wonderware Technical Support
website at www.wonderware.com/support.

Hardware Recommendations
The following lists show the recommended hardware specifications to install InTouch HMI 10.0 by
itself or the InTouch HMI with the ArchestrA IDE. These recommendations are for development
systems. Run-time requirements may be different, depending on the InTouch application and
other factors.

InTouch HMI Stand-alone Hardware


z Computer with 1.2 GHz or faster processor clock speed
z 512 MB of memory minimum, 1 GB or greater recommended
z At least 4 GB of available hard disk space
z Super VGA (1024 × 768) or higher resolution video adapter and monitor
z CD-ROM or DVD drive to read Wonderware installation media
z Keyboard and mouse or compatible pointing device

InTouch HMI and the ArchestrA IDE Hardware


z Computer with 2 GHz or faster processor clock speed
(dual core processor recommended for optimal performance)
z 2 GB of memory
z At least 4 GB of available hard disk space
z Super VGA (1024 × 768) or higher resolution video adapter and monitor
z CD-ROM or DVD drive to read Wonderware installation media
z Keyboard and mouse or compatible pointing device

Note: The Microsoft Windows Vista operating system imposes hardware requirements that
exceed the minimum requirements for InTouch HMI version 10. If you intend to run InTouch
HMI version 10 with Windows Vista, see the following Microsoft web site for current hardware
requirements: www.microsoft.com/windows/products/windowsvista/editions/
systemrequirements.mspx

InTouch 10.0 – Advanced Application Development Course


1-12 Module 1 – Introduction

Software Requirements
This section describes the operating system and other software requirements to install InTouch
HMI version 10.

Operating Systems
The following table lists the supported operating systems that can be installed on computers
running InTouch server and client components.

InTouch HMI Components


Window Window ArchestrA ArchestrA Galaxy
Operating Systems Maker Viewer IDE Run Time Repository
Windows Vista Enterprise * • • • •
Windows Vista Business * • • • •
Windows Vista Ultimate * • • • •
Windows Server 2003 Standard SP2 • • • • •
Windows Server 2003 Enterprise SP2 • • • • •
Windows Server 2003 Standard R2 SP2 • • • • •
Windows Server 2003 Enterprise R2 SP2 • • • • •
Windows XP Professional SP2 • • • •
Windows XP Tablet 2005 • • •

Note: InTouch HMI version 10 does not support any version of the Microsoft Windows 2000
operating system.

Note: Microsoft Windows Server 2003 SP2 is the recommended operating system to run InTouch
server components.

Note: Microsoft Windows XP Professional SP2 is the recommended operating system to run
InTouch client components.

Other Software Requirements


The following list describes other third-party software requirements to support InTouch HMI 10.0.
z The InTouch HMI requires Microsoft .NET Framework 2.0 or .NET Framework 3.0, which
are both at version CLR 2.0.50727. You can select to install .NET Framework from the
InTouch HMI installation CD or manually using your own version of .NET Framework.
z SQL Server 2005 SP2 (Standard or Enterprise only) or SQL Server 2000 SP4 can be
used for InTouch database components. Note: A SQL Server 2000 SP4 database cannot
be used as the Galaxy Repository database. Also, other versions of SQL Server 2005,
including Compact, Express, Workgroup, and Developer are not supported as a Galaxy
Repository.
z SQL Server 2005 SP2 is the recommended database to use with InTouch HMI 10.0.
z The SQL Server 2005 SP2 database must be installed on the same computer as the
ArchestrA Galaxy Repository.

Wonderware Training
Section 1 – Course Introduction 1-13

* Windows Vista Restrictions


z InTouch HMI version 10 can run under Windows Vista Enterprise, Windows Vista
Business, or Windows Vista Ultimate. The Windows Vista Home Basic and Home
Premium editions are not supported.
z Users must log on as a Windows Vista administrator to run the InTouch HMI. You cannot
run the InTouch HMI as a Windows Vista standard user or power user.
z You can run Wonderware 32-bit software only with a 32-bit version of Windows Vista.
Running a Wonderware 32-bit application with a 64-bit version of Windows Vista on 64-bit
hardware is not supported
z The Windows Vista User Account Control (UAC) must be disabled when running the
InTouch HMI. Refer to the following Microsoft web site for instructions to disable the UAC.
http://technet2.microsoft.com/WindowsVista/en/library/0d75f774-8514-4c9e-ac08-
4c21f5c6c2d91033.mspx?mfr=true
z When you disable Windows Vista UAC, restart is required before attempting to install the
ArchestrA IDE or Wonderware Application Server.
z Windows Vista does not support a dedicated single-node server configuration that runs
one or more databases for an InTouch HMI system.
z If a computer runs Windows Vista as part of an InTouch system, it cannot be configured to
be both an InTouch and ArchestrA alarm provider. The computer running Windows Vista
can be either an InTouch or ArchestrA alarm provider, but not both simultaneously.
z Windows Server 2003 and Windows XP Pro still support NetDDE.
z Windows Vista does not support NetDDE for InTouchView applications. By design, an
InTouchView application does not serve data to any other source, including InTouch itself.
When WindowViewer starts, it verifies if the application is an InTouchView application.
When WindowViewer detects an InTouchView application, it does not register to become
a DDE server.

ArchestrA graphics make use of the client layer when accessing InTouch tags, and appear
as a third-party client trying to access WindowViewer as a data server. As a result,
ArchestrA symbols cannot communicate with InTouch tags when used with an
InTouchView license.
z InTouch HMI cannot be configured to run as a Windows Vista service. Windows Vista
security prevents started Windows services from interacting with desktop objects. When
the InTouch HMI is installed on a computer running Windows Vista, scripts do not run
correctly if they include the InTouch ActivateApp() and SendKeys() functions. These
functions interact with desktop objects by starting Windows programs and sending
keystrokes to these programs.

InTouch 10.0 – Advanced Application Development Course


1-14 Module 1 – Introduction

ArchestrA Licensing
Your Wonderware system license information can be viewed through the license viewing utility
from the Windows Start menu:
Start / All Programs / Wonderware / Common / License Utility

\\<Computer Name

Your license file needs to be in the Program Files \ Common Files \ ArchestrA \ License
directory in order to run FactorySuite programs.
Your license file is typically contained on a floppy disk or mini-CD and is not included on the
Wonderware installation CDs. For more licensing information, see your online System
Administrator's Guide.
If you purchase a license only for InTouch, you will only be able to use the $InTouchViewApp
Template. All other Templates in the IDE will be unavailable. In order to use other Templates, you
must purchase a license for the System Platform.

Wonderware Training
Section 1 – Course Introduction 1-15

InTouch Installation Notes


The Wonderware installation program is used to install InTouch. InTouch runs on Windows 2000,
Windows XP, or Windows 2003 operating systems. The installation program creates directories as
needed, copies files from the CD to your hard drive.

Note: Older versions of InTouch applications need to be converted to InTouch 10.0. After the
conversion process, these applications will no longer run with InTouch versions previous to 10.0.

Detailed installation instructions are included in the InTouch Installation Guide. It is recommended
that you read the InTouch Installation Guide prior to beginning the installation process.
InTouch 10.0 uses Microsoft SQL Server™ Standard Edition for its alarm database.
If Microsoft SQL Server is installed on the same system on which InTouch is being installed, the
InTouch setup program may require you to reboot the system during the installation procedure.
The reboot is required because Microsoft SQL Server 2000 installs MDAC™ version 2.6, but
InTouch requires MDAC version 2.6 Service Pack level 2 (SP2). The InTouch setup program will
install this Service Pack during installation. Once the system has been rebooted, InTouch
installation will resume automatically.
Due to this reboot, the off node communication account User Name and Password that were
entered before this reboot must be re-entered after InTouch installation is resumed. This applies
only if you are installing InTouch on Microsoft Windows 2000 operating system(s).
If Microsoft SQL Server 2000 SP2, which installs MDAC version 2.6 SP2, is installed on your
system prior to InTouch installation or if Microsoft SQL Server 2000 is not installed on your
system, the InTouch setup program will not require a reboot during installation.
If InTouch 7.11 is installed on your system and you have Alarm DB Logger set to run as a service,
you must change the mode to manual before you uninstall InTouch and reboot your system. If you
uninstall InTouch 7.11 with Alarm DB Logger in automatic mode, InTouch 10.0 installation will not
complete properly.

InTouch 10.0 – Advanced Application Development Course


1-16 Module 1 – Introduction

Technical Support
Wonderware Technical Support offers a variety of support options to answer any questions on
Wonderware products and their implementation.
Prior to contacting technical support, please refer to the relevant chapter(s) in this training manual
or your InTouch User's Guide for a possible solution. If you find it necessary to contact technical
support for assistance, please have the following information available:
z Your software Serial Number.
z The version of InTouch you are running.
z The type and version of the operating system you are using (including service packs). For
example, Microsoft Windows 2000 Server with Service Pack 3.
z The exact wording of system error messages encountered.
z Any relevant output listing from the Logger, the Windows Event Viewer, or any other
diagnostic applications.
z Details of the attempts you made to solve the problem(s) and your results.
z Details of how to recreate the problem.
z If this is an ongoing issue, the Wonderware Technical Support case number that has been
assigned.
For more information on Technical Support, see your online FactorySuite System Administrator's
Guide.

Wonderware Training
Section 2 – InTouch HMI and ArchestrA Integration 1-17

Section 2 – InTouch HMI and ArchestrA Integration


Section Objectives
z Define the differences between InTouch used Stand-Alone, Managed, and Published
with the ArchestrA IDE.

Options to Manage InTouch Applications


You can manage your InTouch applications with the InTouch Application Manager or with the
ArchestrA IDE.
There are three types of InTouch applications, categorized by how they are managed or where
they were published from:

Stand-Alone InTouch applications


(Created from the InTouch Application Manager)
Managed InTouch applications
(Created from the ArchestrA IDE)
Published InTouch applications
(Runtime Application Published from a Managed Application)

You can enhance your InTouch applications with graphic objects or symbols from the ArchestrA
Graphics Library. This course will explain the differences in your ability to edit these symbols
depending on the type of application listed above.

Stand-Alone InTouch Applications


Stand-alone InTouch applications are managed by the InTouch Application Manager.
They appear in the InTouch Application Manager as Stand Alone.
Using the Application Manager, you can:
z Create and manage stand-alone InTouch applications.
z Start WindowMaker to edit InTouch applications
z Start WindowViewer to run InTouch applications.
You can also switch directly between WindowMaker and WindowViewer to test or run your
applications and switch back to make modifications to your applications.
Network Application Development manages the propagation of changes from your InTouch
application on a development node to running InTouch applications on target nodes.

InTouch 10.0 – Advanced Application Development Course


1-18 Module 1 – Introduction

Managed InTouch Applications


You can manage your InTouch applications using the ArchestrA Integrated Development
Environment (IDE). These applications are called “Managed” InTouch applications.
They appear in InTouch Application Manager as Managed. You develop an InTouch application on
one node of the Galaxy with WindowMaker. You then deploy it to one or more target nodes
running WindowViewer.
When you use the system platform functionality of the ArchestrA IDE to manage your InTouch
applications, you can:
z See which InTouch applications are running on what node.
z Use a central repository for InTouch applications.
z Deploy changes to WindowViewer running on the remote nodes.
z Create and instantiate ArchestrA Graphics.

ArchestrA Symbols
In addition to the benefits of managing InTouch applications within the ArchestrA IDE, you can
model your manufacturing environment by creating graphics with the ArchestrA Symbol Editor.
The ArchestrA Symbol Editor is fully integrated into the ArchestrA IDE and supports powerful
modelling possibilities.
You can embed the ArchestrA Symbols into your managed InTouch applications, which can then
be used as published InTouch applications.

Published InTouch Applications


After you edit your managed InTouch application, you can publish it.
A managed application appears in InTouch Application Manager as Published.
The advantage of published InTouch applications is that they can be distributed like stand-alone
InTouch applications, but continue to support the functionality of the ArchestrA Symbols.
However, you can no longer:
z Use ArchestrA IDE to deploy the InTouch applications.
z Edit or add ArchestrA Symbols in the InTouch applications.

Wonderware Training
Section 2 – InTouch HMI and ArchestrA Integration 1-19

Comparing Stand-Alone, Managed, and Published InTouch Applications


Stand-alone, managed, and published InTouch applications have some differences and some
similarities, as described in the following table:

Stand-alone InTouch Managed InTouch Published InTouch


Applications Applications Applications
Create Application Application Manager ArchestrA IDE Not possible
• New application
• Importing stand-alone
application
• Importing SmartSymbols
Edit Application WindowMaker started WindowMaker started from WindowMaker started
from the Application within the IDE from the Application
Manager Manager
Delete Application Delete folder and remove Delete InTouchViewApp Delete folder and
from Application Manager template remove from Application
Manager
Support of No Yes for all operations Yes, but only for viewing,
ArchestrA Symbols not for creating and
editing
Support of DB Dump Yes, function within Yes, function within the IDE Yes, function within
and DB Load Application Manager Application Manager
Editing application in Yes Yes Yes
original resolution
requires conversion
Management of Network Application ArchestrA IDE Network Application
Distributed Development (NAD) Development (NAD)
Applications
Configuring how Configured in Application Configured in WindowMaker Configured in
new InTouch Manager (Network Application Manager
application versions Application Development) (Network Application
are accepted Development)
Use Fast-Switch to Yes Yes Yes
test application
Use tag value and Yes Yes, also requires Yes
tag parameter configuration of the local
retention working directory

InTouch 10.0 – Advanced Application Development Course


1-20 Module 1 – Introduction

Managing InTouch Applications Using the IDE


ArchestrA manages your InTouch applications with a specific type of ArchestrA object called the
InTouchViewApp object.
An InTouchViewApp template references one specific managed InTouch application at design
time and cannot be executed at run time.
You must create an instance of the InTouchViewApp template. This instance can be deployed to a
target node. The target node is the node on which the managed InTouch application runs in
WindowViewer.
To distribute an InTouch application, you create multiple instances of the same template and
deploy them to multiple nodes.
Optionally, you can:
z Export and import the InTouchViewApp object to exchange managed InTouch
applications across Galaxies.
z Export and import tag dictionary data as .csv files.
z Export and import windows between different types of InTouch applications.
z Publish the managed InTouch application. The published InTouch application runs like a
stand-alone InTouch application but can contain ArchestrA Symbols.
z Use the attributes of the deployed InTouchViewApp object to read from and write to
InTouch tags with ArchestrA attributes.
To use the InTouchViewApp object
a. Derive an InTouchViewApp template from the $InTouchViewApp base template.
b. Associate the derived template with an InTouch application by creating a new InTouch
application or importing a stand-alone InTouch application.
c. Open the application in WindowMaker.
d. Configure the application in WindowMaker and test it in WindowViewer.
e. Save and close WindowMaker. The InTouchViewApp template is checked in.
f. Derive instances from the InTouchViewApp template.
g. Deploy these instances to selected target nodes within the Galaxy.
h. Run Application Manager on the target nodes and run the managed InTouch applications in
WindowViewer.

Associating an InTouchViewApp Template with an InTouch Application


After you create a new InTouchViewApp template, you can associate an InTouchViewApp
template with an InTouch application by:
z Creating a new InTouch application.
z Importing a stand-alone InTouch application.
The InTouchViewApp template does not contain the InTouch application data itself, such as the
tag configuration and values, but simply references the application.

Wonderware Training
Section 2 – InTouch HMI and ArchestrA Integration 1-21

Editing a Managed InTouch Application


You edit a managed InTouch application with WindowMaker as you do for a stand-alone InTouch
application, except that you open the editor of the InTouchViewApp template to start the
associated InTouch application in WindowMaker.
When you close WindowMaker after making changes to the InTouch application, the
InTouchViewApp object is automatically checked in.

Testing a Managed InTouch Application


You can test a managed InTouch application with WindowViewer as you can with stand-alone
InTouch applications.
When a managed InTouch application is open in WindowMaker, you can fast-switch to
WindowViewer and then back to WindowMaker again.
If a managed InTouch application contains references to ArchestrA data, such as galaxy:UDA,
then a WinPlatform object needs to be deployed to the node you are editing the InTouch
application on. Otherwise, the data shows blank values.

Exporting and Importing an InTouchViewApp Object


You can export the InTouchViewApp object. You do this, for example, to use the managed
InTouch application together with its hosting InTouchViewApp object in other Galaxies.
When you export the object, a package file (.aaPKG) is created containing information about the
object, the associated managed InTouch application, and any ArchestrA Symbols the application
uses.
When you import an InTouchViewApp object, the ArchestrA IDE also imports the managed
InTouch application.
To import an InTouchViewApp object
a. On the Galaxy menu, point to Import, and then click Object(s).
The Export Automation Object(s) dialog box appears.
b. Select the ArchestrA package (.aaPKG) file that contains the InTouchViewApp object you
want to import and click Open. The object and its managed InTouch application are imported.
c. Click Close.
To export an InTouchViewApp object
a. On the Galaxy menu, point to Export, and then click Object(s).
The Import Automation Object(s) dialog box appears.
b. Select a folder to export to, specify an ArchestrA package (.aaPKG) file name and click Save.
The object and its managed InTouch application are exported.
c. Click Close.

Exporting and Importing Tag Data Associated with a Managed InTouch Application
You can export tag data that is associated with a managed InTouch application to a .csv file. This
is equivalent to the DB Dump function of the InTouch Application Manager.
You can import the exported tag data from a .csv file back into a managed InTouch application in
the same way as the DB Load function. The exported .csv files from a managed InTouch
application and those of a stand-alone InTouch application are fully interchangeable.

InTouch 10.0 – Advanced Application Development Course


1-22 Module 1 – Introduction

Publishing Managed InTouch Applications


You can publish a managed InTouch application. The published InTouch application is no longer
associated with the InTouchViewApp template.
The published application cannot be edited within the IDE or imported into another
InTouchViewApp template. In other words, you cannot manage it with the IDE or republish it. The
published InTouch application can still communicate with the Galaxy through any embedded
ArchestrA Symbol. You can, for example, write data back to the Galaxy or visualize Galaxy data.
You can edit the ArchestrA Symbol using basic InTouch operations such as copying, cutting,
pasting, duplicating, moving, resizing, flipping, rotating, and configuring with InTouch animation
links.
However, the ArchestrA Symbols cannot be modified, nor can new ArchestrA Symbols be
embedded into the InTouch application. These operations are only allowed with managed InTouch
applications.
You can do this in environments that do not support the processing requirements of ArchestrA. For
example, in remote plant operations or in small networks.

Exporting and Importing InTouch Windows between InTouch Applications


You can export windows from all three InTouch application types from WindowMaker, but there
are some restrictions on importing exported windows or windows directly from an InTouch
application.
z For stand-alone InTouch applications, you cannot import any windows from published and
managed InTouch applications that contain ArchestrA Symbols. A warning message
appears, and information on which windows were not imported is written to the Logger. If
you import windows from managed or published InTouch application that contain
ArchestrA Symbols, the windows are imported, but the ArchestrA Symbols are not
functional and appear as “Not Found”.
z For managed InTouch applications, you can import any windows from published, stand-
alone, and other managed InTouch applications. Embedded ArchestrA Symbols are not
imported.
z For published InTouch applications, you can import any windows from stand-alone
InTouch applications.
z Embedded ArchestrA Symbols are not imported.

Wonderware Training
Section 2 – InTouch HMI and ArchestrA Integration 1-23

Differences Between the InTouchViewApp Object and Other AutomationObjects


The InTouchViewApp object is unlike other AutomationObjects. You cannot perform some
operations you can normally do with other AutomationObjects.
z If you try to configure an InTouchViewApp instance, a message appears asking if you
want to open its parent template instead. You cannot configure the instance directly, only
the parent template.
z If you try to open more than one InTouchViewApp template for configuration at a time on
one node, IDE prevents you from doing so. Close WindowMaker, WindowViewer, and
Application Manager and retry. Alternately, you can edit the InTouchViewApp object on a
different node with InTouch WindowMaker.
z If you close the IDE while editing an InTouch application with WindowMaker,
WindowMaker prompts you to save any changes. It then closes and the InTouchViewApp
template is checked in.
z If you close the IDE while testing an InTouch application with WindowViewer,
WindowViewer closes.
If you want to:
z Change the association between the InTouchViewApp and the InTouch application,
create a new derived InTouchViewApp template instead.
z Use ArchestrA security (Galaxy security) in InTouch, deploy a WinPlatform instance to the
node on which the deployed managed InTouch application is running.

ArchestrA Symbols
The ArchestrA IDE includes a Symbol Editor that you can use to create symbols that visualize
production processes and provide an HMI interface to ArchestrA AutomationObjects.
The following diagram shows you how symbols that are created with the ArchestrA Symbol Editor
can be used in InTouch applications.

InTouch 10.0 – Advanced Application Development Course


1-24 Module 1 – Introduction

Managing InTouch Applications with the IDE


You can use the ArchestrA IDE to:
z Create a new managed InTouch application.
z Import an existing InTouch application to use as a managed InTouch application.
z Start WindowMaker.
z Submit the changes you make in WindowMaker to a managed InTouch application.
z Export and import a managed InTouch application together with its InTouchViewApp
object.
z Publish a managed InTouch application.
z Delete a managed InTouch application.
z Import and export tag data used in a managed InTouch application.
z Export tag data to and import tag data from a .csv file.
You can start the ArchestrA IDE from the InTouch Application Manager.
The following graphic shows how applications are imported, exported, managed, and published.

Starting the ArchestrA IDE from Application Manager


If ArchestrA IDE is installed on the same computer as InTouch, you can easily start the ArchestrA
IDE from the InTouch Application Manager.
To start the ArchestrA IDE from Application Manager
In the InTouch Application Manager, do one of the following:
z On the File menu, click ArchestrA IDE.

z Click the ArchestrA IDE icon on the toolbar.


The Connect to Galaxy dialog box opens.

Wonderware Training
Section 2 – InTouch HMI and ArchestrA Integration 1-25

Creating a Managed InTouch Application


You create a managed InTouch application by creating and configuring an InTouchViewApp
object.
You can also view application version, resolution, and description information directly from the
InTouchViewApp object.
The InTouch application directory is created as a share:
\\GRNodeName\GalaxyName-$InTouchViewAppObjectName
This directory is managed by the IDE, not by the InTouch Application Manager.

Note: The examples below show the objects installed with the Base_InTouch galaxy type.
The Base_Application_Server galaxy type installs several more objects.

To create a managed InTouch application


a. Open the ArchestrA IDE.
b. In the Template Toolbox, expand the System toolset.

c. Derive a template from the $InTouchViewApp base template.


Do the following:
z Right-click the $InTouchViewApp base template, point to New, and then click Derived
Template. A new derived template appears with a default name.
z Rename it, if needed.

InTouch 10.0 – Advanced Application Development Course


1-26 Module 1 – Introduction

d. Double-click the derived template.

The InTouchViewApp Initialization dialog box appears.


Select Create New InTouch Application and click Next.

e. Type a name for the InTouch application and a description.

f. Select InTouchView Application to create an InTouch application that uses only ArchestrA
references as an external data source.
g. Click Next.
WindowMaker starts.

Wonderware Training
Section 2 – InTouch HMI and ArchestrA Integration 1-27

To view application version, resolution, and description


a. Open the Template Toolbox.
b. Right-click the InTouchViewApp template, and then click Application Information.
The Application Information dialog box appears.

Starting WindowMaker from the ArchestrA IDE


You can edit a managed InTouch application by starting WindowMaker from within the ArchestrA
IDE.
You can start WindowMaker from an InTouchViewApp template or an instance.
When opening a managed InTouch application created with a different screen resolution than your
current system resolution, a message appears.

z Click Yes to convert the InTouch application to the current system resolution and open it.
z Click No to open and edit the InTouch application in its original resolution.
To start WindowMaker from an InTouchViewApp template
a. Open the ArchestrA IDE.
b. Locate the InTouchViewApp template that includes the managed InTouch application you
want to modify.
c. Double-click the InTouchViewApp template.
WindowMaker starts as the object’s default editor and opens the InTouch application.
You are ready to edit the managed application.

InTouch 10.0 – Advanced Application Development Course


1-28 Module 1 – Introduction

To start WindowMaker from an InTouchViewApp instance


a. Open the ArchestrA IDE.
b. Locate the InTouchViewApp object whose parent hosts the managed InTouch application you
want to modify.
c. Double-click the InTouchViewApp object.
The InTouchViewApp Instance Edit dialog box appears.

Do any of the following:


z Click No to not open the template.
z Click Yes to open the associated InTouchViewApp template in WindowMaker.

Note: If you select the Don’t ask me again check box and click Yes, the next time you open
an InTouchViewApp instance, the managed InTouch application is automatically opened from
the associated InTouchViewApp template.

You can change this setting using the User Information dialog box, which you open from the
Edit menu.

Wonderware Training
Section 2 – InTouch HMI and ArchestrA Integration 1-29

Submitting Changes for an InTouch Application


After you modify your managed InTouch application, you can submit the changes for deployment
to the target nodes.
After you make changes to a managed InTouch Application, any derived InTouchViewApp objects
appear with the Pending Changes icon.
This indicates that you must redeploy the changes to the target nodes, for WindowViewer on those
nodes to reflect the changes.
To submit the changes for an InTouch application
a. Modify your managed InTouch application in WindowMaker as you would with a stand-alone
InTouch application.
b. Save your InTouch windows.
c. On the File menu, click Exit.
WindowMaker closes and the focus returns to IDE.
The Check In dialog box appears.
d. Type a comment for check in, if necessary and click OK.
The Check In progress dialog box appears.
e. Click Close.

InTouch 10.0 – Advanced Application Development Course


1-30 Module 1 – Introduction

Importing an InTouch Application


You can import an existing InTouch application to use as a managed InTouch application. You do
this in two steps:
z Create an InTouchViewApp object to associate with the imported InTouch application.
z Import the InTouch application.
The imported InTouch application becomes a managed InTouch application.
The ArchestrA IDE creates a copy of the existing InTouch application in a folder that it manages.
The IDE leaves the existing InTouch application and location unchanged.
If the version of the InTouch application you are importing is 6.0 or above, a conversion message
appears. The application is converted before it is opened in WindowMaker. InTouch applications
versions before 6.0 cannot be converted.
To import an InTouch application into a Galaxy
a. Open the ArchestrA IDE.
b. In the Template Toolbox, derive a template from the $InTouchViewApp base template.
c. Open the derived template.
The InTouchViewApp Initialization dialog box appears.

d. Click Import Existing Application and click Next.


The next panel appears.

Wonderware Training
Section 2 – InTouch HMI and ArchestrA Integration 1-31

e. Locate the InTouch application.


Do any of the following:
z Click the ellipsis button to browse for the folder that contains the managed InTouch
application.
z To search for the application, select the Find applications check box.
Specify a search root for the search to begin and click Find.
Select the InTouch application from the list.
f. Click Next.
The next panel appears.

g. If needed, type a new name in the Application Name box and a description in the Description
box. The name and description appear in the Application Manager when the managed
InTouch application is deployed.
h. Click Next.
The next panel appears and shows you the import progress.

i. Click Done.
InTouch WindowMaker is started and you can edit the InTouch application as a managed
InTouch application.

InTouch 10.0 – Advanced Application Development Course


1-32 Module 1 – Introduction

Exporting and Importing Tag Data


You can export the tag data of a managed InTouch application to a .csv file. You can import this
data into another managed InTouch application or a stand-alone InTouch application.
To export tag data from a managed InTouch application
a. Open the ArchestrA IDE.
b. Select the derived InTouchViewApp template that contains the managed InTouch application
from which you want to export the tag data.
c. On the Galaxy menu, point to Export, and then click DB Dump.
The CSV File to Dump To dialog box appears.
d. Specify a location and file name for the .csv file and click Save.
A confirmation dialog box appears.
e. Select Group output by types if you want the tag data to be grouped by data types in the .csv
file.
f. Click OK.
When a success message appears, click OK.
To import tag data from a .csv file to a managed InTouch application
a. Open the ArchestrA IDE.
b. Select the derived InTouchViewApp template that contains the managed InTouch application
to which you want to import the tag data.
c. On the Galaxy menu, point to Import, and then click DB Load.
The CSV File to Load From dialog box appears.
d. Select the .csv file and click Open.
During the import, one or more messages may appear warning you of duplicate names.
Select the appropriate option for each duplicate tag.
e. When a success message appears, click OK.

Retaining Tag Value and Parameters


When you use multiple managed InTouch applications on one node, all applications use the same
directory. If you configure tag data or parameters to be retained and you switch applications, the
run-time data is lost.
To configure retention in a managed InTouch application
a. Open the managed InTouch application with WindowMaker from the IDE.
b. On the Special menu, point to Configure, and then click WindowViewer.
The WindowViewer Properties dialog box appears.
c. Click the Managed Application tab.
d. In the Local Working Directory box, type the name of a unique existing directory.
This is the name of the directory on the target run-time node.

Wonderware Training
Lab 1 – Creating and Importing Applications Into the Galaxy 1-33

Lab 1 – Creating and Importing Applications


Into the Galaxy
Introduction
In this lab you will use the ArchestrA Integrated Development Environment (IDE) to create a
Galaxy and work with ArchestrA object templates and instances. A Galaxy describes a group of
computers hosting objects created from a common, all-encompassing database (called the Galaxy
Repository). Object templates are high-level definitions of the devices in your environment, such
as valves, tanks, and sensors. From these templates, you create working copies of the templates
called instances, which are used at runtime.
A special type of object in the IDE is the InTouchViewApp object. You use this object to create a
new InTouch application. You can also create a new application by importing an existing InTouch
application (either from the same version of InTouch or an earlier version). In this lab you will
create a new InTouch application by importing the "Advanced Class App" application, and then
launching it in WindowMaker from the IDE. You will use this application in later labs.

Objectives
Upon completion of this lab you will be able to:
z Create and connect to a new Galaxy in the ArchestrA IDE
z Import an existing InTouch application
z Launch InTouch from the ArchestrA IDE

Note: This is an advanced class, please note that the instructions are scaled down based on
your assumed familiarity and comfort level with InTouch. The labs in this book do not include
each and every step. Please ask your instructor if any additional information is needed.

.
Summary Lab Instructions
Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

Launch the ArchestrA IDE and Create a New Galaxy


a. Launch the ArchestrA IDE.
b. Create a New Galaxy using the Base_InTouch.cab Galaxy type and name it with your
initials. For example, ABCGalaxy for Alan Ben Clever’s Galaxy.
Import an InTouch Application and Launch it in WindowMaker
c. Create a New Derived Template from $InTouchViewApp and name it $Advanced Class.
d. Import the Advanced Class App application.
e. Open the Mixing Operation window.

See the next page for Detailed Lab Instructions

InTouch 10.0 – Advanced Application Development Course


1-34 Module 1 – Introduction

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Launch the ArchestrA IDE and Create a New Galaxy


1. Launch the ArchestrA IDE.
Start / All Programs / Wonderware / ArchestrA IDE

2. Click on the New Galaxy button.

3. Name your Galaxy using your initials such as ABCGalaxy.


For example: Alan Ben Clever’s galaxy will be named ABCGalaxy.
4. From the Galaxy type drop down, select Base_InTouch.cab, and then click Create.

Wonderware Training
Lab 1 – Creating and Importing Applications Into the Galaxy 1-35

5. Click Close after the Galaxy has been created.

6. Click the Connect button to connect to your Galaxy.

The ArchestrA Integrated Development Environment will now open.

InTouch 10.0 – Advanced Application Development Course


1-36 Module 1 – Introduction

Import and Launch an InTouch Application


7. In the Template Toolbox, expand your new Galaxy’s System folder.

8. Right-click the $InTouchViewApp and select New / Derived Template.

9. Name the new Derived Template AdvancedClass.


Note that the $ is automatically applied to the name of any template.

10. Double-click $AdvancedClass and select Import existing InTouch application and click
Next.

Wonderware Training
Lab 1 – Creating and Importing Applications Into the Galaxy 1-37

11. Click on the ellipsis button.


Browse to the Advanced Class App directory that your instructor will provide and click OK.

12. Click Next.

InTouch 10.0 – Advanced Application Development Course


1-38 Module 1 – Introduction

13. Click Close when the import is completed.

Note: If you are prompted to convert the resolution, click Yes.

The InTouch Advanced Class Application will open in WindowMaker.


14. Select the Mixing Operation window to open and click OK.

Wonderware Training
Module 2

Fundamentals of Application Development


Section 1 – Review of Basics 2-3
Lab 2 – Standard Tag Addressing 2-5
Section 2 – Using SmartSymbols 2-15
2-2 Module 2 – Fundamentals of Application Development

Module Objective
z Use the appropriate tag strategies - Indirect Addressing, SuperTags, and Remote
Tagname Referencing – to solve a problem.

Wonderware Training
Section 1 – Review of Basics 2-3

Section 1 – Review of Basics

Section Objective
z Review how to use I/O tags in an InTouch application.

We are assuming that you are attending the InTouch 10.0 Advanced Application Development
course having done the following:
z Created tags and used “.” (dot) fields
z Created windows and graphic objects
z Used animation links
z Created basic scripts and built-in functions
z Used alarming and history on single node applications
We are also assuming that you have:
z A basic understanding of networks
z A basic understanding of communications

Standard Tags and the Tagname Dictionary


A tag is simply an item that is used to pass information from the user to the end device. Each tag
must be defined in InTouch. Tags are stored in the Tagname Dictionary.
The Tagname Dictionary (runtime database) is the heart of InTouch. At runtime, the database
contains the current value of all of the items in the database. In order to create the runtime
database, InTouch requires information about all of the variables being created. Each variable
must be assigned a tagname and type. InTouch also requires additional information for some
variable types. The most common tag types are I/O and Memory. For instance, for I/O type
tagnames, InTouch requires more information in order to be able to acquire the value and convert
it for internal use. The Tagname Dictionary is the mechanism used to enter this information.
InTouch tagnames can consist of both numeric and alphabetic characters and the first character
can be numeric. If the first character of an InTouch tagname is numeric, the letter “e” / “E” or “x” /
“X” cannot follow the number. The creation of tags prohibits the use of any valid numeric
expressions as tagnames. For example, 123E4 or strings that could be hexadecimal numbers
such as 0xABCDEF are not permitted. Tagnames can be up to 32 characters long.

InTouch 10.0 – Advanced Application Development Course


2-4 Module 2 – Fundamentals of Application Development

Wonderware Training
Lab 2 – Standard Tag Addressing 2-5

Lab 2 – Standard Tag Addressing


Introduction
In this lab, you will use standard I/O tags to animate a process graphic screen. The tags will be
configured to link to actual I/O points in a single PLC. The PLC will be running the Mixing
Operation logic in which a dry ingredient is added to a tank, followed by two wet ingredients, in
sequence. Mixing starts when the first wet ingredient is added and stops when a tank level of
1000 is reached. The contents are then drained and the process repeats. In the Wonderware
Training rooms, this lab will connect to the PLC, which is connected to and located at the student’s
PC.
This lab uses the Advanced Student App application with a PLC running the Mixing Operation
logic. Modbus is the I/O Server used in the Wonderware training rooms. Your I/O Server may be
different in different locations.

Objectives
z Configure Modbus Com Port Settings, Topic Definition, and Server Settings
z Create necessary tags
z Add an Access Name
z Create animation links in the Mixing Operation window

InTouch 10.0 – Advanced Application Development Course


2-6 Module 2 – Fundamentals of Application Development

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

Launch and Configure the I/O Server


a. Launch the Modicon MODBUS I/O Server and change the Baud Rate to 19200, Parity to
Even.
b. Create a new topic named PLC, and change the Register Type to BCD and the Update
Interval to 100.
c. Minimize the I/O Server.
d. Open or maximize WindowMaker and add an Access Name named ModbusPLC1
configured as shown as follows:

Node Name App Topic Protocol


<Your Node Name> Modbus PLC SuiteLink

Create Tags and Assign Animation Links


e. Create the following tags in the Tagname Dictionary:

:
I/O Discrete Tags AccessName Item
Start_PLC1 ModbusPLC1 2049
Gate_PLC1 ModbusPLC1 2050
Valve_A_PLC1 ModbusPLC1 2051
Valve_B_PLC1 ModbusPLC1 2052
Agitator_PLC1 ModbusPLC1 2053
Drain_Valve_PLC1 ModbusPLC1 2054

I/O Integer Tags Access ItemName MinEU MaxEU MinRaw MaxRaw


Tank_Level_PLC1 ModbusPLC1 40001 0 1000 0 1000

f. Open the Mixing Operation window and assign the appropriate tags with animations to the
objects on the screen.
g. Switch to Runtime and verify communication with the PLC.

See the next page for Detailed Lab Instructions

Wonderware Training
Lab 2 – Standard Tag Addressing 2-7

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Configure MODBUS I/O


This example uses the serial Modbus I/O Server.
1. Launch the Modicon MODBUS I/O Server.
Start / Wonderware FactorySuite / IO Servers / Modicon MODBUS

2. Select Configure / Com Port Settings and match the entries below.

3. Click Done when finished.


4. Click Yes to Save the Com Port Settings.

InTouch 10.0 – Advanced Application Development Course


2-8 Module 2 – Fundamentals of Application Development

5. Click OK to save the configuration file in the default directory.

6. Select Configure / Topic Definition and click New.

7. Enter PLC as the topic name and change the Update Interval to 100 msec.

Com Port the PLC is


connected to (if using
serial I/O Server).

Other entries are specific to


the Modicon PLC being used.
Verify BCD is selected.

Change to 100

8. Click OK and then Done when finished.

Wonderware Training
Lab 2 – Standard Tag Addressing 2-9

9. Select Configure/Server Settings. Retain the default settings and click OK.

10. Do not exit/close the Server.


Minimize it to maximize your workspace.

Warning: The I/O Server must be running to acquire data from the PLC.
If it is accidentally closed, the data acquisition will stop.

Switch to WindowMaker and Add an Access Name


11. In the Tools pane, expand Configure and double-click Access Names.

InTouch 10.0 – Advanced Application Development Course


2-10 Module 2 – Fundamentals of Application Development

12. Click Add and create a new Access Name that connects to the PLC at your workstation:

13. You will now see your new Access Name in the list.
Click Close when finished.

Wonderware Training
Lab 2 – Standard Tag Addressing 2-11

Create Tags & Assign Animation Links


14. Create the following tags in the Tagname Dictionary:

:
I/O Discrete Tags AccessName Item
Start_PLC1 ModbusPLC1 2049
Gate_PLC1 ModbusPLC1 2050
Valve_A_PLC1 ModbusPLC1 2051
Valve_B_PLC1 ModbusPLC1 2052
Agitator_PLC1 ModbusPLC1 2053
Drain_Valve_PLC1 ModbusPLC1 2054

I/O Integer Tags AccessName Item MinEU MaxEU MinRaw MaxRaw


Tank_Level_PLC1 ModbusPLC1 40001 0 1000 0 1000

Note: There are other tags already in the Tagname Dictionary. Do not delete these tags!
They will be used in future labs.

15. Open the Mixing Operation window if it is not open, and assign the appropriate tags with
animations to the objects on the screen.
For example, the valve that drains the tank (Drain Valve) would be assigned a Discrete Color
Fill animation link. The tag assigned would be Drain_Valve_PLC1.

Hint: Hold down the Shift key when you click (or double-click) on an object to prevent it from
moving accidentally.

InTouch 10.0 – Advanced Application Development Course


2-12 Module 2 – Fundamentals of Application Development

The following graphic will assist you with assigning tags to graphics.
The numbers are described with instructions below:

1 5

3 4
8

1. Black Rectangle representing a gate. Gate opens to add dry ingredient.


Create a Blink Link, using the Blink Invisible attribute. Expression: Gate_PLC1
2. Start/Stop button wizard that stops or restarts the PLC logic. Tagname: Start_PLC1
3. Pump and Valve for adding first wet ingredient. Fill Color, Discrete Links on both.
Select On/Off colors. Expression: Valve_A_PLC1
4. Pump and Valve for adding second wet ingredient. Fill Color, Discrete Links on both.
Select On/Off colors. Expression: Valve_B_PLC1
5. Checkmarks used to show current operation in progress. Visibility Links on all.
Link to appropriate I/O tag.
For example, the "Mixing" checkmark would be on when Agitator_PLC1 is True.

Wonderware Training
Lab 2 – Standard Tag Addressing 2-13

6. Agitator motor that spins the impeller (mixing blade).


Two objects, one hidden behind the other. Visibility Link on top red motor.
Hide red motor when Agitator_PLC1 is True/On.

Impeller that spins allowing tank contents to be mixed.


Visibility Link. Impeller visible when Agitator_PLC1 is true.
There is already an Object Size, Width link on the object.
Do not delete this link.

Hint: Use Shift+arrow keys to move the stainless steel tank in the foreground to access the
impeller. Shift+arrow key moves objects 10 pixels at a time when Grid is turned off.

InTouch 10.0 – Advanced Application Development Course


2-14 Module 2 – Fundamentals of Application Development

7. Displays current tank level. Value Display, Analog Link to Tank_Level_PLC1.

Blue polygon object located behind the stainless steel tank (use hint on previous page to move
tank) that displays the current tank level as a graphic update. Percent Fill, Vertical Link.
Expression: Tank_Level_PLC1. Enter following Properties:

8. Valve used for draining tank. Fill Color, Discrete Link to Drain_Valve_PLC1.
Select On/Off colors.
Switch to WindowViewer (Runtime) to verify communication to the PLC and that the animations
are working correctly.

As Time Permits:
There are preconfigured objects in the Scrap Objects window you can use to enhance this
window. Your instructor will give you more information about how to use them.

Wonderware Training
Section 2 – Using SmartSymbols 2-15

Section 2 – Using SmartSymbols

Section Objectives
z Generate a SmartSymbol
z Edit a SmartSymbol
z Use the SmartSymbol Manager

Introduction
SmartSymbols integrate object-oriented technology with InTouch graphics to transform them into
reusable templates. Changes made to the templates automatically propagate throughout an
application, even across multiple networked PC nodes. As a result, engineers spend less time
creating, modifying, validating and re-validating HMI applications.
Using the SmartSymbol Manager, application developers can create templates from graphics that
can connect to ArchestrA Objects, local InTouch tags, and InTouch tags through remote
references. These symbol templates are saved in the SmartSymbol Library and can be
instantiated by selecting them and dropping them onto an InTouch window.
Any graphic in an InTouch window that has been made into a cell can be converted into a
SmartSymbol. In addition, libraries of SmartSymbols can be exported to other applications and
plants, enabling companies to standardize on graphics throughout the entire organization. Once a
SmartSymbol instance is deployed, if users need to change an instance, they simply modify the
SmartSymbol template and the change automatically propagates throughout the application, to
every window in which the SmartSymbol instance is used. This makes changing, upgrading and
modifying applications very fast and easy. Validating and re-validating applications after
modification is also simplified with SmartSymbols.

SmartSymbol Generation
Any graphic can become a SmartSymbol, once it is converted to a cell. However, the most
versatile SmartSymbol has tag data references and animation. You may decide to go through your
existing InTouch applications to identify similar or identical graphical objects to determine what you
should build into your SmartSymbol library. Or, you may decide to create all of your SmartSymbols
prior to building any applications. Either way, you must start with a graphic.
Once generated, a SmartSymbol can then be converted to an ArchestrA Graphic.

InTouch 10.0 – Advanced Application Development Course


2-16 Module 2 – Fundamentals of Application Development

Configure the Graphic


a. Create or place a graphic in a window.
b. Assign a tagname or tagnames to the graphic.
c. Configure animation for the graphic.
d. Select the entire graphic and choose Make Cell.

Generate SmartSymbol
a. Right-click on the graphic, and select SmartSymbol / Generate SmartSymbol.
The new symbol will appear in the SmartSymbol - Management Mode window, with a name of
NewSymbol.

b. Click once on NewSymbol and change the name.


c. Click Close.
d. WindowMaker prompts you to replace the original cell with the new SmartSymbol.

Click Yes.

Wonderware Training
Section 2 – Using SmartSymbols 2-17

e. The SmartSymbol now displays open handles in your window. This indicates it is a
SmartSymbol, and not just a cell.

SmartSymbol Wizard
a. Click the SmartSymbol Wizard icon to place a SmartSymbol into your application window.

Your cursor changes .


b. Highlight the SmartSymbol you wish to place in your application, and click OK.

InTouch 10.0 – Advanced Application Development Course


2-18 Module 2 – Fundamentals of Application Development

The SmartSymbol Properties window displays.

Template References: The tagname associated with the SmartSymbol you originally generated
(Template).
Instance References: The tagname associated with the SmartSymbol placed in your InTouch
window (Instance).
c. In the SmartSymbol Properties window, click the Show Text Strings checkbox.

d. Click the ellipses button in the Instance References column. This will access the Tagname
Browser.
e. Select the appropriate tagname.
f. Press the tab key after selecting the Tagname to ensure the selected Tagname is accepted.
g. Click OK.
h. The SmartSymbol will appear in your application window.

Wonderware Training
Section 2 – Using SmartSymbols 2-19

Replace
Alternatively, if several Tagnames and Text Strings require the same Instance Reference
change, use the Replace feature.

a. Click the SmartSymbol Wizard icon to place a SmartSymbol into your application

window. Your cursor changes .


b. Highlight the SmartSymbol you wish to place in your application, and click OK.

c. The SmartSymbol Properties dialog appears. Click the Replace button.

InTouch 10.0 – Advanced Application Development Course


2-20 Module 2 – Fundamentals of Application Development

The Replace dialog box displays.

d. Enter text in the Find what and Replace with fields.


e. Click Replace All.
f. Click Cancel when finished. The Tagname and Text String Instance References have
changed.

g. Click OK. The SmartSymbol displays with the updated Tagname.

Wonderware Training
Section 2 – Using SmartSymbols 2-21

Edit SmartSymbols and Propagate Changes


Once you have placed several SmartSymbols into various windows in your application, you may
find a change or addition is needed. Rather than finding each instance of that SmartSymbol and
applying the change manually, you can instead edit the SmartSymbol, and propagate the changes
throughout your application windows.

Start SmartSymbol Edit


a. Right-click on a blank area of any InTouch application window.
b. Choose Start SmartSymbol Edit. (This example shows a SmartSymbol already in the
window. At the end of the example, you will see that it changes to reflect the edits made.)

c. Select the SmartSymbol you wish to edit, and choose OK.

InTouch 10.0 – Advanced Application Development Course


2-22 Module 2 – Fundamentals of Application Development

d. Click your cursor on an open area of the window to temporarily place the SmartSymbol during
editing.

e. Click Break Cell if needed.


f. Make your desired changes/additions to the SmartSymbol, select the entire object, and click
the Make Cell icon to make it back into a cell.

Added elements and


increased total size of
SmartSymbol

Make Cell when


changes complete

Wonderware Training
Section 2 – Using SmartSymbols 2-23

Cell handles display around the edited SmartSymbol.

End SmartSymbol Edit


g. Right-click the cell and choose SmartSymbol / End SmartSymbol Edit.

InTouch 10.0 – Advanced Application Development Course


2-24 Module 2 – Fundamentals of Application Development

Commit Edit
h. A list of all windows in your application containing the SmartSymbol displays. Verify the edit
should be instantiated to the SmartSymbols on these windows, and choose Commit Edit.

When you want to update the size of


SmartSymbol footprint, select the
Anchor Point for rolling out the change

Note: When editing a SmartSymbol, keep in mind the following: Increasing the footprint, or total
space the SmartSymbol occupies on the window while in edit mode will only affect the footprint of
instantiated SmartSymbols if you select Update Size of Symbols in Application. If you do not
select Update Size, they will maintain their original size, and the image will automatically adjust to
fit within the original space.

Change rolls out to each


instance of the symbol

Wonderware Training
Section 2 – Using SmartSymbols 2-25

Manage SmartSymbols
The SmartSymbol Manager is used for several purposes, including:
z View SmartSymbol Attributes
z Organize your SmartSymbols into folders
z Copy and Delete SmartSymbols
z Import / Export SmartSymbols

View SmartSymbol Attributes


When a SmartSymbol is generated, it has certain attributes assigned to it, such as Tagnames and
text (strings). These attributes can be changed when instantiating an instance of a SmartSymbol.
To view SmartSymbol attributes:
a. Click Special / SmartSymbols / Manage SmartSymbol.
b. Select a SmartSymbol.
c. Click the Attribute List tab on the lower left panel of the window.
The attributes for the selected SmartSymbol display.

InTouch 10.0 – Advanced Application Development Course


2-26 Module 2 – Fundamentals of Application Development

Organize SmartSymbols
SmartSymbols may be organized in folders by type, category, room, product line, or whatever
organization method is meaningful in your company. To organize SmartSymbols, begin by
accessing the SmartSymbol Manager.
a. Click Special / SmartSymbols / Manage SmartSymbol. The SmartSymbol - Management
Mode window displays.

b. Click on InTouch Symbols to give the folder focus.


c. Click File / New Folder.
d. Name the new folder based upon the organization method you have chosen.
e. Drag the SmartSymbol from the InTouch Symbols folder into the appropriate folder.

Wonderware Training
Section 2 – Using SmartSymbols 2-27

Rename, Copy, Delete, and Recover SmartSymbols


Renaming, copying, deleting, and recovering SmartSymbols can all be accomplished in the
SmartSymbol Manager.
To Rename a SmartSymbol
a. Click on the SmartSymbol to give it focus.
b. Click Edit / Rename.
c. Type in the new name, and press Enter.
d. The SmartSymbol displays with the new name.
To Copy a SmartSymbol
a. Click on the SmartSymbol in the SmartSymbol Manager to give it focus.
b. Click Edit / Copy.
c. Click on the folder where you want the new SmartSymbol to appear.
d. Click Edit / Paste.
The new SmartSymbol appears. If placed in the same folder as the original, it will be named
Copy of <original name>.

To Delete a SmartSymbol
a. Click on the SmartSymbol to give it focus.
b. Click File / Delete.
The Confirm Symbol Delete window displays.

InTouch 10.0 – Advanced Application Development Course


2-28 Module 2 – Fundamentals of Application Development

To Recover a Deleted SmartSymbol


a. Click on an orphaned instance of that SmartSymbol in an InTouch application window.

Note: If a deleted SmartSymbol was never instantiated to an InTouch application window, it


cannot be recovered.

b. Click Special / SmartSymbol / Recover SmartSymbol.


c. The SmartSymbol will generate and display in the SmartSymbol - Management Mode window,
with a name of New Symbol. Rename it as appropriate.

Export SmartSymbol Library


Your SmartSymbol library can be exported for use in other InTouch applications.
a. Access the SmartSymbol Manager.
b. Click File / Export.

c. Name your SmartSymbol exported file as desired, and place in the desired directory.
d. Click Save. The exported SmartSymbol library is now available to import into any InTouch
application.

Import SmartSymbol Library


e. Open the InTouch application you wish to import the SmartSymbols library into.
f. Make sure all InTouch Application Windows are closed.
g. Click Special / SmartSymbol / Manage SmartSymbols.
h. Click File / Import.

Wonderware Training
Section 2 – Using SmartSymbols 2-29

i. Click on the .www file you wish to import, and click Open.
If any SmartSymbols exist in your application with the same name as those being imported,
you may choose to Skip them, Overwrite them, or Rename them.

j. Click OK.

InTouch 10.0 – Advanced Application Development Course


2-30 Module 2 – Fundamentals of Application Development

– Intentionally left blank –

Wonderware Training
Module 3

ArchestrA Graphics
Section 1 – Creating and Managing Symbols 3-3
Section 2 – Using ArchestrA Symbols in WindowMaker 3-85
Lab 3 – Symbol Creation 3-93
Section 3 – Using Custom Properties 3-103
Lab 4 – Defining Custom Properties 3-109
Section 4 – Animating Graphic Elements 3-117
Lab 5 – Animation 3-193
Lab 6 – Referencing a Symbol 3-203
Section 5 – Associating Scripts with Symbols 3-209
Lab 7 – Scripting 3-221
3-2 Module 3 – ArchestrA Graphics

Module Objectives
z Select the appropriate communication protocol.
z Use the appropriate tag strategies to solve a problem.
z Use Dynamic Reference Addressing as a troubleshooting tool.
z Monitor Value, Time and Quality.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-3

Section 1 – Creating and Managing Symbols

Section Objectives
z Create ArchestrA Symbols.
z Use the Graphic Toolbox to manage a library of symbols.

This section explains what ArchestrA Symbols are, how they are stored in the ArchestrA
environment, and how they can be managed using the IDE tools.

About Symbols
ArchestrA Symbols are graphical symbols that you can use to visualize data in an InTouch HMI
application. They are managed by the IDE.
Using the IDE, you can:
z Create a new symbol.
z Open the symbol for editing with the ArchestrA Symbol Editor.
z Organize symbols within the Graphic Toolbox.
z Import and export symbols.
z Delete a symbol.
z Configure security for a symbol.
z Open the symbol in read-only mode with the ArchestrA Symbol Editor.

Creating a New Symbol


You can create a new symbol in either:
z The Graphic Toolbox for generic symbols that you are likely to frequently use in different
situations, for example a valve symbol.
z The Graphics panel of an Automation object template, if you are likely to re-use the
ArchestrA symbol in combination with the object functionality. An example would be a
symbol representing a specific tank and your production facility has multiple tanks.
z The Graphics panel of an Automation object instance, if you are unlikely to re-use the
symbol in any other situation.

Creating Symbols in the Graphic Toolbox


You can create a symbol in the Graphic Toolbox.
When you create a new symbol, the symbol is listed in the Graphic Toolbox. After you create a
new symbol, you can move the symbol or open the ArchestrA Symbol Editor to edit it.
You can use the drawing tools and your mouse to create new shapes or embed symbols from the
ArchestrA Graphics Library to become part of your new symbol.

InTouch 10.0 – Advanced Application Development Course


3-4 Module 3 – ArchestrA Graphics

To create a new symbol from the IDE


a. On the Galaxy menu, point to New, and then click Symbol.
The Graphic Toolbox appears and a new symbol is listed.

Note: You can press the following keys to create a new ArchestrA symbol: Ctrl + Shift + S.

b. Rename the symbol.


Names must be unique within the entire hierarchy.
Valid characters for symbol names include alphanumeric characters, # and _ (underscore).
Symbol names cannot contain spaces and the symbol name cannot begin with the $
character.
c. Double-click the symbol name.
The ArchestrA Symbol Editor opens.

d. Now you can draw your symbol.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-5

Working with Graphic Elements


This section shows you how to work with the common features of graphic elements.

About Graphic Elements


Graphic elements are basic shapes and controls you can use to create a symbol to your
specifications. You can:
z Draw an element by selecting an element from the Tools panel, placing it on the canvas,
and then configuring its properties.
z Select one or more elements on the canvas with the mouse or from the Element list.
z Edit certain elements in a special way called inline editing.
z Copy, cut, paste, and duplicate elements.
z Move elements around on the canvas.
z Align elements to each other.
z Change the spacing between elements.
z Resize elements.
z Change the z-order of elements to change which elements appear on top of others when
they overlap.
z Rotate elements.
z Change the origin of elements to specify around which point the elements are rotated.
z Flip elements on their horizontal or vertical axis.
z Lock elements to stop them being moved or changed.
z Undo and redo any number of changes made previously to the symbol.
z Create groups of elements to bind them together.
z Create a path graphic from multiple open line elements.

Drawing and Dragging Elements


You can create elements such as lines, curves, circles, squares, and so on. You can combine
these elements to create complex drawings of all the equipment in your manufacturing
environment.
After you draw an element, you can modify its properties.
Regardless of the kind of element you are drawing, drawing each kind of element is very similar.
After you draw an element, the pointer tool is selected again by default. To draw multiple elements
of the same type, double-click the element in the Tools panel. It remains selected after you draw
your first element of that type. You can press the ESC key to return to the pointer tool again.
If you draw or drag an element outside of the visible canvas area to the right or bottom, horizontal
and/or vertical scroll bars appear but the visible area does not follow the mouse.
You can later use the scroll bars to scroll the canvas and see the element you drew or moved.

InTouch 10.0 – Advanced Application Development Course


3-6 Module 3 – ArchestrA Graphics

Drawing Rectangles, Rounded Rectangles, Ellipses, and Lines


You can draw rectangles, rounded rectangles, ellipses, and lines on the canvas.

To draw a rectangle, rounded rectangle, ellipse, or line


a. Click the appropriate icon in the Tools panel.
b. Click the canvas and drag the shape of the element on the canvas.
c. When you are done, release the mouse button.

Drawing Polylines, Polygons, Curves, and Closed Curves


You can draw polylines, polygons, curves, and closed curves on the canvas. If you are drawing a
closed element, the element automatically closes when you are done drawing.

To draw a polyline, polygon, curve, or closed curve


a. Click the appropriate icon in the Tools panel.
b. Click the canvas where you want to start the element.
c. Click the next point for the element.
d. Continue clicking until you have all the points you require.
e. When you are done, right-click.
f. You can change the shape of these elements anytime by editing their control points.

Drawing 2-Point Arcs, 2-Point Pies and 2-Point Chords


You can draw 2-point arcs, 2-point pies, and 2-point chords on the canvas. If you are drawing a
closed element, the element automatically closes when you are done drawing.

To draw a 2-point arc, 2-point pie, or 2-point chord


a. Click the appropriate icon in the Tools panel.
b. Click the canvas where you want to start the element and hold the mouse button.
c. Drag the mouse to where you want the element to end.
d. When you are done, release the mouse button.
e. You can change the shape of these elements anytime by editing their control points.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-7

Drawing 3-Point Arcs, 3-Point Pies, and 3-Point Chords


You can draw 3-point arcs, 3-point pies and 3-point chords on the canvas. If you are drawing a
closed element, the element automatically closes when you are done drawing.

To draw a 3-point arc, 3-point pie, or 3-point chord


a. Click the appropriate icon in the Tools panel.
b. Click the canvas where you want to start the element.
c. Click the canvas in two other places to define the element.
d. You can change the shape of these elements anytime by editing their control points.

Placing and Importing Images


You can place an image element on the canvas and import an image into it.

To draw an image
a. Click the image icon in the Tools panel.
b. Click the canvas and drag the shape of the image element.
c. Release the mouse button.
The Open dialog box appears.
d. Browse to the image file, select it, and then click Open.
The image file is loaded into the image element.

Drawing Buttons
You can draw a button on the canvas. You can configure a button with a text label or an image.

To draw a button
a. Click the button icon in the Tools panel.
b. Click the canvas and drag the shape of the button element.
c. Release the mouse button.
The button text appears in edit mode.
d. Type a text label for the button and then press Enter.

InTouch 10.0 – Advanced Application Development Course


3-8 Module 3 – ArchestrA Graphics

Placing Text
You can place text on the canvas.
The text element has no border and no background fill. The text does not wrap. When you type the
text, the size of the Text element expands.
You can also drag the handles of the Text element to resize it.

To place text
a. Click the text icon in the Tools panel.
b. Click the canvas where you want to place the text.
c. Type the single line of text you want.
d. When you are done, do one of the following:
z Press Enter to type a new line of text.
This new line is a new element.
z Click the canvas outside the text element.

Drawing Text Boxes


You can draw text boxes on the canvas. Text boxes can have borders and background fill.
You can also configure the text to wrap in the text box.

To draw a text box


a. Click the text box icon in the Tools panel.
b. Click the canvas where you want to place the text box.
c. Drag a rectangle on the canvas.
d. Release the mouse button.
The text appears in edit mode.
e. Type a text label for the text box, and then press Enter.

Drawing Status Elements


You can use the status element to indicate specific quality and status conditions of attributes.

To draw status elements


a. Click the status icon in the Tools panel.
b. Click the canvas where you want to place the status element.
c. Drag a rectangle on the canvas.
d. Release the mouse button.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-9

Drawing Windows Controls


You can draw Windows controls on the canvas to add additional functionality to your symbol. Each
of the Windows controls has specific behavior when it is drawn. For example, you can change the
width of a combo box, but not the height.

To draw a windows control


a. Click the appropriate Windows control icon in the Tools panel.
b. Click the canvas where you want to place the Windows control.
c. Drag a rectangle on the canvas.
d. Release the mouse button.

Dragging Elements
After you draw elements on the canvas, you can drag them to a new position.
To drag elements on the canvas
a. Select one or more elements.
b. Click one of them and hold the mouse button down.
c. Drag the mouse to the new position.
d. Release the mouse button.

InTouch 10.0 – Advanced Application Development Course


3-10 Module 3 – ArchestrA Graphics

Editing Element Properties


You can control the appearance of an element, a group of elements, or multiple elements with
functions on the toolbar and/or properties in the Properties Editor.
Often you can edit an element by changing the values of its properties instead of using the mouse
to perform the same function. This is useful when you want very exact editing, such as when you
want to resize an element to a specific width.
The Properties Editor shows the properties common to all selected elements.
z Read-only properties appear in grey.
z Non-default values appear in bold.

Note: The Properties Editor not only supports values, but also allows input of color, font, and
file information in the respective dialog boxes.

Properties are organized in categories so you can find them more easily. The following table
shows the categories:

Property Category Purpose Properties Editor


Element name or other describing
Graphic
identifiers
Element location, size, orientation,
Appearance
offset, transparency and locked status
Any parameters related to the fill
Fill Style
appearance of the element
Any parameters related to the line
Line Style
appearance of the element
Any parameters related to the text
Text Style
appearance of the element
Element visibility, tab order and any
Runtime Behavior
other element behavior at run time
Additional user-defined properties you
Custom Properties
can associate with any element

Wonderware Training
Section 1 – Creating and Managing Symbols 3-11

Selecting Elements
You can select one or more elements by:
z Clicking on them with the mouse.
z Dragging the lasso around them with the mouse.
z Selecting them with a menu option or with a shortcut key.
z Selecting them in the Elements List.
When you select an element, it appears with handles that give you control over its size and
orientation.

When you select multiple elements, the last selected element is the primary element. All other
previously selected elements are secondary elements.

Selected Element Description


Primary Element Appears with color-filled handles.
Behaves as an active selected
element.
Is the point of reference for all
operations, such as aligning or
spacing multiple selected elements.
Secondary Elements Appear with white handles.
Behave as inactive selected
elements.
Follow the edits made to the primary
element.

To select a group, you must click one of the elements contained in the group.

InTouch 10.0 – Advanced Application Development Course


3-12 Module 3 – ArchestrA Graphics

Selecting Elements by Mouse Click


You can select one or more elements by pressing Shift + clicking. This is particularly useful for
selecting multiple elements that are not necessarily all included in a specified rectangular area on
the canvas.
To select an element or multiple elements by mouse click
a. On the canvas, click an element. It becomes selected.

b. To select further elements, press Shift + click. The other elements become selected.

Note: Note You can see in the Elements List which elements are selected.

Selecting Elements by Lasso


You can select one or more elements by lassoing them with your mouse. This is useful for
selecting multiple elements within a specified rectangular area on the canvas.
To select elements by lasso
a. On the canvas, click outside any element and hold the mouse button down.
b. Drag the mouse so that the lasso wraps around all elements that you want to select.

c. When you are done, release the mouse button.


The elements that are fully included in the lasso are selected.

Selecting All Elements


You can select all elements using the Select All function.
To select all elements
z On the Edit menu, click Select All. All elements on the canvas are selected.

Note: Note You can also press the F2 key to select all elements.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-13

Selecting Elements Using the Elements List


You can use the Elements List to select any elements on the canvas. The Elements List is
particularly useful for selecting elements behind other elements.
The Elements List shows which elements are currently selected. The primary selected element
appears by default in dark blue, the secondary selected elements appear by default in light blue.

Note: Note The color setting of the Elements List depends on the setting for the Selected Items
option in the operating system’s Display Properties Appearance panel.

To select elements using the Elements List


a. In the Elements List, select the element name.
b. To select multiple elements, Ctrl + click the other elements.

Unselecting Elements
You can unselect one or more selected elements. You can do this by clicking on them individually
on the canvas or in the Elements List.
If you want to remove the selected elements in a specified rectangular area, you can use the
lasso.
To unselect elements individually
a. Do one of the following:
z Shift + click the selected element on the canvas.
z Ctrl + click the selected element name in the Elements List.
b. 2 Repeat the previous step for all elements you want to unselect.
To unselect elements from a specified rectangular area
a. Shift + click the canvas outside of any element.
b. Drag the mouse so that the lasso surrounds the elements that you want to unselect.
c. Release the mouse button. The selected elements within the lasso are unselected, and the
selected elements outside the lasso remain selected.

InTouch 10.0 – Advanced Application Development Course


3-14 Module 3 – ArchestrA Graphics

Inline Editing
After you place certain elements on the canvas, you can edit them by selecting them and clicking
on them again. This is called inline editing. The following elements can be edited in this way:

Element Use inline editing to


Button, text, text box Edit the text.
Polyline, polygon, curve, closed curve Edit the control points.
2-point arc, 2-point pie, 2-point chord, Edit the start and sweep angles.
3-point arc, 3-point pie, 3-point chord
Group Edit the individual elements and
groups contained in the group.
Path Edit the control points.

To edit elements with inline editing


a. Select an element. The element handles appear.
b. Click the element again to begin inline editing.
z For buttons, text, and text boxes, the text is selected and you can type new text.

z For polylines, polygons, curves, and closed curves, the control points of the element
appear. Use these to change the shape of the element. You can also add and delete
control points.

z For arcs, pies, and chords, the handles for the start angle and sweep angle appear. Use
these to change the start angle and sweep angle.

z For groups, the group handle is replaced with a shaded outline. You can select individual
elements and groups within the group to edit and move them.

c. Click the canvas outside the element.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-15

Copying, Cutting, and Pasting Elements


After you draw elements, you have the same cut, copy, and paste options available to you as in
any other Windows application. However, some of these options behave differently in the
ArchestrA Symbol Editor.
You can also duplicate elements. Duplicating elements lets you quickly make copies of existing
selected elements without first copying or cutting. You can duplicate one or more selected
elements at the same time.
When you copy or duplicate elements, all of its properties are copied with the element. If you do
not want the properties to be identical, you must change the properties after you copy.
Locked grouped elements and the path element behave differently when you copy or duplicate
them.
If you copy or duplicate:
z A set of elements that are locked, the copy is not locked.
z Grouped elements, the copy is still grouped.
z A path element, the copy is also a path.

Copying Elements
After you select an element, you can copy it by using menu options or you can Ctrl + click.

To copy one or more elements


z Do any of the following:
z Select one or more elements to be copied on the canvas.
On the Edit menu, click Copy.
On the Edit menu, click Paste.
The paste pointer appears.
Click the canvas where you want to place the copy.
z Ctrl + click an element.
z Select one or more elements to be copied on the canvas. Press Ctrl + C. Press Ctrl +
V. The paste pointer appears. Click the canvas where you want to place the copy.

InTouch 10.0 – Advanced Application Development Course


3-16 Module 3 – ArchestrA Graphics

Cutting or Deleting Elements


You can cut elements or groups or you can delete them. Cutting lets you select elements or
groups and remove them from the canvas. You can paste the removed elements or groups.
Deleting elements or groups deletes them from the canvas. You cannot paste deleted elements or
groups.
To cut one or more elements
z Select one or more elements, and then do one of the following:
z On the Edit menu, click Cut.
z Press Ctrl + X.
To cut and paste elements on the canvas
a. Select the element or group.
b. On the Edit menu, click Cut.
c. Do one of the following:
z Click Paste on the Edit menu.
z Press Ctrl + V.
d. Click the canvas location where you want the element or group to be placed.
To delete an element or a group
a. To remove the element or group and not use it in the future, select the element or group.
b. Do one of the following:
z Click Delete on the Edit menu.
z Press Delete on your keyboard.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-17

Duplicating Elements
Duplicating elements allows you to select an element or elements and quickly make copies of
them.
You can also specify the amount of overlap when you duplicate.
To duplicate elements
a. Select one or more elements.
b. Do one of the following:
z Click Duplicate on the Edit menu.
The selected element is duplicated and appears offset to the original element.
z Press Ctrl + D.
The selected element is duplicated and appears offset to the original element.

z Ctrl + click one of the selected elements to duplicate all selected elements.
You can keep the mouse button down and drag them to the new position on the canvas.
To set the overlap when you duplicate
a. Duplicate an element or elements. The element is copied overlapping the original.
b. Move the duplicated element to the location relative to the original. For example, move the
duplicated element five grid spaces above the original element.
c. Duplicate the element again. The new duplicate is placed in the same offset you specified in
the preceding step. For example, five grid spaces above the original element.

InTouch 10.0 – Advanced Application Development Course


3-18 Module 3 – ArchestrA Graphics

Resizing Elements
You can resize selected elements by:
z Dragging the handles of a single element to increase or decrease its horizontal or vertical
size.
z Changing the Width and Height properties of one or more elements using the Properties
Editor.
z Proportionally resizing multiple elements.
z Making multiple objects the same width and/or height.
Some elements cannot be resized or can only be resized in certain directions, such as the
Calendar control or DateTime Picker. If the primary element has such restrictions, then any
secondary elements resize proportional to the change in primary element's size and do not resize
independently.

Resizing a Single Element with the Mouse


You can resize a single selected element with the mouse.
You can resize most elements to any given width and height, or to a fixed width to height ratio.
To resize a single selected element with the mouse
a. Select an element. The handles of the selected element appear.

b. Drag one of the handles. The object is resized while you drag.
c. Release the mouse button.
To resize a single selected element with the mouse and keeping a fixed width/height ratio
a. Select an element. The handles of the selected element appear.
b. Press and hold the Shift key.
c. Drag one of the handles.
The object is resized while you drag, the width/height ratio stays unchanged.
d. Release the mouse button and Shift key.

Resizing Elements by Changing Size Properties


You can resize one or more elements by changing the width and/or height property of the selected
element(s).
To resize elements by changing their size properties
a. Select one or more elements.
b. In the Properties Editor, type a value for Width and for Height.
The selected elements are resized accordingly.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-19

Resizing Elements Proportionally


You can resize multiple elements proportionally on the canvas. One element is the primary
element you can use to resize. The secondary elements resize proportionally to the change of the
primary element.

To resize elements proportionally


a. Select multiple elements.
b. Drag one of the handles of the primary element. The secondary elements are resized
accordingly by the same percentage.
c. Release the mouse button.
For example, assume the primary element is 100 pixels wide and 50 pixels high. A secondary
element is 200 pixels wide and 20 pixels high.
You drag the handle of the primary element so that it is 120 pixels wide (20% increase) and 100
pixels high (100% increase).
Then the secondary element is resized to 240 pixels wide (20% increase of the original width of
200 pixels) and 40 pixels high (100% increase of the original width of 20 pixels).

Making Elements the Same Width, Height, or Size


You can make elements the same width, height, or size.
To make elements the same width
a. Select at least two elements. Make sure the primary element is the element with the target
width for all elements.
b. On the Arrange menu, point to Size, and then click Make Same Width. The width of the
secondary elements are resized to the same width as the primary element.

InTouch 10.0 – Advanced Application Development Course


3-20 Module 3 – ArchestrA Graphics

To make elements the same height


a. Select at least two elements. Make sure the primary element is the element with the target
height for all elements.
b. On the Arrange menu, point to Size, and then click Make Same Height. The height of the
secondary elements are resized to the same height as the primary element.

To make elements the same size


a. Select at least two elements. Make sure the primary element is the element with the target
size for all elements.
b. On the Arrange menu, point to Size, and then click Make Same Size. The size of the
secondary elements are resized to the same size as the primary element.

Adjusting the z-Order of Elements


The z-order of elements specifies which element appears on top of other elements when the
elements overlap on the canvas. The z-order also determines how the elements of a path graphic
connect.
When you place new elements on the canvas, they are placed at the top and can cover all other
elements.
However, you might want to bring certain elements forward so that they are always visible or
overlap certain other elements. Or you may want to use a large background element behind all
other elements. You can:
z Bring one or more elements to the very front.
z Send one or more elements to the very back.
z Bring one or more elements one level forward.
z Send one or more elements one level backward.
You can use the Elements List to see or change the z-order of the elements.
For more information of Adjusting the z-Order of Elements see Chapter 5 of Creating and
Managing ArchestrA Graphics User’s Guide.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-21

Rotating Elements
You can rotate elements to any orientation (0 - 359 degrees):
z Graphically with the rotation handle.
z Numerically by typing the orientation angle in the Properties Editor.
z By rotating them by 90 degrees 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. You can move the point of origin to any other location, even outside of the object itself.

Rotating Elements with the Mouse


You can rotate one or more elements with the mouse. If you select multiple elements, you can
rotate the primary element. The secondary elements are rotated together with the primary
element.
You can rotate elements:
z Freely in the range 0 to 359 in integer degrees.
z In multiples of 15 degrees.
z In multiples of 45 degrees.
You can rotate an element with the rotation handle. The rotation handle is a light-blue circle at the
top of a selected element.

To rotate elements freely with the mouse


a. Select one or more elements.
b. Grab the rotation handle of the primary element.
c. Drag the mouse across the screen. All selected elements are rotated around their own points
of origin as you move the mouse.
d. Release the mouse button.
To rotate elements by multiple of 15 degrees with the mouse
a. Select one or more elements.
b. Grab the rotation handle of the primary element.
c. Press and hold the Shift key.
d. Drag the mouse across the screen. All selected elements are rotated in multiples of 15
degrees around their own points or origin as you move the mouse.
e. Release the mouse button and the Shift key.
To rotate elements by multiple of 45 degrees with the mouse
a. Select one or more elements.
b. Grab the rotation handle of the primary element.
c. Press and hold the Ctrl key.
d. Drag the mouse across the screen. All selected elements are rotated in multiples of 45
degrees around their own points or origin as you move the mouse.
e. Release the mouse button and the Ctrl key.

InTouch 10.0 – Advanced Application Development Course


3-22 Module 3 – ArchestrA Graphics

Rotating Elements by Changing the Angle Property


You can change the angle property of one or more selected elements.
To rotate elements by changing the angle property
a. Select one or more elements.
b. In the Properties Editor, type a value in the Angle box.
c. Press Enter. The selected elements rotate to the specified angle.

Rotating Elements by 90 Degrees


You can rotate elements by 90 degrees clockwise or counter-clockwise.
To rotate elements by 90 degrees clockwise
a. Select one or more elements.
b. On the Arrange menu, point to Transform, and then click Rotate Clockwise.
The selected elements rotate by 90 degrees clockwise.

To rotate elements by 90 degrees counter-clockwise


a. Select one or more elements.
b. On the Arrange menu, point to Transform, and then click Rotate Counter Clockwise.
The selected elements rotate by 90 degrees counter-clockwise.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-23

Moving the Origin of an Element


You can change the point of origin for any element. The point of origin specifies around which
point the element rotates or flips. By default the point of origin is in the center of the element.
You can change the point of origin:
z With the mouse on the canvas.
z By specifying the absolute origin in the Properties Editor.
z By specifying the relative origin in the Properties Editor.

Changing Points of Origin with the Mouse


You can change the point of origin for an element with the mouse.

To change the point of origin for an element with the mouse


a. Select an element on the canvas.
b. Move the mouse over the rotation handle of the element.
The point of origin icon for the element appears.
c. Drag the Point of Origin icon to where you want to place the new point of origin for the
element.
d. Release the mouse button.

Changing Points of Origin in the Properties Editor


You can change the absolute or relative point of origin in the Properties Editor.
The absolute point of origin shows the position of the point of origin in relation to the canvas. The
absolute point of origin changes when the element moves.
The relative point of origin shows the position of the point of origin in relation to the center of the
element. The relative point of origin does not change when the element moves.
To change the point of origin in the Properties Editor
a. Select one or more elements on the canvas.
b. In the Properties Editor, do one of the following:
z Type the absolute coordinates in the x, y format for the point of origin.
z Type the relative coordinates in the x, y format for the point of origin.
c. Press Enter. The points of origin move to the specified absolute position or to the specified
position in relation to the center points of the selected elements.
For example, if you have two elements, you can set the relative point of origin to 10, 10 to place
the points of origin for both elements 10 pixels to the right and 10 pixels below the corresponding
center points of each element.

InTouch 10.0 – Advanced Application Development Course


3-24 Module 3 – ArchestrA Graphics

Flipping Elements
You can flip elements on their horizontal or their vertical axis. The axis for each element is
determined by its point of origin.
To flip elements vertically
a. Select one or more elements.
b. On the Arrange menu, point to Transform, and then click Flip Vertical. The selected elements
are flipped vertically on their horizontal axis.

To flip elements horizontally


a. Select one or more elements.
b. On the Arrange menu, point to Transform, and then click Flip Horizontal. The selected
elements are flipped horizontally on their vertical axis.

Working with Groups of Elements


You can group together multiple elements. This is useful to bind certain element together so that
they are not inadvertently moved. The group is treated as a new element.
You can:
z Create a group from one or more elements.
z Ungroup the elements without losing their original configuration information.
z Add more elements to an existing group.
z Remove elements from a group.
z Edit the elements of a group without having to ungroup them.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-25

Creating a Group of Elements


After you create elements, you can group them. Grouping elements lets you manage the elements
as one unit.
Groups are assigned default names when you create them, such as Group1, Group2, and so on.
After you create a group, you can rename it.
Groups can have properties that are different than the properties of the elements.
To create a group
a. Select the elements you want as part of the new group.
b. On the Arrange menu, point to Grouping, and then click Group.
The elements are combined into a group. The group is listed in the Elements List.
c. Rename the group as required. To do this:
z In the Elements List, click the group name and click again.
The group name is in edit mode.

z Type a new name and press Enter. The group is renamed.


z You can also rename a group or elements by changing the Name property in the
Properties Editor.

Ungrouping
After you create a group, you can ungroup it if you no longer want it.
If the group included elements and other groups, when you ungroup, the original elements and
groups again exist as independent items. To ungroup any subgroups, you must select each one
and ungroup it separately.
If you ungroup a set of elements and elements already exist with the names of the grouped
elements, then the newly ungrouped elements are renamed.
To ungroup
a. Select the groups you want to ungroup.
b. On the Arrange menu, point to Grouping, and then click Ungroup.
The groups is converted to the original elements.
The group name is removed from the Elements List and the element names appear.

InTouch 10.0 – Advanced Application Development Course


3-26 Module 3 – ArchestrA Graphics

Adding Elements to Existing Groups


After you create a group, you can add elements or other groups to an existing group.
For example, you can combine a group that represents a valve with another group that represents
a tank to create a new group that can be called a tank unit.
You can add:
z Elements to groups.
z Groups to the primary selected group.
To add elements to an existing group
a. On the canvas, select the group and also elements and groups that you want to add.
b. Right-click a selected element or on the group, point to Grouping, and then click Add to Group.
The selected elements are added to the group.

Note: Note You can also add elements to existing groups by using the Elements List in similar
way.

Removing Elements from Groups


After you create a group, you can remove elements from the group. This lets you remove one or
more elements you no longer want in that group.
Removing elements from the group removes them from the canvas. It also removes any scripts or
animations you added to the element.
To remove an element from a group
a. On the canvas, select the group with the element(s) that you want to remove.
b. Click the group again to enter inline editing mode.
c. Select the element(s) that you want to remove from the group.
d. Right-click a selected elements, point to Grouping, and then click Remove from Group.
The selected elements are removed from the group.

Note: Note You can also remove elements from existing groups by using the Elements List in
similar way.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-27

Editing Components within a Group


You can edit components within a group without having to dissolve the group. Do this by:
z Selecting the element in Elements List.
z Using the Edit Group command on the shortcut menu.
z Slowly double-clicking to enter inline editing mode.
To edit components within a group by using the Elements List
a. In the Elements List, expand the group that contains the element that you want to edit.
b. Select the element that you want to edit. The element appears selected in the group and the
group is outlined with a diagonal pattern.

c. Edit the element with the Properties Editor, by mouse or by menu according to your
requirements.
d. Click outside the group.
To edit components within a group by using the Edit Group command
a. On the canvas, select the group that you want to edit.
b. On the menu Edit, click Edit Group ‘GroupName’.
The group is outlined with a diagonal pattern.

c. Select the element that you want to edit.


d. Edit the element with the Properties Editor, by mouse, by menu or pop-up menu according to
your requirements.
e. Click outside the group.

Note: Note If you move the position of an element in a group outside the group, the group
size is automatically changed to incorporate the new position of the element.

InTouch 10.0 – Advanced Application Development Course


3-28 Module 3 – ArchestrA Graphics

Path Graphics
Path graphics are elements that combine selected open elements, such as lines, H/V lines,
polylines, curves and arcs to a single closed graphic element.

The path graphic depends:


z On the order in which you drew its elements. Each element is linked to the next element
by z-order. The z-order of the elements is the order shown in the Element Browser list.
z On the direction in which you drew its elements. The end point of one element is
connected to the start point of the next element.
The properties of the elements contained within a path graphic are retained, so that when you
break the path graphic, the elements of which it consists appear as they did before the path
graphic is created.
The Path Graphic has the same properties as a rectangle, ellipse or polyline. It loses these
properties when you break the path.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-29

Any shape with 2 open points can be joined


z Joined shapes can be Filled, animated etc.

z Path Tool:
z Example – create a shield:

z Create using Path button

z Break using Path Break button


(or Arrange | Path)
z Path element can be animated as closed shape
z Paths can be edited using Edit | Path menu
z New elements can be added by drawing
z Existing contained elements can be deleted

InTouch 10.0 – Advanced Application Development Course


3-30 Module 3 – ArchestrA Graphics

Editing Common Properties of Elements and Symbols


Some properties are common to most types of elements, such as fill, line styles, and visibility. You
can:
z Edit the name of an element.
z Edit the fill properties of an element.
z Edit the line properties of an element.
z Edit the text properties of an element.
z Set the style.
z Set the transparency level of an element.
z Tweaking colors and style for an element’s gradient style.
z Enable and disable elements for run-time interaction.
z Change the visibility of an element.
z Change the tab order of an element.
z Use the Format Painter to format elements.
z Edit the general properties of a symbol.

Editing the Name of an Element


The name of an element uniquely identifies the element on the drawing surface.
When you draw a new element on the drawing surface, it is assigned a default name. You can
then change its name in the Properties Editor or the Elements List.
Element names are case-insensitive and unique within the same element hierarchy. It is possible
to have two elements with the same name if one is, for example, in a group and the other outside
that group.
To change an element’s name in the Properties Editor
a. Select the element on the drawing surface.
b. In the Properties Editor, click the value for the Name box.
c. Type a new name and press Enter.
To change an element’s name in the Elements List
a. Select the element in the Elements List.
b. Click the element in the Elements List again.
c. Type a new name and press Enter.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-31

Editing the Fill Properties of an Element


You can configure the following fill properties for an element:
z Fill style as solid color, gradient, pattern or texture
z Unfilled style
z Fill orientation, relative to the element or to the screen
z Fill behavior, which determines if the object is to be filled horizontally, vertically, or both
z Horizontal fill direction
z Vertical fill direction
z Percent of horizontal fill
z Percent of vertical fill

Setting Fill Style


You can configure the fill style of one or more elements. You can do this to:
z Selected elements on the toolbar.
z Style properties in the Properties Editor.
z Nested style properties, such as just one color of a multi-colored gradient.
To configure the fill style of an element with the toolbar
a. Select one or more elements you want to configure.
b. On the toolbar, click the Fill Color icon. The fill style list appears.

c. Configure the fill color. Do any of the following:


z Click No Fill to configure an empty element.
z Click a predefined solid color in the display.
z Click More Solid Colors to open the Style Selection dialog box and select a solid color.
z Click Color Picker to select a color from the screen.
d. Configure the fill gradient, pattern, or texture. Do any of the following:
z Click a predefined gradient.
z Click More Gradients to open the Style Selection dialog box and configure a gradient.
z Click Patterns to open the Style Selection dialog box and select a pattern.
z Click Textures to open the Style Selection dialog box and select a texture.

InTouch 10.0 – Advanced Application Development Course


3-32 Module 3 – ArchestrA Graphics

To configure the fill style by setting style properties


a. Select one or more elements.
b. In the Properties Editor, locate the FillStyle property.
c. Click the browse button to open the Style Selection dialog box.
To configure the fill style by setting gradient color style properties
a. Select one or more elements with gradient fill style.
b. In the Properties Editor, locate the Color1, Color2, and Color3 properties.
c. lick the browse button for any of these to set the selected gradient color from the Style
Selection dialog box.

Setting Unfilled Style


You can configure an element’s unfilled style. The unfilled style of an element determines the
element’s unfilled portion at design time and run time.
To configure the unfilled style of an element
a. Select one or more elements.
b. In the Properties Editor, click UnfilledStyle.
c. Click the browse button in the UnfilledStyle line. The Style Selection dialog box appears.
d. Select a solid color, gradient, pattern, or texture.
e. Click OK.

Setting Fill Orientation


You can configure an element’s fill orientation in the Properties Editor. The fill orientation property
determines if the fill style is relative to the screen or element.
z If relative to the screen, the gradient, pattern, or texture does not rotate with the element.
z If relative to the element, the gradient, pattern, or texture rotates with the element.
To configure an element’s fill orientation
a. Select one or more elements you want to configure.
b. In the Properties Editor, click FillOrientation.
c. From the list in the same line, click RelativeToScreen or RelativeToGraphic.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-33

Setting Fill Behavior


You can set the fill behavior of an element. The fill can be:
z Horizontal.
z Vertical.
z Both horizontal and vertical.
To set an element’s fill behavior
a. Select one or more elements you want to configure.
b. In the Properties Editor, set the property FillBehavior to one of the following:
z Horizontal
z Vertical
z Both

Setting Horizontal Fill Direction and Percentage


An element can fill:
z From left to right.
z From right to left.
You can also set the amount you want the element to be horizontally filled by as a percentage.
To set an element’s horizontal fill direction and percentage
a. Select one or more elements you want to configure.
b. In the Properties Editor, set the HorizontalDirection property to:
z Right to fill from left to right.
z Left to fill from right to left.
c. For the HorizontalPercentFill property, type a percentage (0 - 100) in the value box.

Setting Vertical Fill Direction and Percentage


An element can fill:
z From bottom to top.
z From top to bottom.
You can also set the amount you want the element to be vertically filled by as a percentage.
To set an element’s vertical fill direction and percentage
a. Select one or more elements you want to configure.
b. In the Properties Editor, set the VerticalDirection property to:
z Top to fill from bottom to top.
z Bottom to fill from top to bottom.
c. For the VerticalPercentFill property, type a percentage (0 - 100) in the value box.

InTouch 10.0 – Advanced Application Development Course


3-34 Module 3 – ArchestrA Graphics

Editing the Line Properties of an Element


You can set the line properties for any element that contains lines, such as:
z Lines and polylines.
z Rectangles, rounded rectangles, and ellipses.
z Curves, closed curves, and polygons.
z Arcs, pies, and chords.
z Text boxes.
You can set the:
z Start and end points for lines, arcs, and H/V lines.
z Line weight, which is the thickness of a line.
z Line pattern, which is the continuity of a line. For example, a continuous line, a dotted line,
a dashed line, or a combination.
z Line style, which is the fill style of a line.
z Shape and size of the end points of a line.

Note: You can also set the element’s line properties in the Line Format properties group in
the Properties Editor.

Setting Start or End Points of a Line


After you draw a line or H/V line, you can change its start or end points in the Properties Editor.
To set the line or H/V line start or end point
a. Select a line or H/V line.
b. In the Properties Editor, type coordinate values X, Y for the Start or End properties.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-35

Setting the Line Weight


You can set a line weight from 0 pixels to 255 pixels for any element that contains lines. You can
set the line weight using the Format menu, the toolbar, or the LineWeight property in the
Properties Editor.

Note: Extreme weight settings can cause unexpected behavior, especially with curves and line
end styles.

To set the line weight using the Format menu


a. Select one or more elements.
b. On the Format menu, click Line Weight.

c. To use a predefined line weight, select it from the list.


d. To use another line weight, click More Line Options. The Select Line Options dialog box
appears. In the Weight box, type a new line weight from 0 to 255 and then click OK.

Setting the Line Pattern


You can set the line pattern for any element that contains lines. The line pattern specifies the
continuity of a line (continuous, dotted, dashed) and not its fill properties.
To set the line pattern
a. Select one or more elements.
b. On the Format menu, click Line Pattern.

c. To use a predefined line pattern, select it from the list.


d. To use another line pattern, click More Line Options. The Select Line Options dialog box
appears. In the Pattern list, select a pattern, and then click OK.

Note: You can also set the line pattern by changing the LinePattern property in the Properties
Editor.

InTouch 10.0 – Advanced Application Development Course


3-36 Module 3 – ArchestrA Graphics

Setting the Line Style


You can set the line style for any element that contains lines. Setting the line style is similar to
setting the fill style. You can also set the solid color, gradient, pattern, and texture for a line.
To set the line style
a. Select one or more elements.
b. On the toolbar, click the Line Color icon. The line style list appears.
c. Configure the line color. Do any of the following:
z Click a predefined solid color in the display.
z Click More Solid Colors to open the Style Selection dialog box and select a solid color.
z Click Color Picker to select a color from the screen.
d. Configure the line gradient, pattern, or texture. Do any of the following:
z Click a predefined gradient.
z Click More Gradients to open the Style Selection dialog box and configure a gradient.
z Click Patterns to open the Style Selection dialog box and select a pattern.
z Click Textures to open the Style Selection dialog box and select a texture.

Note: You can also set the element’s line style in the Properties Editor. If you do this, you can
configure the solid color, gradient, pattern, or texture in the Style Selection dialog box.

Setting the Text Properties of an Element


You can set the following for text, text box, and button elements:
z The text that appears
z The format in which the text appears
z The font of the text
z The alignment of the text
z The text style
You can also substitute strings in text, text box, and button elements.

Setting the Displayed Text


You can set the text of a text element, text box, or button in the canvas or by changing the Text
property in the Properties Editor.

To set the text to display


a. Select the text element, text box or button on the canvas.
b. On the Edit menu, click Edit Text. The selected element appears in edit mode.
c. Type a text string and press Enter.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-37

Setting the Text Display Format


You can configure how values are shown for the text in a text box or button. For example, as a
rounded float with the format #.###.
You can format the text display for the:
z Text element and the button element in the same way as in the InTouch HMI or with the
TextFormat property in the Properties Editor.
z Text box element only with the TextFormat property.
To set the text display format
a. Select a text element, text box, or button.
b. In the Properties Editor, type a format for the TextFormat property.

Setting the Text Font


You can change the font style and font size of a text using:
z The Format menu.
z The Font property in the Properties Editor.
z Lists on the toolbar.

To set the text font, font style, and size


a. Select a text element, a text box, or a button element on the canvas.
b. On the Format menu, click Fonts. The Font dialog box appears.
c. Set the font, font style, size, and effects.
d. Click OK.

InTouch 10.0 – Advanced Application Development Course


3-38 Module 3 – ArchestrA Graphics

Setting the Text Color


You can set the text color as a solid color, a gradient, a pattern, or a texture.

Note: You can also change the text color in the Properties Editor with the TextColor property.

To set the text color


a. Select a text element, a text box, or a button element on the canvas.
b. Click the Text Color icon.

c. Configure the text color. Do any of the following:


z Click a predefined solid color in the display.
z Click More Solid Colors to open the Style Selection dialog box and select a solid color.
z Click Color Picker to select a color from the screen.
d. 4 Configure the text gradient, pattern, or texture. Do any of the following:
z Click a predefined gradient.
z Click More Gradients to open the Style Selection dialog box and configure a gradient.
z Click Patterns to open the Style Selection dialog box and select a pattern.
z Click Textures to open the Style Selection dialog box and select a texture.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-39

Setting the Text Alignment


You can change the horizontal and vertical positioning of text within a text box element or button
element.
You can also change the positioning for a text element. If the text is modified at design time or run
time, the alignment sets how the element boundary changes to fit around the modified text.

Note: You can also set the text alignment in the Properties Editor by setting the Alignment
property.

If the element is a text box or a button, then the text is aligned accordingly.

Text Boxes Buttons

If the element is a text element and you then modify the text at design time or run time, the text is
anchored to the point of alignment.
z Text right alignments move additional text further over to the left.
z Text left alignments move additional text to the right.
z Changes in font size leave the point of alignment unchanged and modify the frame
accordingly.

InTouch 10.0 – Advanced Application Development Course


3-40 Module 3 – ArchestrA Graphics

To set the text alignment


a. Select a text element, text box element or button element on the canvas.
b. On the Format menu, point to Text Alignment, and then click the appropriate command:

Click this command To


Top Left Align the text at the top left frame handle.
Top Center Align the text at the top middle frame handle.
Top Right Align the text at the top right frame handle.
Middle Left Align the text at the middle left frame handle.
Middle Center Align the text in the middle of the element.
Middle Right Align the text at the middle right frame handle.
Bottom Left Align the text at the bottom left frame handle.
Bottom Center Align the text at the bottom center frame handle.
Bottom Right Align the text at the bottom right frame handle.

Substituting Strings
You can search and replace strings of any element that have the Text property on your canvas.
You can use the basic mode to replace strings in a list.
You can also use advanced functions, such as find and replace, ignore, case-sensitivity, and
wildcards.
You cannot substitute static strings that are used in an Radio Button Group, List Box or Combo
Box.

To substitute strings in a symbol by using the list


a. Select one or more elements.
b. Do one of the following:
z Press Ctrl + L.
z On the Special menu, click Substitute Strings.
The Substitute Strings dialog box appears.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-41

c. In the New column, type the text to be replaced.


d. Click OK.
To substitute strings in a symbol by using advanced functions
a. Select one or more elements.
b. Do one of the following:
z Press Ctrl + E.
z On the Special menu, click Substitute Strings.
The Substitute Strings dialog box appears.
c. Click Find & Replace. The dialog box expands and shows advanced options.

d. Configure the search strings. Do any of the following:


z To find specific strings in the list, type a string in the Find What box and click Find Next to
find the next string.
z To replace a selected found string with another string, type a string in the Replace with
box and click Replace.
z To replace multiple strings, type values in the Find What and Replace with boxes and click
Replace all.
e. Configure the search options. Do any of the following:
z If you want the search to be case-sensitive, click Match Case.
z To find only entire words that match your search string, click Match Whole Word Only.
z To use wildcards, click Use Wildcards. Use an asterisk (*) to search for any sequence of
characters. Use a question mark (?) to search for strings with one variable character.
f. Click OK.

InTouch 10.0 – Advanced Application Development Course


3-42 Module 3 – ArchestrA Graphics

Setting Style
You can set the fill, line, and text style from various places in the ArchestrA Symbol Editor using
the Style Selection dialog box. The Style Selection dialog box is common to any element for which
you can set a solid color, gradient, pattern, or texture. You can also set the transparency of the
style.
Because you can open the Style Selection dialog box from different places in the ArchestrA
Symbol Editor, the dialog box header can be different.
Also, not all tabs may be available. For example, for setting one color of a gradient in the
Properties Editor, you can only select a solid color from the Style Selection dialog box.

Setting a Solid Color


You can set a solid color using the Solid Color tab in the Style Selection dialog box. You can set a
solid color from the:
z Standard palette.
z Color disc and bar.
z Value input boxes.
z Color picker.
z Custom palette.
You can also:
z Add the new color to the custom palette.
z Remove a color from the custom palette.
z Save the custom palette.
z Load a custom palette.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-43

Setting a Solid Color from the Standard Palette


You can set a solid color from the standard palette using the Solid Color tab in the Style Selection
dialog box. The standard palette is a set of 48 predefined colors you can use to quickly select a
solid color.
To set a solid color from the Standard Palette
a. In the Style Selection dialog box, click the Solid Color tab.

b. In the Standard Palette area, click a color. The new color appears in the New color box on the
right of the dialog box.
c. Click OK.

Setting a Solid Color from the Color Disc and Bar


You can set a solid color using the color disc and bar on the Solid Color tab in the Style Selection
dialog box. The color disc and bar let you graphically select the color and the luminance
(brightness).

InTouch 10.0 – Advanced Application Development Course


3-44 Module 3 – ArchestrA Graphics

To set a solid color from the color disc and bar


a. In the Style Selection dialog box, click the Solid Color tab.
b. Click on the color disk to select a color. The bar is updated and shows the selected color in
varying degrees of luminance (brightness).
c. Click on the bar to select a luminance (brightness). The new color appears in the New color
box on the right of the dialog box.

d. Click OK.

Setting a Solid Color with the Value Input Boxes


You can set a solid color by typing values that define the color, such as:
z Red component (0-255).
z Green component (0-255).
z Blue component (0-255).
z Hue (0-255).
z Saturation (0-255).
z Luminance (0-255).
To set a solid color with the value input boxes
a. In the Style Selection dialog box, click the Solid Color tab.
b. In the Red, Green, Blue, Hue, Sat. and Lum. boxes, type respective values. The resulting
color appears in the New color box on the right of the dialog box and also on the color wheel
and bar.
c. Click OK.

Setting a Solid Color with the Color Picker


You can set a solid color by using the color picker on the Solid Color tab in the Style Selection
dialog box. The color picker lets you select a color from anywhere on the screen, even outside the
IDE application.
To set a solid color with the color picker
a. In the Style Selection dialog box, click the Solid Color tab.
b. Click the Color Picker button. The color picker pointer appears.
c. Select a color from anywhere on the screen by moving the mouse. As you move the mouse,
the new color appears in the New color box on the right of the dialog box.
d. Click the mouse to complete the color selection.
e. Click OK.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-45

Setting a Solid Color from the Custom Palette


You can set a solid color from the custom palette on the Solid Color tab in the Style Selection
dialog box.
The custom palette is a set of colors that you want to frequently use. You can save the custom
palette to a .pal file or load a custom palette from a .pal file.
To use colors from the custom palette, you must first add them.
To set a solid color from the custom palette
a. In the Style Selection dialog box, click the Solid Color tab.
b. In the Custom Palette area, select a color. The new color appears in the New color box on the
right of the dialog box.
c. Click OK.

Adding and Removing Colors in the Custom Palette


You can add up to 36 solid colors to the custom palette. You can also remove any colors from the
custom palette.
You cannot add a color that is already in the custom palette.
To add a solid color to the custom palette
a. In the Style Selection dialog box, click the Solid Color tab.
b. Add the color. Do any of the following:
z Select a solid color from the custom palette.
z Select a solid color from the color disc and bar.
z Type values for red, green, blue, hue, saturation, and luminance.
z Select a solid color with the color picker.
The new solid color appears in the New color box on the right of the dialog box.

c. Click the add button above Custom Palette.


The solid color is added to the Custom Palette area.
To remove a solid color from the custom palette
a. In the Style Selection dialog box, click the Solid Color tab.
b. In the Custom Palette area, select the solid color you want to remove.

c. Click the Delete button above Custom Palette.


The solid color is removed from the custom palette.

InTouch 10.0 – Advanced Application Development Course


3-46 Module 3 – ArchestrA Graphics

Saving and Loading the Custom Palette


You can save the current custom palette or load a previously saved custom palette. The custom
palette is loaded from or saved to a Windows Palette file (.pal).
After you save or load a custom palette, the .pal file is not connected to the symbol in any way.
To save a custom palette
a. In the Style Selection dialog box, click the Solid Color.
b. Click the Save Palette button. The Save Palette dialog box appears.
c. Browse to the location where you want to save the custom palette, type a name, and then click
Save. The custom palette is saved as a palette file.
To load a custom palette
a. In the Style Selection dialog box, click the Solid Color tab.
b. Click the Load Palette button.
c. If you currently have colors in the custom palette, a message appears. Click Yes to continue
and overwrite the current colors in the custom palette.
d. In the Load Palette dialog box, browse to the location of the palette file, select it, and then click
Open. The custom palette is loaded from the selected file.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-47

Setting a Gradient
You can configure gradients by the:
z Number of colors - 1, 2 or 3.
z Direction - horizontal, vertical, radial, point based, or customized.
z Variant - depending on your selection for the number of colors and direction.
z Color distribution shape - bell or triangular with options to configure the center and falloff.
z Focus scales - width and height.
You set a gradient on the Gradient tab in the Style Selection dialog box.

InTouch 10.0 – Advanced Application Development Course


3-48 Module 3 – ArchestrA Graphics

Setting the Number of Colors for a Gradient


You can set the number of colors you want to use in a gradient.
z If you use one color, the gradient is between this solid color and a specified shade of black
to white.
z If you use two colors, the gradient is between these two colors.
z If you use three colors, the gradient is between these three colors in sequence.
To set a gradient using one color
a. In the Style Selection dialog box, click the Gradient tab.
b. In the Colors area, click One.
A color selection box and a slider for the dark to light selection appears.

c. Click the color selection box to open the Select Solid Color 1 dialog box. Select a solid color
and click OK. For more information about this dialog box, see Setting a Solid Color on page
164.
d. Move the slider between Dark and Light. The new gradient appears in the New color box on
the right of the dialog box.
e. Click OK.
To set a gradient using two colors
a. In the Style Selection dialog box, click the Gradient tab.
b. In the Colors area, click Two. Two color selection boxes appear.

c. Click the Color 1 or Color 2 color field to select a color from the Select Solid Color dialog box.
The new gradient appears in the New color box on the right of the dialog box.
d. 4 Click OK.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-49

To set a gradient for three colors


a. In the Style Selection dialog box, click the Gradient tab.
b. In the Colors area, select Three. Three color selection boxes appear.

c. Click the Color 1, Color 2 or Color 3 color field to select a color from the Select Solid Color
dialog box.
The new gradient appears in the New color box on the right of the dialog box.
d. Click OK.

Setting the Direction of the Gradient


You can configure the direction of the gradient to be one of the following:
z Horizontal - from side to side
z Vertical - up and down
z Radial - circular from the center outwards
z Point based - from the inside outwards in linear fashion depending on the bounding points
z Custom angle - across the element at a specified angle
To set a horizontal gradient
a. In the Style Selection dialog box, click the Gradient tab.
b. In the Direction area, click Horizontal. The new gradient appears in the New color box on the
right of the dialog box.
c. Click OK.
To set a vertical gradient
a. In the Style Selection dialog box, click the Gradient tab.
b. In the Direction area, click Vertical. The new gradient appears in the New color box on the
right of the dialog box.
c. Click OK.

InTouch 10.0 – Advanced Application Development Course


3-50 Module 3 – ArchestrA Graphics

To set a radial gradient


a. In the Style Selection dialog box, click the Gradient tab.
b. In the Direction area, click Radial.

c. Set the center location. Do any of the following:


z In the Horizontal and Vertical boxes, type values for the center location.
z Click and drag the center point in the adjacent box.
The new gradient appears in the New color box on the right of the dialog box.
d. Click OK.
To set a point based gradient
a. In the Style Selection dialog box, click the Gradient tab.
b. In the Direction area, click Point Based.

c. Set the center location. Do any of the following:


z In the Horizontal and Vertical text boxes, type values for the center location.
z Click and drag the center point in the adjacent box.
The new gradient appears in the New color box on the right of the dialog box.
d. Click OK.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-51

To set the custom angle of a gradient


a. In the Style Selection dialog box, click the Gradient tab.
b. In the Direction area, click Custom.

c. Set the angle. Do any of the following:


z In the Angle text box, type a value for the angle.
z Click and drag the angle bar in the adjacent box.
The new gradient appears in the New color box on the right of the dialog box.
d. Click OK.

Changing the Variant of a Gradient


You can change the variant of a gradient. The variants are alternate gradients with the same
colors you can quickly select.
To change the variant of a gradient
a. In the Style Selection dialog box, click the Gradient tab.
b. In the Variants area, click on a variant gradient.

The new gradient appears in the New color box on the right of the dialog box.
c. Click OK.

InTouch 10.0 – Advanced Application Development Course


3-52 Module 3 – ArchestrA Graphics

Setting the Color Distribution Shape


You can configure the distribution shape of a gradient with one or two colors. The shape can be a
bell or a triangle.
z In a bell-shaped distribution, the gradient from one color to the next falls at a slow rate,
then increasingly at a larger rate, then drops down to small rate again.

z In a triangular distribution, the gradient from one color to the next rises and falls at the
same rate.

You can also configure the peak and the falloff.


z The peak specifies the offset of the gradient if it has one or two colors.
z The falloff specifies the amplitude of the gradient if it has one or two colors.
Additionally, you can configure the center point of a radial or point based gradient if it is defined by
three colors.
To use a bell-shaped gradient
a. In the Style Selection dialog box, click the Gradient tab.
b. In the Color Distribution Shape area, click Bell. The new gradient appears in the New color box
on the right of the dialog box.
c. Click OK.
To use a triangular gradient
a. In the Style Selection dialog box, click the Gradient tab.
b. In the Color Distribution Shape area, click Triangular. The new gradient appears in the New
color box on the right of the dialog box.
c. Click OK.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-53

To set the peak of a gradient with one or two colors


a. In the Style Selection dialog box, click the Gradient tab.
b. In the Color Distribution Shape area, do one of the following:
z Use the Peak slider to specify the peak.
z In the Peak box, type a value from 0 to 100.
The new gradient appears in the New color box on the right of the dialog box.
c. Click OK.
To set the falloff of a gradient with one or two colors
a. In the Style Selection dialog box, click the Gradient tab.
b. In the Color Distribution Shape area, do one of the following:
z Use the Falloff slider to specify the peak.
z In the Falloff box, type a value from 0 to 100.
The new gradient appears in the New color box on the right of the dialog box.
c. Click OK.
To set the center point of a radial or point based gradient with three colors
a. In the Style Selection dialog box, click the Gradient tab.
b. In the Color Distribution Shape area, do one of the following:
z Use the Center slider to specify the peak.
z In the Center box, type a value from 0 to 100.
The new gradient appears in the New color box on the right of the dialog box.
c. Click OK.

Setting the Focus Scales of a Gradient


You can set the focus scales of a radial or point based gradient. The focus scales acts as a
magnification of the gradient. You can set the width or the height of the focus scales.

Width Height Appearance

0 0

50 0

0 50

50 50

You can also lock the width and the height.

InTouch 10.0 – Advanced Application Development Course


3-54 Module 3 – ArchestrA Graphics

To set the width of the focus scales for a gradient


a. In the Style Selection dialog box, click the Gradient tab.
b. In the Focus Scales area, do one of the following:
z Use the Width slider to specify the width.
z In the Width text box, type a width value.
The new gradient appears in the New color box on the right of the dialog box.
c. Click OK.
To set the height of the focus scales for a gradient
a. In the Style Selection dialog box, click the Gradient tab.
b. In the Focus Scales area, do one of the following:
z Use the Height slider to specify the height.
z In the Height text box, type a height value.
The new gradient appears in the New color box on the right of the dialog box.
c. Click OK.
To lock the width and the height of the focus scales for a gradient
a. In the Style Selection dialog box, click the Gradient tab.
b. Click Lock Width = Height. The width and height are set equal. When you make changes to
the width or the height, they are set equal to each other.
c. Click OK.

Setting a Pattern
You can set a pattern for an element. The following table describes the pattern options:

Pattern Options
Horizontal Simple, Light, Narrow, Dark, Dashed
Vertical Simple, Light, Narrow, Dark, Dashed
Percent 05, 10, 20, 25, 30, 40, 50, 60, 70, 75, 80, 90
Grid Small, Large, Dotted
Checker Board Small, Large
Diagonals Forward, Backward, Dashed Upward/Downward, Light/Dark/Wide
Upward/Downward
Diamond Dotted, Outlined, Solid
Cross Diagonal
Brick Horizontal, Diagonal
Confetti Small, Large
Others Zig Zag, Wave, Weave, Plaid, Divot, Shingle, Trellis, and Sphere

Patterns consist of the foreground color and the background color that you can change.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-55

To set a pattern
a. In the Style Selection dialog box, click the Pattern tab.

b. Select a pattern. The new pattern appears in the New color box on the right of the dialog box.
c. If you want to change the foreground color of the pattern, click the Foreground color selection
box. The Style Selection dialog box appears. Select a solid color and click OK.
d. If you want to change the background color of the pattern, click the Background color selection
box. The Style Selection dialog box appears. Select a solid color and click OK.
e. Click OK.

InTouch 10.0 – Advanced Application Development Course


3-56 Module 3 – ArchestrA Graphics

Setting a Texture
Textures are images you can use as styles for lines, fills and text. You can stretch the image or tile
the image across the entire element to be filled.
To set a texture
a. In the Style Selection dialog box, click the Textures tab.

b. Click Select Image. The Open dialog box appears. You can import the following image
formats: .BMP, .GIF, .JPG, .JPEG, .TIF, .TIFF, .PNG, .ICO, .EMF. Animated GIF images are
not supported.
c. Browse to and select an image file and click Open. The new pattern appears in the New color
box on the right of the dialog box.
d. Configure the size mode. Do one of the following:
z Click Tile to create a pattern that repeats itself.
z Click Stretch to enlarge (or shrink) the pattern across the selected element.
e. Click OK.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-57

Setting the Style to No Fill


You can set the style to “No Fill”. For example if you set the fill style of a rectangle element to No
Fill, the background of the rectangle appears transparent.
To set the No Fill style
a. In the Style Selection dialog box, click the No Fill tab.

The No Fill style appears as a red cross-through line in the New color box on the right of the
dialog box.
b. Click OK.

Setting the Transparency of a Style


You can set the transparency of a solid color, gradient, pattern, or texture.
To set the transparency of a style
a. Open the Style Selection dialog box.

b. At the bottom of the dialog box, do one of the following:


z Drag the Transparency slider handle.
z In the Transparency text box, type a percentage value.
The new style appears in the New color box.
c. Click OK.

InTouch 10.0 – Advanced Application Development Course


3-58 Module 3 – ArchestrA Graphics

Setting the Transparency Level of an Element


You can set the transparency level of an element. Levels range from 0% (opaque) to 100%
(transparent).
Transparency of a group of elements behaves in a special way.

To set the transparency level of an element


a. Select one or more elements.
b. On the Format menu, click Transparency.

c. To use a predefined level, select it from the list.


d. To use a different level, click More Transparency Levels.
The Select Transparency Level dialog box appears. Type a transparency level in the
Transparency text box or use the slider to select a transparency level. Click OK.

Note: You can also set the transparency level by changing the Transparency property in the
Properties Editor.

Tweaking the Colors and Transparency of a Gradient


You can easily change the colors and transparency of an element with a gradient style.
For example, you can create pipes with a gradient style of different colors. You can change the
pipe color, but still keep the 3-D appearance.
You do this in the Properties Editor using the Color1, Color2, Color3, and Transparency sub-
properties.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-59

To tweak the colors and transparency of a gradient


a. Select the element for which you want to change colors or transparency.
b. In the Properties Editor, locate the appropriate style setting. This can be:
z FillColor
z LineColor
z TextColor
z UnFillColor
c. Click the + icon to expand the property. The Color1, Color2, Color3, and Transparency sub-
properties are shown.
d. Do one of the following:
z Click the color box of one of the color sub-properties.
z Type a new value for the transparency and press Enter. You are done.
e. Click the browse button. The Style Selection dialog box appears.
f. Select a color from the Style Selection dialog box and click OK.
The solid color is applied to the selected element.

Enabling and Disabling Elements for Run-Time Interaction


You can enable or disable elements so that the run time user cannot use any interaction
animations, such as:
z User input.
z Horizontal and vertical sliders.
z Pushbuttons.
z Action scripts.
z Showing and hiding symbols.
Other animations such as horizontal fills and tooltips continue to work as expected.
To enable an element for run-time interaction
a. Select one or more elements you want to enable.
b. In the Properties Editor Runtime Behavior group, set the Enabled property to True.
To disable an element for run-time interaction
a. Select one or more elements you want to disable.
b. In the Properties Editor Runtime Behavior group, set the Enabled property to False.

InTouch 10.0 – Advanced Application Development Course


3-60 Module 3 – ArchestrA Graphics

Changing the Visibility of Elements


You can configure elements to be hidden or shown at run time.
The visibility of an element does not affect its animations. Even when an element is invisible, its
animations continue to be evaluated.
To configure an element to be shown at run time
a. Select one or more elements you want to have shown at run time.
b. In the Properties Editor Runtime Behavior group, set the Visible property to True.
To configure an element to be hidden at run time
a. Select one or more elements you want to have hidden at run time.
b. In the Properties Editor Runtime Behavior group, set the Visible property to False.

Editing the Tab Order of an Element


You can configure the elements on the canvas so that at run time you can use the tab key to put
each element in focus in a specified sequence. This sequence is called the tab order.
By default, when you place elements on the canvas, they have a tab order number of 0. Elements
with the same tab order number are placed into focus by tabbing at run time according to their z-
order. This means they are tabbed through at run time according to their position in the Elements
List.
You can override the tab order by assigning a unique index number to the TabOrder property of
each element.
Lower tab order numbers take precedence over higher tab order numbers. You must change this
value to determine the tab order sequence.

You must also make sure that the TabStop property of each element is set to true. When the
TabStop property is set to true, you can use the tab key at run time to switch to the selected
element.
To edit the element’s tab order
a. Select the element for which you want to set the tab order.
b. In the Properties Editor, ensure that the TabStop property is set to True.
c. Type a unique value for the TabOrder property.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-61

Using the Format Painter to Format Elements


You can apply formatting of one element to other elements quickly by using the format painter.
You can apply the format of one element:
z One time to other elements.
z In repetitive mode to other elements.
When you use the format painter, it copies the following formats of the element if applicable for the
target element(s):
z Font family, size, and style
z Text style, alignment, and word wrap settings
z Line style, weight, pattern, and ends
z Transparency
z Fill style, orientation, behavior, horizontal percent fill, and vertical percent fill
z Unfilled style
z Horizontal and vertical direction properties
You cannot use the format painter for:
z The status element.
z An element that is part of a path.
z Groups of elements.
z Elements in different hierarchy groups.

To copy the format of an element one time


a. Select the element with the format you want to copy.
b. On the Edit menu, click Format Painter. The pointer appears as the format painter cursor.
c. Select the element you want to apply the format to. The format is applied to the clicked
element.

InTouch 10.0 – Advanced Application Development Course


3-62 Module 3 – ArchestrA Graphics

To copy the format of an element in repetitive mode


a. Select the element with the format you want to copy.
b. On the toolbar, double-click the Format Painter icon. The pointer appears as the format painter
cursor.
c. Click each element you want to apply the format to. The format is applied to the clicked
element.
d. Repeat Step 3 for any other elements you want to apply the format to.
e. When you are done, press the Escape key.

Editing the General Properties of a Symbol


You can configure the general properties of a symbol. The general properties determine the
overall appearance and behavior of the symbol. You can:
z Add a meaningful description to your symbol.
z Enable anti-aliasing, or smoothing, for your symbol to improve its appearance. The anti-
aliasing filter essentially blurs the elements slightly at the edges.

z Allow or prevent the opening of more than one symbol or display from a symbol. One
example is a symbol with multiple Show Symbol animations. If this option is enabled, you
can open more than one pop-up and each pop-up is modeless.
To edit the description of a symbol
a. Click on the canvas so that no elements are selected.
b. In the Properties Editor, type a meaningful description for the Description property.
To use smoothing (anti-aliasing) for a symbol
a. Click on the canvas so that no elements are selected.
b. In the Properties Editor, select True for the Smoothing property.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-63

To allow multiple pop-ups for a symbol


a. Click on the canvas so that no elements are selected.
b. In the Properties Editor, select True for the MultiplePopupsAllowed property.

Setting Symbol and Element-Specific Properties


You can configure symbol-specific and element-specific properties.
You can configure:
z General properties of a symbol.
z Radius of rounded rectangles.
z Shape and end appearance of lines and H/V lines.
z Auto-sizing and word-wrapping in text boxes.
z Image-specific properties.
z Button-specific properties.
z Control points and tension in curves.
z Angles in pies, chords, and arcs.
z Status elements.
z Windows common controls.

Setting the Radius of Rounded Rectangles


You can specify the radius, in pixels, of the corners of rounded rectangles. The radius determines
their “roundness”. You can:
z Enlarge or reduce the radius of the rounded rectangle on the fly. The easiest way to do
this is with the keyboard.
z Set the radius of the rounded rectangle to a specific value using the Properties Editor.

Rounded rectangles maintain their radius when their size is changed. If the symbol containing
rounded rectangles is embedded into an InTouch window and resized, the radius is not affected.
This can have adverse affects on the graphic representation of your symbol.
To enlarge the radius of a rounded rectangle
a. Select one or more rounded rectangles on the canvas.
b. Press and hold Shift and the + key on the numeric keypad.
The radius is enlarged, and the rounded rectangle becomes more round.

InTouch 10.0 – Advanced Application Development Course


3-64 Module 3 – ArchestrA Graphics

To reduce the radius of a rounded rectangle


a. Select one or more rounded rectangles on the canvas.
b. Press and hold Shift and the minus (-) key on the numeric keypad.
The radius is reduced, and the rounded rectangle becomes more rectangular.
To set the radius of a rounded rectangle exactly
a. Select one or more rounded rectangles on the canvas.
b. In the Properties Editor, change the value for Radius property and press Enter. The selected
rounded rectangles are updated accordingly.

Setting Line End Shape and Size


You can set the line end shape and size for any element that contains open lines such as lines, H/
V lines, polylines, curves, and arcs.
For a line end, you can set the shape to be an arrowhead, diamond, circle, or square. You can set
the size if the line end shape is an arrowhead.

To set the line end shape


a. Select one or more elements.
b. On the Format menu, click Line Ends.

c. To use a predefined line end shape, select it from the list.


d. To use another line shape, click More Line Options. The Select Line Options dialog box
appears. Do the following:

z In the Line Start list, click a shape for the start of the line.
z In the Line End list, click a shape for the end of the line.
z Click OK.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-65

To set the size of the line arrowheads


a. 1 Select one or more open line elements.
b. On the Format menu, click More Line Options. The Select Line Options dialog box appears.
c. Select a size on the Line Start Size list if the line starts with an arrowhead. Valid sizes are: XX
Small, X Small, Small, Medium Small, Medium, Medium Large, Large, X Large, XX Large.
d. Select a size on the Line End Size list if the line ends with a shape.
e. Click OK.

Note: You can also set the line end shapes by changing the StartCap and EndCap properties
in the Properties Editor.

Setting Auto Scaling and Word Wrapping for a Text Box


You can configure a text box to auto scale the text or to word wrap the text within the text box.

z For auto scaling, the text is resized to fit the text box.
z For word wrapping, the text in a text box continues in the next line.
To auto scale the text in a text box
a. Select one or more text boxes.
b. In the Properties Editor, set the AutoScale property to true.
To word wrap the text in a text box
a. Select one or more text boxes.
b. In the Properties Editor, set the WordWrap property to true.

Using Images
You can place images on the canvas. This is a two step process:
a. Draw a frame which specifies the target size of the image.
b. Import the image from an image file.
After you place an image on the canvas, you can:
z Set the display mode (ImageStyle).
z Set the image alignment (ImageAlignment).
z Set the transparency color (HasTransparentColor, TransparentColor properties).
z Open the image in an image editing application.
z Select a different image for the image element.

InTouch 10.0 – Advanced Application Development Course


3-66 Module 3 – ArchestrA Graphics

Placing an Image on the Canvas


You can place an image on the canvas. The image data must come from an image file. You can
import the following image formats: .BMP, .GIF, .JPG, .JPEG, .TIF, .TIFF, .PNG, .ICO, .EMF.
You cannot use animated GIF images.
To place an image on the canvas
a. In the Tools panel, select the image icon.
b. Click the canvas where you want to place the image and drag the mouse to draw a rectangle
that will contain your image.
c. Release the mouse button. The Open dialog box appears.
d. Browse to and select an image file, and then click Open. The image is loaded into the image
frame. If the image frame is smaller than the image, the image is cropped to fit into the frame.
If the image frame is larger than the image, the image appears in its original size.

Setting the Image Display Mode


You can set the way the image appears on the canvas.
z In normal mode, the image is not stretched or tiled. You can resize the image frame with
the resizing handles.
z In stretch mode, the image is stretched so that it fills its frame.
z In tile mode, the image is repeated so that a tiled pattern that fills its frame is created.
z In auto mode, the image frame is enlarged or reduced to the image size. The resizing
handles are locked. When the image style of an image element is Auto, you cannot
change its size.
To stretch an image to the image frame
a. Select the image element you want to stretch.
b. In the Properties Editor, select ImageStyle.
c. In the list, click Stretch. The image is stretched to the image frame.

To tile an image in an image frame


a. Select the image element you want to tile.
b. In the Properties Editor, select ImageStyle.
c. In the list, click Tile. The image is tiled to fill the image frame.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-67

To set an image frame size to its image size


a. Select the image element you want to adjust.
b. In the Properties Editor, select ImageStyle.
c. In the list, click Auto. The image frame is enlarged or reduced to the image size.

Setting the Image Alignment


The image alignment specifies where the image appears in an image frame. By default, images
appear in the center of the image frame. You can change this setting to one of the following:
z Top left, top center, or top right
z Middle left, center, or middle right
z Bottom left, bottom center, or bottom right

Note: You can also set the image alignment in the ImageAlignment property in the Properties
Editor.

To set the image alignment


a. Select the image element with the image you want to align.
b. In the Properties Editor, select ImageAlignment.
c. In the list, click one of the following options: TopLeft, TopCenter, TopRight, MiddleLeft,
Centers, MiddleRight, BottomLeft, BottomCenter or BottomRight. The image is aligned
accordingly in the image frame.

InTouch 10.0 – Advanced Application Development Course


3-68 Module 3 – ArchestrA Graphics

Setting the Image Color Transparency


Image color transparency lets you define a certain color within an image to be partially or entirely
transparent. When you configure image transparency, you must:
z Enable color transparency for images.
z Specify the color that is to be used for transparency.
Setting the image color transparency is different than setting the transparency of the image
element, as it only applies to one color. Image transparency applies to the entire image.
To enable image color transparency
a. Select the image element.
b. In the Properties Editor, select HasTransparentColor.
c. In the list, click True.
To set the transparency color for an image
a. Select the image element.
b. On the Edit menu, click Select Image Transparent Color. The pointer becomes a color picker.
c. Click the color you want to use as the transparency color. The image is updated with the new
transparency color.

Note: You can also select a transparency color with the TransparentColor property in the
Properties Editor.

Editing the Image


You can edit the image in an image element by opening it in an image editing application.
You can specify the image editor by changing the designer preferences.

To edit an image
a. Select the image element with the image you want to edit.
b. On the Edit menu, click Edit Image. The image is opened with the associated image editing
application.
c. Make changes to the image as needed, save the image and close the image editing
application. The image is updated on the canvas.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-69

Setting the Image Editing Application


You can specify the image editor that opens when you select it edit an image.
You can select a currently registered image editing application or add one.
To set the image editing application
a. On the Special menu, click Preferences. The Designer Preferences dialog box appears.

b. Select an image editor from the Image Editor list.


To add an image editing application
a. On the Special menu, click Preferences. The Designer Preferences dialog box appears.
b. In the Image Editor list, click Choose Custom Editor. The Select Image Editing Application
dialog box appears.

c. Browse to and select the executable of the image editing application and click Open. The
image editor is added to the list.

InTouch 10.0 – Advanced Application Development Course


3-70 Module 3 – ArchestrA Graphics

Selecting a Different Image


You can change the current image of an image element by selecting a new image.
To select a different image
a. Select the image element with the image you want to change.
b. On the Edit menu, click Select Image. The Open dialog box appears.
c. Browse to and select an image file, and then click Open. The image is loaded into the image
frame.

Note: You can also select a different image by clicking the browse button in the Image
property in the Properties Editor.

Using Buttons
You can use buttons in ArchestrA Symbols. Buttons show a text caption or an image. If they show
a text caption, you can:
z Automatically scale the font size
z Configure the text to wrap within the button

Automatically Scaling Text in Buttons


You can automatically scale text so that the font size is adapted to the button size.
To automatically scale text in buttons
a. Select the button element on the canvas.
b. In the Properties Editor, set the AutoScale property to True.

Wrapping Text in Buttons


You can wrap text in buttons.
To wrap text in buttons
a. Select the button element on the canvas.
b. In the Properties Editor, set the WordWrap property to True.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-71

Configuring Buttons with Images


You can use buttons with an image in ArchestrA Symbols.
z The “up” image is the image that appears when the button is released at run time
z The “down” image is the image that appears then the button is pressed at run time
You can edit an up image or a down image after you assign it to a button.
To use a down image or up image on a button
a. Select the button element on the canvas.
b. In the Properties Editor, select Image in the property ButtonStyle list.
c. Click the browse button of the UpImage property and select an image in the Open dialog box.
This is the image that appears on the button by default and also when the button is released.
d. Click the browse button of the DownImage property and select an image in the Open dialog
box. This is the image that appears on the button when the button is clicked on.
To edit an up image or a down image of a button
a. Right-click the button element on the canvas. The context menu appears.
b. Click Edit Button Image, then click one of the following:
z Edit Up Image
z Edit Down Image
The up image or down image is opened in the default image editor.
c. Edit the image.
d. Save the image and close the image editor. The up image or down image is updated.

Editing Control Points


Control points determine the shapes of polylines, polygons, curves, and closed curves. To change
the shape of these elements after they have been placed on the canvas, you can:
z Move individual control points.
z Add or remove control points.

InTouch 10.0 – Advanced Application Development Course


3-72 Module 3 – ArchestrA Graphics

Moving Control Points


After you place a polyline, polygon, curve, or closed curve on the canvas, you can change its
shape by editing its control points.
To move the control points of a polyline, polygon, curve, or closed curve
a. Select the polyline, polygon, curve, or closed curve.
b. On the Edit menu, click Edit Control Points. The control points of the element are shown.

c. Click a control point you want to change and drag it to the new location. The element is
updated accordingly.
d. Repeat the previous step for all control points you want to change.

Adding and Removing Control Points


You can add or remove control points from polylines, polygons, curves, and closed curves.

To add control points to a curve or closed curve


a. Select the curve or closed curve.
b. On the Edit menu, click Edit Control Points. The control points of the element are shown.
c. Press and hold the Shift key.
d. Move the mouse over the curve or closed curve at the point you want to add a control point.
The pointer appears as a pen with a plus symbol.
e. Click the curve or closed curve. The control point is added to the curve or closed curve.
f. Repeat the last step for any other control points you want to add.
g. When you are done, release the Shift key.

To delete control points from a curve or closed curve


a. Select the curve or closed curve.
b. On the Edit menu, click Edit Control Points. The control points of the element are shown.
c. Press and hold the Shift key.
d. Move the mouse over the control point you want to remove. The pointer appears as a pen with
a minus symbol.
e. Click the control point. The control point is removed from the curve or closed curve.
f. Repeat the last step for any other control points you want to remove. You must have at least
two control points.
g. When you are done, release the Ctrl key.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-73

Changing the Tension of Curves and Closed Curves


After you place a curve or a closed curve, you can change its tension. The tension specifies how
tightly the curve bends through the control points. Valid range are float values from 0 (tightly) to 2
(loosely).

Note: You can also change the tension of a curve or closed curve by changing the value for the
Tension property in the Properties Editor.

To edit the tension of a curve or closed curve


a. Select the curve or closed curve.
b. In the Properties Editor, type a float value from 0 to 2 for the Tension property.

Changing Angles of Arcs, Pies and Chords


After you place an arc, pie, or chord, you can change the start angle and sweep angle of these
elements.
You can change the angles to any integer degree from 0 to 359. When you change the angles, you
can press the Shift and Ctrl key to make the angle snap to multiples of 15 or 45 degrees.
You can also move the start angle and sweep angle at the same time. The object appears to be
“rotated” around its arc/pie/chord center point while keeping the same center point angle.

Note: You can also change the start or sweep angle of an arc, pie or chord in the StartAngle or
SweepAngle properties in the Properties Editor.

InTouch 10.0 – Advanced Application Development Course


3-74 Module 3 – ArchestrA Graphics

To change the start or sweep angle of an arc, pie, or chord


a. Select the arc, pie, or chord.
b. On the Edit menu, click Edit Start and Sweep Angles. The start and sweep angle handles
appear on the selected element.

c. If you want to the angle to be multiples of 15 degrees, press and hold the Shift key.

d. If you want to the angle to be multiples of 45 degrees, press and hold the Ctrl key.

e. Grab the start angle or the sweep angle handle and drag it to the new location. The element is
updated accordingly.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-75

To change the start and sweep angle of an arc, pie, or chord together
a. Select the arc, pie, or chord.
b. On the Edit menu, click Edit Start and Sweep Angles. The start and sweep angle handles
appear on the selected element.
c. Select the start angle or the sweep angle handle and keep the mouse button down.
d. Press and hold the Alt key.
e. If you want additionally either angles to be multiples of 15 degrees, press and hold the Shift
key.
f. If you want additionally either angles to be multiples of 45 degrees, press and hold the Ctrl
key.
g. Drag the mouse. The start angle and sweep angle are changed accordingly.

h. When you are done, release the mouse button and then any keys.

InTouch 10.0 – Advanced Application Development Course


3-76 Module 3 – ArchestrA Graphics

Organizing Symbols in the Toolbox


In the Graphic Toolbox, you can organize your symbols by creating a folder hierarchy as you
would with files and folders in Microsoft Explorer. You can move symbols around within the folder
hierarchy. These folders are called Graphic Toolsets.

Creating Graphic Toolsets in the Toolbox


You can create Graphic Toolsets in the Graphic Toolbox to organize your symbols. For example
you can create a Graphic Toolset called “Valves” to store all different types of valve symbols.
To create a Graphic Toolset in the Toolbox
a. Open the Graphic Toolbox.
b. Select either the Graphic Toolset under which you want to create a new Graphic Toolset or
the Galaxy name if there are currently no Graphic Toolsets.
c. On the Galaxy menu, point to New, and then click Graphic Toolset.
A new Graphic Toolset is created with a default name.
d. Rename the new Graphic Toolset as desired.

Moving Symbols between Graphic Toolsets


You can move symbols from one Graphic Toolset in the Graphic Toolbox to another. Moving
symbols between Graphic Toolsets does not affect the functionality of any of its child symbols.
To move symbols between Graphic Toolsets in the Toolbox
a. Open the Graphic Toolbox and locate the symbol you want to move.
b. Drag the symbol to the Graphic Toolset you want to place it in.
The symbol is moved to the new Graphic Toolset.

Note: To move the symbol to the top level in the Graphic Toolset hierarchy, drag the symbol
to the Galaxy name icon.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-77

Renaming Symbols
You can rename a symbol at any time. Renaming a symbol does not affect the functionality of any
its child symbols.

Note: Symbol names must be unique within the whole hierarchy of the Graphic Toolbox.

To rename a symbol in the Toolbox


a. Open the Graphic Toolbox.
b. Select the symbol you want to rename.
c. Click Edit and then Rename.
The symbol name is in edit mode.

d. Type a new unique name for the symbol and press Enter.
The symbol is renamed.

Renaming Graphic Toolsets


You can rename a Graphic Toolset at any time. Renaming a Graphic Toolset does not affect the
functionality of any symbols it contains.
To rename a Graphic Toolset in the Toolbox
a. Open the Graphic Toolbox.
b. Select the Graphic Toolset you want to rename.
c. Click Edit and then Rename.
The Graphic Toolset name is in edit mode.
d. Type a new unique name for the Graphic Toolset and press Enter.
The Graphic Toolset is renamed.

InTouch 10.0 – Advanced Application Development Course


3-78 Module 3 – ArchestrA Graphics

Deleting Graphic Toolsets


You can delete a Graphic Toolset in the Graphic Toolbox at any time.

Note: You can only delete Graphic Toolsets that do not contain any symbols. Move the symbols
to another Graphic Toolset or delete them before deleting the Graphic Toolset.

To delete a Graphic Toolset in the Toolbox


a. Open the Graphic Toolbox.
b. Select the Graphic Toolset you want to delete.
c. Click Edit and then Delete.
The Delete Graphic Toolset dialog box appears.

d. Click Yes.
The Graphic Toolset is deleted.

Moving Graphic Toolsets


You can move a Graphic Toolset within the Graphic Toolset hierarchy of the Graphic Toolbox. If
you move a Graphic Toolsets, all symbols and Graphic Toolsets it contains are also moved.
To move a Graphic Toolset in the Toolbox
a. Open the Graphic Toolbox.
b. Locate the Graphic Toolset you want to move.
c. Drag it to the Graphic Toolset you want to place it in.
The Graphic Toolset is moved to the new Graphic Toolset.

Note: To move the Graphic Toolset to the top level in the Graphic Toolset hierarchy, drag the
Graphic Toolset to the Galaxy name icon.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-79

Customizing Graphic Toolsets


You can hide or show Graphic Toolsets after creating them. You can either do this for selected
Graphic Toolsets or for all Graphic Toolsets.
To customize Graphic Toolsets
a. Open the Graphic Toolbox.
b. Right-click the Galaxy icon in the Graphic Toolbox and
click Customize Toolsets from the context menu.
The Customize Toolsets dialog box appears.

c. To hide Graphic Toolsets, clear the check box next to the Toolsets you want to hide.
d. To show Graphic Toolsets, check the check box next to the Toolsets you want to show.
e. To select or unselect all Toolsets, click the Check All or Uncheck All buttons.
f. When you are done, click Close.
The selected Graphic Toolsets are either shown or hidden depending on your settings.

InTouch 10.0 – Advanced Application Development Course


3-80 Module 3 – ArchestrA Graphics

Opening Symbols for Editing


You can either start the ArchestrA Symbol Editor from a symbol:
z Contained in the Graphic Toolbox.
z Contained in an Automation object template or instance.
z Inserted in an InTouch window.
When you open a symbol in the ArchestrA Symbol Editor, it is checked-out. No other user can edit
the symbol until you check the symbol in again.

Note: You can open multiple instances of the ArchestrA Symbol Editor at the same time.
However, you cannot edit the same symbol in multiple instances of the ArchestrA Symbol Editor

To edit a symbol in the Graphic Toolbox


a. Open the Graphic Toolbox.
b. Locate the symbol you want to edit by browsing in the Graphic Toolbox.

c. Double-click it.
The ArchestrA Symbol Editor opens.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-81

d. Now you can edit your symbol.


For specific information about using the drawing tools, see Creating and Managing ArchestrA
Graphics User’s Guide Chapter 5 - Working with Graphic Elements.
e. When you are done, click Save and Close.
The ArchestrA Symbol Editor is closed and the To edit a symbol that is embedded in an
InTouch window
To edit a symbol that is embedded in an InTouch window
a. In WindowMaker, open the InTouch window that contains the embedded symbol.
b. Right-click the embedded symbol you want to edit.
Select the symbol name.
The ArchestrA Symbol Editor opens.
c. Now you can edit your symbol.
For specific information about using the drawing tools, see Creating and Managing ArchestrA
Graphics User’s Guide Chapter 5 - Working with Graphic Elements.
d. When you are done, click Save and Close.
The ArchestrA Symbol Editor is closed and the updated symbol is checked in.

Note: To leave the symbol checked-out, click Keep Checked Out in the ArchestrA Symbol
Editor. This ensures that no other user can check out your symbol for editing.

Importing and Exporting Symbols as ArchestrA Object Files


You can import and export symbols as ArchestrA Automation object files.
When you export (or import) templates or instances that contain symbols, the symbols are
exported (imported) with the template or instance.
When you export (import) all automation objects, the contained symbols and the symbols in the
graphic toolsets are also exported (imported).
When you export an Automation object A that contains symbols, if these symbols:
z contain embedded symbols from the Graphic Toolbox, these symbols are exported along
with the symbols associated with the Automation object.
z contain embedded graphics from other Automation objects, these symbols (including any
embedded symbols from the Graphic Toolbox contained in them) and their parent
Automation object are not exported with Automated object A. They remain as references,
and upon import, the system tries to reestablish the connection with those exact
references in the target Galaxy.

InTouch 10.0 – Advanced Application Development Course


3-82 Module 3 – ArchestrA Graphics

Importing Symbols
You can import symbols and graphic toolsets from a symbol .aaPKG file.
To import symbols from a symbol .aaPKG file
a. On the Galaxy menu, point to Import, and then click Object(s).
The Import Automation Object(s) dialog box appears.
b. Select one or more symbol .aaPKG files you want to import and click Open.
The Import Preferences dialog box appears.
c. Select the appropriate options for the object version mismatch and object name conflict and
click OK. The symbols and graphic toolsets are imported.
d. Click Close.

Exporting Symbols
You can export symbols to a symbol .aaPKG file.
To export symbols to a symbol .aaPKG file
a. In the Graphic Toolbox, select the symbols that you want to export.
b. On the Galaxy menu, point to Export, and then click Object(s).
The Export Automation Object(s) dialog box appears.
c. Browse to the save location and type a name for the symbol .aaPKG file.
d. Click Save. The symbols and their toolset folders are exported.
e. Click Close.

Wonderware Training
Section 1 – Creating and Managing Symbols 3-83

Deleting a Symbol
You can delete a symbol you no longer want. Deleting a symbol removes it completely from the
Industrial Application Server. You can delete a symbol from the Graphic Toolbox or from an
Automation Object in the ArchestrA Symbol Editor.
z When you delete a symbol, you are shown where the symbol is used. This lets you
understand the impact of deleting the symbol before you actually delete it.
z You cannot delete symbols that someone else has open for editing or left checked out.
z If you delete a symbol from an Automation Object, the symbol still appears to other users
until you check in the Automation Object.
z If you delete a symbol that is used in an InTouch window, it is not deleted from that
window. However, the ArchestrA animation links no longer work and you cannot edit the
symbol with the ArchestrA Symbol Editor.
To delete a symbol
a. Do one of the following:
z Open the Graphic Toolbox.
z Open the Automation Object with the symbol you want to delete.
Click the Graphics tab.
b. Select the symbol you want to delete and click Delete.
The Delete confirmation dialog box appears.

c. At the prompt, review the places this symbol is being used, if any.
d. Click Yes. The symbol is deleted.

Note: You can also delete multiple symbols at the same time.

Copying a Symbol

You can copy a symbol by saving it to another location and renaming it.
To copy a symbol:
a. Select a symbol.
b. Export the symbol to the Graphic Toolbox.
c. Rename the symbol in the Graphic Toolbox.
d. Re-import the object.

InTouch 10.0 – Advanced Application Development Course


3-84 Module 3 – ArchestrA Graphics

Viewing a Symbol in Read-Only Mode


You can view a symbol in read-only mode if you don’t want to edit it, or if it is checked out by
somebody else.
To view a symbol in read-only mode
a. In the Graphic Toolbox, select the symbol that you want to view in read-only mode.
b. On the Galaxy menu, click Open Read-Only.
The selected symbol opens in the ArchestrA Symbol Editor.

Note: If you open a symbol in read-only mode, you still have access to all functions in the
ArchestrA Symbol Editor that do not change the symbol.

Wonderware Training
Section 2 – Using ArchestrA Symbols in WindowMaker 3-85

Section 2 – Using ArchestrA Symbols in WindowMaker

Section Objectives
z Embed ArchestrA Symbols in InTouch.

You can use ArchestrA Symbols that are created with the ArchestrA Symbol Editor in the IDE in
your IDE-managed InTouch application.

ArchestrA IDE InTouch WindowMaker

InTouchViewApp
IDE-Managed InTouch
Automation Manages
Applications
Object (Template)

Provides
ArchestrA
Symbols InTouch WindowViewer

ArchestrA Symbol Test Application


Editor

Templates and
Instances
IDE-Managed InTouch
Provides Applications
ArchestrA
Symbol Functionality

You can:
z Insert ArchestrA symbols into an InTouch window.
z Configure inserted ArchestrA symbols.
z Start the ArchestrA IDE Symbol Editor.
z Test the ArchestrA Symbols in WindowViewer.
z Create a new Instance of the Automation object that is hosting the inserted ArchestrA
Symbol.

InTouch 10.0 – Advanced Application Development Course


3-86 Module 3 – ArchestrA Graphics

Inserting ArchestrA Symbols into an InTouch Window


You can insert an ArchestrA symbol into the InTouch Windows of your IDE-managed InTouch
application.
The ArchestrA symbol may either be part of:
z The Graphic Toolbox.
z An ArchestrA object template.
z An ArchestrA object instance.

Note: You cannot insert ArchestrA Symbols into windows of stand alone InTouch applications.
Instead, convert the IDE-managed InTouch applications to stand alone InTouch applications.
ArchestrA symbols are converted, but can not be edited.

Inserting ArchestrA Symbols from the Graphic Toolbox


You can insert ArchestrA symbols from the Graphic Toolbox.

a. In WindowMaker, on the Edit menu, click Embed ArchestrA Symbol.


The Galaxy Browser dialog box appears.

b. Click the Graphic Toolbox icon. The Graphic Toolbox list appears on the left.

c. Select the ArchestrA symbol you want to insert and click OK.
The insertion icon appears if the mouse is over the InTouch window.
d. Click on the InTouch window where you want to insert the ArchestrA symbol.
The object is inserted on the InTouch window.

Wonderware Training
Section 2 – Using ArchestrA Symbols in WindowMaker 3-87

Configuring ArchestrA Symbols in WindowMaker


You can configure inserted ArchestrA symbols in the following ways:
z Standard editing, such as copying, cutting, pasting, duplicating, resizing, moving and
deleting.
z Configuring WindowMaker animation links.
z Connect an ArchestrA symbol with InTouch tagnames.
z Selecting an alternate instance of the same parent.
z Selecting an alternate symbol of the same instance.
z Resizing the inserted ArchestrA symbol to its original size.
z Enabling or disabling dynamic size propagation.

Configuring WindowMaker Animation Links of an ArchestrA Symbol


You can configure WindowMaker animation links of an inserted ArchestrA Symbol in the same
way as any other InTouch object. You can only configure animation links that are external to the
inserted ArchestrA Symbol. These are:
z Object size.
z Object location.
z Visibility.
z Orientation.
z Enablement.

Note: The animation links configured in WindowMaker are independent from those configured in
the ArchestrA Symbol Editor. They do not inherit the settings of the ArchestrA symbol and take
precedence when run in WindowViewer.

To configure WindowMaker animation links of an inserted ArchestrA symbol


a. Select the inserted ArchestrA symbol.
b. From the Special menu, select Animation Links.
The Animation Links dialog box appears.

c. Make any changes as you would to any other InTouch object.


d. When you are done, click OK.

InTouch 10.0 – Advanced Application Development Course


3-88 Module 3 – ArchestrA Graphics

Substituting Strings in an ArchestrA Symbol


You can substitute all strings in an inserted ArchestrA Symbol with alternate strings.
To substitute all strings in an inserted ArchestrA symbol
a. Select the inserted ArchestrA symbol.
b. On the Special menu, point to Substitute, and then click Substitute Strings.
The Substitute Strings dialog box appears.
c. Type new strings in the corresponding boxes and click OK.
The strings in the inserted ArchestrA symbol are substituted by the new alternate strings.

Substituting References in an ArchestrA Symbol


You can substitute all references in an inserted ArchestrA Symbol with alternate references.
To substitute all references in an inserted ArchestrA symbol
a. Select the inserted ArchestrA symbol.
b. On the Special menu, click Substitute Tags.
The Substitute Tags dialog box appears.
c. Type new references in the corresponding boxes and click OK.
The references in the inserted ArchestrA symbol are substituted by the new alternate
references.

Resizing the Inserted ArchestrA Symbol to its Original Size


You can resize the inserted ArchestrA Symbol to its original size when created in the ArchestrA
Symbol Editor.
To resize an inserted ArchestrA symbol to its original size
a. Select the inserted ArchestrA symbol you want to change to its original size.
b. On the Special menu, point to ArchestrA Graphic ‘name’,
and then click Symbol - Original Size.
The inserted ArchestrA symbol is changed to its original size.

Wonderware Training
Section 2 – Using ArchestrA Symbols in WindowMaker 3-89

Enabling or Disabling Dynamic Size Change of Inserted ArchestrA Symbols


You can enable or disable the dynamic size change of inserted ArchestrA symbols.
If the dynamic size change is enabled, any changes to the absolute anchor point position of the
parent symbol:
z Leave the anchor points of its child symbols unchanged.
z Move the child symbol position accordingly.
If the dynamic size change is disabled, any changes to the absolute anchor point position of the
parent symbol:
z Move the anchor points of its child symbols accordingly.
z Leave the child symbol position unchanged.

Note: For more information about dynamic size propagation, see Creating and Managing
ArchestrA Graphics User’s Guide.

To enable or disable dynamic size change of an inserted symbol


a. Select the inserted ArchestrA symbol.
b. On the Special menu, point to ArchestrA Graphic ‘name’, then check or uncheck Dynamic
Size Propagation.

Editing ArchestrA Symbols in the ArchestrA Symbol Editor


You can edit inserted ArchestrA symbols with the ArchestrA Symbol Editor that is integrated in the
ArchestrA IDE. This is done in two steps:
a. Open the inserted ArchestrA symbol in ArchestrA Symbol Editor, modify the symbol and
save it. The ArchestrA symbol is updated in object template, instance or in the Graphic
Toolbox.

b. Accept the changes in WindowMaker by clicking on the Symbol Changed icon in the
status bar. The changes are then propagated to WindowMaker.

InTouch 10.0 – Advanced Application Development Course


3-90 Module 3 – ArchestrA Graphics

Editing an Inserted ArchestrA Symbol


You can easily edit an inserted ArchestrA symbol from within InTouch WindowMaker.
If the symbol or its children are used by other IDE-managed InTouch applications, the changes are
propagated to the children and the InTouch applications.
To edit inserted ArchestrA symbols with the ArchestrA Symbol Editor
a. Select the inserted ArchestrA symbol.
b. On the Special menu, point to ArchestrA Graphic Object "name",
and then click Edit Symbol.
The ArchestrA Symbol Editor with the ArchestrA symbol appears.

c. Edit the ArchestrA symbol.


For more information, see the Creating and Managing ArchestrA Graphics User’s Guide.
d. When you are done, click Close and Save.
The changes are saved and the ArchestrA Symbol Editor closes.
e. If the ArchestrA object is hosted by an object instance or object template, save and close the
object editor in the IDE.

Wonderware Training
Section 2 – Using ArchestrA Symbols in WindowMaker 3-91

Accepting Symbol Changes in WindowMaker


After an ArchestrA symbol has changed and you are currently using it in WindowMaker, you can
accept the change in WindowMaker.
To accept symbol changes in WindowMaker
Either:

z Double-click the Symbol Changed icon in the status bar.


z Close the InTouch window containing the inserted ArchestrA symbol and open it again.
In both cases the changes made to the ArchestrA symbol are reflected in the inserted symbol in
the InTouch window.

Accepting Symbol Changes in WindowViewer


After an ArchestrA symbol has changed and you are currently testing it in WindowViewer, you can
accept the change in WindowViewer.
For more information about testing inserted ArchestrA symbols, see InTouch ArchestrA Integration
Guide - Chapter 3 Using ArchestrA Symbols in WindowMaker - Testing ArchestrA Symbols in
WindowViewer.
To accept symbol changes in WindowViewer when testing
Either:
z Fast-switch to WindowMaker and then back to WindowViewer.
z Close the InTouch window and open it again.
In both cases the changes made to the ArchestrA symbol are reflected in the inserted ArchestrA
symbol in the InTouch window.

InTouch 10.0 – Advanced Application Development Course


3-92 Module 3 – ArchestrA Graphics

Testing ArchestrA Symbols in WindowViewer


You can test the inserted ArchestrA symbol in an InTouch window without having to derive an
InTouchViewApp instance. You can test an inserted ArchestrA symbol, if you have previously:
z Created an ArchestrA symbol in the Graphic Toolbox,
in an automation object template or automation object instance.
z Created an IDE-managed InTouch application.
z Inserted the ArchestrA symbol in the IDE-managed InTouch application.

Development and Testing Process of


ArchestrA Symbols

ArchestrA Symbol Editor

Modify
Create
ArchestrA
ArchestrA
Symbol and
Symbol
Save

WindowMaker

Insert
ArchestrA Accept
Symbol into Changes in
InTouch WindowMaker
Window

WindowViewer

Test ArchestrA
Fast Switch to Fast Switch to
Symbol in
WindowViewer WindowMaker
WindowViewer

To test inserted ArchestrA symbols in WindowViewer


a. From WindowMaker, click Runtime to switch to WindowViewer.
b. Test the animations, behavior and appearance of the inserted symbol(s) as you would with a
normal run-time environment.

Note: You can fast-switch back to WindowMaker to make changes to the way the ArchestrA
symbol is inserted.

To change and test inserted ArchestrA symbols in WindowViewer


a. Make changes to the ArchestrA symbol in the IDE.
b. Save the changes. If WindowViewer is:
z Open then after a short while, a message appears in WindowViewer asking you to accept
the changes. Click Yes.
z Closed then you can fast-switch from WindowMaker to WindowViewer to see your
changes.

Note: After you have made changes to an ArchestrA symbol and saved it, it is faster to close
WindowViewer and to re-open WindowViewer than to wait for the changes to propagate to the
open WindowViewer session.

Wonderware Training
Lab 3 – Symbol Creation 3-93

Lab 3 – Symbol Creation


Introduction
In this lab, you will create a Symbol that will be used to visualize the Galaxy from Lab 1 and the
Reactor process from Lab 2.

Objectives
Upon completion of this lab, you will be able to:
z Use the ArchestrA Symbol editor and the drawing tools
z Create a new tank symbol

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

The IDE should be open from the last lab.


a. Create a New Graphic Toolset, named Class Symbols.
b. Create a New Symbol named Main_Reactor.
c. Draw a basic tank outline and place a rectangle on it for a view of the level in the tank.
d. Rename the element Main_Tank.
e. Color the Main_Tank and add four pipes:
z GatePipe
z ValveAPipe
z ValveBPipe
z DrainPipe

f. Save the symbol.


g. Embed MainTank into an InTouch Window named NewReactor.

See the next page for Detailed Lab Instructions

InTouch 10.0 – Advanced Application Development Course


3-94 Module 3 – ArchestrA Graphics

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Draw the Main Tank


1. If the IDE is not open, launch the ArchestrA IDE and connect to your Galaxy.
2. Click the Graphic Toolbox tab.
3. Right-click on the Galaxy root and create a New / Graphic Toolset, named Class Symbols.
4. Right-click on Class Symbols and create a New / Symbol called Main_Reactor.

5. Double-click Main_Reactor to open the new symbol editor.


The ArchestrA Symbol editor opens.

Wonderware Training
Lab 3 – Symbol Creation 3-95

6. Use the 3-Point Arc tool and draw an arc like the one shown below.
Hint: Click following the numbers shown below.

7. Use the PolyLine tool and draw a polyLine like the one shown below.
Hint: Click following the numbers shown below.

When completed, the two objects should look like this:

InTouch 10.0 – Advanced Application Development Course


3-96 Module 3 – ArchestrA Graphics

8. Select both the PolyLine and Arc objects.

9. Click the Path Combine icon from the toolbar above the canvas to transform the
PolyLine and the Arc into a solid shape.

10. Using the Elements list or the Properties pane, rename the object MainTank.

Note: The name will change in both places any time an edit is made.

Wonderware Training
Lab 3 – Symbol Creation 3-97

11. Using the Fill Color button on the toolbar, bring up the Gradient options and select a gradient
color similar to the one shown below.

Note: Using a Point Based gradient with a Height of 100 and a Bell Color distribution allows
the gradient shading to more accurately follow the shape of a complex object.

Note: Once shaded, you can adjust he size of the object as necessary.

InTouch 10.0 – Advanced Application Development Course


3-98 Module 3 – ArchestrA Graphics

12. Use the Rounded Rectangle tool to draw a fill section for a view into the tank.
Choose an appropriate color for the fill element and rename it TankFill.

For the input and output piping, draw rectangles with gradient shading and the line weight set
to No Line.
13. Draw two rectangles as shown below for the first set of input and output piping.

14. As objects are drawn, they are automatically named.


For clarification purposes, rename the long rectangle Pipe and the short one Flange.

15. Once the objects are named, group them and rename the group GatePipe.

Wonderware Training
Lab 3 – Symbol Creation 3-99

16. Duplicate the GatePipe group three (3) times for total of four sets of pipes.
17. Name the new groups:
z ValveAPipe
z ValveBPipe
z DrainPipe
18. Position the pipes as shown, omitting the text labels.
Resize the pipes as necessary.

19. Click on the blank area of the canvas to deselect everything.


In the Properties Panel in the right pane, select Smoothing and set it to True.
This will enhance the appearance of your object by anti-aliasing all objects for a smoother
look.

Optional: You may also want to select MainTank and set its line weight to No Line.

InTouch 10.0 – Advanced Application Development Course


3-100 Module 3 – ArchestrA Graphics

20. Save your symbol and Close the symbol editor.


Add the comment Initial Design to the Check in box and click OK.

21. Click the Template Toolbox tab.


Double-click AdvancedClass to launch InTouch WindowMaker if not already open.
22. In WindowMaker, create a New Window called NewReactor.

You may wish to re-size this window later.


23. If prompted to copy Window Scripts, click Yes to continue.
24. Click the Embed ArchestrA Graphic icon from the toolbar.

Wonderware Training
Lab 3 – Symbol Creation 3-101

25. Select your Main_Reactor symbol and place it on the NewReactor Window.

InTouch 10.0 – Advanced Application Development Course


3-102 Module 3 – ArchestrA Graphics

Wonderware Training
Section 3 – Using Custom Properties 3-103

Section 3 – Using Custom Properties

Section Objective
z Configure and apply Custom Properties.

This section shows you how to configure and use custom properties to extend the functionality of
symbols and also to use in combination with InTouch tagnames.

Data Type:
- Boolean
- Integer
- Float
- Double
- String
- Time Default Value:
- Elapsed Time - Value
- Reference (Element or Attribute)
- Expression

CUSTOM PROPERTY 1

Description

CUSTOM PROPERTY 2
SYMBOL
CUSTOM PROPERTY 3 Visibility:
- Public Custom Property
...

- Private Custom Property

CUSTOM PROPERTY N

About Custom Properties


Custom Properties let you extend the standard properties of a symbol or an embedded or inserted
symbol. Standard Properties like Height, Width, Angle, and Transparency are common to all
Elements. You can associate Custom Properties with functions you want exposed and that you
want to re-use. You can also use custom properties to connect an inserted ArchestrA symbol to
InTouch tagnames.

InTouch 10.0 – Advanced Application Development Course


3-104 Module 3 – ArchestrA Graphics

Managing Custom Properties


You can manage all custom properties of a symbol in the Edit Custom Properties dialog box.

The Edit Custom Properties dialog box lets you:


z Add and delete custom properties.
z Set the types and data types of custom properties.
z Set the default values of custom properties.
z Determine the visibility of each custom property.
z Add a description for each custom property.
z Validate and clear custom properties.
You can also:
z Link custom properties to external sources.
z Override custom properties with new values.
z Revert custom property values to their default values.

Wonderware Training
Section 3 – Using Custom Properties 3-105

Adding and Deleting Custom Properties


You can add and delete custom properties in the Edit Custom Properties dialog box.
To add a custom property
a. Click the canvas to deselect any elements.
b. On the Special menu, click Custom Properties.
The Edit Custom Properties dialog box appears.

c. Click the Add icon.


A new line is added in the custom properties list.
d. Type a name for the new custom property and press Enter.

You can see the name of the symbol and the custom property in the header of the right side of
the dialog box.

e. Configure the custom property on the right side of the Edit Custom Properties dialog box.
For more information see Creating and Managing ArchestrA Graphics User’s Guide - Chapter
10 Using Custom Properties - Configuring Custom Properties.
f. When finished, click OK.
To delete a custom property
a. Click the canvas to deselect any elements.
b. On the Special menu, click Custom Properties.
The Edit Custom Properties dialog box appears.

c. Select the custom property you want to delete and click the Remove icon.
A confirmation message appears.
d. Click Yes.
The custom property is removed from the custom properties list.
e. When you are done, click OK.

InTouch 10.0 – Advanced Application Development Course


3-106 Module 3 – ArchestrA Graphics

Configuring Custom Properties


You can configure custom properties either when you create them or at a later point of time.
To configure a custom property
a. Click the canvas of the symbol.
b. On the Special menu, click Custom Properties.
The Edit Custom Properties dialog box appears.
c. Select the custom property you want to edit.
The configuration for the selected custom property appears on the right side of the dialog box.

Note: The header of the configuration section shows you the symbol name, for example
Symbol_001, on the right and the custom property name on the left, for example
MyCustomProperty. It can be accessed from scripting as Symbol_001.MyCustomProperty.

d. In the Data Type list, select the data type of the custom property.
You can select one of the following:

Data Type Symbol


Boolean

Elapsed Time

Float

Integer

Wonderware Training
Section 3 – Using Custom Properties 3-107

Data Type Symbol


String

Time

e. If you want to either:


z Make the property read-only at design time and prevent further changes to it when the

symbol is embedded into another symbol, click the Lock icon.


z Make the property read-only at run time and prevent its value being changed,
click the Lock icon.
f. In the Default Value box, type a literal value, reference or expression or browse for a
reference using the Browse icon.
g. If the selected data type is String, Time or Elapsed Time, you can click either the T icon or
label icon.

z Select the T icon to indicate that the default value is a static value.

z Select the label icon to indicate that the default value is a reference to a value.
h. In the Visibility box, select either:
z Public, so that the custom property is visible and can be used in a parent symbol if the
symbol is embedded or inserted.
z Private, so that the custom property is not visible outside of the defining symbol and
cannot be used if the symbol is embedded or inserted.
i. In the Description box, type a meaningful description for the custom property.

Validating Custom Properties


You can validate custom properties to track down and avoid configuration errors.
To validate a custom property
a. Click on the canvas to deselect any elements.
b. On the Special menu, click Custom Properties.
The Edit Custom Properties dialog box appears.

c. Select the custom property you want to validate and click the Validate icon.
Required boxes are highlighted by a red box, possible errors appear in the status area under
the custom properties list.

InTouch 10.0 – Advanced Application Development Course


3-108 Module 3 – ArchestrA Graphics

Clearing the Configuration of Custom Properties


You can clear the configuration of custom properties. This resets the configuration to its default
values.
To clear the configuration of a custom property
a. In the Edit Custom Properties dialog box, select the custom property.

b. Click the Clear icon.


The configured values are reset to their default values.

Linking Custom Properties to External Sources


You can link custom properties of a symbol directly to external sources, either by:
z Configuring Automation objects that point at external sources and then pointing the
custom property at the corresponding attribute reference.
z Configuring a special InTouch reference syntax in the Default Value box. When you insert
the symbol on an InTouch window, the referenced InTouch tagnames connect to the
tagnames of InTouch.

Note: For more information, see Connecting Animations with Custom Properties on page
219, Connecting Animations with InTouch tags on page 220 and the InTouch ArchestrA
Integration Guide.

Overriding Custom Properties


You can override the custom property default values of:
z Embedded symbols within symbols in the ArchestrA Symbol Editor.
z Inserted symbols in InTouch WindowMaker.

Note: When you override the custom property, it appears bold in the custom property list.

z You can override the following custom property values:


z Default value.
z Visibility, but only from public to private, not private to public.
z Description.
z Locked state.
z String mode setting.
You cannot override the Data Type of a custom property.

Reverting to Original Custom Property Values


After you have overridden a custom property value, you can revert it to its original value. This can
also be done for embedded symbols in other symbols and in InTouch WindowMaker.
To revert to the original custom property value

a. In the Edit Custom Properties dialog box, click the Revert icon.
The custom property value is reverted to the original custom property value.

Wonderware Training
Lab 4 – Defining Custom Properties 3-109

Lab 4 – Defining Custom Properties


Introduction
Custom properties are “tag-like items” that allow for the eventual implementation. This lab will
cover the basics of creating custom properties for use in ArchestrA symbols as well as identifying
the custom properties inherited with embedded ArchestrA symbols. This lab builds on the
Main_Reactor symbol created in Lab 3.

Objectives
Upon completion of this lab, you will be able to:
z Create Custom Properties for ArchestrA symbols

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

a. From InTouch NewReactor window, open the Main_Reactor symbol in the Symbol Editor and
add the following Custom Properties:

Custom Property Data Type Default Value Visibility


Level Integer 0 Public
Agitator Boolean

b. Embed the ArchestrA Graphic Valves/ValveDiaphragm onto your canvas.


c. Resize it and place it on one of the pipes on the Main_Tank element.
d. Duplicate the ValveDiaphragm and place it on the remaining three pipes with appropriately
named instances.
e. Embed a Switch Symbol and rename it Start.
f. Switch to WindowMaker and Update the symbol.

See the next page for Detailed Lab Instructions

InTouch 10.0 – Advanced Application Development Course


3-110 Module 3 – ArchestrA Graphics

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Draw the Main Tank


1. Launch WindowMaker if it is not already running and open the NewReactor Window.
2. Right-click your Main_Reactor symbol and select
ArchestrA Graphic “Main_Reactor1” / Edit Symbol.

Note: Pay close attention to the symbol names. This will help you avoid mistakes.

The ArchestrA Symbol Editor will open with Main_Reactor showing.


3. Right-click any blank space and select Custom Properties.

Wonderware Training
Lab 4 – Defining Custom Properties 3-111

The Edit Custom Properties dialog opens.

4. Click the Add Custom Property icon to create a new Custom Property.
5. Name the new Custom Property Level.
By default its Data Type will be Boolean.
6. Change the Data Type to Integer.
Leave the Default Value as 0, and leave the Visibility selected as Public.
You may add a Description if you wish.

InTouch 10.0 – Advanced Application Development Course


3-112 Module 3 – ArchestrA Graphics

7. Create another Custom Property named Agitator with a Data Type as Boolean.
Accept the defaults for Default Value and Visibility.
Click OK to exit the dialog box.
You should see the two Custom Properties listed in the Properties pane of the Symbol Editor.

Wonderware Training
Lab 4 – Defining Custom Properties 3-113

Embed a Symbol From the ArchestrA Symbol Library


Most symbols in the ArchestrA Symbol Library already have predefined functionality. When
you embed an existing ArchestrA Symbol into a symbol you are editing, it will automatically
bring Custom Properties into your symbol, but these will only be accessible via the embedded
graphic.
8. Click the Embed Graphic button on the toolbar.
Expand the ArchestrA Symbol Library and select the Valves folder.
Double-click the ValveDiaphragm symbol and place the symbol on your canvas.

9. Place and size the ValveDiaphragm as shown below.

InTouch 10.0 – Advanced Application Development Course


3-114 Module 3 – ArchestrA Graphics

10. Rename the instance of the ValveDiaphragm to GateValve.

11. In the Elements list in the left pane, right-click on the GateValve symbol and select
Custom Properties.

Note: You can also right-click directly on the symbol.

You will see that there are two Custom Properties associated with this object: FillColor and
Value. These Custom Properties are used to drive predefined animations for the valve.
Also note that you cannot create any new Custom Properties for this object. To do that, you
would have to Edit the Embedded ArchestrA Graphic.
12. Click OK to exit the dialog.

Wonderware Training
Lab 4 – Defining Custom Properties 3-115

13. Repeat the previous steps and place 3 additional valves onto the symbol, renaming their
instances as shown, omitting the text labels.

14. Click the Embed Graphic button one more time.


From the Switches folder, insert a Switch symbol into your symbol.
Rename the instance of the symbol to Start.
The switch should include a Custom Property named Value.

15. Save and Close your symbol and add the appropriate Check-in comments.
16. Switch to WindowMaker.

InTouch 10.0 – Advanced Application Development Course


3-116 Module 3 – ArchestrA Graphics

17. Double-click the Symbol Changed icon in the bottom right corner to see your changes.
18. Double-click on the tank to see the Custom Properties now associated with the object.

19. Click OK when finished.

Wonderware Training
Section 4 – Animating Graphic Elements 3-117

Section 4 – Animating Graphic Elements

Section Objective
z Configure and apply Animation to objects.
z Observe Animation in Runtime.

You can use animations to specify how the element appears at run time. Animations are driven by
data that comes from ArchestrA attribute values and expressions as well as element properties,
and InTouch tags.
You can use:
z Visualization animations, such as visibility, fill style, line style, text style, blinking, percent
fill horizontal, percent fill vertical, horizontal location, vertical location, width, height,
orientation, value display or tooltip.
z Interaction animations, such as disablement, user input, horizontal slider, vertical slider,
pushbutton, action script, show symbol or hide symbol.
z Element-specific animations for Status element and Windows Common Control elements.
Each element in your ArchestrA symbol can have one or more animations.
You can disable and enable individual animations for debugging purposes.
You can also cut, copy and paste animations between elements, regardless of their type. Only
animations that are supported by the target element are pasted.
You can also substitute references and strings in animations.

Note: Not all animations are available for all element types, as some do not make logical sense,
such as line style with a text element. You are not able to select or copy these invalid
combinations.

InTouch 10.0 – Advanced Application Development Course


3-118 Module 3 – ArchestrA Graphics

Adding an Animation to an Element


You can add one or more animations to a single element in your ArchestrA symbol.
To add an animation to an element
a. Select the element to which you want to add an animation.

b. On the Special menu, click Edit Animations or double-click on the Element.


The Edit Animations dialog box appears.

c. Click the Add icon.


The list of animations appears.

Wonderware Training
Section 4 – Animating Graphic Elements 3-119

d. Select an animation from the list. The animation is added to the animation list and you can
configure the selected animation on the right side of the Edit Animations dialog box.

Note: Depending on the animation type you may get an animation state selection panel
instead.

Reviewing which Animations are Assigned to an Element


You can review which animations are assigned to an element and change the number of
animations or their configuration at the same time.
To review which animations are assigned to an element
z Select the element. The assigned animations appear in the Animation Editor.

InTouch 10.0 – Advanced Application Development Course


3-120 Module 3 – ArchestrA Graphics

Showing and Hiding the Animation List


You can show or hide the animation list. If you hide the animation list, the configuration space is
expanded giving you more space to configure the animations.
To hide the animation list

z In the Edit Animations dialog box, click the Hide icon.


The animation list is hidden and the configuration space is expanded.

To show the animation list

z In the Edit Animations dialog box, click the Show icon.


The animation list is shown and the configuration space is reduced to its default width.

Wonderware Training
Section 4 – Animating Graphic Elements 3-121

Removing Animations from an Element


You can remove an animation from an element by using the Edit Animations dialog box.
You can do this for either:
z Individual animations.
z All animations at the same time.
To remove an animation from an element
a. Select the element from which you want to remove an animation.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Select the animation you want to remove from the animation list on the left side of the dialog
box.

d. Click the Remove icon.


A confirmation dialog box appears.
e. Click Yes.
The animation is removed from the list and no longer associated with the element.
To remove all animations from an element
a. Select one or more elements from which you want to remove all animations.
b. On the Edit menu, point to Animations, and then click Clear.
All animations are removed from the selected element(s).

InTouch 10.0 – Advanced Application Development Course


3-122 Module 3 – ArchestrA Graphics

Enabling and Disabling Animations


You can enable or disable animations for an element. When you disable an animation, its
configuration is not lost. This lets you see, for example, each animation independently from each
other.
To disable an animation
a. Select the element.
b. On the Special menu, click Edit Animations. The Edit Animations dialog box appears.
c. Locate the animation you want to disable from the animation list on the left side of the dialog
box.
d. Select Disabled from the list of that row.

e. Repeat for any other animations you want to disable and click OK when you are done.
To enable an animation
a. Select the element.
b. On the Special menu, click Edit Animations. The Edit Animations dialog box appears.
c. Locate the animation you want to enable from the animation list on the left side of the dialog
box.
d. Select Enabled from the list of that row.

e. Repeat for any other animations you want to enable and click OK when you are done.

Wonderware Training
Section 4 – Animating Graphic Elements 3-123

Validating the Configuration of an Animation


You can validate the configuration of an animation.

If the configuration has an error, an exclamation mark is shown next to the animation icon.

Errors include for example:


z Animation is disabled.
z Syntax errors, such as data mismatches.
z Required values not specified.
z Specified values out of valid range.
To validate the configuration of an animation
a. Select the element that contains the animations you want to validate.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Select the animation you want to validate.

d. Click the Validate icon on the right side of the Edit Animations dialog box.
The currently selected animation is validated and possible errors are highlighted in the right
side of the dialog box.

Clearing the Configuration from an Animation


You can clear all data from the configuration boxes of an animation and reset the settings to their
defaults.
To clear all data from the configuration boxes of an animation
a. In the Edit Animations dialog box, select the animation.

b. In the configuration panel, click the Clear icon.


All data from the configuration boxes is cleared and the settings are reset to their defaults.

Connecting Animations with Data Sources


You can connect animations to:
z ArchestrA attributes.
z Element properties.
z Custom properties.
z InTouch tags.

InTouch 10.0 – Advanced Application Development Course


3-124 Module 3 – ArchestrA Graphics

Connecting Animations with Element Properties


You can connect the element behavior and appearance with a property of any element on the
canvas.
You can browse the properties of all elements on the canvas with the Galaxy Browser.

Note: You cannot connect animations to properties of elements that are part of an embedded
symbol on the canvas.

To connect animations to element property references using the Galaxy Browser


a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Select the animation you want to configure from the animation list.
d. Select the parameter you want to configure.
e. Click the Browse button.
The Galaxy Browser appears.
f. Click the Element Browser tab.
The Element Browser panel appears.

g. From the Elements list on the left select an element.


The right side shows the properties of the selected element.
h. Select a property and click OK.
The selected element and property is shown in the configuration box.

Wonderware Training
Section 4 – Animating Graphic Elements 3-125

Connecting Animations with Custom Properties


You can connect the element behavior and appearance with a custom property of either:
z The current symbol.
z An embedded symbol on the canvas.
To connect animations to element property references using the Galaxy Browser
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Select the animation you want to configure from the animation list.
d. Select the parameter you want to configure.
e. Click the Browse button.
The Galaxy Browser appears.
f. Click the Element Browser tab.
The Element Browser panel appears.

g. From the Elements list on the left select the symbol.


The right side shows the custom properties and other properties of the selected symbol.
h. Select a custom property and click OK.
The selected custom property is shown in the configuration box.

Connecting Animations with InTouch tags


You can connect the element behavior and appearance with an InTouch tagname. The InTouch
tagname provides values at runtime that control the behavior and appearance of the element.
This can be done either by:
z Configuring a reference with the intouch:tagname syntax. The animation connects to the
InTouch tagname of the node the symbol is deployed to.
z Using a custom property and configuring the custom property in the inserted ArchestrA
symbol in InTouch to reference an InTouch tag. For more information, see the InTouch
ArchestrA Integration Guide.
z Configuring an ArchestrA attribute reference to the IDE-managed InTouch application
object InTouchViewApp that contains the InTouch tagnames as attributes. This is bound
to a specific node. This is a special case of configuring an ArchestrA attribute reference.
z Configuring an ArchestrA attribute reference to an InTouchProxy object that contains the
InTouch tagnames as items. This is a special case of configuring an ArchestrA attribute
reference.

InTouch 10.0 – Advanced Application Development Course


3-126 Module 3 – ArchestrA Graphics

Note: To configure a reference to use an InTouch SuperTag, use the following syntax:
attribute(“intouch:SuperTag\Member”).

Connecting Animations with InTouchViewApp Attributes


To be able to browse for InTouch tags, you must first:
z Create an IDE-managed InTouch application by deriving an InTouchViewApp object and
configuring it in WindowMaker.
z Derive an instance of the InTouchViewApp object.
The InTouch tags are represented by attributes of the InTouchViewApp object instance.

To connect animations to InTouch tags


a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Select the animation you want to configure from the animation list.
d. Select the parameter you want to configure.
e. Click the Browse button.
The Galaxy Browser appears.
f. Select the InTouchViewApp object that corresponds to the IDE-managed InTouch
application. The right panel is populated with InTouch tags.

g. Select a tag and click OK.


The selected ArchestrA reference to an InTouch tag is shown in the configuration box.

Wonderware Training
Section 4 – Animating Graphic Elements 3-127

Managing Animations
You can easily manage animations in the Edit Animations dialog box. You can:
z Change the way the list of animations appears.
z Switch easily between multiple animations of an element.

Organizing the Animation List


You can either organize the list of animations alphabetically or by category.
To organize the animation list
z In the Edit Animations dialog box, click the:

z Alphabetic sort icon to sort alphabetically.

z Category icon to sort by category.

Switching between Animations


If you have more than one animation for an element you can easily switch between their
configuration panels without having to use the animation list. This is particularly useful when the
animation list is hidden.

To switch between animations


z In the Edit Animations dialog box, on the configuration panel click either the left or right
arrow icon.

The configuration panel changes to the configuration panel of the previous or next animation.

InTouch 10.0 – Advanced Application Development Course


3-128 Module 3 – ArchestrA Graphics

Configuring Common Types of Animations


Every animation type has its own set of configuration parameters. This section shows you how to
configure each type of animation and what references it can use.
You can either configure:
z Visualization animations, such as:
z Visibility animations.
z Fill style, line style or text style animations.
z Blink animations.
z Horizontal or vertical percent fill animations.
z Horizontal or vertical location animations.
z Width or height animations.
z Orientation animations.
z Value display animations.
z Tooltip animations.
z Interaction animations, such as:
z Disablement animation.
z User input animation.
z Horizontal and vertical slider animations.
z Pushbutton animations.
z Action script animations.
z Show or hide animations.

Configuring a Visibility Animation


You can configure an element with a visibility animation.

To configure an element with a visibility animation


a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Visibility. The visibility animation is added to the animation list
and the Visibility configuration panel appears.

d. In the Boolean box, type either a boolean numeric value, attribute reference or expression.
e. Select True, 1, On, if you want the element to show, when the expression is true, otherwise
select False, 0, Off.

Wonderware Training
Section 4 – Animating Graphic Elements 3-129

Configuring a Fill Style Animation


You can configure an element either with a:
z Boolean fill style animation.
z Truth table fill style animation.
The truth table fill style animation lets you:
z Associate expressions of any data type supported by ArchestrA with a fill style.
z Define as many fill styles as you require and associate each one with a condition.
You can define the conditions by specifying a comparison operator (=, >, >=, <, <=) and a
breakpoint, which itself can be a value, an attribute reference or an expression.
You can add conditions, delete conditions and also change the order in which the conditions are
processed.

Configuring a Boolean Fill Style Animation


You can configure an element with a boolean/discrete fill style animation.

To configure an element with a boolean fill style animation


a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Fill Style. The fill style animation is added to the animation list
and the Fill Style state selection panel appears.
d. Click the Boolean button. The Boolean Fill Style configuration panel appears.

e. In the Boolean box, type either a boolean numeric value, attribute reference or expression.
f. Unselect Color in the True, 1, On area OR False, 0, Off area if you do not want a different fill
style for the true or false condition than the default fill style.
g. In the True, 1, On area, click the color box to configure the fill color when the expression is
true. The style selection dialog box appears.
h. In the False, 0, Off area, click the color box to configure the fill color when the expression is
false. The style selection dialog box appears.
i. When you are done, click OK.

InTouch 10.0 – Advanced Application Development Course


3-130 Module 3 – ArchestrA Graphics

To set default fill style in a boolean fill style animation


a. Open the Edit Animations dialog box, Boolean Fill Style panel.
b. In the Element Fill Style area, click the color box to select a style from the style selection
dialog box.

To use default fill style in a boolean fill style animation


a. Open the Edit Animations dialog box, Boolean Fill Style panel.
b. Unselect Color to use the corresponding default fill style.

Configuring a Truth Table Fill Style Animation


You can configure an element with a fill style animation based on a truth table.

To configure an element with a truth table fill style animation


a. Select the element you want to configure.
b. On the Special menu, click Edit Animations. The Edit Animations dialog box appears.
c. Click the Add icon and select Fill Style. The fill style animation is added to the animation list
and the Fill Style state selection panel appears.
d. Click the Truth Table button. The Truth Table Fill Style configuration panel appears.
e. In the Expression Or Reference area:
z Select the data type of the expression from the list.
z Type a value, attribute reference or expression in the text box.
f. If the data type of the expression is string or internationalized string, you can specify to ignore
the case by selecting Ignore Case.
g. In the Truth Table, click the color box in the Color column. The style selection dialog box
appears.
h. In the Operator column, select the comparison operator.
i. In the Value or Expression column, type a value, attribute reference or expression.
j. When you are done, click OK.

To set the default fill style for a truth table fill style animation
a. Open the Edit Animations dialog box, Truth Table Fill Style panel.
b. In the Element Fill Style area, click the color box. The style selection dialog box appears.

To use the default fill style in a truth table fill style animation
a. Open the Edit Animations dialog box, Truth Table Fill Style panel.
b. Locate the condition for which you want to set the style to default style.
c. Uncheck the mark for that condition in the Color column of the truth table.
The associated style is the same as the style for the Element Fill Style.

Wonderware Training
Section 4 – Animating Graphic Elements 3-131

To add a condition to a truth table fill style animation


a. Open the Edit Animations dialog box, Truth Table Fill Style panel.

b. Click the Add icon.


An additional condition is added to the truth table.

c. Configure color, operator and breakpoint value according to your requirements.

To delete a condition from an analog fill style animation


a. Open the Edit Animations dialog box, Truth Table Fill Style panel.
b. Select the condition you want to delete.

c. Click the Remove icon.


The condition is removed.

To change the processing order of fill style conditions


a. Open the Edit Animations dialog box, Truth Table Fill Style panel.
b. Select the condition you want to move up or down the condition list in order for it to be
processed sooner or later.

c. Either click the:


z Arrow up icon to move the condition up in the truth table.
z Arrow down icon to move the condition down in the truth table.

InTouch 10.0 – Advanced Application Development Course


3-132 Module 3 – ArchestrA Graphics

Example:
The table below shows an analog fill color animation that describes the following behavior:
z When the attribute TankLevel_001.PV is 0 then the fill style is solid black.
z When the attribute TankLevel_001.PV is smaller than 20, then the fill style is solid red.
z When the attribute TankLevel_001.PV is greater than the attribute Standards.TankMax
then the fill style is red with a diagonal pattern.
z In all other cases, the fill style is solid blue.

Condition Color Operator Expression


1 Solid Black = 0
2 Solid Red < 20
3 Red, Pattern > Standards.TankMax
Expression: TankLevel_001.PV
Element Fill Style: Solid blue

Configuring a Line Style Animation


You can configure an element either with a:
z Boolean line style animation.
z Truth table line style animation.
The truth table line style animation lets you:
z Associate expressions of any data type supported by ArchestrA with a line style.
z Define as many line styles as you want and associate each one with a condition.
You can define the conditions by specifying a comparison operator (=, >, >=, <, <=) and a
breakpoint, which itself can be a value, an attribute reference or an expression.
You can add conditions, delete conditions and also change the order in which the conditions are
processed.

Wonderware Training
Section 4 – Animating Graphic Elements 3-133

Configuring a Boolean Line Style Animation


You can configure an element with a boolean line style animation. You can either use a new style
or use all or parts of the default appearance of a line for:
z Line style.
z Line thickness.
z Line pattern.

To configure an element with a boolean line style animation


a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Line Style. The line style animation is added to the animation
list and the Line Style state selection panel appears.
d. Click the Boolean button.
The Boolean Line Style configuration panel appears.

e. In the Boolean box, type either a boolean numeric value, attribute reference or expression.
f. In the True, 1, On area, click the Color box to configure the line style when the expression is
true. The style selection dialog box appears.
g. In the Weight box, type a value for the line thickness when the expression is true.
h. From the Pattern list, select a line pattern for the line when the expression is true.
i. Repeat the above steps for the false condition in the False, 0, Off area.
j. When you are done, click OK.

To set default line style, thickness and/or pattern in a boolean line style animation
a. Open the Edit Animations dialog box, Boolean Line Style panel.
b. In the Element Line Style area, select a style, type a value for the width and select a pattern
for the default boolean line style.

InTouch 10.0 – Advanced Application Development Course


3-134 Module 3 – ArchestrA Graphics

To use default line style, thickness and/or pattern in a boolean line style animation
a. Open the Edit Animations dialog box, Boolean Line Style panel.
b. In either the True, 1, On or False, 0, Off areas, unselect Color, Weight and/or Pattern to use
the corresponding default style, weight and/or pattern.

Configuring a Truth Table Line Style Animation


You can configure an element with a truth table line style animation.
To configure an element with a truth table line style animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Line Style. The line style animation is added to the animation
list and the Line Style state selection panel appears.
d. Click the Truth Table button.
The Truth Table Line Style configuration panel appears.

e. In the Expression or Reference box:


z Select the data type of the expression from the list.
z Type a value, attribute reference or expression in the text box.
f. If the data type of the expression is string or internationalized string, you can specify to ignore
the case by selecting Ignore Case.
g. In the Truth Table, click the color box in the Color column.
The Style Selection dialog box appears.
h. In the Weight column, type a value for the line weight.
i. In the Pattern column, select a line pattern.
j. In the Operator column, select the comparison operator.
k. In the Value or Expression column, type a value, attribute reference or expression.
l. When you are done, click OK.

Wonderware Training
Section 4 – Animating Graphic Elements 3-135

To set the default line style, width or pattern for a truth table line style animation
a. Open the Edit Animations dialog box, Truth Table Line Style panel.
b. In the Element Line Style area, select a style, type a value for the width and select a pattern
for the default truth table line style.

To use the default line style, width or pattern in a truth table line style animation
a. Open the Edit Animations dialog box, Truth Table Line Style panel.
b. Locate the condition for which you want to change the line style, width or pattern.
c. To use the default line style for the condition, uncheck the mark in the Color column of the
truth table.
d. To use the default line width for the condition, uncheck the mark in the Width column of the
truth table.
e. To use the default line pattern for the condition, uncheck the mark in the Pattern column of the
truth table.

To add a condition to a truth table line style animation

a. In the Edit Animations dialog box, Truth Table Line Style panel, click the Add icon.
An additional condition is added to the truth table.
b. Configure color, weight, pattern, operator and breakpoint value according to your
requirements.

To delete a condition from an analog line color animation


a. In the Edit Animations dialog box, Truth Table Line Style panel, select the condition you
want to delete.

b. Click the Remove button.


The condition is removed.

To change the processing order of line style conditions


a. Open the Edit Animations dialog box, Truth Table Line Style panel
b. Select the condition you want to move up or down the condition list in order for it to be
processed sooner or later.

c. Either click the:


z Arrow up icon to move the condition up in the truth table.
z Arrow down icon to move the condition down in the truth table.

InTouch 10.0 – Advanced Application Development Course


3-136 Module 3 – ArchestrA Graphics

Configuring a Text Style Animation


You can configure an element either with a:
z Boolean text style animation.
z Truth table text style animation.
The truth table text style animation lets you:
z Associate expressions of any data type supported by ArchestrA with a text style.
z Define as many text styles as you want and associate each one with a condition.
You can define the conditions by specifying a comparison operator (=, >, >=, <, <=) and a
breakpoint, which itself can be a value, an attribute reference or an expression.
You can add conditions, delete conditions and also change the order in which the conditions are
processed.

Configuring a Boolean Text Style Animation


You can configure an element with a boolean text style animation.
To configure an element with a boolean text style animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Text Style. The text style animation is added to the animation
list and the Text Style state selection panel appears.
d. Click the Boolean button.
The Boolean Text Style configuration panel appears.

e. In the Boolean box, type either a boolean numeric value, attribute reference or expression.
f. In the True, 1, On area, click the Color box to configure the text style when the expression is
true.
The Style Selection dialog box appears.
g. Click the Browse button for the Font box, to select a font, font style and size for the text when
the expression is true.
h. Repeat the above steps for the false condition in the False, 0, Off area.
i. When you are done, click OK.

Wonderware Training
Section 4 – Animating Graphic Elements 3-137

To set default text style and/or font in a boolean text style animation
a. Open the Edit Animations dialog box, Boolean Text Style panel.
b. In the Element Text Style area, select a style and/or a font for the default boolean text style.

To use default text style and/or font in a boolean text style animation
a. Open the Edit Animations dialog box, Boolean Text Style panel.
b. In either the True, 1, On or False, 0, Off areas, unselect Color and/or Font to use the
corresponding default style and/or font.
c. Configuring a Truth Table Text Style Animation.
d. You can configure an element with a truth table text style animation.

To configure an element with a truth table text style animation


a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Text Style.
The text style animation is added to the animation list.
The Text Style information page appears.
d. Click the Truth Table button.
The Truth Table Text Style configuration panel appears.
e. Select the data type of the expression from the list.
f. Type a value, attribute reference or expression in the text box.
g. If the data type of the expression is string or internationalized string, you can specify to ignore
the case by selecting Ignore Case.
h. In the Truth Table, click the color box in the Color column.
The style selection dialog box appears.
i. Click on the cell in the Font column to select a font.
j. In the Operator column, select the comparison operator.
k. In the Value or Expression column, type a value, attribute reference or expression.
l. When you are done, click OK.

To set the default text style or font for a truth table text style animation
a. Open the Edit Animations dialog box, Truth Table Text Style panel.
b. In the Element Text Style area, select a style and a font for the default truth table text style.

InTouch 10.0 – Advanced Application Development Course


3-138 Module 3 – ArchestrA Graphics

To use the default text style or font in a truth table text style animation
a. Open the Edit Animations dialog box, Truth Table Text Style panel.
b. Locate the condition for which you want to change the text style or font.
c. To use the default text style for the condition, uncheck the mark in the Color column of the
truth table.
d. To use the default font for the condition, uncheck the mark in the Font column of the truth
table.

To add a condition to a truth table text style animation

a. In the Edit Animations dialog box, Truth Table Text Style panel, click the Add icon.
An additional condition is added to the truth table.
b. Configure style, font, operator and breakpoint value according to your requirements.

To delete a condition from a truth table text style animation


a. In the Edit Animations dialog box, Truth Table Text Style panel, select the condition you
want to delete.

b. Click the Remove button.


The condition is removed.

To change the processing order of text style conditions


a. Open the Edit Animations dialog box, Truth Table Text Style panel
b. Select the condition you want to move up or down the condition list in order for it to be
processed sooner or later.

c. Either click the:


z Arrow up icon to move the condition up in the truth table.
z Arrow down icon to move the condition down in the truth table.

Wonderware Training
Section 4 – Animating Graphic Elements 3-139

Configuring a Blink Animation


You can configure an element with a blink animation. You can specify:
z The blinking speed: slow, medium or fast.
z If the element should blink invisibly or if it should blink with specified colors.
To configure an element with a blink animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Blink.
The blink animation is added to the animation list and the Blink configuration panel appears.

d. In the Boolean box, type either a boolean numeric value, attribute reference or expression.
e. In the Blink When Expression Is area, select either:
z True, 1, On to enable blinking when the expression is true.
z False,0 ,Off to enable blinking when the expression is false.
f. In the Blink Speed area, select either Slow, Medium or Fast for the blinking speed.
g. In the Blink Attributes area, select either Blink Visible With These Attributes or Blink Invisible.
h. If you selected Blink Visible With These Attributes, you can configure the styles that are
used at run time for the text, line and fill component of the element. Click on the corresponding
color box, and the style selection dialog box appears.
i. When you are done, click OK.

InTouch 10.0 – Advanced Application Development Course


3-140 Module 3 – ArchestrA Graphics

Configuring a Percent Fill Horizontal Animation


You can configure an element with a percent fill horizontal animation.
Besides specifying the expressions that determine how much of the element is filled at run time,
you can also specify:
z Fill Direction: from left to right or right to left.
z Unfill Color: the style of the background when the element has 0% filling.
z Fill Orientation: if the filling is in relation to the element or to the screen.

Note: The fill orientation is a common setting to the percent fill horizontal and percent fill vertical
animations. If you configure an element with both these animations, then the last set orientation is
the setting that is used.

You can also preview how the percent fill horizontal animation appears at run time.
To configure an element with a percent fill horizontal animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select % Fill Horizontal. The percent fill horizontal animation is added
to the animation list and the % Fill Horizontal configuration panel appears.

d. In the Analog box, type an analog value, attribute reference or expression.

Wonderware Training
Section 4 – Animating Graphic Elements 3-141

e. In the Value - At Min Fill box, type an analog value, attribute reference or expression that
causes the minimum percent of filling at run time.
f. In the Value - At Max Fill box, type an analog value, attribute reference or expression that
causes the maximum percent of filling at run time.
g. In the Fill - Min% box, type an analog value, attribute reference or expression to specify the
minimum percent of filling.
h. In the Fill - Max% box, type an analog value, attribute reference or expression to specify the
maximum percent of filling.
i. In the Colors area, click the:
z Fill Color box to select a style from the style selection dialog box.
This is the fill style of the element.
z Unfilled Color box to select a style from the style selection dialog box.
This is the background fill style of the element.
j. In the Direction area, select either:
z Right - to fill from left to right.
z Left - to fill from right to left.
k. In the Orientation area, select either:
z Relative to Graphic - so that the filling is in relation to the element and the filling rotates
with the element.
z Relative to Screen - so that the filling is in relation to the screen and the filling does not
rotate with the element.
l. You can preview your configuration by using the slider in the Preview area.
Drag the slider to see how different values affect the appearance at run time.

m. When you are done, click OK.

InTouch 10.0 – Advanced Application Development Course


3-142 Module 3 – ArchestrA Graphics

Configuring a Percent Fill Vertical Animation


You can configure an element with a percent fill vertical animation.
Besides specifying the expressions that determine how much of the element is filled at run time,
you can also specify:
z Fill Direction: from bottom to top or top to bottom.
z Unfill Color: the style of the background when the element has 0% filling.
z Fill Orientation: if the filling is in relation to the element or to the screen.

To configure an element with a percent fill vertical animation


a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select % Fill Vertical. The percent fill vertical animation is added to the
animation list and the % Fill Vertical configuration panel appears.

d. In the Analog box, type an analog value, attribute reference or expression.


e. In the Value-At Min Fill box, type an analog value, attribute reference or expression that
causes the minimum percent of filling at run time.
f. In the Value-At Max Fill box, type an analog value, attribute reference or expression that
causes the maximum percent of filling at run time.
g. In the Fill-Min% box, type an analog value, attribute reference or expression to specify the
minimum percent of filling.

Wonderware Training
Section 4 – Animating Graphic Elements 3-143

h. In the Fill-Max% box, type an analog value, attribute reference or expression to specify the
maximum percent of filling.
i. In the Colors area, click the:
z Fill Color box to select a style from the style selection dialog box.
This is the fill style of the element.
z Unfilled Color box to select a style from the style selection dialog box.
This is the background fill style of the element.
j. In the Direction area, select either:
z Up - to fill from bottom to top.
z Down - to fill from top to bottom.
k. In the Orientation area, select either:
z Relative to Graphic - so that the filling is in relation to the element and the filling rotates
with the element.
z Relative to Screen - so that the filling is in relation to the screen and the filling does not
rotate with the element.
l. You can preview your configuration by using the slider in the Preview area.
Drag the slider to see how different values affect the appearance at run time.

m. When you are done, click OK.

InTouch 10.0 – Advanced Application Development Course


3-144 Module 3 – ArchestrA Graphics

Configuring a Location Horizontal Animation


You can configure an element with a location horizontal animation.
To configure an element with a location horizontal animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Location Horizontal. The location horizontal animation is added
to the animation list and the Location Horizontal configuration panel appears.

d. In the Analog box, type an analog value, attribute reference or expression.


e. In the Value-At Left End box, type an analog value, attribute reference or expression that
corresponds to the offset specified by the Movement-To Left value.
f. In the Value-At Right End box, type an analog value, attribute reference or expression that
corresponds to the offset specified by the Movement-To Right value.
g. In the Movement-To Left box, type an analog value, attribute reference or expression for the
maximum offset to the left.
h. In the Movement-To Right box, type an analog value, attribute reference or expression for
the maximum offset to the right.
i. When you are done, click OK.

Wonderware Training
Section 4 – Animating Graphic Elements 3-145

Configuring a Location Vertical Animation


You can configure an element with a location vertical animation.
To configure an element with a location vertical animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Location Vertical. The location vertical animation is added to
the animation list and the Location Vertical configuration panel appears.

d. In the Analog box, type an analog value, attribute reference or expression.


e. In the Value - At Top box, type an analog value, attribute reference or expression that
corresponds to the offset specified by the Movement - Up value.
f. In the Value - At Bottom box, type an analog value, attribute reference or expression that
corresponds to the offset specified by the Movement - Down value.
g. In the Movement - Up box, type an analog value, attribute reference or expression for the
maximum offset upwards.
h. In the Movement - Down box, type an analog value, attribute reference or expression for the
maximum offset downwards.
i. When you are done, click OK.

InTouch 10.0 – Advanced Application Development Course


3-146 Module 3 – ArchestrA Graphics

Configuring a Width Animation


You can configure an element with a width animation.
You can also specify if the element is to be anchored to its left side, center, right side or origin.
To configure an element with a width animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Width.
The width animation is added to the animation list and the Width configuration panel appears.

d. In the Analog box, type an analog value, attribute reference or expression.


e. In the Value-At Min Size box, type an analog value, attribute reference or expression that
corresponds to the minimum width specified by the Width-Min% value.
f. In the Value-At Max Size box, type an analog value, attribute reference or expression that
corresponds to the maximum width specified by the Width-Max% value.
g. In the Width-Min% box, type an analog value, attribute reference or expression for the
minimum width in percent of the original element.
h. In the Width-Max% box, type an analog value, attribute reference or expression for the
maximum width in percent of the original element.
i. In the Anchor area, select either:
z Left - to specify that the left side of the element is anchored.
z Center - to specify that the horizontal center of the element is anchored.
z Right - to specify that the right side of the element is anchored.
z Origin - to specify that the origin of the element is anchored.
j. When you are done, click OK.

Wonderware Training
Section 4 – Animating Graphic Elements 3-147

Configuring a Height Animation


You can configure an element with a height animation.
You can also specify if the element is to be anchored to its top side, middle, bottom side or origin.
To configure an element with a height animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Height. The height animation is added to the animation list and
the Height configuration panel appears.

d. In the Analog box, type an analog value, attribute reference or expression.


e. In the Value-At Min Size box, type an analog value, attribute reference or expression that
corresponds to the minimum height specified by the Height-Min% value.
f. In the Value-At Max Size box, type an analog value, attribute reference or expression that
corresponds to the maximum height specified by the Height-Max% value.
g. In the Height-Min% box, type an analog value, attribute reference or expression for the
minimum height in percent of the original element.
h. In the Height-Max% box, type an analog value, attribute reference or expression for the
maximum height in percent of the original element.
i. In the Anchor area, select either:
z Top - to specify that the top side of the element is anchored.
z Middle - to specify that the vertical center of the element is anchored.
z Bottom - to specify that the bottom side of the element is anchored.
z Origin - to specify that the origin of the element is anchored.
j. When you are done, click OK.

InTouch 10.0 – Advanced Application Development Course


3-148 Module 3 – ArchestrA Graphics

Configuring an Orientation Animation


You can configure an element with an orientation animation. You can also:
z Specify a different orientation origin.
z Ignore or accept the design-time orientation of the element on the canvas.
z Preview the orientation at run time with a slider.
To configure an element with an orientation animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Orientation. The orientation animation is added to the
animation list and the Orientation configuration panel appears.

d. In the Analog box, type an analog value, attribute reference or expression.


e. In the Value-At CCW End box, type an analog value, attribute reference or expression that
corresponds to the maximum angle in degrees for the counter-clockwise orientation as
specified by the Orientation-CCW value.
f. In the Value-At CW End box, type an analog value, attribute reference or expression that
corresponds to the maximum angle in degrees for the counter-clockwise orientation as
specified by the Orientation-CW value.
g. In the Orientation-CCW box, type an analog value, attribute reference or expression for the
maximum orientation in counter-clockwise direction in degrees.
h. In the Orientation-CW box, type an analog value, attribute reference or expression for the
maximum orientation in clockwise direction in degrees.

Wonderware Training
Section 4 – Animating Graphic Elements 3-149

i. In the Orientation Offset area, Select either:


z Replace Current to ignore the design-time orientation of the element as it appears on the
canvas and to use absolute orientation.
z Use Current as Offset Orientation to orientate the element at run time in relation to its
design-time orientation on the canvas.

j. If you use current as offset orientation, you can type an offset value in the text box next to Use
Current as Offset Orientation. This affects the orientation of the element on the canvas.
k. In the Current Relative Origin area, type values in the dX and dY boxes to specify the
rotation origin as offset from the element center point. This affects the point of origin of the
element on the canvas.
l. Select either:
z Replace Current Angle to ignore the design-time rotation setting of the element as it
appears on the canvas.
z Apply Current Angle as Offset to rotate the element at run time in relation to its design-
time rotation angle on the canvas.
m. You can preview the orientation and how run-time values affect the appearance of the
element, by dragging the slider in the Preview area.

n. When you are done, click OK.

InTouch 10.0 – Advanced Application Development Course


3-150 Module 3 – ArchestrA Graphics

Configuring a Value Display Animation


You can configure an element with a value display animation. You can either display:
z A boolean value.
z An analog value.
z A string value.
z A time value.

Configuring a Boolean Value Display Animation


You can configure an element to show a boolean value.
To configure an element with a boolean value display animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Value Display. The value display animation is added to the
animation list and the Value Display state selection panel appears.
d. Click the Boolean button.
The Boolean Value Display configuration panel appears.

e. In the Boolean box, type a boolean value, attribute reference or expression.


f. In the True Message box, type a value, attribute reference or expression for the text display
when the expression is true.
g. In the False Message box, type a value, attribute reference or expression for the text display
when the expression is false.

Note: Make sure that the input modes of the True Message and False Message are
set correctly. Click the input mode icon to set either a static value or an attribute reference or
expression.

h. When you are done, click OK.

Wonderware Training
Section 4 – Animating Graphic Elements 3-151

Configuring an Analog Value Display Animation


You can configure an element to show an analog value.
To configure an element with an analog value display animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Value Display. The value display animation is added to the
animation list and the Value Display state selection panel appears.
d. Click the Analog button. The Analog Value Display configuration panel appears.

e. In the Analog box, type an analog value, attribute reference or expression.


f. In the Text Format box, type a format for the value output. If you change this value, the
TextFormat property of the element also changes. For example: PV = #,###.##
g. When you are done, click OK.

Configuring a String Value Display Animation


You can configure an element to show a string value.
To configure an element with a string value display animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Value Display. The value display animation is added to the
animation list and the Value Display state selection panel appears.
d. Click the String button. The String Value Display configuration panel appears.

e. In the String box, type a string value, attribute reference or expression.


f. When you are done, click OK.

InTouch 10.0 – Advanced Application Development Course


3-152 Module 3 – ArchestrA Graphics

Configuring a Time Value Display Animation


You can configure an element to show a time value.
To configure an element with a time value display animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations. The Edit Animations dialog box appears.
c. Click the Add icon and select Value Display. The value display animation is added to the
animation list and the Value Display state selection panel appears.
d. Click the Time button. The Time Value Display configuration panel appears.

e. In the Time or Elapsed Time box, type a time or elapsed time value, attribute reference or
expression.
z In the Text Format box, type a format for the value output.
If you change this value, the TextFormat property of the element also changes.
Use the following letters to set the time format:
Abbreviation Item to Display
h hours
hh hours in double digit display
m minutes
mm minutes in double digit display
s seconds
ss seconds in double digit display
d day of month
dd day of month in double digit display
ddd day of week in short notation
dddd day of week in long notation
ampm 12 hour display
M numeral month
MM numeral month in double digit display
MMM month in 3 letter notation
MMMM month as full name
yy year in two digit display
yyyy year in four digit display

f. When you are done, click OK.

Wonderware Training
Section 4 – Animating Graphic Elements 3-153

Configuring a Name Display Animation


You can configure an element to show the tag name, hierarchical name or contained name of the
Automation object that is hosting it.
For example if the Automation object hosting the symbol is named Valve_001 and Valve_001 is
contained in Pump_001 and has a contained name of InletValve, then configuring an element with
the value display animation with:
z Tag Name shows Valve_001 at run time.
z Hierarchical Name shows Pump_001.InletValve at runtime.
z Contained Name shows InletValve at run time.
To configure an element with a name display animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Value Display.
The value display animation is added to the animation list and the Value Display state
selection panel appears.
d. Click the Name button.
The Name Value Display configuration panel appears.

e. Select:
z Tag Name to show the tag name of the hosting Automation object.
z Hierarchical Name to show the hierarchical name of the hosting Automation object.
z Contained Name to show the contained name of the hosting Automation object.
f. When you are done, click OK.

InTouch 10.0 – Advanced Application Development Course


3-154 Module 3 – ArchestrA Graphics

Configuring a Tooltip Animation


You can configure an element with a tooltip animation.

Note: The tooltip animation does not work with Windows Common Controls.

To configure an element with a tooltip animation


a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Tooltip. The tooltip animation is added to the animation list and
the Tooltip configuration panel appears.

d. In the Expression box, type either:


z A static value and make sure the input mode icon is set to static.
z An attribute reference or expression and make sure the input mode icon is set to attribute
or reference.
e. When you are done, click OK.

Wonderware Training
Section 4 – Animating Graphic Elements 3-155

Configuring a Disablement Animation


You can configure an element with a disablement animation. This lets you disable an element
depending on a run-time value or expression.
To configure an element with a disablement animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Disable. The disablement animation is added to the animation
list and the Disable configuration panel appears.

d. In the Boolean box, type either a boolean numeric value, attribute reference or expression.
e. In the Disabled When Expression is area, select either:
z True,1, On in which case the element is disabled at run time whenever the expression is
true.
z False, 0, Off in which case the element is disabled at run time whenever the expression is
false.
f. When you are done, click OK.

InTouch 10.0 – Advanced Application Development Course


3-156 Module 3 – ArchestrA Graphics

Configuring a User Input Animation


You can configure an element with a user input animation for the following data types:
z Boolean.
z Analog (integer, float, double).
z String.
z Time.
z Elapsed time.

Configuring a User Input Animation for a Discrete Value


You can configure an element with a user input animation for a boolean value.
To configure an element with a user input animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select User Input. The user input animation is added to the animation
list and the User Input state selection panel appears.
d. Click the Boolean button. The Boolean Value User Input configuration panel appears.

e. In the Boolean box, type an attribute reference or browse for one by using the Browse button.
f. In the Message to User box, type a value, attribute reference or expression.
This is the text that appears as prompt on the boolean value input dialog box at run time.
g. In the Prompt - True Message box, type a value, attribute reference or expression.
This is the text that appears on the button that causes the attribute to be set to true.
h. In the Prompt - False Message box, type a value, attribute reference or expression.
This is the text that appears on the button that causes the attribute to be set to false.
i. If you want the input dialog box to appear by pressing a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
j. If required, select Input Only to suppress that the discrete value display element shows the
True Message and False Message.

Wonderware Training
Section 4 – Animating Graphic Elements 3-157

k. In the Display Value - True Message box, type a value, attribute reference or expression.
This is the text that appears on the canvas when the associated attribute is true.
l. In the Display Value - False Message box, type a value, attribute reference or expression.
This is the text that appears on the canvas when the associated attribute is false.

m. Make sure that the input modes of all boxes are set correctly.
Click the input mode icon to set either a static value or an attribute reference or expression.
n. When you are done, click OK.

Configuring a User Input Animation for an Analog Value


You can configure an element with a user input animation for an analog value.
To configure an element with a user input animation for an analog value
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select User Input. The user input animation is added to the animation
list and the User Input state selection panel appears.
d. Click the Analog button.
The Analog Value User Input configuration panel appears.

e. In the Analog box, type an attribute reference or browse for one by using the browse button.
f. In the Message to User box, type a value, attribute reference or expression.
This is the text that appears as prompt on the analog value input dialog box at run time.

g. Make sure that the input mode of the Message to User box is set correctly.
Click the input mode icon to set either a static value or an attribute reference or expression.
h. If you want to restrict the range of input values, you can do so in the Value Limits area by:
z First selecting Restrict Values.
z The Typing values, attribute references or expressions for the Minimum and Maximum
boxes.

InTouch 10.0 – Advanced Application Development Course


3-158 Module 3 – ArchestrA Graphics

i. If you want the input dialog box to appear by pressing a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
j. If required, select Input Only to suppress that the analog value display element shows the
analog input result on the canvas.
k. To use the keypad to type the analog value, select Use Keypad.
l. If you want to format your text during input, type a valid text format in the Text Format box.
For example: PV = #,###.##
m. When you are done, click OK.

Configuring a User Input Animation for a String Value


You can configure an element with a user input animation for a string value.
To configure an element with a user input animation for a string value
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select User Input. The user input animation is added to the animation
list and the User Input state selection panel appears.
d. Click the String button. The String Value User Input configuration panel appears.

e. In the String box, type an attribute reference or browse for one by using the browse button.
f. In the Message to User box, type a value, attribute reference or expression.
This is the text that appears as prompt on the string value input dialog box at run time.

g. Make sure that the input mode of the Message to User box is set correctly.
Click the input mode icon to set either a static value or an attribute reference or expression.
h. If you want the input dialog box to appear by pressing a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
i. If required, select Input Only to suppress that the string value display element shows the
string input result on the canvas.

Wonderware Training
Section 4 – Animating Graphic Elements 3-159

j. If you want to use the keypad to type the string value, select Use Keypad.
k. If you selected Input Only and want to see placeholders during the input at run time, select
Echo Characters.
l. If you are configuring a password input:
z Select Password.
z Type in the replacement character in the adjacent box.
z Select Encrypt if you want to encrypt the string that holds the password.
m. When you are done, click OK.

Configuring a User Input Animation for a Time Value


You can configure an element with a user input animation for a time value.
To configure an element with a user input animation for a time value
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select User Input. The user input animation is added to the animation
list and the User Input state selection panel appears.
d. Click the Time button. The Time Value User Input configuration panel appears.

e. In the Time box, type an attribute reference or browse for one by using the browse button.
f. In the Message to User box, type a value, attribute reference or expression.
This is the text that appears as prompt on the time value input dialog box at run time.

g. Make sure that the input mode of the Message to User box is set correctly.
Click the input mode icon to set either a static value or an attribute reference or expression.
h. If you want the input dialog box to appear by pressing a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
i. If required, select Input Only to suppress that the time value display element shows the time
input result on the canvas.

InTouch 10.0 – Advanced Application Development Course


3-160 Module 3 – ArchestrA Graphics

j. To use the current date and time as default, select Use Current Date/Time as Default.
k. Select either:
z Use Input Dialog to use the Time User Input dialog box at run time to type date and time
values in individual boxes.
z Use Calendar to use the Time User Input dialog box at run time to select a date with the
calendar control.
l. If you selected Use Input Dialog to type the time value, you can either select:
z Date and Time to type date and time.
z Date to only type a date.
z Time to only type a time.
Select Show Seconds if you also want to input seconds.
m. If you want to format your text during input, type a valid text format in the Text Format box.
For example: PV = #,###.##
n. When you are done, click OK.

Configuring a User Input Animation for an Elapsed Time Value


You can configure an element with a user input animation for an elapsed time value.
To configure an element with a user input animation for an elapsed time value
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select User Input. The user input animation is added to the animation
list and the User Input state selection panel appears.
d. Click the Elapsed Time button.
The Elapsed Time Value User Input configuration panel appears.

e. In the Elapsed Time box, type an attribute reference or browse for one by using the Browse
button.
f. In the Message to User box, type a value, attribute reference or expression. This is the text
that appears as prompt on the elapsed time value input dialog box at run time.

Wonderware Training
Section 4 – Animating Graphic Elements 3-161

g. Make sure that the input mode of the Message to User box is set correctly.
Click the input mode icon to set either a static value or an attribute reference or expression.
h. If you want the input dialog box to appear by pressing a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
i. If required, select Input Only to suppress that the elapsed time value display element shows
the time elapsed input result on the canvas.
j. Select Use Dialog to use the Elapsed Time User Input dialog box to type the elapsed time
value at run time.
k. If you selected Use Dialog to type the elapsed time value, you can optionally select:
z Show Days if you also want to input days.
z Show Milliseconds if you also want to input milliseconds.
l. When you are done, click OK.

Configuring a Horizontal Slider Animation


You can configure an element with a horizontal slider animation. This lets you drag an element at
run time in horizontal direction and write a corresponding value back to an attribute.
To configure an element with a horizontal slider animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Slider Horizontal. The horizontal slider animation is added to
the animation list and the Slider Horizontal configuration panel appears.

d. In the Analog box, type an attribute reference or browse for one by using the Browse button.
e. In the Value - Left Position box, type an analog value, attribute reference or expression that
corresponds to the offset specified by the Movement - To Left value.
f. In the Value - Right Position box, type an analog value, attribute reference or expression that
corresponds to the offset specified by the Movement - To Right value.

InTouch 10.0 – Advanced Application Development Course


3-162 Module 3 – ArchestrA Graphics

g. In the Movement - To Left box, type an analog value, attribute reference or expression for the
maximum offset to the left.
h. In the Movement - To Right box, type an analog value, attribute reference or expression for
the maximum offset to the right.
i. You can select where the cursor is anchored to the element when it is dragged at run time. In
the Cursor Anchor area, select either:
z Left to anchor the element at its left side.
z Center to anchor the element at its center point.
z Right to anchor the element at its right side.
z Origin to anchor the element at its point of origin.
j. You can select if position data from the slider is written continuously to the attribute, or only
once when the mouse button is released. In the Write Data area, select either Continuously
or On mouse release.
k. If you want a tooltip to appear on the element showing the current value during dragging,
select Show Tooltip.
l. If you want to preview the movement as it appears in run time, drag the slider in the Preview
area.

m. When you are done, click OK.

Wonderware Training
Section 4 – Animating Graphic Elements 3-163

Configuring a Vertical Slider Animation


You can configure an element with a vertical slider animation.
To configure an element with a vertical slider animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Slider Vertical. The vertical slider animation is added to the
animation list and the Slider Vertical configuration panel appears.

d. In the Analog box, type an attribute reference or browse for one by using the Browse button.
e. In the Value - Top Position box, type an analog value, attribute reference or expression that
corresponds to the offset specified by the Movement - Up value.
f. In the Value - Bottom Position box, type an analog value, attribute reference or expression
that corresponds to the offset specified by the Movement - Down value.
g. In the Movement - Up box, type an analog value, attribute reference or expression for the
maximum offset upwards.
h. In the Movement - Down box, type an analog value, attribute reference or expression for the
maximum offset downwards.
i. You can select where the cursor is anchored to the element when it is dragged at run time. In
the Cursor Anchor area, select either:
z Top to anchor the element at its top side.
z Middle to anchor the element at its middle point.
z Bottom to anchor the element at its bottom side.
z Origin to anchor the element at its point of origin.
j. You can select if position data from the slider is written continuously to the attribute, or only
once when the mouse button is released. In the Write Data area, select either Continuously
or On mouse release.
k. If you want a tooltip to appear on the element showing the current value during dragging,
select Show Tooltip.

InTouch 10.0 – Advanced Application Development Course


3-164 Module 3 – ArchestrA Graphics

l. If you want to preview the movement as it appears in run time, drag the slider in the Preview
area.

m. When you are done, click OK.

Configuring a Pushbutton Animation


You can configure an element with a pushbutton animation to change either boolean, analog or
string references.

Configuring a Pushbutton Animation for a Boolean Value


a. You can configure an element with a pushbutton to change a boolean value.
b. To configure an element with a pushbutton animation to change a boolean value
c. Select the element you want to configure.
d. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
e. Click the Add icon and select Pushbutton. The pushbutton animation is added to the
animation list and the Pushbutton state selection panel appears.
f. Click the Boolean button.
The Boolean Pushbutton configuration panel appears.

g. In the Boolean box, type a boolean attribute reference or browse for one by using the Browse
button.

Wonderware Training
Section 4 – Animating Graphic Elements 3-165

h. From the Action list, select either:


z Direct so the value becomes true when the element is clicked and the mouse button held.
The value returns to false when the mouse button is released.
z Reverse so the value becomes false when the element is clicked and the mouse button
held. The value returns to true when the mouse button is released.
z Toggle so the value becomes true, if it is false and false if it is true when the element is
clicked.
z Set so the value is set to true when the element is clicked.
z Reset so the value is set to false when the element is clicked.
i. If you selected Toggle as action, you can configure the value to be written, when the mouse
button is released instead. Select On button release.
j. If you selected Direct, Reverse, Reset or Set as action, you can configure the value to be
written:
z Continuously by selecting Continuously while button is pressed. Also specify the
frequency the value is to be sent, by typing a value in the Delay between value send box.
z Once by unselecting Continuously while button is pressed.
k. If you want the pushbutton action to be executed by pressing a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
l. You can preview the pushbutton run-time behavior by clicking Button in the Preview area.

m. When you are done, click OK.

InTouch 10.0 – Advanced Application Development Course


3-166 Module 3 – ArchestrA Graphics

Configuring a PushButton Animation for an Analog Value


You can configure an element with a pushbutton to set an analog value.
To configure an element with a pushbutton animation to set an analog value
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Pushbutton. The pushbutton animation is added to the
animation list and the Pushbutton state selection panel appears.
d. Click the Analog button. The Analog Pushbutton configuration panel appears.

e. In the Analog box, type an attribute reference or browse for one by using the Browse button.
f. From the Action list, select either:
z Direct so the value becomes Value1 when the element is clicked and the mouse button
held. The value returns to Value2 when the mouse button is released.
z Toggle so the value becomes Value1, if it is Value2 and Value2 if it is Value1 when the
element is clicked.
z Set so the value is set to Value1 when the element is clicked.
z Increment so the value is increased by Value1.
z Decrement so the value is decreased by Value1.
z Multiply so the value is multiplied with Value1.
z Divide so the value is divided by Value1.
g. In the boxes Value1 and, if applicable, Value2, type analog values, attribute references or
references.
h. You can configure the value to be written when the mouse button is released instead.
Select On button release. This does not apply if you selected Direct as action.
i. You can configure the value to be written:
z Continuously by selecting the Continuously while button is pressed. Also specify the
frequency the value is to be sent, by typing a value in the Delay between value send box.
z Once by unselecting the Continuously while button is pressed.
j. This does not apply if you selected Toggle as action.

Wonderware Training
Section 4 – Animating Graphic Elements 3-167

k. If you want the pushbutton action to be executed by pressing a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
l. You can preview the pushbutton run-time behavior by clicking Button in the Preview area.
Click the button multiple times to preview the value changes over a period of time.

m. When you are done, click OK.

Configuring a PushButton Animation for a String Value


You can configure an element with a pushbutton to set a string value.
To configure an element with a pushbutton animation to set a string value
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Pushbutton. The pushbutton animation is added to the
animation list and the Pushbutton state selection panel appears.
d. Click the Analog button. The String Pushbutton configuration panel appears.

e. In the String box, type an attribute reference or browse for one by using the Browse button.
f. From the Action list, select either:
z Direct so the value becomes Value1 when the element is clicked and the mouse button
held. The value returns to Value2 when the mouse button is released.
z Toggle so the value becomes Value1, if it is Value2 and Value2 if it is Value1 when the
element is clicked
z Set so the value is set to Value1 when the element is clicked.

InTouch 10.0 – Advanced Application Development Course


3-168 Module 3 – ArchestrA Graphics

g. In the boxes Value1 and, if applicable, Value2, type string values, attribute references or
references.
h. Make sure that the input modes of the Value1 and Value2 boxes are set correctly. Click the
input mode icons to set either a static values or an attribute references or expressions.
i. You can configure the value to be written when the mouse button is released instead.
Select On button release. This does not apply if you selected Direct as action.
j. You can configure the value to be written:
z Continuously by selecting the Continuously while button is pressed. Also specify the
frequency the value is to be sent, by typing a value in the Delay between value send box.
z Once by unselecting the Continuously while button is pressed.
k. This does not apply if you selected Toggle as action.
l. If you want the pushbutton action to be executed by pressing a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
m. You can preview the pushbutton run-time behavior by clicking Button in the Preview area.

n. When you are done, click OK.

Wonderware Training
Section 4 – Animating Graphic Elements 3-169

Configuring an Action Script Animation


You can configure an element with an action script animation.
You can assign multiple action scripts to one element that are activated in different ways, such as:
z On Primary Click/Key Down to activate the action script when the primary mouse button
or a specific key is pressed.
z While Primary Click/Key Down to activate the action script when the primary mouse
button or a specific key is pressed and held.
z On Primary Click/Key Up to activate the action script when the primary mouse button or
a specific key is released
z On Primary Double Click to activate the action script when the primary mouse button is
double-clicked.
z On Secondary Down to activate the action script when the secondary mouse button is
pressed.
z While Secondary Down to activate the action script when the secondary mouse button is
pressed and held.
z On Secondary Up to activate the action script when the secondary mouse button is
released.
z On Secondary Double Click to activate the action script when the secondary mouse
button is double-clicked.
z On Center Down to activate the action script when the center mouse button is pressed.
z While Center Down to activate the action script when the center mouse button is pressed
and held.
z On Center Up to activate the action script when the center mouse button is released.
z On Center Double Click to activate the action script when the center mouse button is
double-clicked.
z On Mouse Over to activate the action script when the mouse pointer is moved over the
element.
z On Mouse Leave to activate the action script when the mouse pointer is moved out of the
element.
z While Mouse Over to activate the action script while the mouse pointer is over the
element.

Note: To expand the available space for your script you can use the expansion buttons
to hide the script header and/or the animation list.

See Section 5, “Associating Scripts with Symbols” for more details regarding Scripting.

InTouch 10.0 – Advanced Application Development Course


3-170 Module 3 – ArchestrA Graphics

To configure an element with an action script animation


a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select Action Scripts. The action scripts animation is added to the
animation list and the Action Scripts configuration panel appears.

d. From the Trigger type list, select the trigger that activates the action script at run time.
e. If you selected a trigger type that starts with While, type how frequently the action script is
executed at run time in the Trigger period box.
f. If you selected the trigger types On Mouse Over or On Mouse Leave, type a value in the
Trigger Period box. This value specifies after what delay the action script is executed at run
time.
g. If you selected a trigger type that involves pressing a key, type a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
h. Create your script in the action script window.
i. When you are done, click OK.

Note: For more information about scripts, see Associating Scripts with Symbols on page 299.

Wonderware Training
Section 4 – Animating Graphic Elements 3-171

Configuring a Show Symbol Animation


You can configure an element with a show symbol animation. A Show symbol animation shows a
specified symbol in a new window, when the element is clicked on.
You can configure:
z Which symbol appears in the new window.
z If the window has a title bar, and if so, if it has a caption.
z If the window is modal or modeless.
z If the window has a close button.
z If the window can be resized.
z The initial window position.
z The size of the window.
To configure an element with a show symbol animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations. The Edit Animations dialog box appears.
c. Click the Add icon and select Show Symbol.
The show symbol animation is added to the animation list.

d. In the Reference box, type a symbol name or browse for one by using the Browse button.
e. If you want to add a title bar to the symbol, select Has Title Bar.
f. If you want to use the symbol name as window title,
select Use Symbol Name for Window Title.
g. Select the window type, either Modal or Modeless.
h. If you want the symbol to have a close button, select Has Close Button.
i. If you want the symbol to have resize controls, select Resizable.

InTouch 10.0 – Advanced Application Development Course


3-172 Module 3 – ArchestrA Graphics

j. Select where you want the window to appear by selecting a position in the Position list.
You can select one of the following:
z Center Screen to position the symbol in the center of the screen.
z Top Left Mouse Position to position the symbol’s top left corner at the position of the
mouse pointer.
z Top Right Mouse Position to position the symbol’s top right corner at the position of the
mouse pointer.
z Bottom Left Mouse Position to position the symbol’s bottom left corner at the position of
the mouse pointer.
z Bottom Right Mouse Position to position the symbol’s bottom right corner at the position
of the mouse pointer.
z Center Mouse Position to position the symbol’s center point on the mouse pointer.
z Top Left X,Y Position to position the symbol’s top left corner at a specified position.
z Center X,Y Position to position the symbol’s center point at a specified position.
z Top of Screen to position the symbol at the top center of the screen.
z Left Side of Screen to position the symbol at the left middle of the screen.
z Right Side of Screen to position the symbol at the right middle of the screen.
z Bottom of Screen to position the symbol at the bottom center of the screen.
z Top Left Corner of Screen to position the symbol at the top left corner of the screen.
z Top Right Corner of Screen to position the symbol at the top right corner of the screen.
z Bottom Left Corner of Screen to position the symbol at the bottom left corner of the
screen.
z Bottom Right Corner of Screen to position the symbol at the bottom right corner of the
screen.
k. If you selected Top Left X,Y Position or Center X,Y Position as position, you can type the
desired coordinates in the X and Y value boxes.
l. Select how large you want the window to be in the Size list. You can select either:
z Symbol Size (1x) to make the window size the same as the size of the symbol.
z Symbol Size plus 25% (1.25x) to make the window size 25% larger than the size of the
symbol.
z Symbol Size plus 50% (1.5x) to make the window size 50% larger than the size of the
symbol.
z Symbol Size plus 75% (1.75x) to make the window size 75% larger than the size of the
symbol.
z Double Symbol Size (2x) to make the window size twice the size of the symbol.
z Triple Symbol Size (3x) to make the window size three times the size of the symbol.
z Quadruple Symbol Size (4x) to make the window size four times the size of the symbol.
z 25% Screen Size to make the window size cover 25% of the screen.
z 50% Screen Size to make the window size cover 50% of the screen.
z 75% Screen Size to make the window size cover 75% of the screen.
z Full Screen Size to make the window size cover the entire screen.
z Custom Width and Height to specify a width and height.

Wonderware Training
Section 4 – Animating Graphic Elements 3-173

m. If you selected Custom Width and Height as size, you can type the desired width and height
in the W and H boxes.
n. If you want the symbol to be stretched to fit the window size, select Stretch symbol to fit
window size.
o. If you want the window to be stretched to fit the screen width, select Stretch window to
screen width. If the size is Custom Width and Height, you can type a value for the height in
the H box.
p. If you want the window to be stretched to fit the screen height, select Stretch window to screen
height. If the size is Custom Width and Height, you can type a value for the width in the W box.
q. If you want the symbol window to appear by pressing a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
r. When you are done, click OK.

Configuring a Hide Symbol Animation


You can configure an element with a hide symbol animation. The hide symbol animation lets you
either close:
The current symbol.
z A symbol that is shown by a specified element.
z To configure an element with a hide symbol animation
Select the element you want to configure.
a. On the Special menu, click Edit Animations. The Edit Animations dialog box appears.
b. Click the Add icon and select Hide Symbol. The hide symbol animation is added to the
animation list and the Symbol Hide configuration panel appears.

c. Select either:
z Current Symbol, if you want to close the currently shown symbol or window.
z Symbol shown by an element, if you want to close a symbol that is shown by that
element. Type the element name in the adjacent box.
d. If you want the symbol window to be hidden by pressing a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
e. When you are done, click OK.

InTouch 10.0 – Advanced Application Development Course


3-174 Module 3 – ArchestrA Graphics

Configuring Element-Specific Animations


Some elements have their own unique animation type that can only be used for that element type.
You cannot remove their unique animation, but depending on the element you can add and
remove other common animations.
The elements with specific animations are:
z Status Graphic.
z Windows Common Controls, such as Radio Button Group, Check Box, Edit Box, Combo
Box, Calendar, DateTime Picker and List Box.

Configuring a Status Graphic Animation


You can configure the Status Graphic element to indicate quality and status from:
z ArchestrA attributes used in elements with animation.
z ArchestrA attributes directly.
The appearance of the Status Graphic element depends on the settings in the Configure Quality
and Status Display dialog box.

Note: The Status Graphic animation is only used by the Status element and cannot be removed
from the Status element.

To configure a Status Graphic animation


a. Select the Status element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears and the Status Graphic configuration panel appears.

c. From the Available Graphic Elements list, select all elements for which you want to monitor
their attribute quality and status.
d. Click the >> button to add them to the Selected Graphic Elements list.

Note: You can click the << button to remove any elements you do not want to select.

Wonderware Training
Section 4 – Animating Graphic Elements 3-175

e. Click the Expression tab.


The Expression panel appears.

f. In the Value or Expression list type a value or expression that can either be a literal, or a
reference or element property.

Note: You can also browse for the value or expression by clicking the browse button.

g. To add further values or expression, click the Add button.


An additional row is added for data input.
h. Click OK when finished.

Note: This will be discussed in more detail later in the course.

Configuring a Radio Button Group Animation


The Radio Button Group animation is only used by the Radio Button Group element.
You can either create a:
z Static radio button group - uses static captions and values that you define in the
configuration panel.
z Array radio button group - uses captions and values that are contained in an Automation
Object array.
z Enum radio button group - uses captions and values that are contained in an enum data
type of an Automation Object.

InTouch 10.0 – Advanced Application Development Course


3-176 Module 3 – ArchestrA Graphics

Configuring a Static Radio Button Group Animation


You can configure a radio button group with static values and captions.
To configure a static radio button group animation.
a. Select the radio button group element you want to configure.
b. On the Special menu, click Edit Animations. The Edit Animations dialog box appears and
the Static Radio Button Group configuration panel is shown on the right side.

c. In the Reference box, type an attribute reference to store the selected value at run time.
d. In the Static Values and Captions list, configure the captions of the radio button group and
also the values that correspond to them to:
z Add an option, click the Add icon.
z Delete an option, select it in the list and click the Remove icon.
z Move an option up the list, select it in the list and click the Arrow up icon.
z Move an option down the list, select it in the list and click the Arrow down icon.
e. If you want to use the values themselves as captions, select Use Values as Captions.
f. You can either orientate the radio button group in vertical or horizontal direction.
Select either Vertical or Horizontal.
g. When you are done, click OK.

Wonderware Training
Section 4 – Animating Graphic Elements 3-177

Configuring an Array Radio Button Group Animation


You can configure a radio button group with values from an array and captions.
To configure an array radio button group animation
a. Select the radio button group element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Array button.
The Array Radio Button Group configuration panel is shown on the right side.

d. In the Reference box, type an attribute reference to store the selected value at run time.
e. In the Array Reference box, type or browse for an array attribute.
The Array Values and Captions list is populated with the values from the array reference.
f. To define your own captions, unselect Use Values as Captions and type them in the list.
g. If you want to format the value before it is shown as a caption, type a text format string in the
Format box, for example #.###.
h. Set Items Sorting to either:
z None to show the items in the order they are in the enum attribute.
z Ascending to show the items sorted in ascending order.
z Descending to show the items sorted in descending order.
i. You can either orientate the radio button group in vertical or horizontal direction.
Select either Vertical or Horizontal.
j. When you are done, click OK.

InTouch 10.0 – Advanced Application Development Course


3-178 Module 3 – ArchestrA Graphics

Configuring an Enum Radio Button Group Animation


You can configure a radio button group with values from an enum attribute and captions.
To configure an enum radio button group animation
a. Select the radio button group element you want to configure.
b. On the Special menu, click Edit Animations. The Edit Animations dialog box appears.
c. Click the Enum button.
The Enum Radio Button Group configuration panel is shown on the right side.

d. In the Enum Reference box, type an enum attribute reference. The Enum Values and
Captions list is populated with the values from the enum reference.
e. To define your own captions, unselect Use Values as Captions and type them in the list.
f. Set Items Sorting to either:
z None to show the items in the order they are in the enum attribute.
z Ascending to show the items sorted in ascending order.
z Descending to show the items sorted in descending order.
g. You can either orientate the radio button group in vertical or horizontal direction.
Select either Vertical or Horizontal.
h. When you are done, click OK.

Wonderware Training
Section 4 – Animating Graphic Elements 3-179

Configuring a Check Box Animation


The Check Box animation is only used by the Check Box element.
To configure a Check Box animation
a. Select the Check Box element you want to configure.
b. On the Special menu, click Edit Animations. The Edit Animations dialog box appears and
the Check Box configuration panel is shown on the right side.

c. In the Checked value - Boolean box, type an attribute reference. The attribute reference
contains the selected state of the check box control at run time.
d. If you want to set the caption of the check box at run-time, select Override caption at
Runtime with the following expression and type a string value or attribute reference or
expression in the String Expression box.
e. When you are done, click OK.

InTouch 10.0 – Advanced Application Development Course


3-180 Module 3 – ArchestrA Graphics

Configuring an Edit Box Animation


The Edit Box animation is only used by the Edit Box element. You cannot remove this animation
from the Edit Box element, but you can add certain common animations.
You can also use Edit Box-specific methods in scripting to load and save the text at run time. You
can browse these methods in the Galaxy Browser with the Edit Box selected.
To configure an Edit Box animation
a. Select the Edit Box element you want to configure.
b. On the Special menu, click Edit Animations. The Edit Animations dialog box appears and
the Edit Box configuration panel is shown on the right side.

c. In the String Reference box, type an string attribute reference.


The string attribute reference contains the text in the edit box at run time.
d. In the Configuration area, select:
z Multiline to wrap the text in the edit box.
z Read-Only to use the edit box to only show text and not allow text input.
z Maximum Length to limit the maximum numbers of characters you can type in the edit
box control. You can specify the maximum number in the Characters box.
You can enter a default text in the Text box.

Configuring a Combo Box Animation


The Combo Box animation is only used by the Combo Box element.
You can either create a:
z Static Combo Box - uses static captions and values that you define in the configuration
panel.
z Array Combo Box - uses captions and values that are contained in an Automation object
array.
z Enum Combo Box - uses captions and values that are contained in an enum data type of
an Automation object.
You can also use Combo Box-specific methods in scripting to perform various functions at run
time. You can browse these methods in the Galaxy Browser with the Combo Box selected.

Wonderware Training
Section 4 – Animating Graphic Elements 3-181

Configuring a Static Combo Box Animation


You can configure a combo box with static values and captions.
To configure a static combo box animation
a. Select the radio button group element you want to configure.
b. On the Special menu, click Edit Animations. The Edit Animations dialog box appears and
the Static Combo Box configuration panel is shown on the right side.

c. In the Reference box, type an attribute reference to store the selected value at run time.
d. In the Static Values and Captions list, configure the captions of the combo box and also the
values that correspond to them:
z Add an option, click the Add icon.
z Delete an option, select it in the list and click the Remove icon.
z Move an option up the list, select it in the list and click the Arrow up icon.
z Move an option down the list, select it in the list and click the Arrow down icon.
e. If you want to use the values themselves as captions, select Use Values as Captions.
f. If you want to alphabetically sort the captions, select Sorted.
g. If you want to allow duplicate captions, select Allow Duplicates.
h. You can select the type of combo box from the Type list. Select either:
z Simple - at run time you can type a value, but not select any.
z DropDown - at run time you can either type a value, or select one from the list.
z DropDownList - at run time you can only select a value from the list, but not type one.
i. When you are done, click OK.

InTouch 10.0 – Advanced Application Development Course


3-182 Module 3 – ArchestrA Graphics

Configuring an Array Combo Box Animation


You can configure a combo box with values from an array and captions.
To configure an array radio button group animation
a. Select the radio button group element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Array button. The Array Combo Box configuration panel is shown on the right side.

d. In the Reference box, type an attribute reference to store the selected value at run time. The
Array Values and Captions list is populated with the values from the array reference.
e. To define your own captions, unselect Use Values as Captions and type them in the list.
f. If you want to format the value before it is shown as a caption, type a text format string in the
Format box, for example #.###.
g. Set Items Sorting to either:
z None to show the items in the order they are in the enum attribute.
z Ascending to show the items sorted in ascending order.
z Descending to show the items sorted in descending order.
h. When you are done, click OK.

Wonderware Training
Section 4 – Animating Graphic Elements 3-183

Configuring an Enum Combo Box Animation


You can configure a combo box with values from an enum attribute and captions.
To configure an enum combo box animation
a. Select the combo box element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Enum button.
The Enum Combo Box configuration panel is shown on the right side.

d. In the Enum Reference box, type an enum attribute reference.


The Enum Values and Captions list is populated with the values from the enum reference.
e. To define your own captions, unselect Use Values as Captions and type them in the list.
f. Set Items Sorting to either:
z None to show the items in the order they are in the enum attribute.
z Ascending to show the items sorted in ascending order.
z Descending to show the items sorted in descending order.
g. When you are done, click OK.

InTouch 10.0 – Advanced Application Development Course


3-184 Module 3 – ArchestrA Graphics

Configuring a Calendar Control Animation


The Calendar Control animation is only used by the Calendar Control element.
To configure a Calendar control animation
a. Select the Calendar control element you want to configure.
b. On the Special menu, click Edit Animations. The Edit Animations dialog box appears and
the Calendar configuration panel is shown on the right side.

c. In the Date Reference box, type a Time attribute reference to store the selected value at run
time.
d. If you want to restrict the date the user can select at run time, you can specify limits as follows:
z In the MinDate box, type a lower limit for the date.
z In the MaxDate box, type an upper limit for date.
e. If you want some dates to appear bold, in the Bolded Dates box type a reference that points
to an attribute array with time data type.
f. If you want today’s date shown on the calendar control, select Show Today.

g. If you want to change the colors of the calendar control, click in the Calendar Colors area the
following color boxes:
z Month Background.
z Month Trailing Forecolor.
z Title Background.
z Title Foreground.
The style selection dialog box appears and you can select a solid color.
h. When you are done, click OK.

Wonderware Training
Section 4 – Animating Graphic Elements 3-185

Configuring a DateTime Picker Animation


The DateTime Picker animation is only used by the DateTime Picker element.
To configure a DateTime Picker animation
a. Select the DateTime Picker control element you want to configure.
b. On the Special menu, click Edit Animations. The Edit Animations dialog box appears and
the DateTime Picker configuration panel appears.

c. In the Time Reference box, type a Time attribute reference to store the selected value at run
time.
d. To set the datetime format, select from the Format list one of the following:
z Long to show the date and time in the dddd MMMM dd, yyyy format, for example:
Thursday, August 03 2006.
z Short to show the date and time in the dd/MM/yyyy format, for example: 8/3/2006.
z Time to show just the time in the hh:mm:ss format, for example: 3:46:09 PM.
z Custom to specify your own time format. Use the following letters to set the time format.

Note: The formats are listed on page 3-152.

e. If you want to restrict the date the user can select at run time, you can specify limits in the:
z MinDate box - type a lower limit for the date.
z MaxDate box - type an upper limit for date.
z If you want to change the colors of the calendar control that drops down, click in the
Calendar Colors area the following color boxes:
z Month Background.
z Month Trailing Forecolor.
z Title Background.
z Title Foreground.
The style selection dialog box appears and you can select a solid color.

InTouch 10.0 – Advanced Application Development Course


3-186 Module 3 – ArchestrA Graphics

Configuring a List Box Animation


The List Box animation is only used by the List Box element.
You can either create a:
z Static List Box - uses static captions and values you define in the configuration panel.
z Array List Box - uses captions and values contained in an Automation object array.
z Enum List Box - uses captions and values contained in an enum data type of an
Automation object.
You can also use List Box-specific methods in scripting to perform various functions at run time.
You can browse these methods in the Galaxy Browser with the List Box selected.

Configuring a Static List Box Animation


You can configure a list box with static values and captions.
To configure a static list box animation
a. Select the list box element you want to configure.
b. On the Special menu, click Edit Animations. The Edit Animations dialog box appears and
the Static List Box configuration panel is shown on the right side.

c. In the Reference box, type an attribute reference to store the selected value at run time.
d. In the Static Values and Captions list, configure the captions of the list box and also the
values that correspond to them. To:
z Add an option, click the Add icon.
z Delete an option, select it in the list and click the Remove icon.
z Move an option up the list, select it in the list and click the Arrow up icon.
z Move an option down the list, select it in the list and click the Arrow down icon.
e. If you want to use the values themselves as captions, select Use Values as Captions.
f. If you want to alphabetically sort the captions, select Sorted.
g. If you want to allow duplicate captions, select Allow Duplicates.
h. When you are done, click OK.

Wonderware Training
Section 4 – Animating Graphic Elements 3-187

Configuring an Array List Box Animation


You can configure a list box with values from an array and captions.
To configure an array list box animation
a. Select the list box element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Array button.
The Array List Box configuration panel is shown on the right side.

d. In the Reference box, type an attribute reference to store the selected value at run time.
e. In the Array Reference box, type or browse for an array attribute. The Array Values and
Captions list is populated with the values from the array reference.
f. To define your own captions, unselect Use Values as Captions and type them in the list.
g. If you want to format the value before it is shown as a caption, type a text format string in the
Format box, for example #.###.
h. Set Items Sorting to either:
z None to show the items in the order they are in the enum attribute.
z Ascending to show the items sorted in ascending order.
z Descending to show the items sorted in descending order.
i. When you are done, click OK.

InTouch 10.0 – Advanced Application Development Course


3-188 Module 3 – ArchestrA Graphics

Configuring an Enum List Box Animation


You can configure a list box with values from an enum attribute and captions.
To configure an enum list box animation
a. Select the radio button group element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Enum button.
The Enum List Box configuration panel is shown on the right side.

d. In the Enum Reference box, type an enum attribute reference. The Enum Values and
Captions list is populated with the values from the enum reference.
e. To define your own captions, unselect Use Values as Captions and type them in the list.
f. Set Items Sorting to either:
z None to show the items in the order they are in the enum attribute.
z Ascending to show the items sorted in ascending order.
z Descending to show the items sorted in descending order.
g. When you are done, click OK.

Wonderware Training
Section 4 – Animating Graphic Elements 3-189

Submitting the Value Changes


You can configure a Windows Common Control to write the data either:
z Immediately when it is selected in the control at run time.
z When a specified boolean expression becomes true.

Note: The boolean expression is a trigger that determines when the value is written from the
control to the tag or attribute. If the value changes in the tag or attribute, then the value is
written to the control, regardless of the trigger setting or condition.

To submit value changes immediately


a. Open the Windows common control in the Edit Animations dialog box.
b. In the Submit Value Changes area, select Immediately.
To submit value changes after a boolean expression becomes true
a. Open the Windows common control in the Edit Animations dialog box.
b. In the Submit Value Changes area, select On Trigger Condition.
c. In the Boolean Expression box, type a boolean expression or browse for a boolean attribute.

Cutting, Copying and Pasting Animations


You can cut, copy and paste animations and their configuration between different elements. This
is useful when you want to duplicate the animations of one element, such as a line, to a different
type of element, such as a polyline.

Note: If you try to paste an animation to an element that is already configured with that animation,
an appropriate dialog box appears.

To copy and paste animations between elements


a. Select the element from which you want copy the animations.
b. On the Edit menu, point to Animations, and then click Copy.
c. Select one or more elements to which you want to paste the animations.
d. On the Edit menu, point to Animations, and then click Paste.
The animation links are copied from the source element to the target element(s).

InTouch 10.0 – Advanced Application Development Course


3-190 Module 3 – ArchestrA Graphics

To cut and paste animations between elements


a. Select the element from which you want to cut the animations.
b. On the Edit menu, point to Animations, and then click Cut.
c. Select one or more elements to which you want to paste the animations.
d. On the Edit menu, point to Animations, and then click Paste.
The animation links are removed from the source element and copied to the target element(s).

Connecting ArchestrA Symbols with InTouch Tagnames


You can connect ArchestrA symbols with InTouch tagnames by overriding the custom properties
of an inserted ArchestrA symbol. The custom properties expose the ArchestrA symbol animation
links to InTouch.

Connecting ArchestrA Symbols with InTouch Tags

ArchestrA Symbol Editor

SYMBOL4
SYMBOL3

SYMBOL1 SYMBOL2

ELEMENT1 CustomProperty1

ANI CustomProperty2
MA
T IO
N CustomProperty3

InTouch WindowMaker EMBED ARCHESTRA SYMBOL

InTouch Tags

tag3

SYMBOL1 tag2

tag1
ELEMENT1 CustomProperty1

ANI CustomProperty2
MA
T IO
N CustomProperty3
USES INTOUCH
TAG AS REFERENCE

Wonderware Training
Section 4 – Animating Graphic Elements 3-191

When you insert an ArchestrA symbol in an InTouch window, the references in the animation links
are converted as follows:

ArchestrA Symbol Inserted ArchestrA Symbol


Object.Extension galaxy:Object.Extension
intouch:Tagname Tagname

To connect an ArchestrA symbol with an InTouch tagname


a. Select the inserted ArchestrA symbol on the InTouch window.
b. On the Special menu, point to the ArchestrA Graphic Object "name", and then click Edit
Custom Properties. The Edit Custom Properties dialog box appears.

c. Select the custom property you want to connect to an InTouch tagname.


The configuration for the selected custom property appears on the right.
d. In the Default Value box, either:
z Type the name of the InTouch tagname.
z Click the browse button and select a tagname from the Select Tag dialog box.

Note: You can restore the original value of the custom property by clicking the Restore icon.

e. When you are done, click OK.


Any animation in the ArchestrA symbol that is configured with the selected custom property
now interacts with the InTouch tagname instead.

InTouch 10.0 – Advanced Application Development Course


3-192 Module 3 – ArchestrA Graphics

Wonderware Training
Lab 5 – Animation 3-193

Lab 5 – Animation
Introduction
In this lab, you will add animation to the tank symbol you created in Lab 3 and modified in Lab 4.
You will use a % Fill Vertical animation to show the tank filling and draining. You will also animate
a text box to display the agitator status and then test these animations in Runtime.

Objectives
Upon completion of this lab, you will be able to:
z Create and apply animation to an ArchestrA Symbol

InTouch 10.0 – Advanced Application Development Course


3-194 Module 3 – ArchestrA Graphics

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

Add Custom Properties to the tank object created in the earlier lab.
a. From the InTouch NewReactor window, edit the Main_Reactor1 symbol.
b. Rename the Rounded Rectangle in the middle of the tank to LevelIndicator.
c. Add a % Fill Vertical animation to LevelIndicator that references the Level property of
Main_Reactor.
Set At Max Fill to 1000, Fill Color to any color you choose, and Unfilled Color to No Fill.
d. Add a Text Box to the Main_Tank, change the text to Agitator Status.
e. Add a Value Display animation with a State of Boolean and Expression Or Reference of
Agitator.
f. Add a Fill Style animation with a State of Boolean and the colors of Green for On and Red
for Off.
g. Switch to WindowMaker and Update the symbol.
h. Link the Agitator_PLC1 tag to the Agitator Custom Property OR
Assign the Custom Properties in the symbol to the tags shown below:

Custom Property Name Default Value


Agitator Agitator_PLC1
DrainValve.FillColor Green
DrainValve.Value Drain_Valve_PLC1
GateValve.FillColor Green
GateValve.Value Gate_PLC1
Start.Value Start_PLC1
Level Tank_Level_PLC1
ValveA.FillColor Green
ValveA.Value Valve_A_PLC1
ValveB.FillColor Green
ValveB.Value Valve_B_PLC1

i. Test in Runtime.

See the next page for Detailed Lab Instructions

Wonderware Training
Lab 5 – Animation 3-195

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Animate the Tank Object


1. Launch WindowMaker if it is not already running and open the NewReactor Window.
2. Right-click your Main_Reactor symbol and select
ArchestrA Graphic “Main_Reactor1” / Edit Symbol.
3. Select the Rounded Rectangle in the middle of the tank and Rename it LevelIndicator.
4. Double-click on the LevelIndicator to access its animation links.

5. Click the Add Animation icon to add an animation to the object.


6. Select the Visualization Animation % Fill Vertical.

InTouch 10.0 – Advanced Application Development Course


3-196 Module 3 – ArchestrA Graphics

7. Click the ellipsis button to the right of the Expression Or Reference field to open the Galaxy
Browser.

8. Click the Element Browser tab.


Select Main_Reactor to be able to select the Custom Properties associated with the symbol.
Select the Level Property.

9. Click OK.

Note: Although it is possible to assign a property to the Min/Max fill properties, you will set the
property for this lab.

10. Set At Max Fill to 1000.

Wonderware Training
Lab 5 – Animation 3-197

11. The fill color for the element should be whatever color it was drawn in.
Click on the UnFilled Color selector and change the color to No Fill.
Click OK when finished.

Note: You can test your animation configuration using the Preview section in the lower right
corner.

12. Click OK when finished.

InTouch 10.0 – Advanced Application Development Course


3-198 Module 3 – ArchestrA Graphics

13. Use the Text Box tool to insert a text box into the symbol.
Change the text to Agitator Status.

14. Double-click the Text Box to open the animations and add a Value Display animation.

15. Select the State Boolean.


Set the Expression Or Reference to Agitator.

16. Without exiting the Edit Animations dialog box, add another animation
Select the Fill Style animation.

Wonderware Training
Lab 5 – Animation 3-199

17. Select the State of Boolean and define the animation as shown below using:
z Expression Or Reference: Agitator
z Green for On
z Red for Off

18. Click OK when finished.


19. Save and Close the Symbol Editor and add a Check-in comment as appropriate.

20. Switch back to WindowMaker and update the symbol by double-clicking the update icon.

InTouch 10.0 – Advanced Application Development Course


3-200 Module 3 – ArchestrA Graphics

Assign Tags to Custom Properties


21. Double-click on the symbol in WindowMaker to bring up the Custom Properties dialog.
22. Select the Agitator property.
23. Click on the ellipsis button to the right of the Default Value field.

This will open the InTouch Tag Browser and you will be able to select the appropriate tags to
link to the custom Properties to drive the animation.

Note: Recall that when symbols are embedded into other symbols, their custom properties
come across with them. For example, the Custom Property to drive the animation for Valve_A
is named ValveA.Value.

Note: You also have the option in some cases, to override the color for an embedded symbol.
For example, you can change the Default Value for DrainValve.FillColor to Red to change
the OnColor.

Wonderware Training
Lab 5 – Animation 3-201

24. Assign the tags to the Custom Properties as shown.

Custom Property Name Default Value


Agitator Agitator_PLC1
DrainValve.FillColor Green
DrainValve.Value Drain_Valve_PLC1
GateValve.FillColor Green
GateValve.Value Gate_PLC1
Level Tank_Level_PLC1
Start.Value Start_PLC1
ValveA.FillColor Green
ValveA.Value Valve_A_PLC1
ValveB.FillColor Green
ValveB.Value Valve_B_PLC1

25. Click OK to exit when finished.

InTouch 10.0 – Advanced Application Development Course


3-202 Module 3 – ArchestrA Graphics

26. Test your animations in Runtime.

Wonderware Training
Lab 6 – Referencing a Symbol 3-203

Lab 6 – Referencing a Symbol


Introduction
ArchestrA Symbols have the ability to call, or open another symbol via an animation link. This is
similar to the Show Window animation link, but without ever having to create a Window to house
the symbol. However, since the symbol will not be in a window, it will not be possible to assign the
Custom Properties to InTouch Tags. To get around this, when the custom property is defined, the
default value can be assigned directly to an InTouch tag, using the syntax of ‘InTouch:Tagname’.
This lab uses the Main_Reactor symbol created and modified in previous labs.

Objectives
Upon completion of this lab, you will be able to:
z Call one symbol from within another

InTouch 10.0 – Advanced Application Development Course


3-204 Module 3 – ArchestrA Graphics

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

a. From the IDE’s Graphic Toolbox, in the Class Symbols Graphic Toolset, create a new symbol
named StatusPanel similar to the one shown below.

ArchestrA Graphic Library


Element
Symbol Name
Panel Background PanelBrushed
Digital Meter DigitalMeterRollingDigits
Lights* LightGlossyGreenRed
* Rename each instance of the light to match what they
are representing. For example, Start and Agitator

b. Assign each Default Value to an appropriately named InTouch Tag with the syntax:
InTouch:Tagname.
c. Open the Main_Reactor Symbol and draw a button labeled Status Panel next to the tank.
d. Add a Show Symbol animation to the button and show the Status Panel.
e. Switch back to WindowMaker and Update the symbol.
f. Test the animation in Runtime.

See the next page for Detailed Lab Instructions

Wonderware Training
Lab 6 – Referencing a Symbol 3-205

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

1. If the IDE is not already open, launch the ArchestrA IDE and connect to your Galaxy.
2. From the IDE’s Graphic Toolbox, create a new symbol named StatusPanel in the Class
Symbols Graphic Toolset.
3. Open the symbol and draw a graphic similar to the one shown below.
4. Rename the Elements as shown below.

ArchestrA Graphic Library


Element
Symbol Name
Panel Background PanelBrushed
Digital Meter DigitalMeterRollingDigits
Lights* LightGlossyGreenRed
* Rename each instance of the light to match what they
are representing. For example, Start and Agitator

InTouch 10.0 – Advanced Application Development Course


3-206 Module 3 – ArchestrA Graphics

5. Each instance of the light has a custom property named Value.


Assign each Default Value to an appropriately named InTouch Tag.
For example, right-click on the symbol for the Process Running light and select Custom
Properties.

6. Link the Value Custom Property to InTouch:Start_PLC1 by typing it in the Default Value field.

Note: For a reminder of the tags you created earlier, see step 14 on page 2-11.

7. Repeat the steps for each of the other symbols, linking them to the appropriate InTouch tag.
8. Save and Close this symbol.

Wonderware Training
Lab 6 – Referencing a Symbol 3-207

9. Open the Main_Reactor Symbol and draw a button object next to the tank.
Change the button label to Status Panel.

10. Double-click the button and add the animation Show Symbol.

11. Set the Reference of the Animation to the Symbol StatusPanel.


Click the ellipsis button to Browse to the symbol.
Leave the rest of the options as default and click OK.

12. Save and Close the Main_Reactor symbol.

InTouch 10.0 – Advanced Application Development Course


3-208 Module 3 – ArchestrA Graphics

13. Switch back to WindowMaker.


14. Update the symbol.
15. Switch to Runtime and test the animation.

Wonderware Training
Section 5 – Associating Scripts with Symbols 3-209

Section 5 – Associating Scripts with Symbols

Section Objective
z Configure scripts and associate them with objects.
z Test scripts in Runtime.

This section shows you how to associate symbols with one or more scripts. Scripts can run code
that animates the symbol or its elements, or perform any other task. The script language used for
this purpose is nearly identical to the one used in InTouch.

About Symbol Scripts


You can configure your symbol with scripts that can be executed in run time. Symbol scripts can
either be:
z Predefined.
z Named.
Predefined scripts are similar to InTouch window scripts in that they are executed either:
z Once when the symbol is shown or opened.
z Periodically while the symbol is showing.
z Once when the symbol is hidden or closed.
z Any combination of the above.
Named scripts let you execute any number of scripts in run time that are triggered by values or
expressions:
z Being true: While True.
z Being false: While False.
z Transitioning from false to true: On True.
z Transitioning from true to false: On False.
z Changing in value or quality: DataChange.

Note: Any named script that is triggered by the DataChange trigger type is executed the first time
the symbol is shown. This behavior is different than the DataChange trigger behavior of Industrial
Application Server scripts.

For more information about Industrial Application Server scripting, see the Industrial Application
Server User’s Guide.
You can:
z Configure the predefined scripts of a symbol.
z Add named scripts to a symbol.
z Edit existing named or predefined scripts in a symbol.
z Rename named scripts in a symbol.
z Remove named scripts from a symbol.
z Substitute references in named or predefined scripts.
z Use Element Methods in named or predefined scripts.

InTouch 10.0 – Advanced Application Development Course


3-210 Module 3 – ArchestrA Graphics

Configuring the Predefined Scripts of a Symbol


You can configure the predefined scripts of a symbol. The predefined scripts can consist of:
z A script that is run once when the symbol opens.
z A script that is run periodically as long as the symbol is open.
z A script that is run once when the symbol closes.

Note: The Predefined Scripts animation cannot be deleted. It can contain scripts for each trigger
type On Show, While Showing and On Hide.

To configure the predefined scripts for a symbol


a. Open the symbol in the ArchestrA Symbol Editor.
b. On the Special menu, click Scripts.
The Edit Scripts dialog box appears.

c. From the Trigger Type list, select either:


z On Show to configure a script that is executed once when the symbol is opened.
z While Showing to configure a script that is executed every so often while the symbol is
open.
z On Hide to configure a script that is executed once when the symbol is closed.
d. If you configured a While Showing script, type a time period in milliseconds in the Period box.
This specifies after how many milliseconds the action script is executed.
e. Type your script in the main edit box.
f. Use the Script Function Browser and Attribute Browser to select external data.
g. When you are done, click OK.
The script editor checks the syntax of the script and may inform you of invalid syntax.
Either click:
z Yes to save changes even if the script contains errors.
z No to not save the changes and close the script dialog box.
z Cancel to not save the changes and keep the script dialog box open.

Wonderware Training
Section 5 – Associating Scripts with Symbols 3-211

Adding Named Scripts to a Symbol


You can add named scripts to a symbol. These can either be run:
z Once when the specified values, data or expressions change.
z Periodically if the values or expressions fulfill a certain criteria, such as being true.

Note: Every named script can contain only one trigger type.

To add a named script to a symbol


a. Open the symbol in the ArchestrA Symbol Editor.
b. On the Special menu, click Scripts.
The Edit Scripts dialog box appears.
c. Click the Add icon.
A new entry is created in the Named Scripts list on the left of the panel.

d. Type a name for the named script.


The name appears on the right panel as header.

e. In the Expression field, either:


z Type an expression, value or reference.
z Browse for a reference.
f. The expression acts as data source for the script trigger.

InTouch 10.0 – Advanced Application Development Course


3-212 Module 3 – ArchestrA Graphics

g. In the Trigger box, select either:


z WhileTrue to trigger the script periodically when the expression is true.
z WhileFalse to trigger the script periodically when the expression is false.
z OnTrue to trigger the script once when the expression becomes true from false.
z OnFalse to trigger the script once when the expression becomes false from true.
z DataChange to trigger the script once when the expression or its quality changes.
h. If you selected DataChange, select Quality Changes to trigger the script when the quality of
the specified expression changes.
i. If required, in the Trigger Period box, type a time delay in milliseconds.
The time delay specifies how often the script is run when the trigger condition is fulfilled.
j. If required, in the Deadband box, type the deadband value. The deadband specifies by how
much the expression must change before the script is executed.
k. Type your script in the main edit box.
l. Use the Script Function Browser and Attribute Browser to select external data.
m. When you are done, click OK.
The script editor checks the syntax of the script and may inform you of invalid syntax.
Either click:
z Yes to save changes even if the script contains errors.
z No to not save the changes and close the script dialog box.
z Cancel to not save the changes and keep the script dialog box open.
Example:
While the boolean Controls.FillTank is true, the tank level Tank_001.pv is increased by 1 unit
every second.

Wonderware Training
Section 5 – Associating Scripts with Symbols 3-213

Editing Scripts Associated with a Symbol


You can edit predefined and named scripts that are already associated with a symbol.
To edit scripts that are already associated with a symbol
Open the symbol in the ArchestrA Symbol Editor.
a. On the Special menu, click Scripts.
The Edit Scripts dialog box appears.
b. Select the script from the list in the left of the panel.
The right is populated with the script configuration.
c. If you are editing the predefined script, select from the TriggerType list either:
z On Show if the action script you want to edit is executed once when the symbol is
opened.
z While Showing if the action script you want to edit is executed every so often while the
symbol is open.
z On Hide if the action script you want to edit is executed once when the symbol is closed.
d. Edit the action script in the script box.
e. When you are done, click OK.

Renaming Scripts in a Symbol


You can rename named scripts in a symbol. When you rename the named script, the functionality
of the associated script does not change.
To rename a named
a. Open the symbol in the ArchestrA Symbol Editor.
b. On the Special menu, click Scripts.
The Edit Scripts dialog box appears.
c. From the Named Scripts list, click the script you want to rename.
d. Click the script again.
It appears in edit mode.
e. Enter a new name for the script and press Enter.
The script is renamed.

InTouch 10.0 – Advanced Application Development Course


3-214 Module 3 – ArchestrA Graphics

Removing Scripts from a Symbol


You can remove predefined or named scripts that are already associated with a symbol.
To remove predefined scripts that are already associated with a symbol
a. Open the symbol in the ArchestrA Symbol Editor.
b. On the Special menu, click Scripts.
The Edit Scripts dialog box appears.
c. Select Predefined Scripts from the list.
d. From the Trigger Type list, select either:
z On Show if the action script you want to remove is executed once when the symbol is
opened.
z While Showing if the action script you want to remove is executed every so often while
the symbol is open.
z On Hide if the action script you want to remove is executed once when the symbol is
closed.
e. Delete all the script in the script box.
f. When you are done, click OK.
To remove named scripts that are already associated with a symbol
a. Open the symbol in the ArchestrA Symbol Editor.
b. On the Special menu, click Scripts.
The Edit Scripts dialog box appears.
c. Select the named script from the list.

d. Click the Remove icon.


A confirmation dialog box appears.
e. Click Yes.
The script is removed.

Substituting Attribute References in Scripts


You can substitute attribute references in scripts in the same way as you would with attribute
references in elements. For more information, see Substituting References in Elements page 6-
91.

Example: Changing Element Properties using Scripts


You can change some of the properties of elements using scripting. This lets you configure
additional run-time animation to your elements on top of the design-time animation of those
elements.
When you write your script for the symbol or for one of its elements, you can use the Galaxy
Browser to show and select either a:
z Property of an element.
z Custom property of the symbol.

Wonderware Training
Section 5 – Associating Scripts with Symbols 3-215

To select an element property or a symbol custom property

a. From the script window, click the Galaxy Browser icon.


The Galaxy Browser dialog box appears.
b. Click the Element Browser tab.
The Galaxy Browser is populated with the element names and the properties of the selected
element.

c. Select an element or symbol from the list on the left.


The right side is populated with the properties of the selected element or symbol.
d. Select a property from the right panel and click OK.
The reference is pasted into the script window.

InTouch 10.0 – Advanced Application Development Course


3-216 Module 3 – ArchestrA Graphics

Using Methods in Scripting


Some elements, such as the Edit Box, Combo Box and List Box controls, support methods in
scripting. These methods can be used to perform various functions on the elements themselves at
run time.
You can see the properties and methods that are supported by any given element by opening the
Galaxy Browser and selecting the element.

You can use the methods of the:


z Edit Box control to save and load the text at run time to and from a file.
z Combo Box and List Box controls to access and change the contents of their lists at run
time.

Configuring Edit Box Methods


You can use the methods of an Edit Box control to:
z Save the contained text at run time to a file.
z Load text into the control from a file at run time.
To save the contained text in an Edit Box control
In an action script, use the following method:
ControlName.SaveText(FileName);
where ControlName is the name of the Edit Box control and FileName is the name of the file
you want to save the contents of the control to.
The text contained in the control at run time is saved to the specified file.
To load text into an Edit Box control from a file
In an action script, use the following method:
ControlName.LoadText(FileName);
where ControlName is the name of the Edit Box control and FileName is the name of the file
you want to load the text from.
The text contained in the file is loaded into the run time contents of the Edit Box control.

Wonderware Training
Section 5 – Associating Scripts with Symbols 3-217

Configuring Combo Box and List Box Methods


The Combo Box and List Box controls have methods which you can use to access and change
the items in the list at run time. Typically, you would configure an action script to access these
methods.
You can:
z Add and inserting items into the list.
z Delete individual or all items from the list.
z Find an item in the list.
z Get the item caption based on a specified index.
z Associate the items with values.
z Load items from and save items to a file.

Adding and Inserting Items into a List


You can add an individual item:
z To the end of the list.
z Above the currently selected item.
To add an item to a Combo Box or List Box list
In an action script, use the following method:
ControlName.AddItem(“ItemCaption”);
where ControlName is the name of the Combo Box or List Box control and ItemCaption is the
new item you want to add.
The item is added to the end of the list.
To insert an item in a Combo Box or List Box list
In an action script, use the following method:
Controlname.InsertItem(“ItemCaption”);
where ControlName is the name of the Combo Box or List Box control and ItemCaption is the
new item you want to insert.
The item is inserted above the currently selected item in the list.

InTouch 10.0 – Advanced Application Development Course


3-218 Module 3 – ArchestrA Graphics

Deleting Items from a List


You can delete:
z An individual item from a list.
z The selected item from a list.
z All items from a list.
To delete an individual item from a Combo Box or List Box list
In an action script, use the following method:
ControlName.DeleteItem(Index);
where ControlName is the name of the Combo Box or List Box control and Index is the index
of the item you want to delete.
The item at the specified index is deleted, subsequent items are moved up the list.
To delete the selected item from a Combo Box or List Box list
In an action script, use the following method:
ControlName.DeleteSelection();
where ControlName is the name of the Combo Box or List Box control.
The selected item is deleted, subsequent items are moved up the list.
To delete all items from a Combo Box or List Box list
In an action script, use the following method:
Controlname.Clear();
where ControlName is the name of the Combo Box or List Box control.
All items of the control are deleted.

Finding an Item in a List


You can find a item in a Combo Box or List Box list. You need to specify the item caption and the
method returns the index number if the item is found, otherwise -1.
Finding an item in a Combo Box or List Box list
In an action script, use the following method:
Index = ControlName.Find(“ItemCaption”);
where ControlName is the name of the Combo Box or List Box control and ItemCaption is the
caption of the item you are looking for.
Index is set to -1 if the item is not found, otherwise contains the index of the found item.

Wonderware Training
Section 5 – Associating Scripts with Symbols 3-219

Reading the Caption of a Selected Item in a List


You can read the caption of a selected item in a Combo Box or List Box list.
Reading the caption of a selected item in a Combo Box or List Box list
In an action script, use the following method:
Caption = Controlname.GetItem(Index);
where ControlName is the name of the Combo Box or List Box control and Index is the index
of the item for which you want to read the caption.
Caption contains the item caption of the specified index.

Associating Items with Values in a List


You can associate items with values in a Combo Box or List Box control. This is the same as using
a secondary index system to identify items in the list.
You can either:
z Set Item Data, which associates an item with a value.
z Get Item Data, which returns the value that is associated with an item.
To set item data in a Combo Box or List Box list
In an action script, use the following method:
Controlname.SetItemData(Index,Value);
where ControlName is the name of the Combo Box or List Box control, Index is the index of
the item that you want to set and Value is the value you want to assign to the item.
To get item data in a Combo Box or List Box list
In an action script, use the following method:
Value = Controlname.GetItemData(Index);
where ControlName is the name of the Combo Box or List Box control and Index is the index
of the item for which you want to get the value.
Value contains the value that is assigned to the item.

InTouch 10.0 – Advanced Application Development Course


3-220 Module 3 – ArchestrA Graphics

Loading and Saving Item Lists


You can load and save all items in a list from and to a file.
To load the item list for a Combo Box or List Box control from a file
In an action script, use the following method:
Controlname.LoadList(FileName);
where ControlName is the name of the Combo Box or List Box control and FileName is the
name of a file on the local hard drive or on the network.
The list contained in the file is loaded and, if valid, the current list is overwritten.
To save the item list for a Combo Box or List Box control to a file
In an action script, use the following method:
Controlname.SaveList(FileName);
where ControlName is the name of the Combo Box or List Box control and FileName is the
name of a file on the local hard drive or on the network.
The list is saved to the specified file.

Wonderware Training
Lab 7 – Scripting 3-221

Lab 7 – Scripting
Introduction
In this lab you will add a meter symbol to the tank created earlier. You will configure a script so that
when you hover over the symbol, it will enlarge and be easy to read. When you move your mouse
off the symbol, it will shrink to its original size. This lab modifies the Main_Reactor symbol created
and modified in earlier labs.

Objectives
Upon completion of this lab, you will be able to:
z Configure and implement Scripting within ArchestrA Graphics

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

a. In WindowMaker, open the NewReactor window if it is not open, and then Edit the
Main_Reactor symbol.
b. Embed the AnalogMeterRound symbol from the ArchestrA Graphics Library onto your
Main_Reactor symbol.
c. Rename the AnalogMeterRound to TankMeter.
d. Set the Runtime Behavior TreatAsIcon to True and resize the symbol so it is small and
unobtrusive.
e. Create the four following Custom Properties:

Property Data Type Visibility


GrowMe Boolean Private
ShrinkMe Boolean Private
InitialSize Float Private
GrowSize Float Private
As these Custom Properties will not be linked to tags,
all should have their Visibility set to Private (Hidden).

f. Add the following Action Scripts to TankMeter:

Trigger Type Delay Script


On Mouse Over 500 ms GrowMe = True;
ShrinkMe = False;
On Mouse Leave 500 ms GrowMe = False;
ShrinkMe = True;

InTouch 10.0 – Advanced Application Development Course


3-222 Module 3 – ArchestrA Graphics

g. Add the following Predefined Script.


InitialSize = TankMeter.Height;
GrowSize = InitialSize * 5;
h. Add the following Named Scripts:

Expression Trigger Period Script


GrowMeter While True 50 ms TankMeter.Height = TankMeter.Height * 1.10;
TankMeter.Width = TankMeter.Height;
If TankMeter.Height >= GrowSize then
GrowMe = False;
Endif;
ShrinkMeter While True 50 ms TankMeter.Height = TankMeter.Height / 1.10;
TankMeter.Width = TankMeter.Height;
If TankMeter.Height <= InitialSize then
ShrinkMe = False;
Endif;

i. Switch to WindowMaker and update the symbol.


j. Link the Custom Property TankMeter.Value to the InTouch Tag Tank_Level_PLC1.
k. Change the Default Value of TankMeter.Max to 1000.
This matches the range Tank_Level_PLC1.
l. Test the growing and shrinking functionality of the meter in Runtime.

See the next page for Detailed Lab Instructions

Wonderware Training
Lab 7 – Scripting 3-223

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Edit the Main_Tank


1. Launch WindowMaker if it is not already running and open the NewReactor Window.
2. Right-click and Edit the Main_Reactor Symbol in the Symbol Editor.
3. Click the Embed ArchestrA Graphic button on the toolbar.
4. Expand the Analog Meters folder in the ArchestrA Symbol Library.
Select and place the symbol AnalogMeterRound onto your canvas.

InTouch 10.0 – Advanced Application Development Course


3-224 Module 3 – ArchestrA Graphics

5. Size and position the Meter on the tank as shown below.

6. Rename the instance of the AnalogMeterRound to TankMeter.


7. With the TankMeter selected, scroll down the Properties pane to Runtime Behavior.
Set TreatAsIcon to True.

Wonderware Training
Lab 7 – Scripting 3-225

8. Deselect everything and right-click on the canvas and create the four Custom Properties in the
table below:

Property Data Type Visibility


GrowMe Boolean Private
ShrinkMe Boolean Private
InitialSize Float Private
GrowSize Float Private
As these Custom Properties will not be linked to tags,
all should have their Visibility set to Private (Hidden).

9. Double-click on the TankMeter Element and add an Action Script for a Trigger type
On Mouse Over.

InTouch 10.0 – Advanced Application Development Course


3-226 Module 3 – ArchestrA Graphics

10. Enter the following script in the white space below the yellow bar.
GrowMe = True;
ShrinkMe = False;

Note: The yellow bar is difficult to see on some monitors.

11. Do NOT click OK yet.


12. Add an additional Action Script for the Trigger type On Mouse Leave.
GrowMe = False;
ShrinkMe = True;

13. Click OK to exit the animations for this element.

Wonderware Training
Lab 7 – Scripting 3-227

14. Right-click on a blank part of the canvas to deselect everything and select Scripts.

15. Add the following Predefined Script.


InitialSize = TankMeter.Height;
GrowSize = InitialSize * 5;

InTouch 10.0 – Advanced Application Development Course


3-228 Module 3 – ArchestrA Graphics

16. Click on the and add the following Named Script named GrowMeter with the Expression
of GrowMe and a Period of 50 ms.
TankMeter.Height = TankMeter.Height * 1.10;
TankMeter.Width = TankMeter.Height;
If TankMeter.Height >= GrowSize then
GrowMe = False;
Endif;

17. Add an additional Named Script named ShrinkMeter with the Expression of ShrinkMe. and a
Period of 50 ms.
TankMeter.Height = TankMeter.Height / 1.10;
TankMeter.Width = TankMeter.Height;
If TankMeter.Height <= InitialSize then
ShrinkMe = False;
Endif;

18. Click OK, then Save and Close the Main_Reactor symbol.

Wonderware Training
Lab 7 – Scripting 3-229

19. Switch to WindowMaker.

20. Double-click on the Update Symbol icon to see the change to the symbol.
21. Double-click on the symbol and link the Custom Property TankMeter.Value to the InTouch
Tag Tank_Level_PLC1 as shown.

22. Change the Default Value of TankMeter.Max to 1000.


This matches the range of Tank_Level_PLC1.
23. You may wish to turn off the Show Halo around Hotlink feature with the main menu
command Special / Configure / WindowViewer.

InTouch 10.0 – Advanced Application Development Course


3-230 Module 3 – ArchestrA Graphics

24. Switch to Runtime to test out the functionality of the meter.


Mousing over the Meter should cause it to get bigger and be easier to read.
Moving your mouse off the Meter should cause it to shrink.

Wonderware Training
Module 4

Advanced Tag Functionality


Section 1 – Indirect Addressing 4-3
Lab 8 – Indirect Addressing and Remote Data Access 4-5
Section 2 – SuperTags 4-13
Lab 9 – Creating SuperTags 4-23
Section 3 – Dynamic Referencing 4-33
Lab 10 – Dynamic Reference Addressing (DRA) 4-37
Section 4 – Remote Tag Referencing 4-43
Lab 11 – Remote Tagname Referencing 4-51
Section 5 – Redirecting Remote References 4-59
4-2 Module 4 – Advanced Tag Functionality

Module Objectives
z Introduce security options available with InTouch®.
z Configure InTouch® Security.
z Configure Operating System Security when using InTouch®.
z Create and use a custom Security Log On window.
z Configure and use Script Functions in InTouch related to security.

Wonderware Training
Section 1 – Indirect Addressing 4-3

Section 1 – Indirect Addressing

Section Objective
z Use Indirect Tags to create scalable solutions.

What is Indirect Addressing?


Indirect type tagnames allow you to create one window and reassign the tagnames in that window
to multiple sources. For example, you could create a Data Change QuickScript that would modify
the source for all tagnames in a window, based on a value that has changed.
When you equate an indirect tagname to another source tagname, both the indirect tagname and
the source tagname become linked to each other in every aspect including .fields, scripts, etc. If
the value of the source tagname changes, the indirect tagname reflects the change. If the indirect
tagname's value changes, the source tagname changes accordingly. You can define indirect
tagname values in the database as retentive, which allows them to retain their last tagname
assignment on startup.
Indirect tagnames are assigned by using the .Name field. For example, if you created an indirect
analog tagname called "Setpoint" and used the expression below in a QuickScript, "Setpoint1"
would become the source for the value of "Setpoint" and vice versa:
Setpoint.Name = "Setpoint1";
OR
Setpoint.Name = Setpoint1.Name;
You can also concatenate tagnames for use in indirect tags. For example, if you created a Data
Change QuickScript that executes each time the value of the tagname "Number" changes, the
indirect tagname, "Setpoint," would change accordingly:
Number=1;
Setpoint.Name = "Setpoint" + Text(Number, "#" );
When this QuickScript executes, the value of the analog tagname "Number" is converted to text
and added to the analog tagname "Setpoint," making "Setpoint.Name" equal to "Setpoint1."
Indirect analog type tagnames are used for both integer (whole numbers) and real (floating point)
tagnames.

InTouch 10.0 – Advanced Application Development Course


4-4 Module 4 – Advanced Tag Functionality

Advantages of Indirect Tag Addressing


z Saves on window development
z Scalable
z Supports alarm and history trends
z Supports .fields (attributes of a tag)
z Supports Remote Tagname Referencing
z Works With Dynamic Reference Addressing

Disadvantages of Indirect Tag Addressing


z Increases tag count
z Requires planning (e.g., tagnames, scripting)
z Special steps must be taken to be sure that tags assigned to the indirect tags are not
deleted

Note: If the Indirect assignment does not exist or the tag has not been created, the last
assignment is retained.

Wonderware Training
Lab 8 – Indirect Addressing and Remote Data Access 4-5

Lab 8 – Indirect Addressing and


Remote Data Access
Introduction
In this lab, you will use Indirect Addressing to allow one process graphic to display I/O tags from
multiple PLCs performing the same task. This lab will connect the InTouch tags to the PLC
connected to your PC and the PLC connected to one of the other PCs in the room.

Objectives
Upon completion of this lab, you will be able to:
z Create new tags
z Replace standard tags with indirect tags
z Create a new QuickFunction
z Create a Data Change script

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

a. Open the same InTouch application used in the previous lab, start WindowMaker if it is not
already running, and create a new Access Name as shown in the table below:

Access Name Node App Topic Protocol


ModbusPLC2 <Node Name Provided by Instructor> Modbus PLC SuiteLink

b. Create the following tags in the Tagname Dictionary:

I/O Discrete Tags AccessName Item


Start_PLC2 ModbusPLC2 2049
Gate_PLC2 ModbusPLC2 2050
Valve_A_PLC2 ModbusPLC2 2051
Valve_B_PLC2 ModbusPLC2 2052
Agitator_PLC2 ModbusPLC2 2053
Drain_Valve_PLC2 ModbusPLC2 2054

I/O Integer Tag AccessName Item MinEU MaxEU MinRaw MaxRaw


Tank_Level_PLC2 ModbusPLC2 40001 0 1000 0 1000

Memory Integer Tag Initial Value Min Value Max Value


SystemNumber 1 1 4

InTouch 10.0 – Advanced Application Development Course


4-6 Module 4 – Advanced Tag Functionality

Indirect Discrete Tags Indirect Analog Tag


Start Tank_Level
Gate
Valve_A
Valve_B
Agitator
Drain_Valve

c. Open the Mixing Operation window and replace all the standard tags with the indirect tags.
d. Create a new QuickFunction named IndirectAssign with an Integer argument called N.
Use the dimension statement (DIM) to define a local message variable named Number.
Assign Number to the returned value of the function, Text(N, #).
e. Add the following script:
DIM Number AS MESSAGE;
Number = Text(N,”#”);

{Because ‘N’ is defined as an argument, it is automatically defined as an


integer and, therefore, it is not necessary to use the ‘DIM’statement to
define it in the body of the script.}

Agitator.Name = “Agitator_PLC” + Number;


Drain_Valve.Name = “Drain_Valve_PLC” + Number;
Gate.Name = “Gate_PLC” + Number;
Start.Name = “Start_PLC” + Number;
Tank_Level.Name = “Tank_Level_PLC” + Number;
Valve_A.Name = “Valve_A_PLC” + Number;
Valve_B.Name = “Valve_B_PLC” + Number;
f. Open the Indirect Site Selector window. Attach the SystemNumber tag to the yellow
System Number # text with an Analog User Input link (Min Value is 1, Max Value is 4).
g. Create a Data Change script for the SystemNumber tag to call the IndirectAssign
QuickFunction.
CALL Indirect Assign(SystemNumber);
h. In the Mixing Operation window, edit the On Show – Window Script script to call the
IndirectAssign QuickFunction.
i. Locate the two buttons on the Indirect Site Selector window that read System #1 and
System #2. When the System #1 button is pressed, it should assign the value 1 to the tag
SystemNumber. When System #2 is pressed it should assign the value 2.
j. Convert tags to Local. This will convert the tag associated with the colored boxes
surrounding the two System buttons. Click OK to close.
k. Switch to Runtime to test.

Wonderware Training
Lab 8 – Indirect Addressing and Remote Data Access 4-7

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Create Indirect Tags & Replace Standard Tags


1. Start WindowMaker™ if it is not already running using the same InTouch application.
2. Create a new Access Name called ModbusPLC2.

Node Name provided


by instructor.

3. Create the following tags in the Tagname Dictionary:

I/O Discrete Tags AccessName Item


Start_PLC2 ModbusPLC2 2049
Gate_PLC2 ModbusPLC2 2050
Valve_A_PLC2 ModbusPLC2 2051
Valve_B_PLC2 ModbusPLC2 2052
Agitator_PLC2 ModbusPLC2 2053
Drain_Valve_PLC2 ModbusPLC2 2054

I/O Integer Tag AccessName Item MinEU MaxEU MinRaw MaxRaw


Tank_Level_PLC2 ModbusPLC2 40001 0 1000 0 1000

Memory Integer Tag Initial Value Min Value Max Value


SystemNumber 1 1 4

Indirect Discrete Tags Indirect Analog Tag


Start Tank_Level
Gate
Valve_A
Valve_B
Agitator
Drain_Valve

InTouch 10.0 – Advanced Application Development Course


4-8 Module 4 – Advanced Tag Functionality

4. Open the Mixing Operation window and replace all the standard tags with the indirect tags
using the following steps.
5. Click inside the window to activate it. Press F2 to select all the objects on the screen.
6. Press Ctrl+E (or Special/Substitute Tags…) to replace the tags.
A dialog box will appear with all the tags being used on the screen:

7. First, click on Convert and then Local to convert the SystemNumber tag.
8. Next, click on the Replace button.
9. In the Replace Text dialog box, enter _PLC1 in the Old Text field and leave the New Text
field blank. This will delete the _PLC1 text from all of the tags (except spinblade).
When finished, you will have used all of the newly created indirect tags.
Click OK.

Wonderware Training
Lab 8 – Indirect Addressing and Remote Data Access 4-9

Create & Use a New QuickFunction


10. Using the Classic View on the left of the screen, locate the Scripts pane
and double-click the QuickFunctions script editor icon.

11. Create a new QuickFunction named IndirectAssign with an Integer argument named N.
Use the dimension statement (DIM) to define a local message variable named Number.
Assign Number to the returned value of the function, Text(N, #). This function will convert the
current value of N, an integer value, into its string equivalent so it can be used in the following
indirect assignment.
The body of the function will reassign the .Name field of the indirect tags to the name of actual
I/O tags coming from the correctly selected system. The I/O tags created earlier allow you to
use the ending character (1 or 2) to implement a generic, dynamic re-assignment strategy.
For example, one assignment in the script could be:

Valve_A.Name = "Valve_A_PLC" + Text(N, “#” );


Where N is a local variable.
If N is equal to 1, then a "1" is appended to the end of "Valve_A_PLC", resulting in the tag
Valve_A_PLC1 (which is a valid tag).

InTouch 10.0 – Advanced Application Development Course


4-10 Module 4 – Advanced Tag Functionality

Your completed QuickFunction should look similar to this:


Notice the comment in braces { } below.

12. Validate and Close.


13. Open the Indirect Site Selector window.
Attach the SystemNumber tag to the yellow System Number # text with an
Analog User Input link (Min Value is 1, Max Value is 4).
14. Create a Data Change script for the SystemNumber tag to call the IndirectAssign
QuickFunction:

15. Validate and click OK.

Wonderware Training
Lab 8 – Indirect Addressing and Remote Data Access 4-11

16. In the Mixing Operation window, right-click in the blank area and edit the
On Show – Window Script script to call the IndirectAssign QuickFunction.
Add the following line: CALL IndirectAssign(SystemNumber);

17. Locate the two buttons on the Indirect Site Selector window that read System #1 and
System #2. When the System #1 button is pressed, it should assign the value 1 to the tag
SystemNumber. When System #2 is pressed it should assign the value 2.

18. Deselect everything and press F2 and Ctrl+E.

InTouch 10.0 – Advanced Application Development Course


4-12 Module 4 – Advanced Tag Functionality

19. Click on Convert and Local. This will convert the tag associated with the colored boxes
surrounding the two System buttons.

20. Click OK to close.


21. Switch to Runtime to test.
On your own: Create additional Access Names and Tags for other nodes in the classroom and
integrate them into the application as additional Systems.

Wonderware Training
Section 2 – SuperTags 4-13

Section 2 – SuperTags

Section Objective
z Use SuperTags to reduce development time.

What Are SuperTags?


A SuperTag is a structure of tags that allow users to map InTouch® tags to tag structures in a
control system. This saves considerable development time when creating tags for similar devices.
SuperTags are ideal for “cookie cutter” segments of plants with identical or similar equipment in
multiple quantities.
SuperTags can contain up to 64 member tagnames and 2 nesting levels. A SuperTag parent can
contain up to 64 embedded child members and each child member can contain up to 64 sub-
member tagnames for a total of 4095 member tagnames. When one SuperTag template parent is
embedded into another SuperTag template it becomes a "child member."
All SuperTag template sub-member tagnames behave exactly like normal tagnames. They
support trending, alarming and all tagname .fields. SuperTag members and sub-members can be
any supported data types (Discrete, Integer, Real, Memory). In addition, Indirect SuperTags are
supported.
For convenience, InTouch provides a "TemplateMaker" that can be used to create templates for
creating SuperTags. The TemplateMaker allows you to create, edit and delete SuperTag
templates and members. InTouch saves all SuperTag templates in the file SUPERTAG.DAT in your
InTouch installation directory, not the application directory. This allows the templates to be used in
any application or copied to another InTouch installation.
InTouch also provides the ability to create SuperTags in several alternative ways. For example,
SuperTags can be created directly from the Tagname Dictionary, in animation link tagname or
expression input boxes, in InTouch QuickScripts, or in an external file that can be loaded into your
application using the InTouch DBLoad utility.
When you create a SuperTag parent template, its name is automatically added to the tagname
Tag Types dialog box in the Tagname Dictionary and is immediately available for selection when
a new tagname is created. WindowMaker does not need to be restarted to define tagnames using
a newly created SuperTag type.

Note: If an existing SuperTag template is modified, all existing instances of that SuperTag are
not affected. Instances are tagnames defined in the Tagname Dictionary that use a SuperTag for
their type. In other words, modifications that you make to a SuperTag are not retroactive.
However, all new instances defined using the modified SuperTag will use the new composition.
Similarly, if a member tagname is added to a SuperTag instance through an alternative method, its
template is not updated.

Using a parent template as a tag type provides the flexibility to use both Memory and I/O tags as
well as the ability for each tag member to point to a completely different I/O source if required. It
also allows for some points to not be used at all, but be kept as Memory types and forgotten about.

InTouch 10.0 – Advanced Application Development Course


4-14 Module 4 – Advanced Tag Functionality

SuperTag Syntax
Since InTouch tagnames are limited to 32 characters, each SuperTag
ParentInstance\ChildMember\Sub-member is restricted to a maximum of 32 characters. A
SuperTag reference can only be a maximum of two templates (ParentInstance\ChildMember) and
one member deep as illustrated below:

Each member in a SuperTag template is accessible in the standard format currently used to
access the .fields of normal InTouch tagname types. The SuperTag reference syntax is
supported throughout InTouch where normal tagnames can be used. For example, a valid
SuperTag reference would be:
ColdRoom4\EvapUnit1\FanMotor2.MaxEU
Remote tagname references also support SuperTags. For example:
PLC1:"Turkey\EvapUnit2\PrsRegVlv.EngUnits"

Opening the TemplateMaker


The TemplateMaker used to create SuperTags is accessible through the Special menu in InTouch.
Simply select Special / TemplateMaker:

Wonderware Training
Section 2 – SuperTags 4-15

Creating a SuperTag Template Structure


To realistically illustrate the SuperTag concept in a factory environment, let's assume that we have
four identical refrigerated storage rooms in which we store beef, pork, chicken and turkey. Each of
these cold rooms has a room temperature and two evaporator units. Each evaporator unit has
seven data values that we need to monitor or control in runtime. For example:

Without the use of SuperTag templates, we would need to manually define each individual
tagname for each data value in each cold room multiplied by the total number of cold rooms. In
other words, we would have to organize and define dozens of tagnames in the Tagname
Dictionary!
By using SuperTags we can save hours of development time and minimize the chance of making
errors. Using the Cold Room scenario described above, we will create one SuperTag parent
template called "EvapUnit." This EvapUnit will later become a child member of the ColdRoom
parent template. This is a "detail-up" design concept.
EvapUnit will be defined with seven sub-member tagnames:

Member Tag Type Description


FanMotor1 Discrete Motor Starter for Fan 1
FanMotor2 Discrete Motor Starter for Fan 2
DefrostVlv Discrete Defrost Gas Valve State
LiquidVlv Discrete Liquid Refrigerant Valve State
CoilTemp Real Temperature of the refrigerant
PrsRegVlv Integer Pressure Regulator Valve (0-100%)
EvapStatus Message Evaporator Unit Status String

InTouch 10.0 – Advanced Application Development Course


4-16 Module 4 – Advanced Tag Functionality

Create a SuperTag Parent Template


a. Start by opening the TemplateMaker. Any previously created Template will be visible in the
tree diagram.
b. Click New Template and name your new Template. The Description is optional, but the more
detail you include, the easier it is to troubleshoot later. Click OK.
When a Template is selected, the properties information is displayed in the right pane.
As you add new parent templates, their names immediately open as a tagname type in the
Tagname Dictionary (Tag Types dialog box) and are immediately available for selection. You
do not need to restart WindowMaker to define new tagnames and assign them to the
SuperTag type.

Wonderware Training
Section 2 – SuperTags 4-17

Creating SuperTag Member Tagnames


SuperTags are simply tags that are grouped in a Template. Since they are like any other tags, you
have some choices for tag type, .fields, etc. By design, each New Member Tag includes a drop-
down arrow to select tag type. They also contain an optional Comment field.
a. In the TemplateMaker window, select the SuperTag template
(in this case, EvapUnit) and then click Add Member.

b. Name the tag.


c. Select the tag Type. Add Comments.
d. Click OK.

InTouch 10.0 – Advanced Application Development Course


4-18 Module 4 – Advanced Tag Functionality

Reference One Template Inside Another


a. Create new Parent Template.
b. Add member tags to it.
c. Create one or more Child Member Templates.
d. Select the SuperTag parent template and then click Add Member.

e. Enter a name for the New Member Tag in the Name text field.
f. Select the Type as another template.
g. Enter a Comment.
h. Click OK.

Note: Once you have completed the SuperTag Template, you can immediately create
tagname instances that use the template for their tagname type.

Editing SuperTag Templates and Member Tagnames


SuperTag templates or member tagnames can be modified at any time. When an existing
SuperTag template or its members are modified, all existing instances of that template are not
affected. (Instances are tagnames defined in the Tagname Dictionary that use a SuperTag for
their type.) In other words, modifications made to a SuperTag are not retroactive. However, all
new instances defined using the modified SuperTag will use the new composition. Similarly, if a
member tagname is added to a SuperTag instance through an alternative method, its template is
not updated.

Editing an Existing SuperTag Template or Member Tagname


a. In the TemplateMaker window, double-click the SuperTag template name (or member name).
The Edit Template (or Edit Member Tag) dialog box will open displaying the SuperTag
template's (or member's) definition.
b. Make your edits and then click OK.

Wonderware Training
Section 2 – SuperTags 4-19

Deleting a SuperTag Template or Member


a. In the TemplateMaker window, select the SuperTag template name (or member name) to
delete and then click Delete. A message box will open asking you to confirm the deletion.
b. Click Yes to delete the selected name.

Note: If you press the ESC key to close the TemplateMaker instead of OK, the template will
not be deleted. When a template is deleted, all of its associated member tagnames in the
template are also deleted.

Defining SuperTag Template Instances


An important concept in TemplateMaker is distinguishing a SuperTag template from a template
instance. The most important difference is that the parent template name is replaced by the
instance tagname. The child template name and the sub-member tagnames do not change.
For example, this could be equated to a literal template used for drafting, such as a stencil. A
stencil is used to produce actual drawings. The drawings themselves, in this metaphor, are
"template instances" that are patterned after the template or stencil used to create them.
Once again, referring to our ColdRoom template scenario, after we have created our template, we
can create SuperTag instances of "Beef," "Pork," "Chicken" and "Turkey." To do so, we will simply
create four tagnames that use ColdRoom for their types. Thus, with our one time effort, we will
quickly create 60 tagnames in the Tagname Dictionary. A huge time saver!
After we have created the "ColdRoom" SuperTag template and the instances, we can refer to any
of its members by using valid SuperTag references in animation link expressions or QuickScripts.
For example:
Beef\RoomTemp
Chicken\RoomTemp.RawValue
Chicken\EvapUnit1\FanMotor1.OnMsg
Pork\EvapUnit2\EvapStatus
Turkey\EvapUnit2\PrsRegVlv.EngUnits

InTouch 10.0 – Advanced Application Development Course


4-20 Module 4 – Advanced Tag Functionality

Methods for Creating SuperTags

Using the TemplateMaker to Create SuperTags


You will use the TemplateMaker to create most of your SuperTags.
a. Open the Tagname Dictionary and click on New.
Enter a tagname. FanMotor is used in this example.
b. Click on Type. Notice that, along with the normal tag types, all the Templates you created are
now available for use as a Tag Type.

c. All the members of the SuperTag as defined by the Template can be selected from the
Member List drop down list. From here, you are able to select the appropriate Member tag
and modify its details and alarms.

Wonderware Training
Section 2 – SuperTags 4-21

Using the Tagname Dictionary to Create SuperTags


The Tagname Dictionary is the easiest alternative method to create a SuperTag instance or
member tagnames.
a. Click Special/Tagname Dictionary.
The Tagname Dictionary opens:
b. Click New. In the Tagname box, enter the exact name of your SuperTag instance followed by
the backslash (\) delimiter and the name of the new member tagname. In this case,
Turkey\RoomTemp2.

Note: When adding a new member tagname to an existing SuperTag instance, the spelling of
the instance name must match exactly. Otherwise, a brand new SuperTag instance and
member will be added.

c. Click Type and select the type for the SuperTag member.
Selection of the remaining options is not required in this example.
In this case, I/O Real.
d. Click Save or Close to add the member.
e. To view the member tagname in the Turkey SuperTag without exiting the Tagname Dictionary,
click either the left or right double-arrow buttons. The Members details dialog box opens:

f. Click Close to close the Tagname Dictionary.


g. If you click New when a SuperTag is displayed in the Tagname Dictionary, the following dialog
box opens:

InTouch 10.0 – Advanced Application Development Course


4-22 Module 4 – Advanced Tag Functionality

h. Click Yes to create another SuperTag instance that is an exact duplicate of the displayed
SuperTag instance. The Enter Name dialog box opens:

i. Enter a new SuperTag instance name.


j. Click OK.

Advantages of SuperTags
z All SuperTag sub-member tagnames behave exactly like normal tagnames
z Supports alarms and history trends
z Supports .fields
z Development tool
z Template file can be copied

Disadvantages of SuperTags
z One SUPERTAG.DAT file
z No individual SuperTag member deletion
z Slight increase in tag count

Wonderware Training
Lab 9 – Creating SuperTags 4-23

Lab 9 – Creating SuperTags


Introduction
In this lab, you will create a SuperTag template and tag structures based on the template. The
final template will contain a child template and will be used to animate a process graphic screen.

Objectives
Upon completion of this lab, you will be able to:
z Create a Template
z Add Members
z Create a Parent/Child relationship
z Change Data Access & assign Item Names
z Use the new tag structures to animate a link

InTouch 10.0 – Advanced Application Development Course


4-24 Module 4 – Advanced Tag Functionality

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

a. Create a new template in TemplateMaker called Reactor.


b. Add the following members/tags to the Reactor template:
Start (discrete), ValveA (discrete), ValveB (discrete), Gate (discrete) and DrainValve
(discrete)
c. Create another template called Vessel and add the following members:
Agitator (discrete), TankLevel (integer), and TankTemp (real).
d. Now include the Vessel template as a member of the Reactor template.
e. Close TemplateMaker and save the template. It is automatically saved to the SuperTag.dat
file in the InTouch directory.
f. Add a new tag named Reactor1 with a type of Reactor.
g. For the SuperTag Members you just created, change the Data Access to I/O instead of
Memory and assign each Member the Item below. Assign the equivalent members to the
appropriate I/O data sources (Access Names and Items) as shown below and verify that Data
Access is I/O and Read Write status is checked.

I/O Discrete Members AccessName Item


Reactor1\Start ModbusPLC1 2049
Reactor1\Gate ModbusPLC1 2050
Reactor1\ValveA ModbusPLC1 2051
Reactor1\ValveB ModbusPLC1 2052
Reactor1\Vessel\Agitator ModbusPLC1 2053
Reactor1\DrainValve ModbusPLC1 2054

I/O Integer Member AccessName Item MinEU MaxEU MinRaw MaxRaw


Reactor1\Vessel\TankLevel ModbusPLC1 40001 0 1000 0 1000

h. In the Mixing Operation window, enter the following Analog Value Display:
The correct syntax will be automatically inserted: Reactor1\Vessel\TankLevel

i. Verify the animation in Runtime.

See the next page for Detailed Lab Instructions

Wonderware Training
Lab 9 – Creating SuperTags 4-25

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Create a SuperTag Template & Add Members


1. Launch WindowMaker if it is not already open.
2. In Classic or Project View, locate the Tools pane and double-click on TemplateMaker
OR click the Special/TemplateMaker command on the menu bar.

Template Maker appears.

InTouch 10.0 – Advanced Application Development Course


4-26 Module 4 – Advanced Tag Functionality

3. Click on the New Template button.


4. Create a template named Reactor and click OK.
The New Template button will be disabled and the Add Member button will be enabled:

5. Add the following members/tags to the Reactor template:

Member Name Tag Type


Start Discrete
ValveA Discrete
ValveB Discrete
Gate Discrete
DrainValve Discrete

Note: The underscore “_“ character cannot be used in TemplateMaker.

Wonderware Training
Lab 9 – Creating SuperTags 4-27

6. Select InTouch Templates and create another new template named


Vessel. This template should include the following members:

Member Name Tag Type


Agitator Discrete
TankLevel Integer
TankTemp Real

7. Now include the Vessel template as a member of the Reactor template. This will create a
parent/child relationship between the Reactor template and the Vessel template.
To do this, select the Reactor template and click on Add Member. Enter Vessel (arbitrary
name) as the member Name and then scroll down the drop-down list and select Vessel as the
member Type.

InTouch 10.0 – Advanced Application Development Course


4-28 Module 4 – Advanced Tag Functionality

The finished template should look like this:

8. Now that the template is complete, you can use it to create a structured tag in WindowMaker.
Click OK to close the TemplateMaker and save the template. It is automatically saved to the
SuperTag.dat file in the InTouch directory.
9. Open the Tagname Dictionary and click New.
Enter Reactor1 for the tagname.
Click Type. Notice that, along with the normal tag types, there are four new entries, Reactor,
Indirect Reactor, Vessel, and Indirect Vessel. Note that SuperTags can also be Indirect.
10. For this example, select Reactor and click OK.

Wonderware Training
Lab 9 – Creating SuperTags 4-29

Notice that a drop-down box appears containing all of the members of the SuperTag template:

Members are selected via the drop-down box, then the type of Data Access can be edited:

Note: Your Member List may be in a different order, depending on the order in which the
members were created.

If Data Access is I/O, be sure to check the Read Write status of that member. If the point is
to be written to, ensure that the status of that member is Read Write!

This provides the flexibility to use both Memory and I/O tags as well as the ability for each tag
member to point to a completely different I/O source if required. It also allows for some points
to not be used at all, but be kept as Memory types and forgotten about.

InTouch 10.0 – Advanced Application Development Course


4-30 Module 4 – Advanced Tag Functionality

11. For the SuperTag Members you just created, change the Data Access to I/O instead of
Memory and assign each Member the Item below. Assign the equivalent members to the
appropriate I/O data sources (Access Names and Items) as shown below.

Important Note: This is a special dialog box that supports auto saving as it is edited. Once
an entry is made or edited and you leave that field, it is automatically saved.

I/O Discrete Members AccessName Item


Reactor1\Start ModbusPLC1 2049
Reactor1\Gate ModbusPLC1 2050
Reactor1\ValveA ModbusPLC1 2051
Reactor1\ValveB ModbusPLC1 2052
Reactor1\Vessel\Agitator ModbusPLC1 2053
Reactor1\DrainValve ModbusPLC1 2054

I/O Integer Member AccessName Item MinEU MaxEU MinRaw MaxRaw


Reactor1\Vessel\TankLevel ModbusPLC1 40001 0 1000 0 1000

You will see I/O or Memory options depending on the Data Access Tag Type selected.
For example:

TankTemp is the only tag member that will not be used (i.e., left as a Memory type):

Wonderware Training
Lab 9 – Creating SuperTags 4-31

Animate a Link
12. Now you will use the new tag structure to animate a link.

Note: Remember that these tags can be implemented like any standard tag. Values can be
edited and used in scripts and all .fields are available. The only difference is the syntax used.
Instead of entering TankLevel, you would enter Reactor1\Vessel\TankLevel.

In the Mixing Operation window, enter the text shown below and add an Analog Value
Display animation link.

13. Browse for a tag.

Notice that when you browse for the tag, SuperTags appear with folder icons .
Simply double-click on the folder to drill into Reactor1.

14. Locate the TankLevel tag and double-click on it.


The correct syntax will be automatically inserted:

InTouch 10.0 – Advanced Application Development Course


4-32 Module 4 – Advanced Tag Functionality

15. Verify the animation in Runtime.


16. If Time Permits: Try to access the .fields of some of the SuperTag members.

Wonderware Training
Section 3 – Dynamic Referencing 4-33

Section 3 – Dynamic Referencing

Section Objective
z Introduce I/O parameters accessible and/or modifiable at Runtime.

What is DRA?
Dynamic Reference Addressing allows you to address multiple data sources with a single
tagname. One method of DRA is to assign a valid reference to the .Reference field of an I/O type
tagname, you can dynamically change the address of the data source for the tagname. Each I/O
type tagname has a reference associated with the address of its data source. The valid syntax for
the .Reference field includes

Tagname.Reference="accessname.item" Changes Access Name and item. :


Tagname.Reference="[.]item" Same Access Name, different item.
Tagname.Reference="accessname." Changes Access Name.
Tagname.Reference=" " Deactivates the tagname.

Note: If the Access Name or Item is not specified, the current value for that field is retained.

Dynamic references are used to view data points whose values are only needed temporarily, such
as in diagnostic applications. Since the data source of a tagname can be changed, dynamic
references should not be used for any data that needs to be permanently stored or continuously
monitored for alarm conditions.

.ReferenceComplete
Each I/O type tagname has a .ReferenceComplete field. This discrete field provides confirmation
that the item requested in the reference field is reflected in the .Value field.
The .ReferenceComplete field initializes to false (0) at startup of WindowViewer. When it is
confirmed that the .Value field is being updated by the source specified in the .Reference field, the
.ReferenceComplete value is set to true (1). If the .Reference field is changed, the
.ReferenceComplete field is automatically set to false (0), and then updated to true(1) when the
new value is updated.

InTouch 10.0 – Advanced Application Development Course


4-34 Module 4 – Advanced Tag Functionality

IOSetItem Function
Another method of DRA is to use the IOSetItem function is used to set an I/O type tagname's
.Reference field:
Syntax IOSetItem("Tagname", "AccessName", "Item");

Parameters Description
Tagname Any InTouch IO tagname enclosed in quotes.
AccessName The Access Name to change the tagname to.
Item The Item to change the tagname to.

The Tagname, AccessName, and Item values may be specified as literal strings, or they may be
string values provided by other InTouch tags or functions. For example, the .Reference field of
tagname "MyTag1" can be changed to point to the "excel" access name and the "R1C1" item by:
IOSetItem("MyTag1", "excel", "R1C1");
These values may be retained by using a “Null” value (having nothing between the quotation
marks).
The value will be blanked out by placing spaces between the quotation marks, thereby creating an
empty string.
If an empty string (" ") is specified for both the Access Name and Item values, then the tagname is
deactivated. For example, the tagname MyTag2 is deactivated by:
IOSetItem("MyTag2", " ", " ");
If a null is specified only for an Item, then the tag’s current Item value is retained and its
AccessName value is updated. For example, the following changes the Access Name for tagname
MyTag3 to "excel2" without affecting its current Item value:
IOSetItem("MyTag3", "excel2", "");
Likewise, if a null is specified only for an AccessName, then the tag’s current AccessName value
is retained and its Item value is updated. For example, the following changes the Item for tagname
MyTag3 to "R1C2" without affecting its current Access Name value:
IOSetItem("MyTag4", "", "R1C2");

Advantages of DRA
z Single tag can represent any Access Name.Item
z Dynamically change address of the data source of a tagname
z Tags can be de-activated
z Can be used as a troubleshooting tool

Disadvantages of DRA
z May have an adverse impact on alarming or history

Wonderware Training
Section 3 – Dynamic Referencing 4-35

IOSetAccessName Function
The script function IOSetAccessName modifies the application or topic name portions of an
Access Name during runtime. This allows the implementation of hot-backup strategies for
InTouch.
Syntax IOSetAccessName(“AccessName”, “NodeName”, “AppName”, “TopicName”);

Parameters Description
AccessName The existing Access Name to assign the new AppName and Topic
Name values to. Actual string or message tagname.
NodeName The new Node Name to assign. Actual string or message tagname.
AppName The new Application Name to assign. Actual string or message
tagname.
TopicName The new Topic Name to assign. Actual string or message tagname.

The Access Name, Application Name and Topic Name values may be specified as literal strings or
they may be string values provided by other InTouch tags or functions.

Note: If an empty string (“”) is specified for an argument, that argument retains its current value.

For example, the Access Name MyAccess1 can be changed to point to the EXCEL application
and the Book1 topic, without affecting the current NodeName, by using the following script
function:
IOSetAccessName("MyAccess1", "", "EXCEL", "Book1");
If an empty string is specified for a Topic, the Access Name’s current Application value is updated
and its Topic value is retained.
For example, the following script changes the Application Name for the Access Name MyAccess2
to EXCEL without affecting its current Topic value:
IOSetAccessName("MyAccess2", "", "EXCEL", "");
Likewise, if an empty string is specified only for an Application Name, the tag’s current Topic value
is updated and its Application value is retained.
For example, the following script changes the Topic for tagname MyAccess3 to Book2 without
affecting its current Application Name value:
IOSetAccessName("MyAccess3", "", "", "Book2");
Likewise, if an empty string is specified only for an Application Name, the tag’s current Topic value
is updated and its Application value is retained.
For example, the following script changes the Topic for tagname MyAccess3 to PLC2 without
affecting its current Node Name or Application Name value:
IOSetAccessName("MyAccess3", "", "", "PLC2");
This example would be used when PLC redundancy is a requirement.

Note: When IOSetAccessName is processed, there is a time delay as the existing conversation is
terminated and the new conversation is initiated. During this time, any attempted POKEs or writes
to the new topic will be lost.

InTouch 10.0 – Advanced Application Development Course


4-36 Module 4 – Advanced Tag Functionality

IOGetNode Function
Returns the node information (address) defined for a specific Access Name to the specified
tagname.
Syntax IOGetNode(“AccessName”);

Parameters Description
AccessName The existing Access Name to return node information for.

The Access Name may be specified as a literal string, or it may be a string value provided by other
InTouch tagnames or functions. The following example would return the node information for the
Access Name MyAccess1, to the tagname MyTag1:
MyTag1 = IOGetNode("MyAccess1");

IOGetTopic Function
Returns the topic name defined for a specific Access Name to the specified tagname.
Syntax IOGetTopic(“AccessName”)

Parameters Description
AccessName The existing Access Name to return the topic for.

The Access Name may be specified as a literal string, or it may be a string value provided by other
InTouch tagnames or functions. The following example would return the topic name for the
Access Name MyAccess1, to the tagname MyTag1:
MyTag1 = IOGetTopic("MyAccess1");

IOGetApplication Function
Returns the application name defined for a specific Access Name to the specified tagname.
Syntax IOGetApplication(“AccessName”)

Parameters Description
AccessName The existing Access Name to return the application name for.

The Access Name may be specified as a literal string, or it may be a string value provided by other
InTouch tagnames or functions. The following example would return the application name for the
Access Name MyAccess1, to the tagname MyTag1:
MyTag1 = IOGetApplication("MyAccess1");

Wonderware Training
Lab 10 – Dynamic Reference Addressing (DRA) 4-37

Lab 10 – Dynamic Reference Addressing


(DRA)
Introduction
In this lab, you will use Dynamic Reference Addressing to allow one tag to display the value of any
item accessible by this node. The item could be a defined tag in the Tagname Dictionary or simply
a valid item in another application (I/O Server, Excel, etc.). You will access a second system with
an application redundant to the one used in Lab 1, “Creating and Importing Applications Into the
Galaxy.” Further details will be discussed in Lab 11, “Remote Tagname Referencing.”

Objectives
Upon completion of this lab, you will be able to:
z Add an Access Name
z Select different Access Names & Item Names
z Animate objects on the Dynamic Referencing window

InTouch 10.0 – Advanced Application Development Course


4-38 Module 4 – Advanced Tag Functionality

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

a. Open the same application used in the last lab, start WindowMaker, and close any open
windows.
b. Create or verify the existence of the Access Name ModbusPLC2 that connects to the
I/O Server located elsewhere in the room.
c. Create a new I/O Integer tag called DRA_Tag. This will be the tag used to display current
values in other tags. Assign it to the ModbusPLC2 Access Name with an item of 40002.
Assign it a MinEU and MinRaw of 0 and MaxEU and MaxRaw of 1000.
d. Open the window named Dynamic Referencing and animate the # signs at the bottom of the
screen.

Animation On Off
Text Left of # Tagname
Type Message Message
Tagname.Reference User Input DRA_Tag.Reference
String
Tagname.Value User Input DRA_Tag.Value
Analog
.ReferenceComplete Value Display DRA_Tag.ReferenceComplete Yes No
Discrete

e. Create a DataChange Script based on the tag DRA_AccessName that executes the
IOSetItem( ) function to reassign DRA_Tag.
{If a new Access Name is selected, reassign DRA_Tag to point at that
Access Name.}

IOSetItem(“DRA_Tag”, DRA_AccessName, DRA_ItemName);


f. Repeat the previous step for the already existing DRA_ItemName tag. Create a second
DataChange Script based on the tag DRA_ItemName changing only the tagname.
{If a new Access Name is selected, reassign DRA_Tag to point at that
Access Name.}

IOSetItem)”DRA_Tag”, DRA_AccessName, DRA_ItemName);


g. Once completed, switch to WindowViewer and verify that you can monitor any of the tags
shown on the window.
To do this, click on either an Access Name or Item Name (or both) and watch the display for
changes. Bring up the Mixing Operation window so you can control the starting and stopping
of the Reactor, compare values, etc.

See the next page for Detailed Lab Instructions

Wonderware Training
Lab 10 – Dynamic Reference Addressing (DRA) 4-39

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Create a New Access Name & Tag


1. Start WindowMaker using the same application and close any open windows.
2. Create or verify the existence of the Access Name ModbusPLC2 that connects to the I/O
Server located elsewhere in the room. Your instructor provided the node name earlier.

3. Create a new I/O Integer tag called DRA_Tag. This will be the tag used to display current
values in other tags. Assign it to the ModbusPLC2 Access Name with an item of 40002.
Assign it a MinEU and MinRaw of 0 and MaxEU and MaxRaw of 1000.

Note: DRA_Tag could have been defined as an Indirect Analog as well. However, before
reassigning, it would have to be assigned to an actual I/O tag. This approach is faster.

4. Save and Close.

InTouch 10.0 – Advanced Application Development Course


4-40 Module 4 – Advanced Tag Functionality

Select Different Access Names, Item Names & Create Animation Links
5. Open the window named Dynamic Referencing. The purpose of this window is to provide an
easy way to select different Access Names and Item Names to view via DRA.
6. Animate the objects at the bottom of the screen:

User Input String Link


Tagname: DRA_Tag.Reference

User Input Analog Link


Tagname: DRA_Tag.Value
.Value is an implied field where a
value of any tag is displayed.

Value Display Discrete Link


Tagname: DRA_Tag.ReferenceComplete
On Message: Yes Off Message: No

7. The Dynamic Referencing window has some built-in functionality to assist you. Notice that
each of the “buttons” behind the list of Access Names and Item Names are animated. Open
these and view the settings. Please do NOT change the settings.

Linked to an Action
Touch Pushbutton.
Script is:
DRA_ItemName =
"2050";

Linked to an Action Touch Pushbutton.


Script is: DRA_AccessName = "ModbusPLC1";

When one of these buttons is clicked, the appropriate tag (DRA_AccessName or


DRA_ItemName) will be assigned a string value.

Wonderware Training
Lab 10 – Dynamic Reference Addressing (DRA) 4-41

8. Create a DataChange Script based on the Tagname[.field] trigger DRA_AccessName that


executes the IOSetItem( ) function to reassign DRA_Tag.
For example:

9. Create a second DataChange Script based on the tag DRA_ItemName changing only the
Tagname[.field] trigger.

10. Once completed, switch to WindowViewer and verify that you can monitor any of the tags
shown on the window. To do this, click on either an Access Name or Item Name (or both) and
watch the display for changes. Bring up the Mixing Operation window so you can control the
starting and stopping of the Reactor, compare values, etc.
If Time Permits: See if you can deactivate a tag using the IOSet…( ) functions.

InTouch 10.0 – Advanced Application Development Course


4-42 Module 4 – Advanced Tag Functionality

Wonderware Training
Section 4 – Remote Tag Referencing 4-43

Section 4 – Remote Tag Referencing

Section Objective
z Use Remote Tagname Referencing to access data from other nodes and FactorySuite®
applications.

What is Remote Tagname Referencing?


InTouch® allows true client-server architecture for factory automation applications. Client
applications can be designed without using any tagnames in the local Tagname Dictionary with
Remote Tagname Referencing. For example:

In this example, you can retrieve the value of the tagname "TempTag" on Node2 in two ways:
1. Create an I/O type tagname in Node1's Tagname Dictionary that uses "Node2" as the Node
Name in the Access Name associated with the I/O tagname.
2. Use a remote reference directly to "TempTag." For example, PLC1:"TempTag".
In other words, in a window or QuickScript, you can either reference the local tagname or use
AccessName:"item" to reference a remote tagname.
To directly reference a remote tagname in any other FactorySuite® application, only
AccessName:"item" is required. You do not have to define the remote tagname in your local
Tagname Dictionary. Remote references can also access data from any I/O data source, such as
a Wonderware® I/O Server or Microsoft® Excel®.
When using remote tagname references and importing a window or QuickScript, just convert the
placeholder tagnames to remote tagname references. The tagnames do not need to be defined in
your local Tagname Dictionary.

Remote Tagname Reference Syntax


The valid syntax for a remote tagname reference is AccessName:"item". The characters used in a
remote reference are the same characters that are valid for a tagname. Valid characters include:
A-Z, a-z, 0-9, !, @, -, ?, #, $, %, _, \ and &.
Tagname .fields can also be used in the "item" portion of the remote tagname reference. For
example, "MyAlarm.HiHi".
In order to use any other characters, you must enclose the "item" in quotation marks.
However, since some I/O Servers accept any character for an item name, it is highly
recommended to always surround the "item" portion with quotation marks.
For example, let's assume that you want to get a bit from an Allen-Bradley® PLC integer register
and you use N10:7/3 (third bit from integer 7 in file 10) as the item name. The system will see
N10: as an Access Name because the forward slash “ / ” is not a valid character. However, if you
enclose the item name in quotations, "N10:7/3", the system will read the entire entry as the item
name.

InTouch 10.0 – Advanced Application Development Course


4-44 Module 4 – Advanced Tag Functionality

Warning: You cannot string concatenated item names or remote tagname reference item names.
For example, let's assume that you created a string output link using the following expression:

When the system executes the above expression, it will use the Access Name PLC2 and go
through the Allen-Bradley I/O Server to retrieve the string stored in the string file ST10:1. Then it
will append the string 37 to the end of the string it retrieved in ST10:1. If "Green Paint" is stored in
ST10:1, the string output object linked to the expression will display Green Paint37. Therefore,
the operator would not see the contents of ST10:137.

Whenever a remote reference (accessname:"item") is used, InTouch validates the specified


Access Name. If it determines that the Access Name is not defined, you will be prompted to define
it.
The Access Name is also validated when the remote tagname is activated. If errors are
encountered, they will be written to the SMC Log Viewer.
An Access Name that is used by a remote reference can be deleted as long as it is not being used
by a local tagname.

Defining Tag Sources


Tag sources are defined for viewing in the Tag Browser. When a tag source definition is added or
edited, information such as the local network Access Name to associate with the tag source's
tagnames, a user-defined application name, and the data source for the tag source need to be
entered.

Note: These procedures will also be used when converting placeholder tagnames to remote
tagname references.

a. Open the Tag Browser and click on the Define Tag Sources button .
The Define Tag Sources dialog box appears:

Wonderware Training
Section 4 – Remote Tag Referencing 4-45

Note: The Tag Browser button is only available for a tag containing a script or an animation
link.
If tag sources are already defined, they will be listed when the dialog box appears. The list will
include the user-defined Name for the tag source, the Location of the tag source (path) and
the local network Access Name associated with the application.
When the Define Tag Sources dialog box closes, you must click the Tag Source arrow in the
Tag Browser and select the new tag source in the list. The Tag Browser is then refreshed and
tagnames for the selected tag source are displayed.

b. To remove a tag source(s) from the Tag Source list, click the Define Tag Sources button.
The Define Tag Sources dialog box appears.
Select the tag source in the list and click Delete.
c. To edit a defined tag source, select it in the list and click Edit.
The Define Tag Source dialog box appears displaying the configuration for the selected tag
source.
d. To define a new tag source, click New.
The Define Tag Source dialog box appears:

Note: If no Access Name is defined in your local application, a message box saying this will
appear. You will not be allowed to define a new tag source. Tag sources must be associated
with a local network Access Name.

e. In the Tag Source Name field, enter a name to identify the tag source.
f. Click the Access Name arrow and select the Access Name in the local application to
associate with the tagnames in the tag source.
g. Click the Tag Source Type arrow and select the source for the tag source's tagname
database. InTouch is displayed by default.

InTouch 10.0 – Advanced Application Development Course


4-46 Module 4 – Advanced Tag Functionality

h. The Location field displays the full path to the tag source.
i. In the directory tree pane, locate the tag source, and click OK.
The Define Tag Sources dialog box reappears displaying the selected tag source:

Node Name provided


by instructor.

j. Click Close. The Tag Browser will reappear.

k. Click the Tree View tool to display all defined tag sources:

If you are not using the tree view mode, click the Tag Source arrow and select the name for
the tag source to display in the list. The Tag Browser will refresh and the tag sources'
tagnames will be displayed.
The first time you access the Tag Browser, by default, <local> will be selected for the Tag
Source. Thereafter, the tagnames for previously accessed tag source will be displayed.
l. Click OK.

Wonderware Training
Section 4 – Remote Tag Referencing 4-47

Creating a Tag Server Application


By creating an application that contains only InTouch QuickScripts and tagnames, an instance of
WindowViewer that functions as a tagname server can be established. Another application
containing only windows and memory tagnames for window logic processing can be created. If
these windows contain only remote tagname references, this application can serve as a repository
for all the process windows for a facility. In this case, the remote tagname references are to
tagnames in other WindowViewer instances that function as tagname servers. An instance of
WindowViewer that connects to this database functions as an operator workstation. This
WindowViewer instance can open any window and view data from anywhere on the plant floor.
For example:

Contains tagnames Contains tagnames


and QuickScripts for and QuickScripts for
Subsystem "1" Subsystem "2"

Application Application
Database Database

I/O I/O
Server Server

WindowViewer WindowViewer
Operator
Workstation

View

Application
Database

Contains windows
with references
to remote tagnames

InTouch 10.0 – Advanced Application Development Course


4-48 Module 4 – Advanced Tag Functionality

Remote references are valid for the following: –


z Input Links – Discrete User Input, Analog User Input, String User Input, Vertical Slider,
Horizontal Slider, and Discrete Value Button
z Discrete Alarm Links – Line Color, Fill Color, and Text Color
z Analog Alarm Links – Line Color, Fill Color, and Text Color
z Expressions – Links and Scripts where a discrete, analog or string tagname can be
specified
z Wizards
z Data Change Scripts – "Tagname[.field]"
z ActiveX events, properties, and methods
z All InTouch QuickScript types
Remote references are not valid for Historical Trend objects:

Note:
1. Implementation of remote tagname references does not require conversion of applications that
were created with earlier versions of InTouch (not supporting this feature). However, once
implemented, the applications will not be backwards compatible with the earlier versions.

2. WindowViewer supports 32767 references to local tagnames and x references to active remote
references, where x = 61,402 minus the number of tagnames defined in the local Tagname
Dictionary.

3. Remote references can be a maximum of 95 characters.

4. The IOSetAccessName function is supported for remote references and works the same as it
does for local tagnames.

Wonderware Training
Section 4 – Remote Tag Referencing 4-49

Using Remote Tagname References


There are three ways a remote tagname reference in a client application can be specified:
a. Use the AccessName:"item" reference in any animation link tagname or expression or in an
InTouch QuickScript.
b. Import a window or QuickScript and convert the placeholder tagnames to remote tagname
references by using the Special/Substitute Tags command in WindowMaker.
One of the powerful features of InTouch is the ability to import a window from another
application. When a window is imported, all of its scripts and animation links are imported with
it. However, all of the tagnames used in the animation links and scripts are automatically
converted to placeholders. All placeholder tagnames can be converted to remote tagname
references and, if desired, an application can be designed with no local tagnames.
c. Select the remote tagname to use for an object or QuickScript by configuring the remote
application as the tag source in the Tag Browser. For example:

Advantages of Remote Tagnames


z Saves tags (when used with a tag server)
z Supports .fields
z Can be used with Indirect Tags
z Less traffic

Disadvantages of Remote Tagnames


z Can’t be configured for history, alarms or scaling

InTouch 10.0 – Advanced Application Development Course


4-50 Module 4 – Advanced Tag Functionality

Wonderware Training
Lab 11 – Remote Tagname Referencing 4-51

Lab 11 – Remote Tagname Referencing


Introduction
In this lab, you will use remote referencing to set up and use tags found in other network nodes
and in other applications. You will use a remote PC with WindowViewer running DemoApp1 and
the same mixing operation logic (optional) from Lab 1. Your instructor will set up the additional
PCs and provide you with the network location.
You will use three different methods to remote referencing.
Method 1 – Dynamic Creation of Remote Reference
This method allows you to create Access Names “on the fly” during development. You must know
the correct spelling of the tagname(s) to be utilized. At runtime, a connection to the remote source
will be established if it was correctly defined. Otherwise, no data will be provided and no message
will appear in SMC Log Viewer.
Method 2 – Creating Remote Reference Tag Sources
This method addresses the potential for error that Method 1 introduced. A link is established to the
remote data source, which in turn displays all of its tags in the local tag browser. By supporting
point and click selections and filtering, there is very little chance of human error.
Method 3 – Converting Imported Windows to Remote References
The final method involves importing a complete window from the remote node and then converting
its tags to be remote. InTouch applications using this method contain no local tags.

Objectives
Upon completion of this lab, you will be able to:
z Dynamically create a Remote Reference
z Create Remote Reference tag sources
z Convert imported windows to Remote References

InTouch 10.0 – Advanced Application Development Course


4-52 Module 4 – Advanced Tag Functionality

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

Method 1 – Dynamic Creation of Remote Reference


a. Place the text ReactLevel # on the Mixing Operation window.
b. Add the following Value Display Analog link.
ReactDemo:ReactLevel
c. Define the Access Name ReactDemo as follows:

Node App Topic Protocol


<Node Name Provided by Instructor> View Tagname SuiteLink

d. In Runtime, verify that the tag is updating with the current level in the Reactor.

Method 2 – Creating Remote Reference Tag Sources


e. Replace the Analog Value Display link for the ReactorLevel # text created in Method 1 using
the following parameters.

Tag Source Name Access Name Tag Source Type


ReactDemo ReactDemo InTouch

For additional details regarding this Method, turn to page 4-54.


f. Locate and connect to the instructor specified PC.
g. The Define Tag Sources dialog box will reappear with the new tag source information.
Select the ReactDemo tag source.
h. Locate and select the ReactLevel tag.
i. Switch to Runtime and verify that the remote link is working.

Method 3 – Converting Imported Windows to Remote References


j. Shut down WindowViewer.
k. Import the Reactor Display window from the application located on the remote node.
l. Open the imported window and Convert the tags to Remote.
m. Select the ReactDemo Access Name.
n. Switch to Runtime and verify that the tags are updating.

See the next page for Detailed Lab Instructions

Wonderware Training
Lab 11 – Remote Tagname Referencing 4-53

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Method 1 – Dynamic Creation of Remote Reference


This method allows you to create Access Names “on the fly” during development. You must know
the correct spelling of the tagname(s) to be utilized. There is no error checking. At runtime, a
connection to the remote source will be established if it was correctly defined. If the syntax is
incorrect or the application is not running on the remote node, no data will be provided and no
message will appear in SMC Log Viewer.
1. Start WindowMaker using the same application.
2. Place the text ReactorLevel # on the Mixing Operation window. You will link this object to
the ReactLevel tag, located on another node that is running DemoApp1 (Reactor Demo).
3. Double-click on the text sign and select a Value Display Analog Link.
For the expression enter:
ReactDemo:ReactLevel
We are going to link this tag to a reactor tag in the DemoApp1 InTouch application residing
elsewhere on the network. That is, at Runtime, the # sign will display a value coming from a
separate InTouch application running on the network.
4. When you click OK to exit, you will be prompted to define the Access Name, ReactDemo.
Click on OK to define the Access Name.
5. Enter the Node Name (provided by the instructor), enter View for the Application Name and
Tagname for the Topic. Because we are going over the network for data, select SuiteLink™
as the protocol:

Node Name
provided by
instructor.

6. Start WindowViewer and verify that the tag is updating* with the current level in the Reactor.
There may be a slight initial delay as the connection to the other node is established.
* The other application must be running in WindowViewer for the updates to occur.

InTouch 10.0 – Advanced Application Development Course


4-54 Module 4 – Advanced Tag Functionality

7. Now that the Access Name is created you can create other links to the remote system as long
as you know the names and correct spelling of the other tags. You cannot browse to them
here.

Method 2 – Creating Remote Reference Tag Sources


This method addresses the potential for error that Method 1 introduced. In this method, a link is
established to the remote data source, which in turn displays all of its tags in the local tag browser.
By supporting point and click selections and filtering, there is very little chance of human error.
8. In WindowMaker, double-click on the ReactorLevel # text created in Method 1.
9. Click on the Analog Value Display button to display the expression.
Click the Clear button.
Now double-click in the blank expression field to display the tag browser:

10. Notice that there is a drop-down list box located at the top of the screen that currently reads
<local>.
If you click the down arrow Default Galaxy should be the only other entry.
Locate the ellipsis button next to the down arrow and click on it.
The Define Tag Sources dialog box appears:
This dialog box allows you to configure paths to remote data sources. These sources could be
located on the same node, but typically will be found on remote nodes networked together.
Additionally, this dialog box is used to create paths to other Wonderware application
databases. For example, this local InTouch node could be monitoring tags on a remote node
that is running an InControl or InBatch project. Or, if InTouch and InControl are running on the
same node, this dialog box is used to browse and select the tags to be monitored by InTouch
from the InControl project!
11. Click on New to create a new Tag Source. Our goal is to browse the tags in the DemoApp1
(Reactor Demo) application located on the remote node. Once this link is created, it will
always exist unless deleted. Therefore, you can restart WindowMaker and always browse
these tags, providing the remote node is online.

Wonderware Training
Lab 11 – Remote Tagname Referencing 4-55

12. Enter ReactDemo for the Tag Source Name. Select ReactDemo for the Access Name
(note that this is the Access Name created in Method 1) and select InTouch as the Tag
Source Type.

Note: Create Access Names prior to defining the tag source.


Access Names cannot be created in this dialog box.

13. Expand My Network Places to view the directory tree. Locate the instructor specified PC*.
Drill down until you locate the path \\<Node>\InTouch Demos\DemoApp1 (or path provided
by instructor) and click OK.
*A share must be created on the node being accessed in order to establish the link.

Node Name and path


provided by instructor.

14. The Define Tag Sources dialog box will reappear with the new tag source information
displayed:
15. Click on Close to exit the dialog box.
The tag source can now be deleted or edited.

InTouch 10.0 – Advanced Application Development Course


4-56 Module 4 – Advanced Tag Functionality

16. Click on the down arrow again.


Select the ReactDemo tag source, which is now available:
17. The list will update and the available tags within DemoApp1 application on the remote node
will now be visible. Locate the ReactLevel tag and double-click on it.

Notice that the expression syntax is exactly the same as it was in Method 1. The advantage is
that anytime you want to link a tag from the remote node to your animations, you simply use
the new tag source. Of course, filters can be applied to the browsers to limit the search
criteria.

Also, notice that when using the browser you can use the .field list box as well.
Remote referencing gives you access to all fields, just like standard tags.
18. Switch to Runtime and verify that the remote link is working.

Wonderware Training
Lab 11 – Remote Tagname Referencing 4-57

Method 3 – Converting Imported Windows to Remote References


The first two methods discussed how to browse and use individual remote tags within a local
InTouch application. The final method involves importing a complete window from the remote
node and then converting its tags to be remote. The advantage here (as with Methods 1 and 2) is
that you can house a complete process graphic window on your local PC, but not use any tag
counts on the local application. This allows for the implementation of “tagless clients” or complete
InTouch applications that contain no local tags.
19. Shut down WindowViewer.
In WindowMaker, close all windows and select the File/Import… command.
20. Expand My Network Places and locate the instructor specified PC.
Drill down until you locate \\<Node>\InTouch\DemoApp1 and click OK.
21. Click the Windows Select… button and choose the Reactor Display.
22. Import the window.

23. Once imported, open the window. Press the F2 key to select all the objects on the window.
To convert the tags, either press Ctrl+E or select the Special/Substitute Tags… command.

InTouch 10.0 – Advanced Application Development Course


4-58 Module 4 – Advanced Tag Functionality

24. Click on the Convert button. The following dialog box appears:

25. Convert the tags to Remote tags.


26. Select the ReactDemo Access Name and click on Close.
Click OK.

27. Switch to Runtime and verify that the tags are updating.

Wonderware Training
Section 5 – Redirecting Remote References 4-59

Section 5 – Redirecting Remote References

Section Objective
z Change data display based on IOSetRemoteReferences script function.

Redirect Remote References Using a Script


InTouch application developers can redirect ArchestrA object references or remote references to
InTouch tags at runtime via scripting. This enables developers to switch object instances for a
particular graphic symbol based on particular conditions being met or directly via user interaction
such as clicking a button. The script function used to redirect remote references at runtime is
IOSetRemoteReferences. It is applicable to all objects, not just SmartSymbols.

IOSetRemoteReferences Function
InTouch users can run a QuickScript function called IOSetRemoteReferences to modify the
datasource for ArchestrA Objects and InTouch tag references at runtime. This can be used to
change Remote Tag References based on particular conditions or directly via user interaction
such as clicking a button. By adding a button, users can opt to view information from different
devices, object, areas and plants. The runtime component expands the amount of information a
user can access within one window with minimal effort.
Syntax IOSetRemoteReferences(BaseAccess, NewAccess, MatchString,
SubstituteString, Mode);

Parameters Description
BaseAccess This string parameter specifies the original configured Access Name to match to in
the reference(s).
NewAccess The new Access Name. This is applied to all references for which the original
Access Name matches the string provided in BaseAccess and for which the original
Item Name matches the MatchString (if one is specified).
MatchString The string to match in the original configured Item Name in the reference(s). If this is
an empty string, it is treated as a match for any Item Name.
SubstituteString The string to substitute into the original configured Item Name, replacing the
MatchString, to produce the active Item Name for the reference(s). If this is an empty
string, no substitution is made.
Mode Determines the way in which the MatchString must match the original configured
Item Name. Matching is always from the beginning of the Item Name, never in the
middle. 0 denotes that the match must be for the entire Item Name or up to a "." 1
denotes that a partial match is allowed, even if the next character is not a ".".

Examples
IOSetRemoteReferences("Galaxy", "", "pumpX", "pump001", 0);
IOSetRemoteReferences("Galaxy", "TagServer1", "pumpX", "p2", 0);
IOSetRemoteReferences("TagServer1", "TagServer2", "pumpX", "backpump3", 0)
IOSetRemoteReferences("TagServer1", "", "Tank", "Plant", 1)

InTouch 10.0 – Advanced Application Development Course


4-60 Module 4 – Advanced Tag Functionality

IO Redirecting References
IOSetRemoteReferences only changes remote references. It only affects those for which the
original, configured Access Name matches the indicated BaseAccess, and for which the original,
configured Item Name string begins with the indicated MatchString.
A single call to IOSetRemoteReferences affects all remote references in open windows, for which
their original, configured name strings match BaseAccess and MatchString.
If you leave BaseAccess empty (i.e. ""), IOSetRemoteReferences does not perform any functions.
If MatchString is empty (i.e. ""), IOSetRemoteReferences affects all remote references for which
the original AccessName matches BaseAccess.
The new active name for a remote reference is obtained by using NewAccess as the "active"
Access Name and by copying the original Item Name and replacing SubstituteString with
NewString.
When the Match Mode flag is set to '0', replacement in the Item Name is only done for full object
names (or tagnames), or full attribute names (or dot fields). MatchString must match the entire
original Item Name or up to a character followed by a period (".").
When the Match Mode flag is set to '1', partial replacement of the item string will be allowed when
the item string starts with the match item string. That is, MatchString must match some portion of
the original item string, but that sub-portion must start at the beginning of the item string and the
last character does not need to be followed by a "."
The original, configured names for a remote reference remain unchanged. Subsequent calls to
IOSetRemoteReferences do not need to recognize the current active name. Calls to
IOSetRemoteReferences( ) can take place in any order.
Restoring References
If SubstituteString is empty (i.e. ""), IOSetRemoteReferences restores the active Access Name to
the original base Access Name.
If MatchString is empty (i.e. ""), IOSetRemoteReferences restores the active Item Name to the
original Item Name.

Note: Even if SubstituteString is not empty, if MatchString is empty, the Item Name will be
restored to the original Item name. Inserting text at the beginning of the name is not allowed. For
example, running the script IOSetRemoteReferences("Access1", "" , "","Valve",0); will not append
the string Valve at the beginning or end of the all original item names.

If SubstituteString is empty (i.e. ""), the IOSetRemoteReferences restores the active Item Name to
the original Item Name. Using a non-empty MatchString with an empty SubstituteString enables
you to select a subset of remote references on the indicated original base access and restore
them to their original Item names.

Wonderware Training
Section 5 – Redirecting Remote References 4-61

IOSetRemoteReferences and InTouch Windows


IOSetRemoteReferences only affects the links in windows that are already open. The following
scenarios explain the behavior of IOSetRemoteReferences when it applies to links in newly
opened windows.
a. Scenario 1
b. Create two InTouch windows, Window1 and Window2.
c. On Window2, insert the link xxx:TankLevel.Value. This window will open only via an action
button.
d. On Window1, add a text link to xxx:TankLevel.Value and add a second button to call
IOSetRemoteReferences("xxx","TagServer1","","",0);
e. In WindowMaker, click Runtime.
f. Run the script function.
g. The link on Window1 is updated with the value of TagServer1:TankLevel.Value.
h. Click the button to open the InTouch Window2.
i. The link on Window2 does not show the value of TagServer1:TankLevel.Value because the
script only affects the links in windows that are already open.
Scenario 2
a. In InTouch Window1, configure an action script to run the following:

Show "Window2";
IOSetRemoteReferences("xxx","TagServer1","","",0);
b. In WindowMaker, click Runtime.
It may appear that links on Window2 would be updated correctly because the script function is
run after opening the window. However, the script function runs before the window is fully
initialized. Therefore, the references on the window are not redirected.
To address this, you could use the action button to set values for tags that would represent the
script function parameters and open a popup window. You can configure a window script on
the target window for OnShow that would use these tags to call the IOSetRemoteReferences.
For example, on the action button, you could configure the following:

NewAccessNameTag="Tagserver1"
Show "Window2";
On the OnShow window script, configure the following:
IOSetRemoteReferences("xxx",NewAccessNameTag,"","",0);

Script changes on Animation Link references within an Application


The scope of a change caused by the script function call is to change all related remote references
in an application. This is to handle complex scenarios of symbols and remote references, where a
number of different attributes of the same object may be accessed as a group. For example, a
complex Pump symbol might access speed, flow, and data quality for whichever actual pump is
selected. With a single script function call, all the related references throughout the application are
updated to the proper target.

InTouch 10.0 – Advanced Application Development Course


4-62 Module 4 – Advanced Tag Functionality

Wonderware Training
Module 5

Data Monitoring
Section 1 – Value, Time and Quality (VTQ) 5-3
Lab 12 – Troubleshooting With VTQ 5-15
Section 2 – Quality and Status in ArchestrA 5-19
Lab 13 – Implementing Quality & Status In ArchestrA Graphics5-23
Section 3 – I/O Failover 5-29
Lab 14 – Monitoring I/O Communication 5-31
5-2 Module 5 – Data Monitoring

Module Objectives
z Select the appropriate communication protocol.
z Use the appropriate tag strategies to solve a problem.
z Use Dynamic Reference Addressing as a troubleshooting tool.
z Monitor Value, Time and Quality.

Wonderware Training
Section 1 – Value, Time and Quality (VTQ) 5-3

Section 1 – Value, Time and Quality (VTQ)

Section Objective
z Monitor the Value, Time and Quality .fields of data coming from an I/O server.

VTQ Dotfields (.Fields)


Value Time Quality (VTQ) places a time stamp and quality indicator on all data values delivered to
VTQ-aware clients. VTQ provides indicators of data quality useful for diagnostics and
troubleshooting.

Value .Value field is the tag value.


Time .Time fields represent various time stamps indicating the last update time for the
tag.
Quality .Quality fields represent I/O diagnostics for reliability of the tag information.

The VTQ Dotfields are described in detail in this section.

.Value
Contains the value of the specified tagname. This is also the default .field for every InTouch
tagname within the system. If no other .field is specified, this .field is assumed.
Usage Tagname.Value

Parameters Description
Tagname Any tagname except Hist Trend tagname types.
Remarks This is the default .field for every InTouch tagname within the system. If no other
.field is specified, this .field is assumed. Rarely would you need to use this .field,
but in some instances, it makes a calculation or parameter usage more clear.
Data Type Depends on (is the same as) the specified tagname's type (read/write).
Example The following statement sets the value of the Memory Integer Tag named MyTag
equal to 100.
Tagname.Value=100;
Which is functionally identical to:
Tagname=100;

.TimeDate
Integer Tagname .field used to display the whole number of days since 01/01/1970 which have
passed since an I/O value provided by an I/O Server when the I/O connection is valid.
Usage Tagname.TimeDate

Parameters Description
Tagname Any Discrete, Integer, Real, Indirect Analog and Message tagname type.
Data Type Integer (read-only)

InTouch 10.0 – Advanced Application Development Course


5-4 Module 5 – Data Monitoring

.TimeDateString
String that displays the date in the same format set in the WIN.INI file.
Usage Tagname.TimeDateStrin

Parameters Description
Tagname Any Discrete, Integer, Real, Indirect Analog and Message tagname type.
Data Type Message (read-only)

.TimeDateTime
Real Tagname .field used to display the fractional number of days since 01/01/1970 which have
passed since an I/O value provided by an I/O Server when the I/O connection is valid.
Usage Tagname.TimeDateTime

Parameters Description
Tagname Any Discrete, Integer, Real, Indirect Analog and Message tagname type.
Data Type Real (read-only)

.TimeDay
Integer Tagname.field used to display the day an I/O value provided by an I/O Server when the I/O
connection is valid.
Usage Tagname.TimeDay

Parameters Description
Tagname Any Discrete, Integer, Real, Indirect Analog and Message tagname type.
Data Type Integer (read-only)
Valid Values Value may be 1 - 31.

.TimeHour
Integer Tagname .field used to display the hour of the day that an I/O value provided by an I/O
Server when the I/O connection is valid.
Usage Tagname.TimeHour

Parameters Description
Tagname Any Discrete, Integer, Real, Indirect Analog and Message tagname type.
Data Type Integer (read-only)
Valid Values Value may be 0 - 23.

Wonderware Training
Section 1 – Value, Time and Quality (VTQ) 5-5

.TimeMinute
Integer Tagname.field used to display the minute that an I/O value provided by an I/O Server when
the I/O connection is valid.
Usage Tagname.TimeMinute

Parameters Description
Tagname Any Discrete, Integer, Real, Indirect Analog and Message tagname type.
Data Type Integer (read-only)
Valid Values Value may be 0 - 59.

.TimeMonth
Integer Tagname.field used to display the month that an I/O value provided by an I/O Server when
the I/O connection is valid.
Usage Tagname.TimeMonth

Parameters Description
Tagname Any Discrete, Integer, Real, Indirect Analog and Message tagname type.
Data Type Integer (read-only)
Valid Values Value may be 1 - 12.

.TimeMsec
Integer Tagname .field used to display the time in milliseconds that an I/O value provided by an I/
O Server when the I/O connection is valid.
Usage Tagname.TimeMsec

Parameters Description
Tagname Any Discrete, Integer, Real, Indirect Analog and Message tagname type.
Data Type Integer (read-only)
Valid Values Value may be 0 - 999.

.TimeSecond
Integer Tagname .field used to display the time in seconds that an I/O value provided by an I/O
Server when the I/O connection is valid.
Usage Tagname.TimeSecond

Parameters Description
Tagname Any Discrete, Integer, Real, Indirect Analog and Message tagname type.
Data Type Integer (read-only)
Valid Values Value may be 0 - 59.

InTouch 10.0 – Advanced Application Development Course


5-6 Module 5 – Data Monitoring

.TimeTime
Integer Tagname .field used to display the time in milliseconds since midnight that an I/O value
was provided by an I/O Server when the I/O connection is valid.
Usage Tagname.TimeTime

Parameters Description
Tagname Any Discrete, Integer, Real, Indirect Analog and Message tagname type.
Data Type Integer (read-only)
Valid Values Value may be 0 - 86399999.

.TimeTimeString
Message Tagname .field used to display the time and day of an I/O value provided by an I/O
Server when the I/O connection is valid.
Usage Tagname.TimeTimeString

Parameters Description
Tagname Any Discrete, Integer, Real, Indirect Analog and Message tagname type.
Data Type Message (read-only)

.TimeYear
Integer Tagname .field used to display the year is four digits that an I/O value was provided by an
I/O Server when the I/O connection is valid.
Usage Tagname.TimeTime

Parameters Description
Tagname Any Discrete, Integer, Real, Indirect Analog and Message tagname type.
Data Type Integer (read-only)
Valid Values Any year in the format ####. For example 1998.

Wonderware Training
Section 1 – Value, Time and Quality (VTQ) 5-7

.Quality
To completely understand the Quality .fields used by Wonderware, a brief definition of quality
standard is stated. The Wonderware Data Quality standard is based on the OLE for Process
Control (OPC) proposed quality, which in turn is based on Fieldbus Data Quality Specifications.
Quality flags represent the quality state for an item's data value. This design makes it fairly easy
for both Servers and Client applications to determine how much functionality they want to
implement.
The low 8 bits (Least Significant Byte) of the Quality flags are currently defined in the form of three
bit fields; Quality, Substatus and Limit status arranged as follows: QQSSSSLL
The Quality field allows the user to access the quality of an I/O tagname as provided by an I/O
Server.

Note: If the I/O connection becomes invalid, the quality .fields are automatically reset to the initial
value of zero. The .ReferenceComplete flag is also set to zero at this time.

Quality Fields
Usage Tagname.Quality

Parameters Description
Tagname Any Discrete, Integer, Real, Indirect Analog, or Message tagname type.
Data Type Analog / Integer (read only)
Valid Values Value may be 0 to 255
Example IF I0Tag.Quality <> 192 THEN
LogMessage("This data is not Good!");
ENDIF;

Wonderware I/O Servers can report six (6) mutually exclusive states of quality of data being sent
back to their clients. They are as follows:

OPC Quality Bits


Decimal Hex MS Byte LSByte Quality Quality Quality
Value Value Sub
XXXXXXXX QQSSSSLL
Status
1. Good 192 0x00C0 00000000 11000000 Q=3 S=0 L=0
2. Clamped High (Out of Range) 86 0x0056 00000000 01010110 Q=1 S=5 L=2
3. Clamped Low (Out of Range) 85 0x0055 00000000 01010101 Q=1 S=5 L=1
4. Cannot Convert 64 0x0040 00000000 01000000 Q=1 S=0 L=0
5. Communications Failed 24 0x0018 00000000 00011000 Q=0 S=6 L=0
6. Cannot Access Point 4 0x0004 00000000 00000100 Q=0 S=1 L=0
(Point you look for is NOT there)

When the client application is unable to communicate with the Server .QualityStatus is 0.
The conditions under which each of these quality states will be reported are as follows:

InTouch 10.0 – Advanced Application Development Course


5-8 Module 5 – Data Monitoring

1. Good (.Quality of 192)


z The Communications link has been verified.
z The PLC understood our Poll request and returned a valid response packet.
z If a write occurred, there were no errors during the write process.
z 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).
2. Clamped High (.Quality of 86)
z The Communications link has been verified.
z The PLC understood our Poll request and returned a valid response packet.
z The register was read or written without error.
z It was necessary to clamp its intended value to a limit because the value was larger than
the maximum allowed.
z In the case of a string, the string is truncated.
Example: An unsigned 16 bit integer is clamped to 65535.
3. Clamped Low (.Quality of 85)
z The Communications link has been verified.
z The PLC understood our Poll request and returned a valid response packet.
z The register was read or written without error.
z 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.
4. Cannot Convert (.Quality of 64)
z The Communications link has been verified.
z The PLC understood our Poll request and returned a valid response packet.
z The data from the PLC could not be converted into the desired format.
z Possibilities for cannot convert include, but are not limited to:
z The Server may return a constant in place of the data or return quality information
alone.
z The data is not usable.
z It is not known whether the value is too large or too small.
z The data returned from the PLC is of the incorrect data type.
z 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.

Wonderware Training
Section 1 – Value, Time and Quality (VTQ) 5-9

5. Communications Failed (.Quality of 24)


z Any combination of the following:
z Data communications are down.
z The Topic is in slow poll (or equivalent) mode.
z There have been no link validating messages.
z Lack of resources in the Server. For example,
a TSR (or driver) cannot allocate memory.
z Lack of resources in the communications link.
z The communications link is off-line.
z All communications channels are in use.
z The network is unable to route the message to the PLC.
Example: Attempting to read data from a PLC that has been powered off.
6. Cannot Access Point (.Quality of 4)
z The Communications link has been verified.
z The PLC understood our Poll request and returned a valid response packet.
z The PLC reported that it could not access the requested point.
z Possibilities for lack of accessibility include, but are not limited to:
z Item does not exist in PLC memory.
z Item is not currently available (locked in some way due to resource contention).
z Item is not of the correct format/data type.
z A write attempt was made, but item is read-only.
z 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, then the entire block is marked invalid by the PLC. The Server will
report invalid quality for all items in the block.
z The data is unusable.
Example: Attempting to read R40001 but R40001 is not defined in the PLC's memory map.

InTouch 10.0 – Advanced Application Development Course


5-10 Module 5 – Data Monitoring

.QualityLimit
Integer used to display the quality limit of an I/O value provided by an I/O Server when the I/O
connection is valid.
Usage Tagname.QualityLimit

Parameters Description
Tagname Any Discrete, Integer, Real, Indirect Analog, or Message tagname type.
Data Type Integer (read-only)
Valid Values (LLL)

Value String
0 Not Limited
1 Low Limited
2 High Limited
3 Constant

.QualityLimitString
Used to display the quality limit string of an I/O value provided by an I/O Server when the I/O
connection is valid.
Usage Tagname.QualityLimitString

Parameters Description
Tagname Any Discrete, Integer, Real, Indirect Analog, or Message tagname type.
Data Type Message (read-only)

.QualityStatus
Integer used to display the quality status of an I/O value provided by an I/O Server when the I/O
connection is valid.
Usage Tagname.QualityStatus

Parameters Description
Tagname Any Discrete, Integer, Real, Indirect Analog, or Message tagname type.
Remarks The Substatus Bit-Field (SSSS) is dependent on the value of the Quality Field
(QQSSSSLL).
Data Type Integer (read-only)
Valid Values (SSSS)

0 Bad
1 Uncertain
3 Good

Wonderware Training
Section 1 – Value, Time and Quality (VTQ) 5-11

.QualityStatusString
Used to display the quality status string of an I/O value provided by an I/O Server when the I/O
connection is valid.
Usage Tagname.QualityStatusString

Parameters Description
Tagname Any Discrete, Integer, Real, Indirect Analog, or Message tagname type.
Data Type Message (read-only)

.QualitySubstatus
Integer used to display the quality substatus of an I/O value provided by an I/O Server when the I/
O connection is valid.
Usage Tagname.QualitySubstatus

Parameters Description
Tagname Any Discrete, Integer, Real, Indirect Analog, or Message tagname type.
Data Type Integer (read-only)
Valid Values (SSSS) and (QQ)
Substatus (SSSS) for BAD
Quality (QQ=0):

0 Non-specific
1 Configuration Error
2 Not Connected
3 Device Failure
4 Sensor Failure
5 Last Known Value
6 Com Failure
7 Out of Service

Substatus (SSSS) for UNCERTAIN Quality (QQ=1):

0 Non-specific
1 Last Usable Value
4 Sensor Not Accurate
5 Engineering Units
Exceeded
6 Sub-Normal

Substatus (SSSS) for GOOD Quality (QQ=2):

0 Non-specific
6 Local Override

InTouch 10.0 – Advanced Application Development Course


5-12 Module 5 – Data Monitoring

.QualitySubstatusString
Used to display the quality substatus string of an I/O value provided by an I/O Server when the I/O
connection is valid.
Usage Tagname.QualitySubstatusString

Parameters Description
Tagname Any Discrete, Integer, Real, Indirect Analog, or Message tagname type.
Data Type Message (read-only)

Wonderware Training
Section 1 – Value, Time and Quality (VTQ) 5-13

Instrument Monitoring .Fields

.MaxRaw
The high clamp setting for the actual raw value received from an I/O Server by WindowViewer as a
client. The value for .MaxRaw field comes from the Max Raw value field in the tagname database
for the specified I/O tagname. Any raw value exceeding this setting is clamped to this value.
Usage tagname.MaxRaw

Parameters Description
Tagname Any I/O Discrete, Indirect Discrete, I/O Integer, Memory Real, Indirect Analog, I/O
Message and Indirect Message tagname type.
Remarks This read-only .field is used to display the Max Raw high clamp setting.
Data Type Real or Integer (read-only)
Valid Values Any analog value.
Example The following could be used to determine if a tagname is out of normal operating
range and thus its value was clamped:

IF ((Temp01.RawValue > Temp01.MaxRaw) OR (Temp01.RawValue < Temp01.MinRaw))THEN


Show "Instrument Failure Window";
ENDIF;

.MinRaw
The low clamp setting for the actual raw value received from an I/O Server by WindowViewer as a
client. The value for .MinRaw field comes from the Min Raw value field in tagname database for
the specified I/O tagname. Any raw value that falls below this setting is clamped to this value.
Usage tagname.MinRaw

Parameters Description
Tagname Any I/O Discrete, Indirect Discrete, I/O Integer, Memory Real, Indirect Analog, I/O
Message and Indirect Message tagname type.
Remarks This read-only .field is used to display the Min Raw high clamp setting.
Data Type Real or Integer (read-only)
Valid Values Any analog value.
Example The following could be used to determine if a tagname is out of normal operating
range and thus its value was clamped:

IF ((Temp01.RawValue > Temp01.MaxRaw) OR (Temp01.RawValue < Temp01.MinRaw))THEN


Show "Instrument Failure Window";
ENDIF;

InTouch 10.0 – Advanced Application Development Course


5-14 Module 5 – Data Monitoring

.RawValue
The actual value received from an I/O Server by WindowViewer as a client. The raw value field
allows the user to access the value of an I/O tagname before InTouch applies scaling.
Usage tagname.RawValue

Parameters Description
Tagname Any I/O Discrete, Indirect Discrete, I/O Integer, Memory Real, Indirect Analog, I/O
Message and Indirect Message tagname type.
Remarks This read-only .field is used to display the actual discrete or analog I/O value before
InTouch applies scaling.
Data Type Integer (read-only)
Valid Values Where discrete or analog values can be specified.
Example The following could be used to determine if a tagname is out of normal operating
range:

IF ((IOtag.RawValue > IOtag.MaxRaw) OR (IOTag.RawValue < IOTag.MinRaw))THEN


AlarmMessage = "Sensor is out of calibration or requires replacement.";
ENDIF;

Wonderware Training
Lab 12 – Troubleshooting With VTQ 5-15

Lab 12 – Troubleshooting With VTQ


Introduction
In this lab, you will use the VTQ dotfields to determine if data is valid. If communication is lost with
the PLC, a screen appears displaying the time and date of the last known “good” data.

Objectives
Upon completion of this lab, you will be able to:
z Monitor Value, Time, and Quality fields of a specific tag
z Monitor PLC status
z Monitor Communication Server status

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

a. Open the VTQ window, and convert all the tags to local.
b. Define the IOstatus and status I/O discrete tags as follows:

Tagname Tag Type Access Name Item


IOstatus I/O Discrete IOStatus ModbusPLC1
status I/O Discrete ModbusPLC1 status

c. Add the following Access Name:

Access Name Node App Topic Protocol


IOStatus <Node Name *> View IOStatus SuiteLink
* Blank, Local Host, or your Node Name

d. Monitor in Runtime.

See the next page for Detailed Lab Instructions

InTouch 10.0 – Advanced Application Development Course


5-16 Module 5 – Data Monitoring

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Convert Tags
1. Open the VTQ window.
This window has been animated for you, but the tags need to be converted.
2. With the window open, press F2 to select all objects.
3. Now press Ctrl+E or click on Special/Substitute Tags.
The following dialog box appears.

4. Click on the Convert button and when prompted select Local.


Click OK.

Wonderware Training
Lab 12 – Troubleshooting With VTQ 5-17

Create Tags & Access Names


When converting the tags, you may be prompted to create two tags; IOStatus and status.
Define IOStatus as follows:
5. Change the tag Type to I/O Discrete.
6. Click Access Name to create a new Access Name called IOStatus as shown below.

Access Name Node App Topic Protocol


IOStatus <Node Name> View IOStatus SuiteLink

7. Enter ModbusPLC1 as the Item.


8. Use the following attributes for the IOstatus tag:

InTouch 10.0 – Advanced Application Development Course


5-18 Module 5 – Data Monitoring

The IOstatus topic monitors the DDE/SuiteLink conversations between WindowViewer and
the I/O servers.
When IOstatus is true or 1, the connection is good.
When IOstatus is false or 0, the connection is bad.
9. Close the Tagname Dictionary and then click OK.
When IO Status configuration is complete, you will be prompted to create the status tag.
10. Use the following attributes for the status tag:

The status bit monitors the connection between the I/O Server and the PLC.
When status is true or 1, the connection is good.
When status is false or 0, the connection is bad.
11. Close the Tagname Dictionary when status configuration is complete.

Note: The VTQ window is only monitoring the tank level in the PLC connected to the remote
PC. All of the VTQ .(dot) fields are based on the tank level. For example:

Tank_Level_PLC2.QualityStatusString

12. Click OK to accept the tag conversion.


13. Switch to Runtime and ensure that the fields are updating.
14. The instructor will demonstrate what happens when communication is lost between
WindowViewer and the I/O Server and when communication is lost between the I/O Server
and the PLC.

Wonderware Training
Section 2 – Quality and Status in ArchestrA 5-19

Section 2 – Quality and Status in ArchestrA

Section Objective
z Configure visual clues regarding the status of your data and/or plant operations.
z Observe visual clues in Runtime.

Status Behavior and the Galaxy


The IDE can configure how we manage
z Data Quality visualization
z Status visualization
Enables an indication of status to be shown
z Automatic once configured
z Configured cross-Galaxy
z All applications behave the same
Status feedback configured in IDE
z Extremely flexible options
z Access from IDE main menu

InTouch 10.0 – Advanced Application Development Course


5-20 Module 5 – Data Monitoring

Control override of most aspects of graphics


z Bad
z Uncertain
z Initializing
z Communication Error
z Configuration Error
z Operational Error
z Software Error
z Security
z Warning
z Pending

Preview of settings

Wonderware Training
Section 2 – Quality and Status in ArchestrA 5-21

Status Graphics
You can use a Status Graphic element to indicate the status or quality of:
z One or more specified ArchestrA attributes.
z All ArchestrA attributes that are used in one or more specified elements in the same
hierarchical level.

Status Graphic Element shows


Quality and Status Directly or Indirectly

Attribute Attribute Attribute Attribute Attribute


A B C D E

Deliver values
(and also quality
and status) to
animate the
elements
Deliver quality and
status directly from
ArchestrA attributes
Element 1

Element 2

Element 3

Deliver quality and Status Graphic Element


status indirectly from
ArchestrA attributes
via the elements

Abnormal quality and status may be:


z An error status due to communication, configuration, operational, security or software
error.
z Bad, initializing, pending, uncertain or warning quality.
The Status Graphic element lets you assign:
z One or more ArchestrA attributes, values or expressions.
z One or more elements on the canvas that contain animations.
You can also:
z Configure the appearance of the Status Graphic element for each quality and status state.
z Show quality and status information directly with the elements.

InTouch 10.0 – Advanced Application Development Course


5-22 Module 5 – Data Monitoring

Showing Quality and Status


You can do either of the following to show a specified status or quality at run time:
z Use a Status Graphic element that shows you an icon. It indicates the status or quality of
specified ArchestrA attributes directly or those used indirectly in elements.
The Status Graphic element cannot monitor attributes of elements that are not in the same
hierarchy level in the Element Browser, nor elements that use the attributes in scripts, nor
elements that are invisible at run time.
z Change the appearance of animated elements that are using the specified ArchestrA
attributes. This can be done either by:
z Overriding the animation or changing the appearance of the element.
z Drawing an outline around the element.
In all cases, you can configure how quality and status is shown in the Configure Quality and
Status Display dialog box. This is configured outside the ArchestrA Symbol Editor in the IDE.
The setting is applied globally across the Galaxy to all selected animated elements that use the
monitored attribute. This applies also to:
z Elements contained in groups.
z Elements in symbols embedded in other symbols.
This does not apply to:
z Elements that use the monitored attribute in scripts.
z Elements that are invisible at run time.

Configuring Element-Specific Animations


Fore a review of configuring unique animation types, see page 6-75.

Restrictions of the Status Graphic Element


The Status Graphic element must be in the same hierarchical level as the animated elements with
the attributes you want to monitor.
If you move elements out of their hierarchical level after you have associated them with a Status
Graphic element, for example, by grouping them, their attributes are no longer monitored.

To avoid this problem, paste a new Status Graphic element in the hierarchical level you want to
monitor, or associate it directly with the attributes you want to monitor.

Wonderware Training
Lab 13 – Implementing Quality & Status In ArchestrA Graphics 5-23

Lab 13 – Implementing Quality & Status In


ArchestrA Graphics
Introduction
All ArchestrA graphics have the ability to give feedback related to I/O quality. This feedback can
take the form of an Icon appearing in their symbol, or change in appearance, such as a dashed
line around and object, when there is a quality related problem. Predefined graphics in the
ArchestrA Graphic Library already have the quality object embedded in them, whereas user
defined objects will need to have the object added. Additionally, a configuration changes to the
IDE needs to me made to fully implement the functionality.

Objectives
Upon completion of this lab, you will be able to:
z Expose and configure Quality and Status indicators
z Observe Quality and Status indicators in Runtime

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

a. From the IDE, Change the Quality and Status display settings for line color, pattern, and
outline for Bad data and place a Data Status Icon on the LevelIndicator element.
b. Open the Main_Reactor symbol.
c. Place a Status icon on the LevelIndicator element.
d. Apply the quality options to the LevelIndicator Graphical Element.
e. Test in Runtime.
f. Disconnect the PLC or shutdown the DA Server to test the quality behavior of your object
and observe the results.
g. Experiment with several different settings and overriding animations.

See the next page for Detailed Lab Instructions

InTouch 10.0 – Advanced Application Development Course


5-24 Module 5 – Data Monitoring

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Configure a Quality and Status Display Animation


1. Launch the ArchestrA IDE and connect to your Galaxy.
2. From the Galaxy menu, select Configure / Quality and Status Display.

Wonderware Training
Lab 13 – Implementing Quality & Status In ArchestrA Graphics 5-25

3. Verify that the Enable Quality and Status Display checkbox is checked.
This will allow all objects to display information regarding quality.

Note: Not all Status Style Overrides are available to InTouch applications, as some are
intended for Application Server based data. The two primary options that are available to use
with InTouch are the Communication Error and Bad overrides.

4. Change the settings for the Bad Status Style override, setting the Outline color to red,
Line Pattern to a dashed line., and checking the Blink option.

5. Click OK to exit the dialog box.

InTouch 10.0 – Advanced Application Development Course


5-26 Module 5 – Data Monitoring

Place a Status Primitive on an ArchestrA Symbol


6. Open the Main_Reactor symbol in the Symbol Editor.
7. Select the Status icon from the Tools pane and place it on the LevelIndicator element.
When placed, it will automatically take you to the Edit Animations dialog.

8. Select the LevelIndicator Graphical Element and click on >> to apply the quality options.

9. Click OK when finished.


10. Save and Close the symbol and check it in.
11. Open or switch back to WindowMaker.
12. Open the NewReactor window and close any other opened windows.

Note: If the NewReactor window was open during this lab, update the symbol.

13. Switch to Runtime.

Wonderware Training
Lab 13 – Implementing Quality & Status In ArchestrA Graphics 5-27

14. Disconnect the PLC or shutdown the DA Server to test the quality behavior of your object
and observe the results.

15. Close WindowViewer when finished.

InTouch 10.0 – Advanced Application Development Course


5-28 Module 5 – Data Monitoring

Wonderware Training
Section 3 – I/O Failover 5-29

Section 3 – I/O Failover

Section Objective
Introduce the I/O failover configuration and functionality.

This feature provides the ability to easily configure I/O failover using dialog boxes and options in
the user interface. I/O failover allows you to switch between access names when an I/O
communication fails and back again when the connection recovers.

To configure I/O failover for an Access Name, click the “Enable Secondary Source” option on the
Add Access Name or Modify Access Name dialog box. This expands the dialog box so you can
enter a secondary source. The Failover button is available for accessing optional configuration
settings. These include:
z Disable Failover is for enabling and disabling failover for this access name.
z Failover Expression is the discrete tag can be used to trigger the failover.
z Failover Deadband is the delay before switching to the secondary source from the
primary source when I/O communication fails. The default value 0 seconds.
z Switch back to Primary when Failover conditions clear specifies whether InTouch
should switch back to the primary source when I/O communication returns.
z Fail-back Deadband is the delay before switching back to the primary source from the
secondary source when I/O communication returns. The default value is 0 seconds.

Note: With default value of 0 seconds, failover and fail-back are immediate.

InTouch 10.0 – Advanced Application Development Course


5-30 Module 5 – Data Monitoring

Script functions for I/O failover are also provided. These can be used in any InTouch script and are
based on triggers related to Access Names.

Script Function Description


IOForceFailover(AccessName) Forces failover for an access name
IODisableFailover(Accessname,Option) Enables and disables failover
(specifying the “Option” as 1 enables failover and
0 disables failover)
IOGetActiveSourceName(AccessName) Returns the I/O Source of the currently active source of
an Access Name
IOGetAccessNameStatus(AccessName,Mode) Returns the status of the primary, secondary or active
I/O Source of an Access Name.

The modes defined below describe the IOGetAccessNameStatus Script Function above.

Mode Description
0 Status of the Active Access Name I/O Source
1 Status of the Access Name Primary I/O Source
2 Status of the Access Name Secondary Source

The example below indicates the script syntax using the IOGetAccessNameStatus ScriptFunction.
Syntax: Result = IOGetAccessNameStatus(AccessName, Mode);
The Result tag returns the status of the Active, Primary, and Secondary nodes.

Note: This will only work with at least one active I/O point in the window.

Wonderware Training
Lab 14 – Monitoring I/O Communication 5-31

Lab 14 – Monitoring I/O Communication


Introduction
In this lab, you will configure a secondary source to switch to when I/O communication fails, and
then force a failover. You will use an I/O Server redundant to the system in Lab 2, “Standard Tag
Addressing”. If you need to review any requirements, please refer to Lab 11, “Remote Tagname
Referencing”.

Objectives
Upon completion of this lab, you will be able to:
z Configure an Access Name for failover using the Secondary Source option
z Monitor Failover status
z Display the active node
z Force a Failover and Failback

InTouch 10.0 – Advanced Application Development Course


5-32 Module 5 – Data Monitoring

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

a. Modify the ModbusPLC1 Access Name for Failover by checking Enable Secondary Source
and configuring the Secondary Source as follows:

Node App Topic Protocol


<Node Name Provided by Instructor> Modbus PLC SuiteLink

b. Configure the Failover as follows:


Fail-over Expression: Failure (Define as a Memory Discrete)
Fail-over Deadband: 0
Check Switch back to Primary when Fail-over conditions clear.
c. Test in Runtime by stopping and restarting the PLC or DAServer.
d. In WindowViewer, open the window named Failover and add scripting to display the status of
the Active, Primary, and Secondary Data Sources.
e. Test it in Runtime.
f. Modify the Failover window to show which data source is active (primary or secondary) and
Node Name that is currently being used.
g. Force a failover is with the script function IOForceFailover. For example:
IOForceFailover( “ModbusPLC1”);

Suggestion: The IOForceFailover script function does not return a result, but you can
change the value of a message tag as appropriate when you execute the script function via an
Action script.

h. Test your application in Runtime.


This is a finished example showing Failover enabled/disabled status.

See the next page for Detailed Lab Instructions

Wonderware Training
Lab 14 – Monitoring I/O Communication 5-33

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Define a Failover
InTouch uses Access Names to communicate with other plant equipment. Modify the
ModbusPLC1 Access Name for Failover.
1. Expand Configure in the Tools pane.
2. Double-click Access Names.
The Access Names dialog box appears:

3. Verify the existence of or create the ModbusPLC1 Access Name.


Node Name is the name of your local node
Application Name is Modbus
Topic Name is PLC
Protocol is SuiteLink
Your configuration should appear as follows:

Enter the node name


of your computer.

4. Click Enable Secondary Source to configure a secondary failover node.


The Modify Access Name dialog box expands.

InTouch 10.0 – Advanced Application Development Course


5-34 Module 5 – Data Monitoring

5. In the Node Name field (below the Enable Secondary Source check box),
enter the node name of a computer next to you, for example Train05.
6. Enter Modbus for the Application Name.
7. Enter PLC for the Topic Name.

Your current I/O


Node as previously
defined.

Node Name provided


by instructor.

8. Click Failover.

Wonderware Training
Lab 14 – Monitoring I/O Communication 5-35

The Failover Configuration dialog box appears.


9. Enter the following information:
Fail-over Expression: Failure
Fail-over Deadband: 0
Check Switch back to Primary when Fail-over conditions clear.
10. Click OK.

You will now be prompted to define a tag named failure as a Memory Discrete.
11. Click OK when finished.
12. With any window open, test in Runtime by unplugging the PLC and stopping the I/O Server.
Check to see if there is any difference in the outcome.
13. Re-establish communication with the PLC / Server.
Check to see if the I/O reverts back to the original computer.

InTouch 10.0 – Advanced Application Development Course


5-36 Module 5 – Data Monitoring

Monitor Failover Status


So far, the failover implementation will switch between the primary and secondary I/O sources, but
it will give no feedback to the operator about the status of the failover.
The script function IOGetAccessNameStatus will return the status of the active conversation and
the Primary and Secondary I/O sources. For example,
ActiveSource = IOGetAccessNameStatus(“ModbusPLC1”, 0)
will return the status of the active conversation to the discrete tag ActiveSource and
PrimarySource = IOGetAccessNameStatus(“ModbusPLC1”, 1)
will return the status of the primary I/O source to the discrete tag PrimarySource.
The values of these tags could then drive a Discrete Value Display animation link to relay the
status of the Active, Primary and Secondary data sources.
Modes are described on page 5-30.

14. For this section, open the window named Failover and implement scripting to monitor failover
status.
The section of the window labeled Failover Monitoring – Status has three text objects
(“XXX”) with appropriate labeling as locations to display the status of the Active, Primary and
Secondary data sources.

Suggestion: Use a Window While Showing script for the IOGetAccessNameStatus script
function and Discrete Value Displays to display the status.

15. Test your application in Runtime.


This is a finished example with primary source having failed

Wonderware Training
Lab 14 – Monitoring I/O Communication 5-37

Display Active Node


In addition to returning the status of the Data Source, it may be desirable to return the name of the
node that is currently being used to for the data source, and whether it is the primary or secondary
data source.
The script function IOGetActiveSourceName will return either Primary, Secondary or Null as a
result. For example:
ActiveNode = IOGetActiveSourceName("ModbusPLC1")
will return to the message tag ActiveNode the value Secondary if a failover condition is active for
the access name ModbusPLC1. The value Null will be returned if there is no data being
requested from the data source (all tags inactive). See the table on page 5-30 for more
clarification.
The script function IOGetNode will return the node name (either primary or secondary node name)
that is currently being used by the access name. For example:
CurrentNode = IOGetNode(“ModbusPLC1”)
will return Wonder00 (or the current node name) to the message tag CurrentNode if a failover
condition for the access name ModbusPLC1 is not active.
16. For this section, you will need to implement this functionality to return the appropriate
messages for the status of the active data source and the node name of the data source.
The section of the failover window has appropriate objects and labels for displaying the
results.

Suggestion: Use a Window – While Showing script.

17. Test your application in Runtime.


This is a finished example with primary source having failed.

InTouch 10.0 – Advanced Application Development Course


5-38 Module 5 – Data Monitoring

Force a Failover
It may be desirable to switch between the primary and secondary data sources without having a
failover condition active. This is called a “Forced Failover” and can be done in two ways.
The first way is via a discrete tag. When you modified the access name for failover, you included a
Failover Expression like the one shown below.

In this example, a memory discrete tag failure was defined. Changing the value of this tag from
true to false will switch between the primary (false) and secondary (true) data sources.
The second method of forcing a failover is with the script function IOForceFailover.
This function acts as a toggle. For example:
IOForceFailover( “ModbusPLC1”);
It is also possible to disable failover switching. The failover configuration dialog box (see above),
has this option, but it can also be implemented at Runtime with the script function
IODisableFailover. For example:
IODisableFailover( "ModbusPLC1",1);
will disable failover switching for the access name ModbusPLC1 and
IODisableFailover( "ModbusPLC1",0);
will re-enable failover switching. The current implementation of this function will disable failover
switching for all methods except for the IOForceFailover script function.
18. For this section, use the portion of the Failover window labeled Forcing Failover.
Buttons have been placed as appropriate for your use in implementing the above methods of
forcing failover and enabling/disabling failover.

Suggestion: The IOForceFailover script function does not return a result, but you can
change the value of a message tag as appropriate when you execute the script function via an
Action script

Wonderware Training
Lab 14 – Monitoring I/O Communication 5-39

19. Test your application in Runtime.


This is a finished example showing Failover enabled/disabled status.

This window, when completed, should show:


z Status of the active IO conversation
z Status of the primary and secondary data sources
z Current data node and whether it is primary or secondary
z The window should also allow the user to force a failover and disable failover altogether.

InTouch 10.0 – Advanced Application Development Course


5-40 Module 5 – Data Monitoring

Wonderware Training
Module 6

Security
Section 1 – Application Security 6-3
Section 2 – Security Models and Functionality 6-7
Lab 15 – Implementing Security 6-23
6-2 Module 6 – Security

Module Objectives
z Introduce security options available with InTouch®.
z Configure InTouch® Security.
z Configure Operating System Security when using InTouch®.
z Create and use a custom Security Log On window.
z Configure and use Script Functions in InTouch related to security.

Wonderware Training
Section 1 – Application Security 6-3

Section 1 – Application Security

Section Objectives
z Select appropriate Security Type for your application.
z Utilize Script Functions for Security.
z Verify credentials without logging in.
z Configure Operating System Based Security.

Introduction
InTouch security includes options for a variety of applications. Securing an InTouch application
means different things to different people. Application Developers may want to secure the
operating system, audit operators' actions, or secure the InTouch application itself. In some cases
the top concern is to limit the operator's access to other Windows applications or the operating
system. There are script functions available to lock the use of keys like <ALT> or <TAB>. There
are ways to configure WindowViewer™ (View) to always run maximized and/or to hide its menu so
that operators can't close it.
In other instances security is all about auditing the operator's actions and keeping track of what
was done when. InTouch events and "inactivity" system tags can track these actions.
In some other cases security means restricting features of the application based on privileges set
forth for the current user (like a User ID) or the group the user belongs to (like Roles). This
functionality is accomplished by setting a visibility or disable link to the object with limited access
(for example, a push button to open another window).
The InTouch security type is based on a binary file containing a list of users of the application with
passwords and access levels.
The Operating System security type utilizes Windows Operating System Security to secure
InTouch Applications. The operating system security option allows InTouch to meet security
requirements in regulated industries. These specifications are established by the Food and Drug
Administration (FDA) in CFR 21 Part 11. The deployment details are contained in Appendix E in
this Training Manual.
The ArchestrA security type utilizes the security built into the Industrial Application Server to
secure InTouch applications. The details for security features available with the Industrial
Application Server are covered in a separate course.

InTouch 10.0 – Advanced Application Development Course


6-4 Module 6 – Security

Security Types in InTouch


InTouch includes four Security Types:

InTouch: Users are authenticated against a binary file (password.bin) that contains information
about users, passwords, and access levels.
Operating System: Access is tied to Microsoft Operating System security.
ArchestrA: Access is tied to ArchestrA and the Industrial Application Server.
None: No authentication at all.
The major aspects of security are:
z Securing the OS
z Auditing
z Securing the Application

Wonderware Training
Section 1 – Application Security 6-5

Securing the Operating System


Many InTouch applications require an operator to constantly monitor processes running 24x7. In
these cases it is often desirable to have InTouch as the only Windows application that operators
have access to. The operating system task bar, system files, and other Windows applications are
inaccessible if View is configured properly.
There are different things that can be done to make WindowViewer the only application running in
the foreground and to disable <Alt>, <Ctrl>, or <ESC> keys so users can't switch between
windows applications or access the task bar. InTouch provides configuration settings for
WindowViewer to disable ALT, ESC, and WIN keys.
InTouch 8.0 or later has the Disable Key options disabled by default since the script function
called EnableDisableKeys() provides the functionality to enable/disable the ALT, TAB, or WIN
keys in runtime. This function, combined with WindowViewer settings to Always Maximize and
hide various Window control options will effectively secure the operating system.
Another common practice to hide/show the menu bar in View is to create a popup style window
with its X,Y coordinates set to 0,-38 with a height of 38 pixels and a width equal to the display
resolution (i.e. 1024).

Note: This will change if a theme other than “Classic” is used. For example, XP is slightly taller.

InTouch 10.0 – Advanced Application Development Course


6-6 Module 6 – Security

Auditing
Keeping track of what the operators do doesn't make an InTouch application more secure but it is
an important aspect of security. When users and groups (or roles) 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 onto the system. Alarms and events are very similar in nature; a condition has
occurred and should be logged. The difference between the two is that events, unlike alarms, do
not require an acknowledgment.
InTouch includes an alarm object based on ActiveX technologies that also provides easy access
to summary and history of alarms. It exposes a number of properties and methods that simplify
configuration both during development and runtime. We will be discussing this object in detail in
Module 6 – Alarm Distribution.

Note: InTouch logs activities of the user who is logged in. It is up to the operators and
enforcement of security policies to make sure the person performing the activities is the person
logged in.

Securing the Application


InTouch provides a number of System tags and script functions that allow InTouch programmers
to configure security for the application. Applying security to your application is optional. The
default security setting for InTouch applications is "None." However, by applying security to your
application, you can control specific functions that an operator is allowed to perform by linking
those functions to internal tagnames. Once a user is validated and logged on to the InTouch
application, the $Operator and $AccessLevel system tags contain information about the user
and its access level.
To log on to an InTouch application, users can select Special/Security/Logon, call a script
function to display a logon dialog box (standard), or log on via a custom logon window.

Note: See the InTouch Reference Guide for a complete documentation on System Tags and
script functions.

$AccessLevel is the tag that is normally used to secure InTouch applications. InTouch can also
use a system tag to modify what a user ($Operator) can and cannot do during runtime. For
example, to disable a pushbutton just set a Disable or Visibility type link to it with an expression
like $AccessLevel < 9000 or $Operator == “JohnDoe”.

Wonderware Training
Section 2 – Security Models and Functionality 6-7

Section 2 – Security Models and Functionality

Section Objectives
z Select the InTouch Security mode.
z Create User Names.
z Configure scripts to Log On and Off.
z Configure Credential Verification.
z Assign animation links.

InTouch Authentication
The commands used to establish security in an application are located under Security on the
Special menu in WindowMaker™ (Development Mode). 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.
InTouch Security Type is based on the concept of the operator "logging on" to the application,
typing his/her name and password. You must configure a user name, password, and access level
for each operator. There is no association between Microsoft operating system security and
InTouch security.
When you create a new application, by default, the user name is set to "Administrator" with an
access level of 9999 which allows access to all security commands. After you add a new user
name to the security list and restart WindowMaker or WindowViewer, the default user name is
automatically reset to "None" with an access level of "0" which prevents access to the Configure
Users command in both WindowMaker and WindowViewer. By default however, the Administrator
account and password remain and can still be used.
You can also link a User Input – Discrete to a button using the $ConfigureUsers tagname. This
would allow, for example, an authorized operator with an access level of equal to or greater than
9000 to access the Configure Users dialog box to edit the security user name list. When the
operator clicks the button, the value of the $ConfigureUsers tagname is set to 1 and the
Configure Users dialog box appears. When the operator closes the dialog box, the system resets
the value to 0. This is a system discrete tagname intended for write operation only.
If the Special menu will not be displayed in WindowViewer, you can create a custom logon window
that the operator uses to log on to the application. You can also link a User Input - Discrete to a
button to the $ChangePassword tagname to show the Change Password dialog box and allow
the operator to change his/her password. When the operator clicks the button, the value of the
$ChangePassword tagname is set to 1 and the Change Password dialog box appears. When the
operator 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 and 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 commonly 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.

InTouch 10.0 – Advanced Application Development Course


6-8 Module 6 – Security

OS Authentication
With OS authentication, users and groups in the local machine or the domain are assigned
different access levels via the AddPermission() function. The access level given to groups and
users has nothing to do with the rights that such groups and users have on the local machine or
the domain. For example, nothing prevents you from giving the Guests group an access level of
9999 or the Administrators group an access level of 100.
OS Users can be part of one or more groups; if multiple access levels are set to multiple groups, a
user logging on to the InTouch application will get the highest access level assigned to 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.

ArchestrA Authentication
Users and roles can be verified against the ArchestrA security model if the InTouch application is
getting its values from the Industrial Application Server. When ArchestrA authentication is to be
used, the Galaxy itself should also be set for ArchestrA authentication.
A galaxy can be configured for different security models; None(default), Galaxy, OS User Based,
or OS Group Based. The Galaxy mode uses local galaxy configuration to authenticate the user
against the Galaxy database.
The details regarding ArchestrA Authentication are covered in the Industrial Application Server
course.

No Authentication
This is the default mode for new InTouch applications in version 8.0 and later. 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 included in the application directory.

Creating a Custom Security Log on Window


$OperatorDomainEntered, $OperatorEntered, and $PasswordEntered are the three tags to be
used in case a custom logon dialog box is required. Just create a popup-type window and set user
touch links (user input string) to these tags. If the provided credentials are validated, $Operator,
$AccessLevel, $OperatorDomain will update accordingly. Link the $OperatorEntered,
$PasswordEntered and $OperatorDomainEntered system tagnames to user input objects or
use them in a QuickScript to set the User Name, Password, and Domain Name. These are
internal message type tagnames that are intended for write operation only. The
$OperatorDomainEntered is required only if the security mode is operating system-based. Also,
if the security mode is operating system-based and the $OperatorDomainEntered is null, it is
treated as pointing to local machine.
After an operator logs on to the application, access to any protected function will be granted upon
verification of the operator's password and access level against the value specified for the internal
security tagname will be linked to the function.

Wonderware Training
Section 2 – Security Models and Functionality 6-9

System Tags in InTouch Related to Security


The following system tags are available to deal with security.

Tagname Type Valid Values Access


$AccessLevel System Integer 0-9999 Read Only
$ChangePassword System Discrete 1 or 0 Read Write
$ConfigureUsers System Discrete 1 or 0 Read Write
$InactivityTimeout System Discrete 1 or 0 Read Write
$InactivityWarning System Discrete 1 or 0 Read Write
$Operator System Message 16-characters max Read Only
$OperatorName System Message 131-characters max Read Only
$OperatorDomain System Message 16-characters max Read Only
$OperatorDomainEntered System Message 16-characters max Write Only
$OperatorEntered System Message 16-characters max Write Only
$PasswordEntered System Message 16-characters max Write Only
$VerifiedUserName System Message 16-characters max Read Only

Creating Authority Check Functionality with OS or ArchestrA Security


In regulated industries, there are instances where a change in a value must be authorized by a
person other than the operator that is logged in. This function allows you to implement a "Done by/
Checked by" logic in the application. The InvisibleVerifyCredentials() function combined with the
$VerifiedUserName can be used to verify the credentials of a user other than the currently logged
on user. $VerifiedUserName contains the verified user's full name if the call to
InvisibleVerifyCredentials() is successful; the return of InvisibleVerifyCredentials() is the
access level set for the user that was verified. If the call fails then $VerifiedUserName tag will be
set to null and the return value is -1.

InTouch 10.0 – Advanced Application Development Course


6-10 Module 6 – Security

Configuring Inactivity to Automatically Log Off


You can configure your application to automatically log off the operator when there has been no
activity for a specified period of time by using the warning and time out settings.
On the Special menu, point to Configure and then click WindowViewer or in the Application
Explorer under Configure, double-click WindowViewer. The WindowViewer Properties dialog box
appears with the General properties sheet active. In the Application Explorer, you can also right-
click WindowViewer and then click Open.

In the Warning box, type the number of seconds that can elapse with no operator activity (mouse
clicks or keystrokes) before the system discrete tagname $InactivityWarning is set to 1 (True).
When the Inactivity Warning is set to zero, there will not be an inactivity warning.

Tip: You can use $InactivityWarning in a Condition QuickScript to show a window warning the
operator that he/she is about to be logged off the system. If the operator clicks the mouse, presses
a key, or performs an action using any other pointing device before the specified time-out elapses,
they are not logged off. $InactivityWarning and the timer are reset.

Wonderware Training
Section 2 – Security Models and Functionality 6-11

In the Timeout box, 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.

Tip: You can use $InactivityTimeout in a Condition QuickScript to show a window telling the
operator that he/she has 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.
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.

InTouch 10.0 – Advanced Application Development Course


6-12 Module 6 – Security

Script Functions in InTouch Related to All Security Models

InvisibleVerifyCredentials()
Checks to verify the credentials of the given user without logging the user on to InTouch.
Syntax
AnalogTag=InvisibleVerifyCredentials
( "UserId","Password", "Domain" );
Remarks
If the supplied combination of user, password and domain are valid then the corresponding access
level associated with the user is returned as an integer, in all other cases -1 is returned. This call
does not change the currently logged on user.
Set the Domain argument to blank (“”) or InTouch if the Authentication Mode is InTouch and to
Galaxy if the Authentication Mode is ArchestrA.

PostLogonDialog()
Brings up the InTouch Logon Dialog and returns TRUE.
Syntax
DiscreteTag=PostLogonDialog();
Remarks
Brings up the InTouch Logon Dialog and returns TRUE.

AttemptInvisibleLogon()
Attempts to logon to InTouch using the supplied credentials.
Syntax
DiscreteTag=AttemptInvisibleLogon
( "UserId","Password", "Domain" );
Remarks
An attempt is made to logon to InTouch using the supplied credentials. The domain is ignored if
the security mode is not OS. If the logon attempt succeeds, then TRUE is returned and the
system tags $OperatorDomain, $OperatorName, $AccessLevel and $Operator are updated
accordingly. If the Logon attempt fails, then FALSE is returned and the currently logged on user ( if
any ) continues to be the current user.

Logoff()
Logs the user off of InTouch.
Syntax
DiscreteTag=LogonOff();
Remarks
Logs the user off.

Wonderware Training
Section 2 – Security Models and Functionality 6-13

Script Functions Specific to Operating System Security

AddPermission()
Sets the Access Level to a particular group or user in the specified domain.
Syntax
DiscreteTag=AddPermission
( "Domain", "Group", AccessLevel);
Remarks
Valid for OS security mode only. An attempt is made to reach the account Account located on
domain Domain. If successful, a TRUE is returned and the access level AccessLevel is assigned
to the account in the internal records in InTouch for use during authorization when a user logs on.
In all other cases, a FALSE is returned.
The "Group" parameter can be any valid group or user defined in the specified "Domain"
parameter. It is also important to note that the access level set for each group does not have
anything to do with the rights for each group. For example, nothing prevents you from giving the
Guests group an access level of 9999 or the Administrators group an access level of 100.

GetAccountStatus()
Used to determine when a user’s password will expire.

Syntax
GetAccountStatus( Domain, UserID );
Remarks
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 pop up a window displaying either the number of days until the user’s passcode
expires, or the proper message/warning which corresponds to the return value of the function.

LogonCurrentUser()
Whoever is logged onto the computer will be logged in to InTouch.

Syntax
LogonCurrentUser();
Remarks
This script function is designed for InTouch to run in security OS mode. When the script function is called,
whoever is logged onto the computer will be logged in to InTouch.

InTouch 10.0 – Advanced Application Development Course


6-14 Module 6 – Security

QueryGroupMembership()
Syntax
DiscreteTag=QueryGroupMembership("Domain","Group");
Remarks
Valid for OS security mode only and applies to the currently logged on user. If a user is currently
logged on and if he is part of the group which is located on the domain then a TRUE is returned
and in all other cases a FALSE is returned.

Script Functions Specific to ArchestrA Security

IsAssignedRole()
Used to find out if current logged on user has the indicated role.
Syntax
DiscreteTag=IsAssignedRole( "RoleName" );
Remarks
Valid for ArchestrA security mode only and applies to the currently logged on user. If a user is
currently logged on and if he has the role RoleName assigned to him in Galaxy IDE, then a TRUE
is returned. In all other cases a FALSE is returned.

Wonderware Training
Section 2 – Security Models and Functionality 6-15

InTouch Application Security


The purpose of this section is to introduce the concept and functionality of secondary security
verification with the script function InvisibleVerifyCredentials.
Certain functions inside individual applications may require a level of security beyond just checking
the access level of the currently logged in user. These functions may require a secondary
approval from a user with an access level of 9000 or higher. To do this, you will need to implement
the functionality from InvisibleVerifyCredentials to validate the access level of another user,
without that user logging into InTouch.

Note: You must shut down and restart WindowViewer for changes in Security Type to take effect.

To select security mode and create user names


a. Launch WindowMaker.
b. Select Special / Security / Select Security Type from the menu bar.
Select InTouch.
This may require that WindowViewer be shut down.
You do NOT need to restart at this time.

c. Log On to InTouch as administrator with the password of wonderware.

d. Select Special / Security / Configure Users from the menu bar.


Add three users to the system:

User Name Access Level Password


Plant Manager 9000 ww
Line Supervisor 8000 ww
Operator 7000 ww

Note: The passwords here are for demonstration purposes only. Using the same password
for all users is NOT recommended in an actual deployment situation.

InTouch 10.0 – Advanced Application Development Course


6-16 Module 6 – Security

Each User Name requires you to create a Password and enter the Access Level.

Wonderware Training
Section 2 – Security Models and Functionality 6-17

Configure Scripts to Log On & Off


You will need to add the ability for the user to log on and log off using InTouch security.
This will be done by using the script functions PostLogonDialog and LogOff.
a. Open the window called Security – InTouch.

b. Add the following Action Script to the button labeled Log On.

c. Add the following Action Script to the button labeled Log Off.

InTouch 10.0 – Advanced Application Development Course


6-18 Module 6 – Security

d. Add a Value Display - String animation link to the $Operator system tag.
Double-click the text XXXXXX to start this process.

e. Add a Value Display - Analog animation link to the $AccessLevel tag.


Double-click the text ####### to start this process.

f. Switch to Runtime and test to make sure you can Log On and Log Off from security using
each of the User Names you created in this lab.

Note: Using this example, there are three colored rounded rectangles that will be visible
under different $AccessLevel values:
• Red is when the AccessLevel is greater than or equal to 9000.
• Yellow is when $AccessLevel is less than 9000 and greater than 7000.
• Green is when $AccessLevel less than or equal to 7000 and greater than 0.
This will not work if the tags have not been converted to local.

Wonderware Training
Section 2 – Security Models and Functionality 6-19

Credential Verification
In this example, you will need to add Verification functions into InTouch security. At the bottom of
the Security – InTouch window is a button labeled Continue. This button will be disabled until
the proper verification user information has been entered.
For the Continue button to be enabled, the verification user must have an $AccessLevel greater
than 9000 and cannot be the same user that is currently logged in. This verification will be done
with the script function InvisibleVerifyCredentials.
The InvisibleVerifyCredentials function requires an argument such as a User Name and
Password. It will return an integer value for the access level of the verified user. You will need to
create the tags listed below for the verification process.
a. Create the following Tags to hold the user verification information.

Tagname Tag Type


VerifiedUser Memory Message
VerifiedPassword Memory Message
ResultMessage Memory Message
Verified Memory Discrete

Tagname Tag Type Min Max Initial Value


VerifiedAccessLevel Memory Integer 0 9999 0

b. Enter the following On Show script for the window so that all verified user information is reset
when the window opens.

c. Create animation links on the objects specified in the lower (Verification) part of the
Security – InTouch window:

InTouch 10.0 – Advanced Application Development Course


6-20 Module 6 – Security

d. Add a TouchLink / User Input / String to the tag VerifiedUser by double-clicking the text
XXXXXX next to Verification User.

e. Add a TouchLink / User Input / String to the tag VerifiedPassword on the rectangle next to
Verification Password.

f. Add a Value Display / String animation link to the ResultMessage tag on the text labeled
ResultMessage.

g. Add a Value Display / Analog animation link to the tag VerifiedAccessLevel on the text
labeled Verified Access Level = ######.

Wonderware Training
Section 2 – Security Models and Functionality 6-21

h. Add the following TouchLink / Touch Pushbutton / Action script to the button labeled
Verify User.

i. Add the following Misc / Disable animation link to the button labeled Continue.

j. Go to Runtime and try it out by entering user information from the users you have created.
You may need to log off and log back on as a different user for this to work.

Note: Remember to press Enter after typing your User and Password information.

InTouch 10.0 – Advanced Application Development Course


6-22 Module 6 – Security

This is the result you will see when the log on level is too low.

This is the result you will see when the log on is successful.

Wonderware Training
Lab 15 – Implementing Security 6-23

Lab 15 – Implementing Security


Introduction
The purpose of this lab is to become familiar with the features and capabilities of the Operating
System (OS) Based security functions in InTouch.
OS-based security allows the InTouch application to use OS-based User Names and User
Accounts to drive InTouch security. In this lab, you will link to Domain users and User groups,
assign InTouch Access Levels based on group membership, verify group membership, and allow
secondary account verification. You will also create local Users and Groups, and assign
AccessLevels based on local group membership.
Please note that all predefined User Names and screen captures are based on those used in the
Wonderware training rooms. Classes in other locations may use different names and network IDs.

Domain Users/Groups
The following network users have already been created in the Wonderware training rooms:

Name Password Full Name Group Membership Domain


VincentV ww Vincent Van Vleck InTouch Operators Training
LisaL ww Lisa Longview InTouch Operators Training
LennyL ww Lenny Langford InTouch Developers Training
NickK ww Nick Knight InTouch Admins Training
PattyP ww Patty Padroski No Membership Training

Objectives
Upon completion of this lab, you will be able to:
z Configure Operating System Based Security for InTouch
z Test Operating System Based Security

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

This lab contains several intricate parts that cannot easily be summarized.
Please refer to the Detailed Lab Instructions on the next page.

InTouch 10.0 – Advanced Application Development Course


6-24 Module 6 – Security

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Part 1 - Domain Users

Select Security Type & Assign Initial Access Levels


1. If it is not already running, launch InTouch.
2. Shut down WindowViewer if it is running.
From the InTouch menu bar, select Special / Security / Select Security Type .
Select OS Security.

Note: For this lab you need to use either network domain users and groups OR local users
and groups.

If you have the network domain and users identified, go directly to step 3.

If you are only configuring local users and groups, skip to page 6-29 step 15 now.

3. Create an Application / On Startup script to assign AccessLevels as shown:

Wonderware Training
Lab 15 – Implementing Security 6-25

Configure Log On & Log Off Access


4. Close any open windows and open the window named Security – OS in the application
provided by your instructor.

5. Double-click the Log On button.


Create the following Action Script:

6. Double-click the Log Off button.


Create the following Action Script:

7. Double-click the text XXXXXX next to $Operator.


Create a Value Display / String animation link to the tag $Operator.

InTouch 10.0 – Advanced Application Development Course


6-26 Module 6 – Security

8. Double-click the text XXXXXX next to $OperatorName.


Create a Value Display/String animation link to the tag $OperatorName.

9. Double-click the text ####### next to $AccessLevel.


Create a Value Display/Analog animation link to the tag $AccessLevel.

10. Switch to Runtime and log on as each user specified earlier.


Test the Log On capabilities under each User Name.

Wonderware Training
Lab 15 – Implementing Security 6-27

Verify Group Membership


At times, it may be necessary to verify group membership for security purposes.
11. Create a Memory Message tag named GroupMembership.
12. Enter the following Data Change Script for the tag $Operator to verify Group membership:

13. Double-click the text XXXXXX below Current logged in user is a member of.
Create or verify that there is a Value Display/String animation link to the tag
GroupMembership.

InTouch 10.0 – Advanced Application Development Course


6-28 Module 6 – Security

14. Log On as each user specified earlier.


Test the Log On capabilities under each User Name.

Wonderware Training
Lab 15 – Implementing Security 6-29

Part 2 - Local Users

Create Local Users


OS based security in InTouch can either use Domain Users and Groups, or it can use Local
system based Users and Groups.

Note: For this lab you need to use either network domain users and groups OR local users and
groups.

If you have already implemented scripting for domain users and groups OR if you cannot configure
local users and groups, skip to page 6-36 step 33 now.

Note: This section of the lab requires that the users are logged in on their computer as a local
administrator.

15. From the Windows Start menu, point to Start / All Programs / Administrative Tools
and select Computer Management.
Expand System Tools.
Expand Local Users and Groups.
Select Users.

Note: This will have a slightly different look on Windows 2000 vs. Windows XP or 2003.

16. Right-click Users and select New User to add a new local user.

InTouch 10.0 – Advanced Application Development Course


6-30 Module 6 – Security

17. The New User dialog box opens.


Enter the information for the New User.
You will be required to enter a User Name, a Full Name, Description and Password.
Click Create.
18. Create at least three or more users by repeating steps 16 and 17 above.
Be sure to uncheck User must change password at next logon.

Your resulting Computer Management dialog should look something like this:

Wonderware Training
Lab 15 – Implementing Security 6-31

Create New Local Groups & Assign Users


19. Select Groups from the same Computer Management dialog box.
Right click Group.
Select New Group.

20. Create a new group called InTouch Admins as shown below:

InTouch 10.0 – Advanced Application Development Course


6-32 Module 6 – Security

Your list should look something like this.

21. Right-click the InTouch Admins Group.


Click Add to Group and add one of the users you created earlier.

The Select Users, Computer, or Group dialog box appears.


22. Click the Locations button.

Wonderware Training
Lab 15 – Implementing Security 6-33

23. Select your local computer Node Name and click OK.

24. Type in one of the User Names you created earlier.


For example: MargeC.
25. Click Check Names.
The user you selected will now be displayed in your list.
26. Click OK.

InTouch 10.0 – Advanced Application Development Course


6-34 Module 6 – Security

The user you selected will now be shown as a member.

Note: If you have created other users, they will also be visible.

27. Create two additional groups called InTouch Operators and InTouch Developers by
repeating steps 19-26 above.
Assign the users you have created as you see fit.
28. Click OK when finished.
29. Exit Computer Management when finished.

Wonderware Training
Lab 15 – Implementing Security 6-35

Updating Application
Since the security will now be based on the local Operating System security, in addition to Domain
security, the rights will have to be assigned to reflect this change.
30. Create or Modify the Application On Startup script shown in step 3 by adding the following
three lines:

Assigned = AddPermission( “<Your Node Name>”, “InTouch Admins”, 9000);


Assigned = AddPermission( “<Your Node Name>”, “InTouch Developers”, 8000);
Assigned = AddPermission( “<Your Node Name>”, “InTouch Operators”, 5000);
31. Create or Modify the Data Change script shown in step 12 for the tag $Operator in the same
way, adding the following and changing “<Your Node Name>” as appropriate:

DIM Member AS DISCRETE;


GroupMember = “No Group Membership”;

Member = QueryGroupMembership( “<Your Node Name>”, “InTouch Admins”);


IF Member == 1 THEN
GroupMembership = “local InTouch Admins”;
ENDIF;

Member = QueryGroupMembership( “<Your Node Name>”, “InTouch Developers”);


IF Member == 1 THEN
GroupMembership = “local InTouch Developers”;
ENDIF;

Member = QueryGroupMembership( “<Your Node Name>”, “InTouch Operators”);


IF Member == 1 THEN
GroupMembership = “local InTouch Operators”;
ENDIF;

32. Shut down and restart WindowViewer.


Test out the new security using the Security - OS window.

When you log in to verify the user, the domain argument will either be your computer’s node
name for a local user or the network domain for a network user.

Remember to use the User Names that are part of the appropriate Domain.

InTouch 10.0 – Advanced Application Development Course


6-36 Module 6 – Security

Part 3 - Secondary User Validation


It is often useful to verify a user without having to log that user on.
33. Create or verify the existence of the following Memory tags:

Tagname Tag Type


VerifiedUser Memory Message
VerifiedPassword Memory Message
VerifiedDomain Memory Message
Verified Memory Discrete
ResultMessage Memory Message

Tagname Tag Type Min Max Initial Value


VerifiedAccessLevel Memory Integer 0 9999 0

34. Create the following Window/On Show Script for the window Security – OS so that all
verified information is reset when the window is opened.

35. Double-click the text XXXXXX next to Verification User.


Create or verify that it has the following Touch Link/User Inputs/String animation link:

Wonderware Training
Lab 15 – Implementing Security 6-37

36. Double-click the text XXXXXX next to Verification Domain.


Create or verify that it has the following Touch Link/User Input/String animation link.

37. Double-click the rectangle next to Verification Password.


Create or verify that it has the following Touch Link/User Input/String animation link:

InTouch 10.0 – Advanced Application Development Course


6-38 Module 6 – Security

38. Double-click the button labeled Verify User.


Create or verify that it has the following TouchLink/Touch Pushbutton/Action script:

39. Double-click the text ResultMessage underneath the Verify User button.
Create or verify that it has a Value Display / String link to the tag ResultMessage.

40. Double-click the text XXXXXX next to Verified User Name.


Add a Value Display / String link to the tag $VerifiedUserName.

Wonderware Training
Lab 15 – Implementing Security 6-39

41. Double-click the text ###### next to Verified Access Level.


Create or verify that it has a Value Display / Analog link for the tag VerifiedAccessLevel.

42. Double-click the Continue button.


Create or verify that it has a Touch Pushbutton Action Script link as follows:

43. Verify that the same pushbutton has a Miscellaneous / Visibility link to the tag Verified.

InTouch 10.0 – Advanced Application Development Course


6-40 Module 6 – Security

44. Log on as each user specified earlier.


Test the Verification capabilities under various User Names.

Note: Press Enter after typing in each field.

Your finished screen will show details about both the Operator and the Verification User like
the example below.

Wonderware Training
Module 7

ActiveX® and .NET Controls


Section 1 – ActiveX Controls 7-3
Lab 16 – Using ActiveX with InTouch 7-21
Section 2 – Using .NET Client Controls 7-27
Lab 17 – Using Client Controls 7-41
7-2 Module 7 – ActiveX® and .NET Controls

Module Objective
z Use ActiveX Controls in InTouch applications.

Wonderware Training
Section 1 – ActiveX Controls 7-3

Section 1 – ActiveX Controls

Introduction
ActiveX controls, originally known as OLE controls or OCXs, are standalone software components
that perform specific functions in a standard way. ActiveX controls define standard interfaces for
reusable components. ActiveX controls are not separate applications. Instead, they are servers
that are placed into a control container. To use ActiveX controls, they must be placed in an
ActiveX container. InTouch is an ActiveX container. Microsoft VisualBasic and internet browsers
are also ActiveX containers.
ActiveX controls behave exactly like InTouch Wizards, except they bring compelling new
functionality to InTouch applications. ActiveX controls can be created using Visual Basic, Visual C,
Delphi or other 3rd party development tools. ActiveX controls can also be bought from third-
parties for specific functionality. These controls are packaged in the OCX form. Wonderware's
FactorySuite InTrack component also provides several ActiveX controls. Additionally,
ActiveFactory’s iTrend allows you to run the ActiveFactory Trend program (or a functional subset)
from within InTouch. ActiveEvent allows you to notify the IndustrialSQL Event sub-system when
an event has occurred in another application.
There are three main components of ActiveX controls: properties, methods and events.
z Properties are very similar to variables that can be modified, e.g., Calendar.day,
Control.height, etc.
z Methods are similar to script functions that can be called from the container. For
example, Browser.Navigate("http://www.wonderware.com"), Engine.start().
z Events occur through the ActiveX container. For example, Control.click (shift),
FileViewer.DoubleClick (name), etc.
InTouch allows access to ActiveX control properties, methods and events. These properties can
be associated with InTouch tagnames or can be accessed through InTouch QuickScripting.

Note: In order for an ActiveX Event script to function properly, the ActiveX control for which the
script was created must be loaded into memory. If the window containing an ActiveX control is
closed, its ActiveX Event scripts or any other InTouch QuickScripts containing script functions
associated with that ActiveX control, will not execute properly.

One or more ActiveX controls can be used in your InTouch application. InTouch allows you to
easily select and paste an ActiveX control into any application window and add them to the
Wizards/ActiveX Toolbar. ActiveX Event scripts can also be imported from one application to
another.

InTouch 10.0 – Advanced Application Development Course


7-4 Module 7 – ActiveX® and .NET Controls

Using ActiveX Controls in InTouch


a. Install the ActiveX control(s) that you want to use.
b. Select and paste the ActiveX control into a WindowMaker window.
c. Configure the ActiveX control's properties and assign them to tagnames.
d. Associate ActiveX events to ActiveX Event scripts.
e. Call ActiveX methods and set ActiveX control properties in ActiveX Event scripts or other
InTouch QuickScripts.
The following WindowMaker edits can be made to an ActiveX control:
z An ActiveX control's size can be changed if sizing is supported by the control.
z ActiveX controls can be duplicated, cut, copied, pasted and deleted.
z All aligning commands (left, right, top, bottom, centerpoint) can be applied to an ActiveX
control.
z ActiveX controls can be added to the Wizards/ActiveX Toolbar.
z ActiveX controls can be included with other objects when creating a cell.
z The WindowMaker menu commands and their equivalent toolbar tools can be used to
directly modify many ActiveX properties. For example, Reduce Font, Line Color, Fill Color,
etc.
InTouch does not support the following types of ActiveX controls:
z Windowless Controls
z Simple Frame Site (Group Box)
z Containers
z Data Controls
z Dispatch Objects
z Arrays, Blobs, Objects, Variant Types

Wonderware Training
Section 1 – ActiveX Controls 7-5

Naming ActiveX Controls


a. Paste the ActiveX control into your WindowMaker window.
b. Double-click the control. The Properties dialog box appears.
Each ActiveX control's Properties dialog box is unique to the control. The number of tabs
displayed is based on the properties of that particular control. Some ActiveX controls may
require more property configurations than others. In some cases, you may need to configure
Colors and Fonts. Others may not require this configuration. However, for all ActiveX
controls, InTouch adds three tabs: Control Name, Properties and Events.

c. Click the Control Name tab and enter a unique name for the ActiveX control in the
ControlName field.

Note: You must define a unique name for each ActiveX control used in your InTouch
application. The Control Name is used in script functions to identify the control. For example:
#Calendar2.day = Tag1;
#Calendar2.year = 2006;
If you use the default Control Name, e.g., Calendar2 and you subsequently duplicate the
ActiveX control, InTouch will automatically increment the Control Name. In this case, the
duplicate ActiveX control's name would be Calendar3.

InTouch 10.0 – Advanced Application Development Course


7-6 Module 7 – ActiveX® and .NET Controls

Installing/Removing ActiveX Controls


a. In Application Explorer under Configure, double-click on Wizard/ActiveX Installation. The
Wizard/ActiveX Installation dialog box appears.
b. Click the ActiveX Control Installation tab:

c. In the Installed ActiveX controls list, select the control(s) to remove from your application
and then click Remove. A message appears asking you to confirm the deletion.

Note: To select a group of controls, click your first selection, hold down the SHIFT key and
select your last selection. All controls in between will be selected as well. To select multiple
controls that are not consecutively listed, click the first control and then hold down the CTRL
key as you click another.

d. Click Yes to remove the control(s).


The removed control(s) is moved to the Available ActiveX controls list.

Note: When you remove a control, it is not deleted. However, it is no longer loaded into
memory. Therefore, it will not function properly.

e. To install ActiveX controls, select them in the Available ActiveX controls list and then click
Install.

Note: The Install button is active only when controls are selected in Available ActiveX
controls list.

f. Click Close.

Wonderware Training
Section 1 – ActiveX Controls 7-7

Placing ActiveX Controls in a Window

a. Click the Wizard Dialog tool in the Wizards/ActiveX toolbar.


The Wizard Selection dialog box appears:
b. In the list of wizards, click the ActiveX Controls category.
All available ActiveX controls will be displayed.
c. Select the ActiveX control that you want to use and then click OK or double-click the control.
The dialog box closes and your window reappears.

Note: To add the ActiveX control to the Wizards/ActiveX Toolbar, click Add to toolbar.
When a control is added to the Wizards/ActiveX Toolbar, it can be selected and pasted into
your open window at any time. The number of ActiveX controls that can be added to the
toolbar is limited to system resources.

d. The cursor will change to the corner symbol , when you return to the window.
Click the location in the window to paste the ActiveX control.
e. Double-click the control to configure its properties.

InTouch 10.0 – Advanced Application Development Course


7-8 Module 7 – ActiveX® and .NET Controls

Removing ActiveX Controls from the Toolbar

a. Click the Wizard Dialog tool in the Wizards/ActiveX Toolbar.


The Wizard Selection dialog box appears.
b. Click Remove from toolbar.
The Remove Wizard from Toolbar dialog box appears:
c. Select the ActiveX control(s) to remove from the toolbar.
d. Click OK.

Wonderware Training
Section 1 – ActiveX Controls 7-9

Configuring ActiveX Control Properties


The properties that can be configured for a particular ActiveX control are determined by the
ActiveX control designer. Each ActiveX control's Properties property sheet displays three
columns: Property, Range and Associated Tag. The Property and Range columns are read-
only. The Associated Tag column is used to associate InTouch tagnames with the respective
property in the Property column.

Note: When certain items in the Range column are clicked, an arrow appears. This arrow can be
clicked to view the list of possible values for the item. The items in the list are for viewing purposes
only and cannot be changed.

a. Click the Properties tab in the ActiveX control's Properties dialog box:

b. Click in the middle of each cell in the Associated Tag column and enter a tagname for the
respective property.
If a tagname is entered that has not been defined in the Tagname Dictionary, you will be
prompted to define it now.

If you double-click a blank cell, or click the button, the Tag Browser will appear displaying
the tagnames for the selected tag source. Double-click the desired tagname or select it and
click OK. The tagname is automatically inserted into the cell.
c. There are actually two fields in each cell in the Associated Tag column. The association
direction selection and the tagname entry. The ActiveX control determines the association
direction and the property type determines the tagname type that must be used.
When the tagname is specified, double-click in the cell to the left of the tagname. Select the
association direction for the tagname to its respective property. Continuously double-clicking
will cycle you through the various association direction choices.
You can select one directional or bi-directional association. However, if the association
direction you select is not valid for the property or tagname, the control will automatically
change it accordingly. For example, if you select when the tagname's value changes, its
associated property is changed accordingly. A certain subset of the symbols below will appear
based on the potential relationship between the property and the tagname.

InTouch 10.0 – Advanced Application Development Course


7-10 Module 7 – ActiveX® and .NET Controls

For example, if you associate a property to a writeable tagname, you will see a different set of
associations than if you associate the same property to a read-only tagname. Select the
appropriate association symbol as follows:

The tagname sets the value of the associated property.

The property sets the value of the associated tagname.

The value can be set from either the tagname or the property.
(Tagname takes precedence.)

d. Click OK.

Note: Properties can be accessed or changed through ActiveX Event scripts and/or other
InTouch QuickScripts. All ActiveX script functions are qualified by the # (pound) sign. The
valid syntax to access ActiveX properties is:

#ControlName.PropertyName
Examples:
#Calendar2.Day = 29;
Tag1 = #Calendar2.year;

Wonderware Training
Section 1 – ActiveX Controls 7-11

Using ActiveX Control Methods


ActiveX control methods are similar to ActiveX control properties. Methods are activated in runtime
(WindowViewer). ActiveX control methods are accessed through ActiveX Event scripts and/or
other InTouch QuickScripts.

Note: In order for an ActiveX Event script to function properly the ActiveX control for which the
script was created must be loaded into memory. If the window containing an ActiveX control is
closed, its ActiveX Event scripts, or any other InTouch QuickScripts containing script functions
associated with that ActiveX control, will not execute properly.

a. In the ActiveX control's Properties dialog box, click the Events tab:

b. Double-click a blank cell in the Script column. The ActiveX Event Scripts editor appears:

InTouch 10.0 – Advanced Application Development Course


7-12 Module 7 – ActiveX® and .NET Controls

c. Click on the Insert/ActiveX menu item OR the OCX button.

The ActiveX Control Browser appears:

d. In the Control Name list, select the ActiveX control whose methods or properties you want to
access.
The names of all ActiveX controls currently being used in your application will be listed.

Note: If you select This Control instead of the actual Control Name, the methods and
properties displayed will be those for the ActiveX control currently selected in your application.
By selecting This Control instead of the actual Control Name, you can create generic
ActiveX Event script functions. You can then copy and paste these functions into any other
ActiveX Event script or any other InTouch QuickScript without having to change the Control
Name in the new script. For example:
#ThisControl.Value (“11/10/2005”);
#ThisControl.Value(Date); { where Date is a Memory Message tag }
This Control is accessible only through ActiveX Event scripts. It is not accessible through any
other type of InTouch QuickScript.

e. In the Method / Property list, select the method or property that you want to use in your script.
Properties are the items in the list that include parentheses. For example, Display().
f. Click Done.
The selected control name and method or property are automatically inserted into your script.
ActiveX control's methods and properties are also accessed through the Insert menu in all
other InTouch QuickScripts types.

Wonderware Training
Section 1 – ActiveX Controls 7-13

Using ActiveX Control Event Parameters


ActiveX control events can be executed in runtime (WindowViewer) by designing a particular
action and associating it to the event. For example, if your ActiveX control has an error event
handler, you could create an ActiveX Event script that displays a window with an error message
when an error occurs. ActiveX Event scripts are provided to support event actions. You can
associate a named event script to each event.

Note: In order for an ActiveX Event script to function properly the ActiveX control for which the
script was created must be loaded into memory. If the window containing an ActiveX control is
closed, its ActiveX Event scripts (or any other InTouch QuickScripts containing script functions
associated with that ActiveX control) will not execute properly.

a. Double-click the ActiveX control for which you want to create an ActiveX Event script.
The selected ActiveX control's Properties dialog box will appear.
b. Click the Events tab:

c. In the Event column, select the event to which you want to associate an ActiveX Event Script.
d. In the respective cell in the Script column, enter a unique name for the ActiveX Event Script
that you want to create and then double-click the name or click OK. The following message
appears:

e. Click OK.
The ActiveX Event script editor appears displaying the name you entered in the Name field.
If you double-click a blank Script cell when the ActiveX Event script editor appears, you must
then enter a name for the ActiveX Event script.

InTouch 10.0 – Advanced Application Development Course


7-14 Module 7 – ActiveX® and .NET Controls

If the ActiveX Event script that you want to use already exists, click the button. The
Choose ActiveX Script dialog box appears listing all existing ActiveX Event scripts in your
application.

f. Click on Insert/ActiveX.
The ActiveX Control Browser appears:

Wonderware Training
Section 1 – ActiveX Controls 7-15

g. In the Control Name list, select This Event to access the parameters for the selected event.
In this case, the selected event is Error.

Note: This Event is accessible only through ActiveX Event scripts. It is not accessible
through any other type of InTouch QuickScript. You must select This Event to access the
event parameters for an ActiveX control.
Events may or may not pass parameters in runtime. Event parameters can be accessed by
using the ThisEvent keyword. For example:
MyActiveXErrorNumber = #ThisEvent.ErrorNumber;
Where: # indicates that this is an ActiveX script function, ThisEvent relates to the event
selected in the ActiveX control's Event property sheet, and ErrorNumber is the parameter
passed by the selected event.

h. In the Method/Property list, select the event to use in your ActiveX Event script.
i. Click Done.
The selected control name, e.g., This Event, and selected event parameter are both
automatically inserted into your script at the cursor location. For example:

j. Click OK to save your ActiveX Event script and close the script editor.
The ActiveX control's Properties dialog box reappears.
k. Click OK to close the Properties dialog box or continue to create ActiveX Events scripts.

InTouch 10.0 – Advanced Application Development Course


7-16 Module 7 – ActiveX® and .NET Controls

ActiveX Event Scripts


Most ActiveX controls have events associated with them. For example, click, double-click, mouse
down and key press are typical events used in many ActiveX controls. InTouch ActiveX Event
scripts are provided to support event actions. One ActiveX Event script can be associated with
each event. ActiveX control events are executed in runtime (WindowViewer).

Accessing the ActiveX Event Script Editor


a. Click the Events tab in the ActiveX control's Properties dialog box to activate the Events
property sheet:

b. Double-click a blank cell in the Script column or enter a name for the ActiveX Event script and
click OK.

Wonderware Training
Section 1 – ActiveX Controls 7-17

c. If an ActiveX Event script for the name you enter does not currently exist, a message will
appear asking you if you want to create it now. Click OK.
The ActiveX Event Scripts editor appears:

d. In the Name field, enter the name to identify the ActiveX Event script.
e. ActiveX control methods are similar to ActiveX control properties.
To access the ActiveX control methods, click on the Insert/ActiveX command.
The ActiveX Control Browser appears:

InTouch 10.0 – Advanced Application Development Course


7-18 Module 7 – ActiveX® and .NET Controls

The ActiveX Control Browser will display the names of all ActiveX controls being used in
your application. When you select a control's name, its respective methods will be displayed.
Select the method to insert into your script and then click Done.

Reusing ActiveX Event Scripts


ActiveX Event scripts can only be reused for the same event for the same kind of ActiveX control.
For example, the mouse down event may be a stock event on hundreds of ActiveX controls.
However, an ActiveX Event script written for mouse down on ActiveX ControlA cannot be reused
for mouse down on ActiveX ControlB unless the two controls are the same type.
a. Double-click the ActiveX control for which you want to reuse an existing ActiveX Event script.
The selected ActiveX control's Properties dialog box will appear.
b. Click the Events tab:

c. In the Script column for the respective event, click the button.
The Choose ActiveX Script dialog box appears:

Wonderware Training
Section 1 – ActiveX Controls 7-19

Note: This dialog box will only display the ActiveX Event scripts that were written for the same
type of ActiveX control and the same selected event.
For example, let's assume that you are creating an ActiveX Event script for a second ActiveX
Calendar control's "Click" event. You have already created two other ActiveX Event scripts
named Click1 and Click2 in your application. Click1 was created for a different ActiveX
Calendar control's "Click" event and Click2 was created for an ActiveX InSQLTrend control's

"Click" event. When you click the button and the Choose ActiveX Script dialog box
appears, it will only display the Click1 script since it was created for the same type of ActiveX
control and the same event.

d. Select the ActiveX Event script that you want to use and click OK.
The name of the selected script is automatically inserted into the Script cell where you

previously clicked the button. See an example below:


e. Click OK to close the Properties dialog box or continue to create ActiveX Events scripts.

Importing ActiveX Event Scripts


Importing ActiveX Event scripts from another InTouch application to your current application can
save considerable amounts of development time. When you move ActiveX Event scripts from one
InTouch application to another, you must use the File/Import command.

Note: When you import ActiveX Event scripts from one application to another, all ActiveX Events
scripts are imported. Additionally, in order for an imported ActiveX Event script to function properly
in the new application, the same ActiveX control and the same event for which the script was
originally created must also be used in the new application. And it must be loaded into memory. If
the window containing an ActiveX control is closed, its ActiveX Event scripts or any other InTouch
QuickScripts containing script functions associated with that ActiveX control will not execute
properly.

InTouch 10.0 – Advanced Application Development Course


7-20 Module 7 – ActiveX® and .NET Controls

Wonderware Training
Lab 16 – Using ActiveX with InTouch 7-21

Lab 16 – Using ActiveX with InTouch


Introduction
In this lab, you will install and configure an ActiveX Web Browser. This lab uses Internet Explorer
6.0 or later and the Advanced Class App InTouch application.

Objectives
Upon completion of this lab, you will be able to:
z Create a new InTouch window and install a specified ActiveX Control
z Configure a Data Change Script

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

a. Create a new window named OCX.


b. Install the Microsoft Web Browser ActiveX Control.
c. Locate the Explorer ActiveX Control and paste it in the window.
Resize it as needed to make a useful display.
d. Type a # sign on the window.
e. Animate it to be a User Input String linked to the tag URL.
Define URL as a Memory Message tag with an Initial Value of Enter URL.
f. Write a Data Change script that executes when URL changes.
The script should call the explorer’s Navigate method: #Explorer1.Navigate(URL);
g. Switch to Runtime and enter a valid URL for the browser (e.g., www.msn.com).
Verify that the browser works.

See the next page for Detailed Lab Instructions

InTouch 10.0 – Advanced Application Development Course


7-22 Module 7 – ActiveX® and .NET Controls

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Install and Configure the ActiveX Microsoft Web Browser


1. Create a new window named OCX.
2. In the Classic View, locate the Tools pane.
Expand the Configure tree view.
Open the Wizard/ActiveX Installation command:

3. On the ActiveX Control Installation tab, locate Microsoft Web Browser from the
Available ActiveX controls list box in the lower pane and click Install:

Wonderware Training
Lab 16 – Using ActiveX with InTouch 7-23

4. Once installed, close the dialog box.


Click on the Wizard tool (hat) and select the ActiveX Controls category.
Locate the Explorer object and place it in the window.
Resize it as needed to make a useful display.
This is the Web browser object supplied by Microsoft as part of Internet Explorer.
5. Double-click on the Explorer object and remember the object’s control name
(e.g., Explorer1):

6. Click Cancel to exit the dialog box.


7. We need a way to enter a URL for navigating the browser. Type a # sign on the window.
Animate it to be a User Input String linked to the tag URL.
Make sure Echo Characters is set to Yes.
Define URL as a Memory Message tag with an Initial Value of Enter URL.

Next, the browser needs to know when that tag changes and when it needs to navigate to the
new address.

InTouch 10.0 – Advanced Application Development Course


7-24 Module 7 – ActiveX® and .NET Controls

8. Write a Data Change script that executes when URL changes.


The script should call the explorer’s Navigate method.
9. While in the QuickScript editor, click on the Insert ActiveX Control button to insert the
objectname.method without typing:

When this item is selected a dialog box will appear showing all ActiveX objects being used on
the left side and all the methods and properties available for the currently selected ActiveX on
the right:
10. Select the Navigate method and click on OK.

The Navigate method supports several parameters, but not all have to be used.
Delete them all and replace them with just URL:

Wonderware Training
Lab 16 – Using ActiveX with InTouch 7-25

11. Switch to Runtime and enter a valid URL for the browser (e.g., www.msn.com).
Verify that the browser works.

Note: The reference to www.msn.com assumes connection to the internet.

InTouch 10.0 – Advanced Application Development Course


7-26 Module 7 – ActiveX® and .NET Controls

Wonderware Training
Section 2 – Using .NET Client Controls 7-27

Section 2 – Using .NET Client Controls

Section Objective
z Organize and embed .NET client controls.

This section shows you how to:


z Import and embed client controls into a symbol.
z View and edit the properties of the client control.
z Bind the properties of the client control with attributes and element references.
z Configure scripts for client control events.
z Animate client controls.
z Export a client control.
z Configure a client control with security.
z View additional client control information, such as the files the client control uses and what
objects and symbols are using the client control.

InTouch 10.0 – Advanced Application Development Course


7-28 Module 7 – ActiveX® and .NET Controls

About Client Controls


Client Controls give you functionality contained in third party .NET applications that you can use in
symbols. To use this functionality, you must:
z Import the .DLL file associated with the client control. Any client control contained in the
.DLL file is imported into the Graphic Toolbox.
z Browse and embed one or more of the client controls in a new or existing symbol. The
client controls appear as elements.
z View and edit the exposed client control properties.
z Bind the client control properties to ArchestrA attributes, symbol custom properties or
InTouch tagnames. This can be done with the Data Binding animation.
z Configure scripts for client control events. This can be done with the Events animation.
z Optionally use the symbol containing the embedded client control in an IDE-managed
InTouch application.

.NET DLL Files

IMPORT
Graphic Toolbox Automation Object Template or Instance

Properties

Client Control Methods


Events

EMBED EMBED
Symbol Symbol
Properties Properties
Methods Client Control Client Control Methods
Events Events

.AAPKG
FILE

Examples of software products that contain Client Controls:


z ActiveFactory™
z .NET Client controls developed with Microsoft Visual Studio 2005

Wonderware Training
Section 2 – Using .NET Client Controls 7-29

Importing Client Controls


You can import client controls into the Graphic Toolbox from .NET Dynamic Link Library (.DLL)
files.

Note: After importing client controls, you can organize them in the Graphic Toolbox as you would
with ArchestrA symbols. For more information, see Organizing Client Controls.

You can also import client controls that have previously been exported in an ArchestrA package
(.aaPKG) file.

Importing Client Controls


You can import one or more client controls from .DLL files. The client controls can either be
contained in one single .DLL file, or span multiple files.
To import client controls
a. In the IDE on the File menu, point to Import, and then click Client Control.
The Import Client Control(s) dialog box appears.
b. Select one or more .NET or .DLL files that contain the client controls you want to import and
click Open.
The Import Preferences dialog box appears.
c. Click OK to continue.

Note: If you select .NET or .DLL files that do not contain client controls, the import process
ignores these and continues at the next .DLL file.

InTouch 10.0 – Advanced Application Development Course


7-30 Module 7 – ActiveX® and .NET Controls

The Import Client Control(s) dialog box appears.

d. When the client controls are imported, click Close.


The imported client controls appear in the Graphic Toolbox.

Note: If the import fails, a message indicates the error in the Import Client Control(s) dialog.

Example for installing ActiveFactory client controls


If you have installed Wonderware ActiveFactory 9.1 (or higher), you can install the client controls
of aaHistClientUI.dll. You can then use these controls to create an ArchestrA symbol that contains
a trend, for example.
To install the ActiveFactory client controls
a. In the IDE on the File menu, point to Import, and then click Client Control.
The Import Client Control(s) dialog box appears.
b. Browse to the C:\Program Files\Common Files\ArchestrA folder, select the
aaHistClientUI.dll file and click Open.
c. On the Import Preferences dialog box, click OK.
d. When the import is complete, click Close.
e. Open the Graphic Toolset and expand the Galaxy node.
The following client controls are listed:
z aaDataGrid.
z aaHistClientActiveDataGrid.
z aaHistClientSingleValueEntry.
z aaPenEditor.
z aaQueryControl.
z aaServerConnectionControl.
z aaServerListConfigurator.
z aaTagPicker.
z aaTimeRangePicker.
z aaTimeZonePicker.
z aaTrend.
z aaTrendControl.
z aaTrendItemEditor.

Wonderware Training
Section 2 – Using .NET Client Controls 7-31

Importing Previously Exported Client Controls


You can import one or more previously exported client controls from an ArchestrA package file
(.aaPKG). Previously the client controls may either:
z Had been exported on their own.
z Been embedded in a symbol and the symbol was exported.
z Been embedded in a symbol and contained in an Automation object instance or template
and the Automation object was exported.
To import a previously exported ArchestrA package containing one or more client controls
z Import the exported client control(s) the same way as you would import an Automation
object (.aaPKG). For more information, see the Industrial Application Server User’s Guide.

Organizing Client Controls


You can organize the client controls within the Graphic Toolbox the same way as you would with
ArchestrA Graphics. You can:
z Rename Client Controls.
z Move Client Controls in and out of Graphic Toolsets.
z Delete Client Controls.

Embedding Client Controls


You can embed an installed Client Control in a symbol as you would embed a symbol within
another symbol.

Note: It is recommended to not overlap client controls with other elements on the canvas.
Otherwise the client controls may not work correctly.

To embed a client control in an ArchestrA symbol


a. On the Edit menu, click Embed Graphic Symbol.
The Galaxy Browser appears.

b. Select the Graphic Toolbox.

InTouch 10.0 – Advanced Application Development Course


7-32 Module 7 – ActiveX® and .NET Controls

c. Browse to the location that contains the client control.

d. Select a client control from the right panel and click OK.
The mouse pointer changes to paste mode.
e. Click on the canvas where you want to embed the client control.
The client control is pasted onto the canvas.

Example for embedding the ActiveFactory TagPicker client control


If you have installed Wonderware ActiveFactory 9.1 (or higher) follow the steps of the Example for
installing ActiveFactory client controls .
Then do the following:
a. Create a new symbol in the Graphic Toolbox.
b. Open the symbol in the ArchestrA Symbol Editor.
c. On the Edit menu, click Embed Graphic Symbol.
d. Select aaTagPicker and click OK.
e. Click on the canvas near the top left corner.
The ActiveFactory TagPicker control is pasted on the canvas.

Wonderware Training
Section 2 – Using .NET Client Controls 7-33

Viewing and Changing the Properties of Client Controls


When you embed a client control into a symbol, the native properties of the client control are
imported into the Properties Editor in the Misc group.
Also the element container of the client control has properties, such as:
z Name.
z X, Y, Width, Height, AbsoluteOrigin, RelativeOrigin and Locked.
z FillColor.
z TextColor and Font.
z Enabled, TabOrder, TabStop and Visible.
The element container properties override the native properties of the client control.
You can view and change the properties of the control in the Properties Editor.
To view or change the properties of a client control
a. Select the embedded client control on the canvas.
b. In the Properties Editor, locate either a:
z Container property in the property groups Graphic, Appearance, Fill Style, Text Style or
Runtime Behavior.
z Native property in the Misc property group.
c. View or change the located property.
Example for changing a property of the ActiveFactory TagPicker control
Install and embed the ActiveFactory Trend Control in a symbol.
In this example the “Tag Picker” caption of the TagPicker control is hidden.
a. Select the embedded ActiveFactory TagPicker client control.
The Properties Editor is populated with all properties of the client control.

b. In the Misc property group, locate the property HideCaption.

InTouch 10.0 – Advanced Application Development Course


7-34 Module 7 – ActiveX® and .NET Controls

c. Assign the value True to it and press Enter.


The caption “Tag Picker” of the ActiveFactory TagPicker client control is hidden.

Binding Client Control Properties to Attributes or Element


References
You can bind the properties of an embedded client control to attributes or element references. This
lets you use attributes and element references as source and consumer of data for the client
control properties. This is done with the Data Binding animation.

The Data Binding table contains the following information:


z Name - name of the client control property.
z Type - the .NET data type of the property.
z Value - the default value of the client control property.
z Direction - indicates if the property is read/write or just read-only.

Wonderware Training
Section 2 – Using .NET Client Controls 7-35

read/write property

read-only property

write-only property

d. Reference - the attribute or element reference the property is bound to.

Note: You cannot remove the Data Binding animation.

To bind a client control property with an attribute or element reference


a. Double-click the embedded client control on the canvas.
The Edit Animations dialog box appears and the Data Binding animation is selected by
default.
b. Locate the client control property that you want to bind with an attribute or element reference.
c. Double-click the Reference box.
d. Either:
z Type an attribute or element reference.
z Browse for an attribute or element reference by clicking the Browse button.
e. Repeat above for any other properties you want to bind.
f. When you are done, click OK.

Example for Data Binding in the ActiveFactory TagPicker Control


In this example, the boolean symbol custom property HCV controls the visibility of the
ActiveFactory TagPicker caption.
Do the following:
a. Create a boolean custom property and rename it HCV.
b. In the ArchestrA Symbol Editor, double-click on the embedded ActiveFactory TagPicker
control.
c. From the list of properties in the Data Binding configuration area, locate the HideCaption
property.
d. Double-click the Reference box of the HideCaption property.
e. From the Galaxy Browser, select the HCV custom property and click OK.
The HideCaption property is now associated with the element reference HCV. You can set the
value of custom property HCV to control the visibility of the caption of the embedded client control.

InTouch 10.0 – Advanced Application Development Course


7-36 Module 7 – ActiveX® and .NET Controls

Configuring Client Control Event Scripts


You can configure an ArchestrA script that is executed when a client control event occurs.
This is done with the Event animation.

To configure an ArchestrA script for a client control event


a. Double-click the embedded client control on the canvas.
The Edit Animations dialog box appears.
b. In the animation list, select Event.
The right panel shows the events configuration.
c. From the Event list, select the event for which you want to execute a script.
The Parameters list shows for the selected event:
z Type: the data type of each parameter.
z Name: the name of each parameter.
d. In the script area you can write the script that is associated with the event.
e. If you want to insert an event parameter in your script, click the Select Event Parameter icon.
Select the parameter.
The parameter name is inserted into the script at the cursor position.

f. If you want to configure scripts for other events, select the event from the Event list.
The script area is cleared and you can write the script for the newly selected event.
g. When you are done, save and close.

Wonderware Training
Section 2 – Using .NET Client Controls 7-37

Example for configuring an event script for the ActiveFactory TagPicker control
Install and embed the ActiveFactory TagPicker Control in a symbol as described in. In this
example, when one of the tags is picked, a message is logged in the Log Viewer.
a. In the ArchestrA Symbol Editor, double-click on the embedded ActiveFactory TagPicker
control.
b. In the animation list, select Event.
c. From the Event list, select the event OnTagsPicked.
d. In the script area, type the following:
LogMessage(“User picked one or more tags.”);
e. Save and close the Edit Animations dialog box.
f. Save and close the ArchestrA Symbol Editor.
g. Embed the symbol in an IDE-managed InTouch application.
h. Switch to Runtime and connect to a valid InSQL source.
i. Select the SysTimeSec variable in the TagPicker control.
j. Check the SMC Log Viewer. The message “User picked one or more tags” appears.

Note: Actually, the above example doesn’t work right now because of validation failure for the
LogMessage script.

Animating Client Controls


Every client control has the animation types:
z Data Binding that determines which attributes and element references can read and write
to the client control.
z Event that assigns scripts to individual client control events.
You can add the following animations that correspond to the supported client control container
properties:
z Visibility.
z Fill Style.
z Text Style.
z Location Horizontal.
z Location Vertical.
z Width.
z Height.
z Tooltip.
z Disable.
If you configure these animations, the resulting behavior and appearance overrides the behavior
and appearance given by the native properties of the client control.
To add animation to embedded client controls
a. Double-click the embedded client control on the canvas.
The Edit Animations dialog box appears.
b. Add animations as you would with any other element.

InTouch 10.0 – Advanced Application Development Course


7-38 Module 7 – ActiveX® and .NET Controls

Exporting Client Controls


You can export client controls as ArchestrA package files (.aaPKG). You can either export them:
z Directly from the Graphic Toolbox.
z Indirectly when you export automation objects or symbols that reference them.
To export client controls directly as ArchestrA package files
a. From the Graphic Toolbox, select one or more client controls that you want to export.
b. On the Galaxy menu, point to Export, and then click Object(s).
c. Follow the general procedure for exporting Automation objects.
For more information, see the Wonderware Application Server User’s Guide.

Note: You can import the client controls again from the exported .aaPKG files.

Securing Client Controls


The client controls use the same security setting as the symbols. You can set the security for client
controls and symbols in the Security panel of the IDE.
For more information on Security Settings for Symbols, see the Wonderware Application Server
User’s Guide.

Viewing Additional Client Control Information


You can also view:
z Which .DLL files, or assemblies, are used for the client control.
z Class name, vendor, version.
z Which Automation objects and ArchestrA symbols use the client control.
This information is contained in the Client Control Properties panels.

Note: The client control properties are different than the properties of the embedded client control.
The client control properties can be viewed in the IDE directly. The properties of the embedded
client control can be viewed in the Properties Editor of the ArchestrA Symbol Editor.

Wonderware Training
Section 2 – Using .NET Client Controls 7-39

Viewing the Client Control Assemblies


You can view which Client Control .DLL files, or assemblies, are used for the client control.
To view the client control assemblies
a. In the Graphic Toolbox, select the client control.
b. On the Galaxy menu, click Properties.
The Properties dialog box appears.

c. On the General tab, you can view:


z The Primary Assembly, which is the main .DLL file.
z Additional Assemblies, which are linked to the main .DLL file and automatically loaded.

Viewing Class Name, Vendor and Version of a Client Control


You can view the class name, vendor and version of a client control in its Properties panel.
To view the class name, vendor and version of a client control
a. In the Graphic Toolbox, select the client control.
b. On the Galaxy menu, click Properties.
The Properties dialog box appears.
c. On the General tab, you can view the:
z Class Name.
z Vendor.
z Version.

InTouch 10.0 – Advanced Application Development Course


7-40 Module 7 – ActiveX® and .NET Controls

Viewing Objects and Symbols Referencing Client Controls


You can view which Automation objects and ArchestrA symbols are using a given client control.
This can be viewed in the Properties dialog box of the client control.
Viewing objects and symbols referencing a client control
a. In the Graphic Toolbox, select the client control.
b. On the Galaxy menu, click Properties.
The Properties dialog box appears.
c. Click Referenced By.
The list of objects and symbols that are using the client control is shown.

Wonderware Training
Lab 17 – Using Client Controls 7-41

Lab 17 – Using Client Controls


Introduction
In this lab, you will extend the capabilities of your InTouch managed application environment by
configuring and using a third-party .NET client control.

Objectives
Upon completion of this lab, you will be able to:
z Add and configure a third-party client control in an InTouch Managed Application
z Create and deploy an object in the IDE

InTouch 10.0 – Advanced Application Development Course


7-42 Module 7 – ActiveX® and .NET Controls

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

a. Import the System.Windows.Forms.dll .NET control into your Galaxy.


By default, the .NET control is located at:
C:\Windows\Microsoft.NET\Framework\v2.0.50727
b. Create a new Graphic Toolset and move all the .NET Controls into it.
c. Create a New Symbol in your Graphic Toolbox named MyWebBrowser and open it.
d. Embed the .NET Control called WebBrowser in your symbol and name it BrowserWindow.
e. Size it to 1000 wide x 800 high and select View / Zoom to / Zoom to Selection.
f. Draw a Text Box and two buttons: Back, Forward underneath the WebBrowser.
g. Create a String Custom Property named URL.
h. Add a User Input / String Animation link to the Text Box with the String URL.
i. Add a Predefined Script with an On Show Trigger and the following script:
BrowserWindow.GoHome();
j. In the same Edit Scripts window, add a Named Script and configure it as follows:
Name Expression Trigger Script
Navigate URL Data Change BrowserWindow.Navigate(URL);

k. Add an Action Script Animation to the Back button as follows:


BrowserWindow.GoBack ();
l. Add an Action Script Animation to the Forward button:
BrowserWindow.GoForward ();
m. Save and Close the Symbol Editor.
n. Embed the MyWebBrowser symbol into an InTouch window and test in Runtime.

See the next page for Detailed Lab Instructions

Wonderware Training
Lab 17 – Using Client Controls 7-43

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Import the System.Windows.Forms Client Control Library


1. If it is not already open, launch the IDE and connect to your galaxy.
2. From the main menu, select Galaxy / Import / Client Control to begin the import process.

3. In the Import Client Control(s) dialog, browse to the following location and select the
System.Windows.Forms.dll .NET Framework control file.
C:\Windows\Microsoft.NET\Framework\v2.0.50727
Note: If this file is in a different location, your instructor will provide the location.
4. Click Open to begin the install of the .NET controls.

InTouch 10.0 – Advanced Application Development Course


7-44 Module 7 – ActiveX® and .NET Controls

5. Select Skip and click OK when prompted for Import Preferences.

Note: This may take a few minutes.

6. Click Close when the import is complete.

The new controls imported into the Graphic Toolbox are now visible in the root list.

Wonderware Training
Lab 17 – Using Client Controls 7-45

7. Create a new Graphic Toolset named .NETControls and move the imported controls into this
toolbox.

Create the Web Browser Symbol


8. Create a New Symbol and name it MyWebBrowser.

9. Place this symbol in your toolset and then open it in the Symbol Editor.
10. Click the Emebed Graphic button and select WebBrowser from the .NETControls Graphic
Toolbox you created.
Click OK.

InTouch 10.0 – Advanced Application Development Course


7-46 Module 7 – ActiveX® and .NET Controls

11. Place the object in the Symbol Editor.


12. For the Properties of the object, change the name of the control to BrowserWindow.
Change its Width to 1000 and Height to 800.
You may wish to change these values based on your own system resolution.

Note: This object will need to be almost full screen within the InTouch Window you will place
it in. In most cases you would size the object after it has been placed in InTouch. However,
there will be additional objects within this symbol that you will not want resized along with the
browser, so you will draw everything at an appropriate scale in relation to the other objects.

13. From the main menu, select View / Zoom to / Zoom to Selection to adjust your view to see
the entire object.

Wonderware Training
Lab 17 – Using Client Controls 7-47

14. Below the browser object, draw a Text Box using the drawing tools.
Change the font of the text box to an appropriate size.
15. Draw two button objects below the Text Box and Substitute Strings to label them
Back and Forward respectively.
Change the font of the buttons to an appropriate size.
Your placement to be similar to as shown below.

16. Add a Custom Property URL to the symbol, setting its Data Type to String.

17. Double-click on the text box and add a User Input / String animation for the Custom Property
URL as shown.

InTouch 10.0 – Advanced Application Development Course


7-48 Module 7 – ActiveX® and .NET Controls

18. From the Special menu, select Scripts.


Retain the default Predefined Scripts and ensure the Trigger type is On Show.

Click on the Attribute Browser button circled below.

19. Click the Element Browser tab and select the BrowserWindow Element.
20. Select the GoHome( ) method and click OK.

21. The BrowserWindow.GoHome( ) will now be in the script pane.


Add a semicolon (;) at the end of the script.

Do NOT click OK at this point.

Wonderware Training
Lab 17 – Using Client Controls 7-49

22. In the same Edit Scripts window, click the Add Script + button to add a Named Script and
configure it as shown below.

Name Expression Trigger Script


Navigate URL Data Change BrowserWindow.Navigate(URL);

23. Double-click the Back button and add the following Action script.

24. Double-click the Forward button and add the following Action script.

25. Save and Close the Symbol Editor, adding check in comments as appropriate.

InTouch 10.0 – Advanced Application Development Course


7-50 Module 7 – ActiveX® and .NET Controls

Test the Browser Symbol in Runtime


26. Switch to WindowMaker and create a new window drawn to your approximate resolution for
the Web Browser.
27. Click on the Embed ArchestrA Graphic button and place the MyWebBrowser object into
your window. Size as appropriate.

28. Switch to Runtime and test the functionality.

Wonderware Training
Module 8

Alarm Distribution
Section 1 – Alarm Subsystem Overview 8-3
Section 2 – Alarm Viewer Control 8-9
Lab 18 – Working With the Alarm Viewer Control 8-25
Section 3 – Alarm Suppression 8-39
Lab 19 – Alarm Suppression 8-43
Section 4 – Alarm Tree View Control 8-49
Lab 20 – Configure an Alarm Tree View Control 8-55
Section 5 – Alarm Hot Backup Manager 8-61
Lab 21 – Configure the Alarm Hot Backup Manager 8-75
Section 6 – Alarm Printer 8-79
Section 7 – Alarm Databasing Tools 8-89
Lab 22 – Alarm Database Logger & Alarm Database View Control 8-101
Lab 23 – Configure an Alarm Pareto Control 8-113
8-2 Module 8 – Alarm Distribution

Wonderware Training
Section 1 – Alarm Subsystem Overview 8-3

Section 1 – Alarm Subsystem Overview

Section Objective
z Use the InTouch Distributed Alarms system to monitor and acknowledge remote and
local alarms.

The InTouch Distributed Alarm System provides a notification system to inform operators of
process and system conditions. This system supports the displaying, logging, and printing of
process alarms and system events. Alarms represent warnings of process conditions, while events
represent normal system status messages. InTouch supports a Distributed Alarm System that
allows the display of alarms and events generated by the local InTouch application and by alarm
systems of other networked InTouch applications.
The basic alarm communication protocol uses Wonderware's TCP/IP-based SuiteLink protocol.
This uses a minimal amount of CPU and network resources. Alarm update time is very fast and
includes an accurate timestamp. InTouch provides up-to-the-millisecond timestamps of your
alarms when the alarm occurs, not when the consumer receives the alarm.
The Alarm Objects can be provided to an application user to enable preconfigured (by the system
designer) views to be selected at runtime, either by a simple right-click command menu or via
scripting.
Alarms can be acknowledged on the local InTouch node or from a remote node on the network.
Alarms can also be enabled or disabled directly or indirectly under full control of the application.
Alarm suppression can be applied to single alarm classes, tags, or groups to prohibit the display of
alarm information on a specific view node. System-wide disablement can block alarm activity at
the source.
A separate alarm comment field allows you to provide more feedback about the alarm. Expanded
dot field support allows you greater control over alarms.
The InTouch Distributed Alarm Subsystem supports logging alarms and events to a Microsoft SQL
Server or MSDE database. This provides the power of a relational database, regardless of the
size of your application – and your budget. Visualization tools allow easy and open access to
these data tables via the Alarm DB View Control.
The Alarm DB Logger can be manually started on demand or can be configured to run as a
Windows service. Alarm logging uses UTC (GMT) timestamping and provides compatibility with
DST and across time zones.
The Distributed Alarm System allows you to configure a secondary backup alarm provider, thus
establishing a fail-safe system. Alarm provider pairs are configured using a supplied utility. Should
a primary alarm provider fail, the Distributed Alarm Subsystem seamlessly acquires alarm
information from the backup system. On reconnection of the primary node, the Distributed Alarm
Subsystem ensures that alarm acknowledgements are resynchronized prior to the returning
primary system becoming live.

InTouch 10.0 – Advanced Application Development Course


8-4 Module 8 – Alarm Distribution

Summary of the distributed alarm system features include:


z Alarm Providers keep track of items that may go into an alarmed condition - and provides
the Distributed Alarm System with the list of these items, including information on any
hierarchical grouping of the items.
z Alarm Consumers provide the Distributed Alarm System with a set of queries identifying
alarmable items about which it wishes to receive notifications.
z The ability to display and acknowledge alarms from any InTouch node on a network.
z Completely configurable Alarm Display object.
z Numerous Alarm System properties.
z QuickScript functions that provide dynamic control over the alarm display and alarm
acknowledgment.
z Name Manager, which allows multiple Alarm Groups across different applications to be
called via a single name.
z Capability to add comments to alarms when acknowledged.

Wonderware Training
Section 1 – Alarm Subsystem Overview 8-5

Monitoring Local Alarms and Remote Alarms


The alarm display can be used to display and acknowledge both local and remote (network) alarm
providers.
a. Paste an alarm object in your window.
b. In the Alarm Query field of the alarm object, you will see:
"\InTouch!$System by default.
z \InTouch!$System refers to local alarms coming from InTouch.
Any valid Alarm Group can be substituted for $System.
z \\NodeName\InTouch!$System can be used here, where \\NodeName refers to a
network node name where alarms are being generated by a FactorySuite alarm provider.
z Named queries from the Distributed Name Manager can be entered here as well,
to provide access to alarm providers grouped under one name.
z \\NodeName\InTouch!<GroupName>!<TagName> can be used to specify a query on a
specific tag.
z \\NodeName\InTouch!<GroupName>!<Part of a Tag Name*> can be used to filter a
query on similarly named tags. For example: \\Train05\InTouch!RemoteAlarms!Real*.
c. Configure the other parameters of the Default Query Properties for the type of display and
any filtering your application requires.
d. Switch to WindowViewer to run the application.

Distributed Alarm Group Lists


The Distributed Alarm System uses the Alarm Group mechanism to group alarms into a local
hierarchical tree structure that the distributed alarm display can use to filter alarms for display. The
Distributed Alarm System also allows you to view these alarm groups from multiple nodes on a
network. In addition, the Distributed Alarm System allows you to organize your viewing of alarms
by creating Alarm Group Lists.
An Alarm Group List is a named list consisting of InTouch nodes and the Alarm Groups defined
on each of those nodes. It can also contain other Alarm Group List Names and local Alarm
Groups. An Alarm Consumer, such as the Distributed Alarm Display, uses this list to query for
alarms.
For example, if you were interested in all of the boiler alarms across several InTouch nodes, you
could build a query called "BoilerAlarms." The list attached to that query would contain all the
Alarm Groups on all the nodes that correspond to the boiler alarms.

InTouch 10.0 – Advanced Application Development Course


8-6 Module 8 – Alarm Distribution

To Create an Alarm Group List


a. On the Special menu, point to Configure, and then select Distributed Name Manager.
The Distributed Name Manager dialog box appears with the Distributed Alarms property
sheet active:

To quickly access the dialog box, in the Application Explorer under Configure, double-click
Distributed Name Manager.
If you right-click a text box in any alarm configuration dialog box, a menu will appear displaying
the commands that you can apply to the selected text.
b. In the Group Properties section, type the name of the query in the Name box.

Wonderware Training
Section 1 – Alarm Subsystem Overview 8-7

c. In the Members box, type the list of InTouch nodes and Alarm Groups that you want to include
in your query. The valid syntax for these lists include:
Standard Group Entries:
\\Node\InTouch!Group
Fully qualified path to an Alarm Group on a remote node
\InTouch!Group
Same as above, but Node assumed to be local
GroupList
Another Group List
Shortcut Group Entries:
Node.Group
Shortcut that equates to \\Node\InTouch!Group
.Group
Shortcut that equates to \InTouch!Group
Where Node identifies the name of the InTouch remote node and .Group identifies the Alarm
Group on that node. If the Alarm Group is local, you can enter just the Alarm Group name with
a period. For example, .AlarmGroup.
The Shortcut Group Entries provide you with an easy way to enter node and Alarm Group
information into the dialog box. It's important to remember that this information is translated
into the Standard Group Entry format when you save the Alarm Group List.

Note: The Node.Group and .Group syntax can only be used in this configuration dialog box.
It is not valid in the alarm display configuration or any alarm QuickScript function.

InTouch 10.0 – Advanced Application Development Course


8-8 Module 8 – Alarm Distribution

4. Click Add to add this list to your Alarm Group file. The syntax of the Members will
automatically be converted. For example, .$System will be converted to \InTouch!$System, as
shown below:

e. Click OK.
f. Double-click the Distributed Alarm Object.
Add the group list above to the query.
g. Note that new alarms are now visible.

Wonderware Training
Section 2 – Alarm Viewer Control 8-9

Section 2 – Alarm Viewer Control

Section Objective
z Configure all necessary aspects of the ActiveX Alarm Object for display and
acknowledgment.

Introduction
InTouch provides an Alarm Viewer Control with built-in scroll bars, sizable display columns,
multiple alarm selections, an update status bar, dynamic display types, and display colors based
on alarm priority. The Alarm Viewer ActiveX Control is the preferred control for viewing alarms.

Alarm Viewer Control Guidelines


InTouch provides an Alarm Viewer ActiveX Control that allows you to view all locally and remotely
generated alarms. You design the appearance of the Alarm Viewer Control and the data displayed
by specifying the following attributes:
z Context sensitive menu features
z Display mode
z List control options
z Colors for different properties
z Font type, style and size
z Alarm selection (filters)
z Query filters
z Column management
z Sorting
Once the control format has been designed, a user may have the ability to make the following
adjustments to manipulate the data they are viewing:
z Sort the information by column
z Update the display
z Perform a query
z Resize the width of a column
The Alarm Viewer Control can be dropped into WindowMaker, resized, and positioned.
Configuration of the Alarm Viewer Control is done using the Property sheets. The alarm data can
then be viewed in the Alarm Viewer Control view window.

InTouch 10.0 – Advanced Application Development Course


8-10 Module 8 – Alarm Distribution

Alarm Viewer ActiveX Display Guidelines


The Alarm Viewer ActiveX display is an additional alarm viewer control wizard. While it may
appear like the old standard alarm display wizard, it uses the same mechanism as the Window
Control wizards. This mechanism requires certain guidelines to be observed when using objects
such as the Alarm Viewer ActiveX display. These guidelines are as follows:
Each display must have an identifier so that any associated QuickScript function knows which
display to modify. This identifier, entered as Control Name in the Alarm Viewer ActiveX
Properties dialog box, must be unique for each display.
Displays should not overlap other InTouch objects such as window controls or graphic objects.
You can easily verify this by clicking on the Alarm Viewer ActiveX display in WindowMaker, and
checking the display’s "handles." The handles should not touch other graphic objects on the
screen.
Displays should be used sparingly. Placing numerous displays on one screen can result in
reduced system performance. When possible, limit the number of displays on your screen and call
further screens with additional displays if necessary.

Placing the Alarm Viewer Control


This Alarm Viewer control is installed when InTouch is installed.
To paste this control in a WindowMaker window:
a. Open the Wizard selection dialog box.
b. Select AlmViewerCtrl under ActiveX Controls, then click OK.
c. Paste the control on the window and resize it to the required size.

Removing the Alarm Viewer Control


a. Delete all of the Alarm Viewer controls pasted on the windows.
b. Select Configure from the Special menu.
c. Select Wizard/ActiveX Installation, then open the Wizard/ActiveX installation dialog box.
d. Select the ActiveX Control installation property page. The Wonderware Alarm Viewer Control
name appears in the Installed ActiveX Controls text area.
e. Click Wonderware Alarm Viewer Control, then click Remove.
f. Click Yes for the warning message.
g. Click Close.

Wonderware Training
Section 2 – Alarm Viewer Control 8-11

Configuring the General Properties


To configure the general properties:
a. Double-click on the Alarm Viewer Control display or right-click it, and then click Properties.
The AlarmViewerCtrlX dialog box appears with the Control Name property sheet active.
b. Click the General tab to activate the General property sheet.
The General property sheets is shown with the default settings selected.

c. Check the boxes to select the general display options.


Uncheck boxes to omit options from the alarm viewer.

InTouch 10.0 – Advanced Application Development Course


8-12 Module 8 – Alarm Distribution

The check box options are described in the table below:

Property Description
Perform Query on Automatically begins updating the display using default query properties, if
Startup selected. If not selected, you need to perform an almDefQuery or almQuery
before the display will update. The Requery option is also available on the right-
click shortcut menu.
Show Context Enables the activation of the right-click popup menu. Selecting this option
Sensitive Menu enables the Configure Context Menus button and the Use Default Ack Comment
check box.
Use Default Ack Controls whether a default comment will be used when an operator ACKs an
Comment alarm. If this box is checked and a string is entered, the string will be used during
runtime as a default comment. If this box is not checked, when the operator
ACKs an alarm, a dialog box appears to let the operator enter a comment. The
dialog box can be filled in or left blank. Selecting this option enables the Ack
Comment field in which to enter the comment. This button is only available when
the Show Context Sensitive Menu box is checked.
Show Status Bar Toggles the display of the status bar.
Show Heading Toggles the display of the heading bar.
Row Selection Selecting this option allows you to select records in the alarm viewer. This allows
multiple selections of alarms and doesn't toggle previously made alarm
selections based on new selections.
Use Extended Allows multiple alarms to be selected by holding down Ctrl or Shift in conjunction
Selection with a mouse. The default is to toggle selection of alarms by simply clicking on
them. This is available only if Row Selection check box is selected.
Silent Mode If Silent Mode is selected, the distributed alarm display will not pop up error
messages in Runtime. If it is not selected, the alarm display will show pop up
error messages. Error messages are always sent to the Log Viewer.
Resize Columns If Resize Columns is selected, the user can resize columns in Runtime. If it is not
selected, the user will not be able to resize columns in Runtime.
Show Grid If Show Grid is selected, the Alarm Viewer shows a grid in the distributed alarm
display. If it is not selected, no grid is visible.

d. Click Apply. You can proceed to configure the next property or click OK to exit the properties
sheets.

Wonderware Training
Section 2 – Alarm Viewer Control 8-13

Configuring the Context Sensitive Menus


To configure the context sensitive menus:
a. Double-click on the Alarm Viewer Control display or right-click it, and then click Properties.
The AlarmViewerCtrlX dialog box appears with the Control Name property sheet active.
b. Click the General tab to activate the General property sheet.
c. Click the Configure Context Menus button to select the options to display on the context
sensitive right mouse click menus in Runtime. The Context Sensitive Menus screen appears.

Note: The Configure Context Menus button is only enabled if the Show Context Sensitive
Menu option is selected.

d. Configure the context sensitive menu options and click OK. At least one context sensitive
menu item should be selected if the Show Context Sensitive Menu box is checked.

InTouch 10.0 – Advanced Application Development Course


8-14 Module 8 – Alarm Distribution

e. The context sensitive menu options are described below:

Menu Option Description


Ack Selected Allows user to acknowledge selected alarms.
Ack Others Allows user to acknowledge alarms by other methods. The user can select
which alarms to acknowledge from the non-bolded options below. If Ack
Others is selected, you must select at least one of the submenu items.
Ack All Allows user to acknowledge all active alarms.
Ack Visible Allows user to acknowledge visible alarms.
Ack Selected Groups Allows user to acknowledge selected groups with the same provider name.
Ack Selected Tags Allows user to acknowledge selected tags with the same provider, group and
priority.
Ack Selected Priorities Allows user to acknowledge selected priorities with the same provider, group
and priority.
Suppress Selected Allows user to suppress selected alarms.
Suppress Others Allows user to suppress alarms by other methods. The user can select which
alarms to suppress from the non-bolded options below. If Suppress Others is
selected, you must select at least one of the submenu items.
Suppress All Allows user to suppress all alarms.
Suppress Visible Allows user to suppress visible alarms.
Suppress Selected Allows user to suppress selected groups.
Groups
Suppress Selected Allows user to suppress selected tags.
Tags
Suppress Selected Allows user to suppress selected priorities.
Priorities
Unsuppress All Allows user to unsuppress all suppressed alarms.
Query Favorites Allows user to access the Query Favorites dialog.
Stats Allows the user to access and view alarm statistics. Right-click the alarm
viewer display in runtime, then click Stats on the shortcut menu. The Alarm
Statistics dialog box indicates which control the alarm statistics are from in
the dialog box header.
Suppression Allows the user to access the suppression dialog.
Freeze Allows the user to toggle the freeze/unfreeze mode of the display.
Requery Allows the user to re-run an alarm query.
Sort Allows the user to access the Sort dialog.

Note: If Ack Selected and Ack Others menu items are both unchecked at design time in the
Context Sensitive Menus dialog box, the Use Default Ack Comment check box and the text
box are disabled. Click Apply. You can proceed to configure the next property or click OK to
exit the properties sheets.

Wonderware Training
Section 2 – Alarm Viewer Control 8-15

Configuring the Display Column Details


To configure the display column details:
a. Double-click on the Alarm Viewer Control display or right-click it, and then click Properties.
The AlarmViewerCtrlX dialog box appears with the Control Name property sheet active.
b. Click the General tab to activate the General property sheet.
c. Click the Column Details button. The Column Details dialog appears.

d. From the Column Details dialog box, select the checkbox next to the Column Name to
display the column in the alarm object. The columns in the Column Details dialog box are
Name, Width and Original Name. Original Name shows what the columns were named
before any changes were made. The original column names that you can select to display are
described below.

Note: At least one column must be selected.

InTouch 10.0 – Advanced Application Development Course


8-16 Module 8 – Alarm Distribution

Column Name Description


Time Displays the time in the format selected from the Time Format properties sheet.
State Displays the state of the alarm.
Class Displays the category of the alarm.
Type Displays the alarm type.
Priority Displays the alarm priority.
Name Displays the alarm/tagname.
Group Displays the Alarm Group name.
Provider Displays the name of the alarm provider.
Value Displays the value of the tagname when the alarm occurred. The width of the column
should be large enough to provide the desired level of precision.
Limit Displays the alarm limit value of the tagname. The width of the column should be large
enough to provide the desired level of precision.
Operator Displays the logged-on operator’s ID associated with the alarm condition.
Comment Displays the tagname’s comments. These comments were typed in the Alarm Comment
box when the tagname’s alarm was defined in the database. When ACK Comments are
introduced for alarms, the new comments are updated in this comment column.
OperatorName Displays the operator name associated with the alarm.
OperatorDomain Displays the operator domain associated with the alarm.
Node Name Displays the node name associated with the alarm.
Tag Comment Displays the tag comment associated with the alarm.

Note: All column names are selected by default except for Operator and Comment.

e. To rearrange the columns, select the column name and use the up and down arrow keys. The
column name appearing at the top of the Column Details dialog box is the column displayed
to the furthest left of the alarm display.
f. To edit the column name and width, double-click the column name or select a column name,
then click Edit. The Edit dialog box appears for that column.

g. Enter in a new name in the New Name text box if you want to display a column name other
than the default column name.
h. Enter in a column width in the New Width text box. The column width is measured in pixels
and can range from 1 to 999 pixels. The default column width is 100 pixels.
i. Click OK on the Edit dialog.

Note: Click Reset to Default to return to the default Column Details settings.

j. Click OK on the Column Details dialog.


k. Click Apply. You can proceed to configure the next property or click OK to exit the properties
sheets.

Wonderware Training
Section 2 – Alarm Viewer Control 8-17

Configuring the Display Alarm Query


To configure the alarm display query:
a. Double-click on the Alarm Viewer ActiveX display or right-click it, and then click Properties.
The AlarmViewerCtrlX dialog box appears with the Control Name property sheet active.
b. Click the Query tab to activate the Query property sheet.

c. Select the desired query options. The query options are described in the table below:

Property Description
From Priority Minimum alarm priority set to 1 by default. This value should always be less
than "To Priority" and the range of values is from 1 to 999.
To Priority Maximum alarm priority set to 999 by default. This value should always be
more than "From Priority" and the range of values is from 1 to 999.
Alarm State Default alarm state to query set to All by default. ALL indicates a query of all
alarms. UnAck indicates a query of unacknowledged alarms. Ack indicates a
query of acknowledged alarms.
Query Type Sets display type as either Summary or Historical.
Alarm Query Sets the initial Alarm query. This field accepts text only; it does not accept tags.
The default Alarm Query is \intouch!$system
The valid syntax for these lists include:
\\Node\InTouch!Group
Full path to Alarm Group
\InTouch!Group
Full path to local Alarm Group
GroupList
Another Group List
Sort Column Select the column to sort using the drop-down arrow. Options are alarm Time,
State, Class, Type, Priority, Name, Group, Provider, Value, Limit, Operator or
Comment.

InTouch 10.0 – Advanced Application Development Course


8-18 Module 8 – Alarm Distribution

Property Description
Query Favorites File The control will store alarm Queries. Click the button to browse for query
favorites.The differences between Query Favorites and the Alarm Query are:
z The Alarm Query files are XML.
z A filename should be given with the proper folder name to
enable the Query Favorites context sensitive menu option at
runtime.
z Existing filenames allow access to existing queries. New
filenames are created when new queries are created.
z The query file can be in any folder and does not need to be in
the application folder.
Auto Scroll to new This check box will be available only when the sort option selected is based on
Alarms Time.
Sort Direction Select the criteria by which to sort the query and click the Up or Down radio
buttons to sort in ascending or descending order respectively. By default, the
display is sorted by time in ascending order.

Note: To perform multiple queries, separate each query with a space.


For example: \\Master\InTouch!MyGroup LocalGroupList

d. Click Apply. You can proceed to configure the next property or click OK to exit the properties
sheets.

Configuring Alarm Viewer Color Properties


To assign Color properties:
a. Double-click on the Alarm Viewer Control display or right-click it, and then click Properties.
The AlarmViewerCtrlX dialog box appears with the Control Name property sheet active.
b. Click the Color tab to activate the Color sheet.

c. Select the colors you would like to assign for alarming.


d. Click Apply.

Wonderware Training
Section 2 – Alarm Viewer Control 8-19

To assign Events:
a. Double-click on the Alarm Viewer Control display or right-click it, and then click Properties.
The AlarmViewerCtrlX dialog box appears with the Control Name property sheet active.
b. Click the Events tab to activate the Events sheet.
c. Insert the appropriate script to any of the four Events available.
d. Click Apply.

To select the Time Format:


a. Double-click on the Alarm Viewer Control display or right-click it, and then click Properties.
The AlarmViewerCtrlX dialog box appears with the Control Name property sheet active.
b. Click the Time Format tab to activate the Time Format sheet.
c. Scroll down and select the Time Format you wish to display for your alarms.
d. Select the Displayed Time using the drop down list.
e. Select the Displayed Time Zone using the drop down list.
f. Click Apply.

InTouch 10.0 – Advanced Application Development Course


8-20 Module 8 – Alarm Distribution

To assign tagnames to control Properties:


a. Double-click on the Alarm Viewer Control display or right-click it, and then click Properties.
The AlarmViewerCtrlX dialog box appears with the Control Name property sheet active.
b. Click the Properties tab to activate the Properties sheet.
c. Click the property for which to assign a tagname.
d. Click Apply and OK.

Wonderware Training
Section 2 – Alarm Viewer Control 8-21

Boolean Properties

Name Value is TRUE


Show Heading Shows Header
Show Status Bar Shows Status Bar
Auto scroll to New Alarms Scrolls to new alarms
Allow runtime grid changes Grid can be resized/reordered
Allow runtime alarm selection Records can be selected in Summary Mode
Use Extended alarm selection Uses Extended Selection
Perform query on startup Applies query to WNAL on startup
Appearance of new alarms Alarms appear at the Top of the list
Use default ack comment Uses default ack comment string while Acking
Show Grid Shows grid
Silent Mode Doesn’t pop up error message boxes
Ack Selected Menu Enables “Ack Selected” menu
Ack Others Menu Enables “Ack Others” menu
Ack All Menu Enables “Ack All” menu
Ack Visible Menu Enables “Ack Visible” menu
Ack Selected Groups Menu Enables “Ack Selected Groups” menu
Ack Selected Tags Menu Enables “Ack Selected Tags” menu
Ack Selected Priorities Menu Enables “Ack Selected Priorities” menu
Suppress Selected Menu Enables “Suppress Selected” menu
Suppress Others Menu Enables “Suppress Others” menu
Suppress All Menu Enables “Suppress All” menu
Suppress Visible Menu Enables “Suppress Visible” menu
Suppress Selected Groups Menu Enables “Suppress Selected Groups” menu
Suppress Selected Tags Menu Enables “Suppress Selected Tags” menu
Suppress Selected Priorities Menu Enables “Suppress Selected Priorities” menu
Query Favorites Menu Enables “Query Favorites” menu
Stats Menu Enables “Stats” menu
Suppression Menu Enables “Suppression” menu
Freeze Menu Enables “Freeze” menu

InTouch 10.0 – Advanced Application Development Course


8-22 Module 8 – Alarm Distribution

String/Numeric Properties

Name Values
Alarm State Ack, All, Unack
Query Type Summary, Historical
Alarm Query {Keyed in by the user}
From Priority {Keyed in by the user}
To Priority {Keyed in by the user}
Date Format DD MMM, DD MMM YYYY, DD/MM, DD/MM/YY, MM/DD,
MM/DD/YY, MMM DD, MMM DD YYYY
Time Format HH:MM, HH:MM AP, HH:MM:SS, HH:MM:SS AP,
HH:MM:SS.SSS, HH:MM:SS.SSS AP
Displayed Time LCT, LCT but OAT on ACK, OAT
NewAlarmEventMode 0, 1, or 2
TotalAlarms {Read Only}

Color Properties

Name Default Value


Back Color White
Selection Back color Blue
Selection Fore Color Black
Header Back Color Grey
Header Fore Color Black
Alarm Return Color Blue
Event Color Red
Unack Fore Color (Priority 1 ~ 250) Red
Unack Fore Color (Priority 250 ~ 500) Red
Unack Fore Color (Priority 500 ~ 750) Red
Unack Fore Color (Priority 750 ~ 999) Red
Ack Fore Color (Priority 1 ~ 250) Black
Ack Fore Color (Priority 250 ~ 500) Black
Ack Fore Color (Priority 500 ~ 750) Black
Ack Fore Color (Priority 750 ~ 999) Black
Grid Color Grey
WindowColor White

Events

Name Script
Click {Keyed in by the user}
DoubleClick {Keyed in by the user}
NewAlarm {Keyed in by the user}
ShutDown {Keyed in by the user}
StartUp {Keyed in by the user}

Wonderware Training
Section 2 – Alarm Viewer Control 8-23

Methods
The following Methods are available for use in configuring the Alarm Viewer Control.

Name Functionality
AckAll Acks all the alarms
AckVisible Acknowledges only those alarms that are currently visible in the Alarm
Viewer.
AckSelected Acks the selected alarms
AckSelectedGroup Acknowledges all alarms that have the same group name as one or more of
the alarms that are selected.
AckSelectedTag Acknowledges all alarms that have the same Tag (alarm) name as one or
more of the alarms that are selected.
AckSelectedPriority Acknowledges all alarms that have the same priority value as one or more of
the alarms that are selected.
AckGroup Acks the alarms that have same Group & Provider as specified by the
parameter
AckPriority Acks the alarms that are of the specified priority range having same provider
name and group name.
AckTag Acks the alarms of the given tag name having the same provider name and
group name within the given priority range.
AboutBox Shows the "About" dialog box.
ApplyDefaultQuery Performs a query using the following properties as specified at design time:
FromPriority, ToPriority, AlarmState, QueryType, AlarmQuery. The default
properties can only be changed at development time and are not overwritten
by other alarm queries.
ApplyQuery Performs the query as specified by its parameter’s Alarm Query, From and
To Priorities, State of alarms to query for, and the type of alarms to retrieve.
FreezeDisplay Freezes the display.
MoveWindow Scrolls the control as specified by Option and the repeat count.
Requery Queries the alarm provider again.
SuppressAll Suppresses all the alarms.
SuppressVisible Suppress the display of current and future occurrences of any visible alarm.
SuppressRecent Suppresses recent alarm.
SuppressSelected Suppresses the selected alarms.
SuppressSelectedGroup Suppresses all alarms that have the same group name as one or more of the
alarms that are selected.
SuppressSelectedTag Suppresses all alarms that have the same Tag (alarm) name as one or more
of the alarms that are selected.
SuppressSelectedPriority Suppresses all alarms that have the same priority value as one or more of
the alarms that are selected.
SuppressGroup Suppresses the alarms that have same Group & Provider as specified by the
parameter
SuppressPriority Suppresses the alarms that are of the specified priority range having same
provider name and group name.
SuppressTag Suppresses the alarms of the given tag name having the same provider
name and group name within the given priority range.
ShowContext Shows the context sensitive menu if any one of "RefreshMenu" or
"ResetMenu" or "SortMenu" property is enabled.
ShowQueryFavorites Displays the Query Favorites dialog.
ShowSort Shows the "Secondary Sort" dialog if the "SortMenu" property is enabled.

InTouch 10.0 – Advanced Application Development Course


8-24 Module 8 – Alarm Distribution

Methods
The following Methods are available for use in configuring the Alarm Viewer Control.

Name Functionality
ShowStatistics Displays the Statistics dialog.
ShowSuppression Displays the suppression dialog box, which contains all suppressed alarms.
SetQueryByName Sets the query as specified in the parameter (using Query Favorites)
SelectAll Toggles the selection of all the alarms
SelectItem Toggles the selection of an alarm record as specified by the parameter
SelectGroup Toggles the selection of all the alarms that contains the same alarm group
name and provider name.
SelectPriority Toggles all alarms that are of the specified priority range, having the same
provider name and group name.
SelectTag Toggles all alarms for a given tagname, having the same provider name,
group name and in the specified priority range.
UnsuppressAll Unsuppresses alarms, if any
UnselectAll Unselects the selection, if any
SuppressRetain Retains alarm suppression for all following queries
GetItem Returns a string corresponding to the alarm at the specified row and column.
ShowSortFavorite Shows “Sort Favorite” dialog
SetSort Sets the sort criteria as specified by the "SortColumn" and "SortOrder"
properties.
SuppressAllMenu Boolean Property that Enables/Disables "SuppressAll" menu item.

Wonderware Training
Lab 18 – Working With the Alarm Viewer Control 8-25

Lab 18 – Working With the


Alarm Viewer Control
Introduction
The purpose of this lab is to explore the functions and capabilities of the Alarm Viewer Control
ActiveX Object.
The Alarm Viewer Control has the same basic functionality as the Distributed Alarm Object, but the
user interface and interaction with it is different. InTouch can take advantage of the object’s
Methods, Properties, and Events in an InTouch application, since InTouch is an ActiveX
Container.
This lab uses InTouch set to the OS Security Mode and uses the configuration completed in
Lab 15, “Implementing Security.”

Objectives
Upon completion of this lab, you will be able to:
z Insert and configure the Alarm Viewer Control in an InTouch window
z Acknowledge actual alarms on the Alarm Viewer Control
z Change the Query Property and the associated Method Requery and test
z Use the Context Sensitive Menu

InTouch 10.0 – Advanced Application Development Course


8-26 Module 8 – Alarm Distribution

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

a. Open the window named Alarm Display.


b. Place the AlarmViewerCtrl ActiveX alarm object on the window and size as appropriate.
c. Switch to Runtime and verify that you are receiving alarms.
d. Switch back to Development and edit the Alarm Viewer Control to show the Alarm Comment
column and the security based columns:
Operator, Operator Full Name, Operator Node, and Operator Domain.
e. Change the width of these columns as you feel is appropriate.
f. Switch to Runtime and note the information being displayed in the columns you have just
turned on. Try logging on as different operators with the Log On and Log Off buttons in this
window.
g. Access the Distributed Name Manager in Application Manager.
h. Add an Alarm Group named LocalAlarms that has as its member \InTouch!$System.
i. Create another group named RemoteAlarms whose member is the $System Alarms on the
remote node.
j. Create another group named AllAlarms whose members are all alarms from the local
application and all alarms from the remote node. Use the Alarm Group RemoteAlarms as
one of the members to satisfy the requirement of all alarms on the remote node.
k. Open the Alarm Viewer Control and enter one of the groups in the Alarm Query field.
l. Verify in Runtime.
m. Experiment with changing the names and combining names (separated by a space) in the
Alarm Query field.

Acknowledgement
n. Switch back to Development and add an Action Script to the button labeled Ack Selected
Alarm that uses an Alarm Viewer Control Method to display an alarm acknowledgment
comment.
Use the method AckSelected( “String” ) in the script.
o. Switch to Runtime and test the Ack Selected Alarm button.
On Your Own - Add additional alarm acknowledgement capabilities to this window as you see
fit.

Wonderware Training
Lab 18 – Working With the Alarm Viewer Control 8-27

Queries
p. Switch back to Development. and add an Action Script to the button labeled Summary that
uses an Alarm Viewer Control Method to run a query display summary of active alarms.
q. Double-click on the button labeled Summary and bring up its Action script.
Make sure to clear out anything in the script buffer.
r. Click the Insert ActiveX Control button and select the property QueryType.
This property will accept either Summary or Historical values as a text string.
s. Click the Insert ActiveX Control button again and select the Method Requery().
Modify the On Left Click/Key Down script as follows:
#AlarmViewerCtrl4.QueryType = “Summary”;
#AlarmViewerCtrl4.Requery();
t. For the button Historical, use the same On Left Click/Key Down script,
but change the value for the QueryType property to Historical.
#AlarmViewerCtrl4.QueryType = “Historical”;
#AlarmViewerCtrl4.Requery();
This query displays a list of historical alarms.
u. Switch to Runtime to test.
On your own – Try working with some of the other properties, such as AlarmQuery, which
changes what alarm groups and providers you are getting alarms from; AlarmState, with
values of “All”, “Ack” and “UnAck”; and FromPriority and ToPriority, which allow you to
change the priority range displayed on the alarm object.

Context Sensitive Menu


v. Switch back to Development.
w. Verify that the Show Context Sensitive Menu is enabled.
x. Create the following Condition Scripts for the condition $AccessLevel >=9000.
Condition Type: On True #AlarmViewerCtrl3.ShowContextMenu = 1;
Condition Type: On False: #AlarmViewerCtrl3.ShowContextMenu = 0;
y. Create the following Window Script for the Alarm Database window:
IF $AccessLevel < 9000
THEN
#AlarmViewerCtrl3.ShowContextMenu = 0;
ENDIF;
z. Switch to Runtime and test by logging in as different users and try to get the right-click
functionality.

See the next page for Detailed Lab Instructions

InTouch 10.0 – Advanced Application Development Course


8-28 Module 8 – Alarm Distribution

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Basic Setup
1. Open the window named Alarm Display.
2. Click the Wizard hat and select the AlarmViewerCtrl from the ActiveX Controls group.

3. Place and size this object in the window as appropriate.


4. Double-click the object to bring up its Properties dialog box.

Wonderware Training
Lab 18 – Working With the Alarm Viewer Control 8-29

Note: This ControlName represents what you will see in the Wonderware Training Room.
This Number increments.You will start with 1 when starting a new InTouch Application.

5. Click the Query tab. Basic query configuration is done from the Query tab.

Note: Alarm Queries can be named using the Distributed Name Manager which will be
discussed later in this lab.

6. Retain the defaults and click OK.


7. Switch to Runtime and verify that you are receiving alarms by moving the LocalAlarm slider
up.

InTouch 10.0 – Advanced Application Development Course


8-30 Module 8 – Alarm Distribution

Configuration
8. Switch back to Development.
9. Double click on the Alarm Viewer Control.
10. Select the General tab.
The look and behavior of the alarm control is configured here.
11. Click the Column Details button.

12. Turn on the Alarm Comment column and the security based columns:
Operator, Operator Full Name, Operator Node, and Operator Domain.
13. Change the width of these columns as you feel is appropriate.

Note: You can change column widths at Runtime, but those changes are not retentive.
Setting the column widths here is retentive.

14. Switch to Runtime and note the information being displayed in the columns you have just
turned on. Try logging on as different operators with the Log On and Log Off buttons in this
window.

Wonderware Training
Lab 18 – Working With the Alarm Viewer Control 8-31

Define Queries Using the Distributed Name Manager


The Distributed Name Manager gives you the ability to combine many queries into one Alarm
Group List. Each query may contain a node name and the alarm groups to query. The
Distributed Name Manager supports the use of embedded Alarm Group Lists (i.e., one list can
contain another list).
15. Access the Distributed Name Manager in the Tools pane under Configure or by using the
Special/Configure/Distributed Name Manager menu item.
16. On the Distributed Alarms tab, define an Alarm Group called LocalAlarms.
Enter LocalAlarms in the Name field and \InTouch!$System in the Members field.
Click the Add button:

InTouch 10.0 – Advanced Application Development Course


8-32 Module 8 – Alarm Distribution

17. Create another group called RemoteAlarms whose member is the $System Alarms on the
remote node. [Instructor to provide remote node]

Remote Node
provided by
instructor.

Wonderware Training
Lab 18 – Working With the Alarm Viewer Control 8-33

18. Create another group called AllAlarms whose members are all alarms from the local
application and all alarms from the remote node. Use the Alarm Group RemoteAlarms as
one of the members to satisfy the requirement of all alarms on the remote node.

19. Click on OK when all entries have been made.

InTouch 10.0 – Advanced Application Development Course


8-34 Module 8 – Alarm Distribution

20. Enter one of the groups in the Alarm Query field by double-clicking on the Alarm Viewer
Control:

21. Verify in Runtime.


22. Experiment with changing the names and combining names (separated by a space) in the
Alarm Query field.

Acknowledgement
Alarm acknowledgement with the Alarm Viewer Control has all the same capabilities as the
Distributed Alarm Object, but instead of using standard InTouch Quick Script functions, ActiveX
methods will be used.
23. Switch back to Development.
24. Double click on the button labeled Ack Selected Alarm, and bring up its Action Script.
If you see a script in the buffer, please make sure to clear it out before you start writing the
new script.
25. From the script editing window, click the Insert ActiveX Control button.

Wonderware Training
Lab 18 – Working With the Alarm Viewer Control 8-35

The ActiveX Control Browser will open.


This dialog shows the list of Methods and Properties that are available for use in this script.
26. Select the method AckSelected( “String” ) and click OK.

The Method will be placed in the script window.


27. Change the String argument to produce a comment you feel appropriate.
An example is provided below:

28. Switch to Runtime and test the Acknowledge Selected Alarm button.
On Your Own - Add additional alarm acknowledgement capabilities to this window as you see
fit.

InTouch 10.0 – Advanced Application Development Course


8-36 Module 8 – Alarm Distribution

Queries
With the Alarm Viewer Control, there are several ActiveX Properties of the object that can affect
the query. The properties can either be linked to an InTouch tag, or they can be written to directly
into a script. Whenever any Query Property is changed, it must be followed by the Method
Requery, before any change will be made.
29. Switch back to Development.
30. Double-click on the button labeled Summary and bring up its Action script.
Make sure to clear out anything in the script buffer.
31. Click the Insert ActiveX Control button and select the property QueryType.
This property will accept either Summary or Historical values as a text string.
32. Click the Insert ActiveX Control button again and select the Method Requery().
Modify the script as follows:

33. For the button labeled History, use the same script,
but change the value for the QueryType property to Historical.

34. Switch to Runtime to test.


On your own – Try working with some of the other properties, such as AlarmQuery, which
changes what alarm groups and providers you are getting alarms from; AlarmState, with
values of “All”, “Ack” and “UnAck”; and FromPriority and ToPriority, which allow you to
change the priority range displayed on the alarm object.

Wonderware Training
Lab 18 – Working With the Alarm Viewer Control 8-37

Context Sensitive Menu


The Alarm Viewer Control has a Context Sensitive, or Right-click menu that allows many
functions to be performed without scripting. This menu for the Alarm Viewer Control can be
modified at Runtime.
35. Switch back to Development.
36. Double-click on the Alarm Viewer Control to bring up its Properties dialog box.
37. From the General tab, make sure that the Show Context Sensitive Menu checkbox is
checked.
38. Click the Configure Context Menus… button.

From here, you can see all the items on this menu that at Runtime can be turned off or on as
necessary.
These options can also be controlled individually via scripting, by working with the ActiveX
properties of the object.
39. Retain the defaults and click OK when finished.

InTouch 10.0 – Advanced Application Development Course


8-38 Module 8 – Alarm Distribution

40. Create the following Condition Scripts for the condition $AccessLevel >=9000.
Use the Insert ActiveX Control button to access the ActiveX Methods.

Note: The name of the Alarm Viewer Control increments automatically.


Your number may be different from the one shown in this example.

41. Create the following Window Script for the Alarm Database window:

42. Switch to Runtime.


43. Test by logging in as different users and try to get the right-click functionality.
On your own – Set up the right click or context sensitive functionality as shown using the
Menu properties. Consult the list of properties beginning on page 8-21 for reference:

Users with $AccessLevel Available Options


>= 9000 All Menu Options
< 9000 and >= 8000 Acknowledgement, Query and Suppression options only
< 8000 Acknowledgement and Query options only

Wonderware Training
Section 3 – Alarm Suppression 8-39

Section 3 – Alarm Suppression

Section Objective
z Understand the concept of Alarm Suppression and use this feature effectively in InTouch.

Alarm Visibility Controls


For various reasons, it may be necessary or desirable for you to turn some alarms "off" without
actually removing the alarm configurations for an item. InTouch supports three basic types of
alarm visibility control: disablement, inhibition, and suppression. These are described in terms
of a three-stage alarm model.
z Alarm stimulus: The value or status of an alarmable item is tracked.
z Alarm state: The alarmable item is compared against limits and conditions, to determine if
it is in an alarmed state. State transitions are tracked and reported.
z Alarm annunciation: Reports and updates of the alarm state are displayed and/or
logged via one or more alarm clients.

With this model in mind, the following visibility controls are handled at the Alarm Provider:
z Alarm Disablement: An alarm can be disabled by setting a flag that marks it as
disabled. No other change to the alarm configuration is involved. While an alarm is
disabled, any checking may or may not continue regarding conditions that would put the
item into an alarmed state.
z Alarm Inhibition: An alarm state can be inhibited by identifying a tagname that marks it
as inhibited. This tagname is called an inhibitor tag. No other change to the alarm
configuration is involved. An alarm state can be inhibited by associating a tag with an
alarm state such as a HiHi, or a Rate of Change (ROC). When the inhibitor tagname is
FALSE (or zero), the alarm is handled normally; but when the inhibitor tagname is TRUE
(or non-zero), the item cannot alarm. In essence, it is treated the same as if the alarm
were disabled. We then say that the alarm is actively inhibited, but only for that specific
alarm state. Other alarm states for the tag may still be reported. Alarm inhibition is a two-
stage process:
z Alarm Suppression: With the alarm model in mind, we have the ability to break the
connection between the alarm state and the alarm annunciation. This visibility control is
known as Alarm Suppression. This section outlines both the concept and the steps
necessary to Suppress alarms in InTouch.

InTouch 10.0 – Advanced Application Development Course


8-40 Module 8 – Alarm Distribution

Alarm Suppression
One or more alarms are suppressed at an alarm consumer by filtering, identifying set of exclusion
criteria. If an alarm matches the exclusion criteria, it will not be visible at the alarm consumer,
meaning that it does not appear on a display at that particular alarm consumer. The actual
generation of alarms is completely unaffected by suppression. Essentially, suppression causes an
alarm consumer to ignore certain alarms.
An example of Alarm Suppression might be a scenario where you want an operator to see alarms
only for the section of the system he is responsible for.

Note: Each alarm consumer may see different results based on its own set of exclusion criteria,
thereby making different sets of alarms visible. Essentially, Suppression is a refinement on the
alarm query.

Alarm Suppression applies to the one instance of the Alarm Display Object it is performed from. It
does not apply to other instances of the display object in your application.

Note: Since the actual generation of alarms is unaffected, even while an alarm is suppressed by
one or more alarm consumers, common entries can still be made to the alarm history for the
alarm, assuming the alarm logger itself is not also suppressing the alarm.

Status Bar – Visual Cues of Suppression


The Alarm Viewer Control includes a status bar that contains an indicator stating the query being
used and any active suppression.

Wonderware Training
Section 3 – Alarm Suppression 8-41

Alarm Suppression Methods


Please refer to page 8-23 for more details regarding Methods.

Right-Click Menu
A Right-Click menu is available from the Alarm Viewer Control for quick access to the commands
that you applied to the Control and/or one or more selected alarms, alarm groups, tag names and
priorities contained in the display at runtime.

Note: By default, the Right-Click menu is disabled. Enable the Right-Click menu by checking the
Show Context Sensitive Menu box from the General tab of the Alarm Configuration Dialog.

Script functions can be used to duplicate the options available from the Right-Click menu. The
following choices are available through the Right-Click menu for Alarm Suppression:
z Suppress Selected - Allows the runtime operator to quickly suppress the selected alarm.

z Suppress Others- Allows the runtime operator to quickly suppress all alarms within the
display, or only visible alarms, selected groups, selected tags, or selected priorities.

z Suppression - Allows user to view current suppressions and delete or cancel specific
Alarm Suppressions.

InTouch 10.0 – Advanced Application Development Course


8-42 Module 8 – Alarm Distribution

Wonderware Training
Lab 19 – Alarm Suppression 8-43

Lab 19 – Alarm Suppression


Introduction
InTouch supports the suppression of alarms from alarm providers by using scripting or the context
sensitive (right-click) menu at Runtime. Suppressed alarms are still generated on the alarm
provider, but are not seen on the alarm consumer.
This lab provides the steps necessary to suppress alarms on an alarm consumer. You will use a
second PC with WindowViewer running DemoApp1 or another alarm provider. Wonderware
suggests using multiple alarm providers when available.

Objectives
Upon completion of this lab, you will be able to:
z Create buttons with scripts to suppress all alarms, suppress selected alarms, and
unsuppress all alarms
z Suppress and unsuppress alarms in Runtime using the context sensitive (right-click)
functionality

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

a. On the Alarm Display window, place three buttons labeled as follows:


Suppress All
Suppress Selected
Unsuppress All
b. On the button labeled Suppress All, select the SuppressAll() ActiveX Method for the
Action Script.

Note: Verify that all scripts end with a ; and that they Validate properly.

c. On the button labeled Suppress Selected, Select the SuppressSelected() ActiveX Method
for the Action Script.
d. On the button labeled Unsuppress All, select the UnsuppressAll() ActiveX Method for the
Action Script.
e. Switch to Runtime and test the buttons created above.
f. Make sure the Context Sensitive menu is enabled for the Alarm Viewer Control.
g. Switch to Runtime, right-click on the Alarm Viewer Control and test all the commands
available.

See the next page for Detailed Lab Instructions

InTouch 10.0 – Advanced Application Development Course


8-44 Module 8 – Alarm Distribution

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Method 1 – Alarm Suppression Using Scripting


You will create three new buttons with scripting that will allow you to suppress and unsuppress
alarms in Runtime. The configuration of these buttons is done in Development (WindowMaker).
1. Place three buttons in the Alarm Display window labeled as follows:
Suppress All
Suppress Selected
Unsuppress All

Note: AlarmViewerCtrl1 is the default name for the Alarm Viewer Control in a new
application.
Please verify the name in your own object before doing any scripting!

2. On the button labeled Suppress All, add an Action Script.

3. Click on the Insert ActiveX Control button.


4. Select SuppressAll() from the Method / Property pane and click OK.

Wonderware Training
Lab 19 – Alarm Suppression 8-45

5. This script will suppress all alarms currently shown on the alarm display.
Add a ; to the end of the link and Validate.

6. As an alternate suppression method, select the SuppressSelected() ActiveX Method for the
Action Script on the button labeled Suppress Selected.
This will allow you to select one alarm on the alarm display and suppress just it.

7. In order to see the alarms again, select the UnsuppressAll() ActiveX Method for the Action
Script on the button labeled Unsuppress All.

8. Switch to Runtime and test the buttons created above.


Select an alarm from the display before you use the Suppress Selected button.

InTouch 10.0 – Advanced Application Development Course


8-46 Module 8 – Alarm Distribution

Method 2 – Alarm Suppression Using Right-Click (Context Sensitive Menu)


You can also suppress alarms in Runtime using a Right-Click function.
9. Make sure the Context Sensitive menu is enabled by going into WindowMaker, double-
clicking on the Alarm Viewer Control and checking Show Context Sensitive Menu on the
General tab.

10. Switch to Runtime and Right-Click on the Alarm Viewer Control to get the following menu.:

11. From here, many functions can be selected that can also be done via scripting.
Select Suppress Others > from the menu to bring up the submenu.

Wonderware Training
Lab 19 – Alarm Suppression 8-47

12. Most likely, many of the options will be disabled unless an alarm was selected prior to Right-
Clicking. The two options available here are Suppress All and Suppress Visible.
Select the Suppress Visible option.
13. Right-Click on the Alarm Viewer Control again and select Unsuppress All to unsuppress all
the alarms.

14. Select an alarm that is not coming from your local alarm provider, and then right-click on the
Alarm Viewer Control again. You will note that Suppress Selected is now available, and if
you click on Suppress Others, more options are available there as well.

Note: Best Practices in a production environment will typically suppress only remote alarms.

15. From Suppress Others select Suppress Selected Tags. This will allow you to suppress all
alarms of any type from the selected tag, rather than just the current alarm.

16. When alarms are suppressed, the Alarm Viewer Control visually indicates that alarms are
being suppressed on the status bar.

InTouch 10.0 – Advanced Application Development Course


8-48 Module 8 – Alarm Distribution

17. With one or more alarms suppressed, right-click on the Alarm Viewer Control and select
Suppression.

This will bring up a listing of all alarms that are currently being suppressed on the Alarm
Viewer Control.

18. From here you can unsuppress a particular suppression by selecting it and clicking on Delete.
This will delete it from the suppression list and allow it to be viewed by your alarm consumer.

Wonderware Training
Section 4 – Alarm Tree View Control 8-49

Section 4 – Alarm Tree View Control


The Alarm Tree View Control provides an expandable/collapsible tree structure for displaying
and interacting with the hierarchy of Alarm Providers and Alarm Groups, as shown below:

The Alarm Tree View can show multiple nodes and Alarm Providers. In the tree structure:
z Nodes are represented by a computer icon.
z Alarm Providers are represented by a speaker icon.
z Alarm Groups are represented by a bell icon.
With one or more Alarm Groups selected, you can generate queries for alarms that can be used in
the Alarm Viewer and the Alarm DB View Controls. To select multiple Alarm Groups, hold down
the shift key while clicking on a Group. To un-select all Groups, click on an empty area.
You can configure the Alarm Tree View Control to display any of the following commands on the
Context menu when a user right-clicks on the control in Runtime:
z Refresh – Forces a manual update of the alarms
z Freeze – Stops the alarms from updating
z Query Favorites – Opens the Alarm Query dialog box where you can select an alarm
query from a list of previously defined alarm queries
z Create Query Favorites – Opens the Add Query dialog box with a query string entered
based on the selected Groups (if any)
z Sort – Opens the Sort dialog box where you can sort Alarm Groups in ascending or
descending order
z Statistics – Opens the Alarm Statistics dialog box for viewing the percent of Alarm
Providers retrieved

InTouch 10.0 – Advanced Application Development Course


8-50 Module 8 – Alarm Distribution

On the General tab of the Alarm Tree View Control, you can set many of the same options as the
other alarm controls:

You can set the following Display Mode options:


z Auto Refresh – Updates at the interval entered in the Auto Refresh Interval field
z Manual Refresh – Updates only in response to a Refresh command from either the
Context menu or the Refresh( ) script function
You can also set:
z The expansion level of the tree structure hierarchy
z Alarm Groups to automatically sort in alphabetical order, either ascending or descending
z The ability to select Alarm Groups and allow multiple selections
On the Query tab of the Alarm Tree View Control, you can configure the Alarm Query and Query
Favorites.

You can specify the same alarm queries used in other alarm objects. This field supports Alarm
Groups created using the Distributed Name Manager. You can also use the Query Favorites File
created in other objects.

Wonderware Training
Section 4 – Alarm Tree View Control 8-51

General Properties for Alarm Tree View Control

Property Name Purpose


AlarmQuery Displays the initial Alarm Query and allows you to change the query. The valid syntax
is \\<node>\<provider> OR \<provider>.
ElementSelection This property controls whether an element in the tree can be selected or not.
Font Sets the font for the display of records and the heading in the control.
FreezeMenu Boolean Property. Enables/Disables "Freeze" menu item.
HeaderText Sets the text that appears in the header of the Tree Control.
MultiSelection This property allows you to select multiple elements in the Tree Control.
QueryFavoritesFile String Property. Returns/Sets the query favorites file name.
QueryFavoritesMenu Enables/Disables "QueryFavorites" menu item.
QueryStartup Automatically begins updating the display using default query properties, if selected.
If not selected, you need to perform a Requery before the display will update.
RefreshMenu Returns or sets a value that determines whether the "Refresh" menu item appears in
the context-sensitive menu.
SelTextBackColor Sets the background color for the selected element.
Sets the text color for the selected element.
ShowContextMenu Enables the activation of the right-click popup menu.
ShowHeading Shows the title bar of the control.
ShowStatusBar Returns or sets a value that determines whether the status bar is shown. The status
bar contains three indicators: A status message, current alarm query, and a progress
bar. These indicators provide an overview of the current state of the display query
and provide details about the suppression available in the Alarm Tree Viewer Control.
SilentMode Returns or sets a value that determines whether the control is in Silent mode.
SortElements Enables/disables sorting in the control.
SortMenu Boolean Property. Enables/Disables Sort menu item.
SortOrder String Property. Returns/Sets the sort direction. Possible values are "Ascending" and
"Descending," represented as 0 and 1 respectively.
StatsMenu Boolean Property. Enables/Disables Stats menu item.

InTouch 10.0 – Advanced Application Development Course


8-52 Module 8 – Alarm Distribution

Methods and Events for Alarm Tree View Control

Method Name Purpose


AboutBox Shows the About dialog box.
Example #AlarmTreeViewerCtrl1.AboutBox();
where the name of the control is AlarmTreeViewerCtrl1.
CheckElementMembership Checks if the descendant tree element is part of the ancestor tree element.
Example DiscTag =
#AlarmTreeViewerCtrl1.CheckElementMembership("","GroupA",
"GroupB");
DiscTag = #AlarmTreeViewerCtrl1.CheckElementMembership("\\NodeName",
"GroupA", "GroupB");
DiscTag = #AlarmTreeViewerCtrl1.CheckElementMembership("\InTouch",
"GroupA", "GroupB");
DiscTag =
#AlarmTreeViewerCtrl1.CheckElementMembership("\\NodeName\InTouch",
"GroupA", "GroupB");
where the name of the control is AlarmTreeViewerCtrl1 and DiscTag is a Discrete
Tag
Freeze Freezes the alarm tree view.
Example Tag1 = 1;#AlarmTreeViewerCtrl1.Freeze(Tag1);
where Tag1 is defined as Memory Discrete tag and the name of the control is
AlarmTreeViewerCtrl1.
GetElementCount Gets the total number of elements in the tree.
Example nTag1 = #AlarmTreeViewerCtrl1.GetElementCount();
where the name of the control is AlarmTreeViewerCtrl1 and nTag1 is an integer or
real tag.
GetElementPath Gets the element path corresponding to the index, down to the indicated
expansion level.
Example StrTag =
#AlarmTreeViewerCtrl1.GetElementPath(17, 4);
where the name of the control is AlarmTreeViewerCtrl1, StrTag is a message tag,
and returns the path of the element at index 17 up to 4 levels.
GetSelectedElementName Gets the name of the selected element on the Tree View control.
Example StrTag =
#AlarmTreeViewerCtrl1.GetSelectedElementName();
where the name of the control is AlarmTreeViewerCtrl1 and StrTag is a message
tag.
GetSelectedElementPath Gets the path of the selected element to the indicated expansion level.
Example StrTag =
#AlarmTreeViewerCtrl1.GetSelectedElementPath(3);
where the name of the control is AlarmTreeViewerCtrl1 and StrTag is a message
tag.

Wonderware Training
Section 4 – Alarm Tree View Control 8-53

Method Name Purpose


GetSubElementCount Gets the total number of sub-elements from the indicated element.
Example nTag1 =
#AlarmTreeViewerCtrl1.GetSubElementCount("","Group1");
nTag1 = #AlarmTreeViewerCtrl1.GetSubElementCount("\\NodeName","Group1");
nTag1 = #AlarmTreeViewerCtrl1.GetSubElementCount("\InTouch","Group1");
nTag1 =
#AlarmTreeViewerCtrl1.GetSubElementCount("\\NodeName\InTouch","Group1");
where the name of the control is AlarmTreeViewerCtrl1 and nTag1 is an integer or
real tag.
GetSubElementName For the indicated element, gets the name of the sub-element at the corresponding
index.
Example StrTag =
#AlarmTreeViewerCtrl1.GetSubElementName("","Group1", 0);
StrTag = #AlarmTreeViewerCtrl1.GetSubElementName("\\NodeName","Group1",
0);
StrTag = #AlarmTreeViewerCtrl1.GetSubElementName("\InTouch","Group1", 0);
StrTag = #AlarmTreeViewerCtrl1.GetSubElementName("\\NodeName\InTouch",
"Group1", 0);
where the name of the control is AlarmTreeViewerCtrl1 and StrTag is a message
tag.
GetSubElementPath Gets the path of the sub-element from the index of the element name to the
indicated expansion level.
Example StrTag =
#AlarmTreeViewerCtrl1.GetSubElementPath("","Group1", 0, 3);
StrTag = #AlarmTreeViewerCtrl1.GetSubElementPath("\\NodeName", "Group1",
0, 3);
StrTag = #AlarmTreeViewerCtrl1.GetSubElementPath("\InTouch","Group1", 0, 3);
StrTag = #AlarmTreeViewerCtrl1.GetSubElementPath("\\NodeName\InTouch",
"Group1", 0, 3);
where the name of the control is AlarmTreeViewerCtrl1 and StrTag is a message
tag.
SetQueryByName Sets the current query as specified by the query name passed. The query name
must be in the query favorites file.
Example
#AlarmTreeViewerCtrl1.SetQueryByName("TurbineQueries");
where the name of the control is AlarmTreeViewerCtrl1.
SetQueryByString Sets the current query as a new string specifying a new collection of Alarm
Providers.

InTouch 10.0 – Advanced Application Development Course


8-54 Module 8 – Alarm Distribution

Wonderware Training
Lab 20 – Configure an Alarm Tree View Control 8-55

Lab 20 – Configure an Alarm Tree View


Control
Introduction
In this lab you will place an Alarm Tree View ActiveX Object in an InTouch window to assist in the
modification of the query for an alarm object.

Objectives
Upon completion of this lab, you will be able to:
z Place an ActiveX Alarm Tree View Control object in an InTouch window
z Configure the Alarm Tree View Control to connect to a database

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

a. Open the Alarm Display window and place an AlarmTreeViewCtrl ActiveX control on the
window and size it appropriately.
b. Define a query in the Alarm Tree View Control.
c. Add the following script named TreeClick to the Click event:
(use the ActiveX Control Browser to insert the control properties):
DIM sQuery AS MESSAGE;
sQuery=#AlarmTreeViewerCtrl1.GetAlarmQueryFromSelection();
#AlarmViewerCtrl1.AlarmQuery = sQuery;
#AlarmViewerCtrl1.Requery();
d. Draw a button labeled Default.
Apply a Touch / Action Script with a Condition Type On Left Click/Key Down.
#AlarmViewCtrl1.Apply Default Query;
e. Go to Runtime and test by clicking an Alarm Group in the Alarm Tree View Control.
Click the Default button to return to the default query.
f. On your own, create another Alarm Group, define a tag with alarm states, and assign the tag
to the Alarm Group. You could then add a Slider to the window to trigger alarms in that group.

See the next page for Detailed Lab Instructions

InTouch 10.0 – Advanced Application Development Course


8-56 Module 8 – Alarm Distribution

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Place an Alarm Tree View Control in an InTouch Window


Now we will add the Alarm Tree View Control to the Alarm Display window (or a window
designated by your instructor) and test its functionality.

Note: If this window has a different name, your instructor will provide it.

1. Click the Wizard toolbar icon .


2. In the ActiveX Controls list, select AlarmTreeViewerCtrl (Alarm Tree View Control) and click
OK.
3. Place the control below the Alarm Viewer Control and resize it as shown below:

Wonderware Training
Lab 20 – Configure an Alarm Tree View Control 8-57

Configure the Alarm Tree View Control ActiveX Object


4. Double-click the Alarm Tree View Control to open its Properties.
5. Click the Query tab.
6. Define a query.

If you did not create Alarm


Groups using the Distributed
Name Manager, use the
system default query:
\\<NodeName>!$System

7. Click the Events tab.


8. Next to the Click event, click the blank cell in the Script column.

9. Double-click the cell to open the ActiveX Event Scripts editor.

InTouch 10.0 – Advanced Application Development Course


8-58 Module 8 – Alarm Distribution

10. In the Name field, type TreeClick.


11. Clear the script window and enter the following script
(use the ActiveX Control Browser to insert the control properties):
DIM sQuery AS MESSAGE;
sQuery=#AlarmTreeViewerCtrl1.GetAlarmQueryFromSelection();
#AlarmViewerCtrl3.AlarmQuery = sQuery;
#AlarmViewerCtrl3.Requery();

Note: Verify the number of your Alarm Viewer Control in these scripts.

12. Click Validate, and then click OK twice.

13. Draw a button labeled Default.


Apply a Touch / Action Script with a Condition Type On Left Click/Key Down.
#AlarmViewerCtrl3.ApplyDefaultQuery();

Wonderware Training
Lab 20 – Configure an Alarm Tree View Control 8-59

14. Go to Runtime and test by clicking an Alarm Groups in the Alarm Tree View Control.
Click the Default button to return to the default query.

15. On your own, create another Alarm Group, define a tag with alarm states, and assign the tag
to the Alarm Group. You could then add a Slider to the window to trigger alarms in that group.

InTouch 10.0 – Advanced Application Development Course


8-60 Module 8 – Alarm Distribution

Wonderware Training
Section 5 – Alarm Hot Backup Manager 8-61

Section 5 – Alarm Hot Backup Manager

Section Objective
z Configuration the Hot Backup nodes for failover authentication.

Hot Backup and Synchronization


The InTouch Distributed Alarm System provides the capability for Alarm Provider applications,
such as InTouch, to issue notifications and to receive acknowledgments about alarms across a
network. It also provides the capability for Alarm Consumer applications (clients) on remote nodes
to query, display, and acknowledge these alarms. In a distributed alarm environment there may be
a number of Alarm Providers and Alarm Consumers connected across the network.
In addition, it is possible to configure some of the Alarm Providers as backups to other Alarm
Providers in the system. The purpose of having a backup Alarm Provider is to establish a fail-safe
system – to ensure that alarms will be generated for certain critical circumstances by having a
secondary Alarm Provider take over issuing alarm notifications if the primary Alarm Provider
fails. For example, you can set up two separate computer nodes running identical InTouch
applications interfacing to the same equipment, perhaps even with a redundant set of I/O
connections. Alternatively, the primary Alarm Provider may be a "full-blown" application, while the
secondary Provider is a "minimal" system, handling only the most critical parts to keep the
equipment functioning and undamaged. Generally, only certain key Alarm Providers will be
backed-up with secondary Alarm Providers.
To set up a backup configuration, you define a Hot Backup pair, giving it a name and identifying a
primary Alarm Provider and a secondary Alarm Provider.

Note: The alarms from the secondary provider should be displayed only when the primary
provider is inactive.

The idea of a backup configuration is that the Alarm Consumer (client) uses an alarm query that
references the name of the Hot Backup pair. For that pair the client sees only one set of alarms:
the alarms from the primary, or if the primary has failed, the alarms from the secondary. In
addition, the acknowledgements for the alarms on the primary and secondary are completely
synchronized. That is, if an alarm has been acknowledged on the primary Provider it is also
acknowledged on the secondary Provider.
The InTouch Distributed Alarm System Hot Backup and Synchronization feature accomplishes the
following:
a. Configuration utility that simplifies the process of establishing alarm backup pairs and
designating which is primary and which is secondary.
b. Configuration utility to perform alarm mapping.
c. Built-in synchronization of alarm acknowledgments.
d. Handshaking during the startup/shutdown of an Alarm Provider.

InTouch 10.0 – Advanced Application Development Course


8-62 Module 8 – Alarm Distribution

Notes Regarding Hot Backup Pairs


a. Hot Backup only supports InTouch 7.11 or later.
b. Hot Backup is not recommended for Expanded Summary Alarms or for event-oriented alarms.
c. If you have an alarm client (Distributed Alarm display object) query a Hot Backup pair and then
have it also query the Primary Provider of the backup pair once again separately, the
Distributed Alarm display object will display duplicate records.
d. A Provider should not be configured as a primary or secondary of more than one Hot Backup
pair.
e. If a record at the Primary Provider is acknowledged and the Secondary Provider (which was
down when the acknowledgment took place) comes up at a later time, the time stamp of the
acknowledged record at the secondary Provider will be that of the secondary Provider and will
not be identical to the primary Provider.
f. The alarm client (Distributed Alarm display object) querying a Hot Backup pair, will show the
pair name as the Provider in the respective column, and will not show the Provider node
name.
g. You can choose any combination of Design-Time and Run-time alarm record fields for
mapping. However, it is important that you ensure that the mappings do not result in multiple
references.
h. When mapping the Value and Limit key fields, the values are rounded off to the fourth decimal
place and then mapped.
i. The alarm record that doesn’t have the specific combination of design and runtime mapping
will use the default runtime mapping.
j. Local node acting as a Hot Backup client can also be configured as one of the Hot Backup
Providers.

Wonderware Training
Section 5 – Alarm Hot Backup Manager 8-63

Hot Backup Configuration Example


The Hot Backup Synchronization Utility takes care of all necessary Hot Backup configurations.
The Hot Backup Utility is automatically added to WindowMaker's Application Explorer when you
install InTouch.
This section provides you with a sample user scenario for setting up and implementing Alarm Hot
Backup Pairs.
Let's assume that you have three machines with InTouch installed on them. Two of the machines
(MachineA and MachineB) are running "identical" InTouch Alarm Provider applications.
MachineA's application can generate two summary alarms with the names Tag1 and Tag2.
MachineB's application can generate two logically identical alarms, MapTag1 and MapTag2,
respectively.
Your third machine is an InTouch Alarm Consumer that is configured for Hot Backup.

Configure the Hot Backup Pair(s)


a. Create a new InTouch application on the client node.
b. Launch WindowMaker.
c. Double-click the Alarm Hot Backup Manager item in the Application Explorer.
The Alarm Hot Backup Manager dialog box appears.

Note: By default, the utility automatically checks for the provacc.ini file in the last opened
InTouch application folder. If the file is available, the utility will configure itself with the file.
Otherwise, the utility will create a new file in the required folder.

InTouch 10.0 – Advanced Application Development Course


8-64 Module 8 – Alarm Distribution

Change the Default .INI File


a. Launch WindowMaker.
b. Double-click the Alarm Hot Backup Manager icon in the Application Explorer.
The Alarm Hot Backup Manager dialog box appears.
c. Select the Open command on the File menu.
The Open dialog box appears listing all available provacc.ini files.
This dialog box allows you to select only a provacc.ini file.
d. Change the path as necessary and then click Open.

It is recommended that the provacc.ini file is located in the application directory.

Wonderware Training
Section 5 – Alarm Hot Backup Manager 8-65

Add a New Hot Backup Pair


a. Launch WindowMaker.
b. Double-click the Alarm Hot Backup Manager item in the Application Explorer.
The Alarm Hot Backup Manager dialog box appears.
c. Click New Pair.
The Add New Pair dialog box appears.

d. For this example, type Pair1 in Hot Backup Pair Name box.
e. In the Hot Backup Pair Name box, type a unique name for the new pair.
Pair names can be up to 32 alphanumeric characters long.

Note: Provider and Group Names can also be up to 32 alphanumeric characters.

Note: Duplicate pair names are not allowed. Underscore is the only special character that is
allowed at the beginning, middle or at the end of the Hot Backup pair name.

f. Since your primary Alarm Provider InTouch application is running on MachineA with Alarm
Group $System, configure the Primary Node group's fields as follows:
z Primary Node Name = MachineA
z Primary Node Provider = InTouch
z Primary Node Group is $System.
g. Since your secondary Alarm Provider InTouch application is running on MachineB with Alarm
Group $System, configure the Backup Node group's fields as follows:
z Backup Node Name = MachineB
z Backup Node Provider = InTouch
z Backup Node Group is $System

InTouch 10.0 – Advanced Application Development Course


8-66 Module 8 – Alarm Distribution

h. After this configuration is completed, click OK to save our new backup pair.

Note: You must execute the Save command on the File menu to save all your changes to the
INI files. You will be prompted to save changes before exiting the utility.

Next, you need to map your key fields, if the two InTouch Applications are not identical.

Setting Key Fields for Alarm Records


To achieve synchronization, you must identify a combination of alarm record fields such that the
composite value of these fields uniquely generates a mapping key. The composite mapping key
fields can be a mix of both design-time and runtime.

Map Alarm Record Key Fields


a. Double-click the Alarm Hot Backup Manager item in the Application Explorer.
The Alarms Hot Backup Manager dialog box appears.
b. Select the Hot Backup pair, Pair1 in the list.
c. Click Set Key Fields.
d. The Select Key Fields dialog box appears.

e. Since you are mapping alarms via the alarm name and the values are different for the two
providers. Select the Alarm Name and Design-Time options.

Wonderware Training
Section 5 – Alarm Hot Backup Manager 8-67

f. In the Alarm Record Fields group, select the fields that you want to include in the mapping
key list. The selected fields are added to the Selected Fields list box.
g. Select the Design-Time option for the respective alarm record fields whose possible values
are different and known at design time of the application. For example, in the case of an
InTouch Provider, the "Name" field value is known at design time because it takes on the value
of the tagnames defined in the primary and backup node applications. By default, Alarm
Name as Run-Time is pre-selected.

Note: The Alarm Record Fields can be configured during runtime or design time. All design
time fields are carried forward to the Map Alarm Records dialog box for any tagname
mappings.

h. Click OK to save our configuration.


A Hot Backup Configuration message box appears prompting us to save your configuration.
i. Click Yes.
You are now ready to create your .csv file that will contain all of our alarm record mappings.

Note: At runtime, if the design time key is a part of the composite key, and the primary
provider cannot find the mapping entry for that key in the mapping table, Hot Backup will
automatically find the alarm with the same tagname in the backup provider and send an
acknowledgement to the corresponding alarm and vice versa.

InTouch 10.0 – Advanced Application Development Course


8-68 Module 8 – Alarm Distribution

Mapping Alarm Records


You will need to map your Alarm Providers whenever the primary and secondary Alarm Providers
are not identical applications. For example in a case where the primary is a "full-blown"
application and the secondary is a "minimal" application, the names of the alarms might not be the
same. Alarm Provider mapping establishes a correspondence between the primary and the
secondary, so that when an alarm is acknowledged on one Provider, the Distributed Alarm System
knows which alarm to acknowledge on the other.

Note: The mappings are imported from a .csv (comma separated variable) file that you will need
to create using any simple text file editor or Microsoft Excel®. The alarm field names must match
those contained in the Map Alarms Records dialog box. Otherwise, the import will abort and
display a warning message box.

Each Hot Backup pair is identified by an application level unique name. Following our example:

Hot Backup Pair Name PrimaryNode!Provider BackupNode!Provider


BoilerRoom1 MachineA!InTouch MachineB!InTouch

Note: To simplify the work for you, if no map is provided, the Distributed Alarm System assumes
that the same alarms are on both the primary and the secondary.

You can combine the field values of alarm records – such as Group, name, and Priority – to
generate a "composite mapping key" that uniquely identifies alarm records.
An InTouch Alarm Provider equates the "Name" field to the name of the tagname that generated
the alarm. Therefore, when given Hot Backup pair, a mapping key can be generated using the
combination of Group and "Name" field.
For example:

Provider Node Backup Node


$System!TagA $System!TagB

If a provider has a name field and comment field together as a unique field then the mapping key
can be a combination of name and comment.

Provider Node Backup Node


tagA!CommentA tagB!CommentB

This could be true for any other field combination for a third provider.

Wonderware Training
Section 5 – Alarm Hot Backup Manager 8-69

Details Required for the Import File


The following situations will prevent a file from importing:
z The required number of columns should be filled with values for all the records at the
import file. There should never be fewer values or more values for any record.
z The headings at the import file should be the same as that of the headings at the Map
Alarm Records dialog box and should be in the same order.
For the following cases, if a record that is imported has a wrong entry, the user will be prompted to
skip that particular record number, or to abort the importing process itself.
z The Group column values should not have blank spaces.
z The Name column values should not have blank spaces.
z The Class column values can never be any value other than VALUE, DEV, ROC, and
DSC.
z The Type column values can never be any value other than LOLO, LO, HI, HIHI, MinDev,
MajDev, ROC, and DSC.
z The Priority column values should be numbers from 1 to 999.
z The Value and Limit column values can be anything other than Null, when the Class or
Type values for that particular record in that particular node are not known.
z The Value and Limit column values can accept only 1234567890.-+eE characters when
the Class value for that particular record in that particular node is known as Value, Dev or
ROC.
z The Value and Limit column values can accept only 1234567890.-+eE characters when
the Type value for that particular record in that particular node is known as LOLO, LO, HI,
HIHI, MinDev, MajDev or ROC.
z The Value and Limit column values can be anything other than Null, when any one of the
Class or Type values for that particular record in that particular node is known as DSC.
z The Comment column values have no limitations.
z Duplicate records should not be present in the import file. If duplicate records are there,
then they will be automatically skipped and the details will be given to the user after the
import process is completed.

InTouch 10.0 – Advanced Application Development Course


8-70 Module 8 – Alarm Distribution

To create an alarm mapping .CSV file


In our user scenario we have three machines with InTouch installed on them. Two of the machines
(MachineA and MachineB) are running "identical" InTouch Alarm Provider applications.
MachineA's application can generate two summary alarms with the names Tag1 and Tag2.
MachineB's application can generate two logically identical alarms, MapTag1 and MapTag2,
respectively.
Therefore, you need to create a .csv file named pair1.csv that contains your alarm record
mappings using Microsoft Excel®. The mappings are imported from this .csv file.

The alarm record mapping ensures that when an alarm is acknowledged on one Alarm Provider,
the Distributed Alarm System knows which alarm to acknowledge on the other Alarm Provider.

Note: The alarm field names must match those contained in the Map Alarm Records dialog box.
Otherwise, the import will abort and display a warning message box.

You are now ready to import our .csv file containing all of your alarm record mappings.

Wonderware Training
Section 5 – Alarm Hot Backup Manager 8-71

Import Alarm Record Mapping .csv File


a. Launch WindowMaker.
b. Double-click the Alarm Hot Backup Manager item in the Application Explorer.
The Alarm Hot Backup Manager dialog box appears.
c. Select Pair1 in the list and then, click Map Alarms.

A blank Map Alarm Records dialog box appears.


d. Click Import.
The Open dialog box appears.
e. Locate and select your .csv file (pair1.csv), and then click Open.
The Distributed Alarm System begins the import process.
f. Click OK once the importing process is complete.

You are now ready to run Hot Backup applications.

InTouch 10.0 – Advanced Application Development Course


8-72 Module 8 – Alarm Distribution

To Run Hot Backup


a. Start up both Alarm Provider applications.
b. At runtime, generate the alarms Tag1, Tag2, MapTag1, MapTag2.
c. In the client application, create a Distributed Alarm Display object with a Pair1 query (the
name of our Hot Backup pair).
d. Run the client application displaying the window containing our Distributed Alarm Display
object.
e. The Distributed Alarm Display object is now displaying alarms of Machine A.
f. At the primary Alarm Provider, MachineA, acknowledge an alarm such as Tag2.
g. The corresponding mapped alarm, MapTag2, on the secondary Alarm Provider, MachineB is
automatically acknowledged.

Wonderware Training
Section 5 – Alarm Hot Backup Manager 8-73

Edit an Existing Hot Backup Pair


a. Launch WindowMaker.
b. Select the Hot Backup Pair Name that you want to modify and then click Modify Pair.
The Configure Hot Backup Pair dialog box appears.

Note: The node name for a particular application must be unique for the entire Hot Backup
listing. An appropriate error message box appears if you enter wrong or duplicate entries.

c. Edit the desired fields and then click OK.

Note: You must execute the Save command on the File menu to save all your changes to the
INI files. You will be prompted to save changes before exiting the utility.

Delete an Existing Hot Backup Pair


a. Launch WindowMaker.
b. Select the Hot Backup pair you want to delete, then click Delete Pair.
A message box appears asking you to confirm the deletion.
c. Click Yes.

Note: You must execute the Save command on the File menu to save all your changes to the INI
files. You will be prompted to save changes before exiting the utility.

InTouch 10.0 – Advanced Application Development Course


8-74 Module 8 – Alarm Distribution

Wonderware Training
Lab 21 – Configure the Alarm Hot Backup Manager 8-75

Lab 21 – Configure the Alarm Hot Backup


Manager
Introduction
In this lab, you will configure a backup alarm provider. You will also test this configuration by
disconnecting or shutting down the primary alarm provider and then observing the outcome as
InTouch switches to the backup alarm provider – and then back again.
You will use three computers for this lab. Two will function as alarm providers, preferably with
identical InTouch Applications running and one will function as an alarm consumer.

Objectives
Upon completion of this lab, you will be able to:
z Configure the Alarm Hot Backup Manager for a Primary and Secondary node
z Configure the Alarm Display to query the Hot Backup pair
z View changes in Runtime as the Primary node is active and then inactive

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

a. Open the Alarm Hot Backup Manager and configure a New Pair.
b. Name the pair and enter the Node Names for the Primary and Backup nodes and save your
changes.
c. Activate the Alarm Viewer Control Properties dialog box and provide the name of your Hot
Backup Pair in the Alarm Query field of the Alarm Viewer Control.
d. Go to Runtime on all three nodes.
You should now see alarms from the Primary node on the Alarm Consumer’s Alarm Display.
Verify that your Alarm Display is collecting information from the respective nodes.
e. Shut down WindowViewer on the Primary node.
You should now see alarms from your Backup node on the Alarm Consumer’s Alarm Display.
Test back and forth.

See the next page for Detailed Lab Instructions

InTouch 10.0 – Advanced Application Development Course


8-76 Module 8 – Alarm Distribution

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Configure a New Hot Back Pair


The basis of the Alarm Hot Backup is to create pairs of alarm providers. When the primary alarm
provider fails to provide alarms, the backup provider will seamlessly take over.
1. Close WindowViewer if it is running.
2. In the Tools pane, click Applications and double-click Alarm Hot Backup Manager.

The Alarm Hot Backup Manager dialog box appears.

3. Click the New Pair button in the Alarm Hot Backup Manager dialog box.

Wonderware Training
Lab 21 – Configure the Alarm Hot Backup Manager 8-77

4. Enter a Hot Backup Pair Name for your pair in the Add New Pair dialog box.
Enter the node information for the Primary and Backup nodes.
5. Click OK.

Node Names provided


by instructor.

Note: You instructor will provide Node Names for the computers you will connect to.

6. Select File / Save to save your changes, and then close the dialog box.
You can also simply close the dialog box at which time you will be prompted to save your
work.

InTouch 10.0 – Advanced Application Development Course


8-78 Module 8 – Alarm Distribution

7. Double-click the Alarm Viewer Control to open the Alarm Viewer Control Properties
dialog box.
8. Click the Query tab and provide the name of your Hot Backup Pair in the Alarm Query field.
Click OK.

9. Go to Runtime on all three nodes.

Note: InTouch WindowViewer should already be running on your instructor provided nodes.

You should now see alarms from the Primary node on the Alarm Consumer’s Alarm Display.
Verify that your Alarm Display is collecting information from the respective nodes.
10. Your instructor will shut down WindowViewer on the Primary node.
You should now see alarms from your Backup node on the Alarm Consumer’s Alarm Display.
Test back and forth.

Note: WindowViewer will need to be running on the specified nodes in order for you to view
the data. When your Primary node goes down you will note that the Backup node will
continue. Also, This is MUCH easier if Applications on the Alarm Providers are identical. If
they are not identical, you can “map” them.

Wonderware Training
Section 6 – Alarm Printer 8-79

Section 6 – Alarm Printer

Section Objective
z Configure an InTouch node to easily print alarms using Alarm Printer.

Overview
The Alarm Printer is an alarm consumer that can be used across multiple nodes in a separate,
standalone utility.
To improve performance, you can simultaneously run multiple instances of the Alarm Printer.

InTouch 10.0 – Advanced Application Development Course


8-80 Module 8 – Alarm Distribution

The Alarm Printer Toolbar


The tools on the Alarm Printer toolbar provide you with quick access to all Alarm Printer
commands.

Tool Description
Create a new Alarm Printer configuration file.

Open an existing Alarm Printer configuration file.

Save the current Alarm Printer configuration file to disk.

Configure Alarm Query.

Start/Stop a Query.

Enable/Disable Printing.

Enable/Disable Logging.

Access the Alarm Printer by clicking on Applications in the Classic View.


Double-click Alarm Printer.

Wonderware Training
Section 6 – Alarm Printer 8-81

Working with the Alarm Printer


When you initially start the Alarm Printer, the Alarm Printer window appears displaying the Alarm
Printer default configuration settings.

Creating a New Alarm Printer Configuration File

a. Click on the New button on the toolbar.


The Alarm Printer will default to:
Alarm State: ALL and
Priority: 1-999.
Printer Port or name will default to <none>.
b. Click on the Configure button.

The Configuration Settings dialog box appears.

InTouch 10.0 – Advanced Application Development Course


8-82 Module 8 – Alarm Distribution

Configuring Query Properties


a. Click the Query tab.
In the From Priority field, type the highest priority alarm value
(1 to 999).
b. In the To Priority field, type the lowest priority alarm value (1 to 999).

Note: Each alarm configured in InTouch has a priority value associated with it.

This value represents the severity of the alarm and can range from 1 to 999 with 1 being the
most severe.
c. Click the Alarm State arrow and select the state from the drop-down list.
The default is All.

Wonderware Training
Section 6 – Alarm Printer 8-83

Configuring Message Properties


a. Click the Message tab to activate the Message property sheet:

Hint: Each option you select will appear as a separate field in the generated report. Fields
that are set to specific character lengths will be truncated at those limits.

b. Select Date to display the date in the alarm message and then click on the arrow to select a
format for the date. The available formats are:

Selection Display Selection Display


DD MMM 28 Feb MM/DD 02/28
DD MMM YYYY 28 Feb 2008 MM/DD/YY 02/28/08
DD/MM 28/02 MMM DD Feb 28
DD/MM/YY 28/02/08 MMM DD YYYY Feb 28 2008

InTouch 10.0 – Advanced Application Development Course


8-84 Module 8 – Alarm Distribution

The default date format for Alarm Logger is:


DD MMM YYYY where:
z DD is the day of the month
z MMM is the month
z YYYY is the year

Note: The time field of alarm records is always in GMT, regardless of the time zone settings
for the computer.

c. Select Time to display the time in the alarm message and then click on the arrow to select a
format for the time. The values in this field are used as a template to specify the format of the
time. For example, to specify the time as 10:24:30AM, use HH:MM:SS AP. The template
characters are as follows:

AP Selects the AM/PM format. For example, three o’clock in the afternoon is displayed as
3:00 PM. A time without this designation defaults to 24 hour military time format. For
example, three o’clock in the afternoon is displayed as 15:00.
HH Displays the hour the alarm/event occurred.
MM Displays the minute the alarm/event occurred.
SS Displays the second the alarm/event occurred.
SSS Displays the millisecond the alarm/event occurred.

d. In the sort order box below Time, select the order that the alarms will be sorted in the alarm
object. There are three choices:

LCT Last Changed Time (sort order)


LCT But OAT on ACK
OAT Original Alarm Time

e. Select Alarm State (UnAck,Ack) to display the state of the alarm.


f. Select Alarm Class (VALUE.DEV, ROC..) to display the category of the alarm.
g. Select Alarm Type (HIHI,LO,MAJDEV,…) if you want to display the alarm type.
h. Select Priority if you want to display the alarm priority.
i. Select Alarm Name to display the alarm/tagname. In the Length field, enter the number of
characters that you want displayed (32 characters maximum).
j. Select Group Name to display the Alarm Group name. In the Length field, enter the number
of characters that you want displayed (32 characters maximum).
k. Select Alarm Provider to display the name of the alarm provider. In the Length field, enter
the number of characters that you want displayed (32 characters maximum).
l. Select Value at Alarm to display the value of the tagname when the alarm occurred. In the
Length field, enter the number of characters that you want displayed.

Hint: The value should be large enough to provide the desired level of precision (15
characters maximum).

Wonderware Training
Section 6 – Alarm Printer 8-85

m. Select Limit to display the alarm limit value of the tagname. In the Length field, enter the
number of characters that you want displayed.

Hint: The size of this field should be large enough to provide the desired level of precision (32
characters maximum).

n. Select Operator to display the logged-on operator’s ID associated with the alarm condition.
Enter a value in the Length field to control the number of characters displayed (16 characters
maximum).
Select Comment to display the tagname’s comments. These comments were typed in the
Comments field when the tagname was defined in the database. In the Length field, enter
the number of characters that you want displayed (50 characters maximum).
o. Select User Defined to show the tagname.

Hint: The User Defined field length can be modified to display additional information by your
application developer. The size of this field should be large enough to provide the desired
level of precision (32 characters maximum).

InTouch 10.0 – Advanced Application Development Course


8-86 Module 8 – Alarm Distribution

Configuring File Logging Properties


a. Click the File Logging tab to activate the File Logging property sheet:
b. Enable Alarm File Logging.
c. Select the Directory where the files will be stored.
d. Select the recurring time elements for File Logging.
e. Click Apply and OK.

Wonderware Training
Section 6 – Alarm Printer 8-87

Configuring Alarm Printer Printing


a. Open the Alarm Printer Configuration Settings dialog box.
b. Click the Printing tab.
c. For local printing, select the port for the printer you want Alarm Printer to use to print reports.

Note: The printer that you use to print your alarm log reports should not be used for other
printing, as this will interfere with the Alarm Printer.

d. Click Port Configuration to configure your COM ports.


e. For network printing, click the Printer radio button.
Click Browse and select the desired network printer.

Note: Wonderware recommends a printer dedicated to alarm printing, even when used over a
network.

f. Click Apply.
g. Click OK.

InTouch 10.0 – Advanced Application Development Course


8-88 Module 8 – Alarm Distribution

Running an Alarm Query


Each query logs all of the alarms specified in the Alarm Logger Configuration File that is currently
open or by the settings currently selected during Alarm Printer configuration if no file has been
specified.
You may run multiple queries with Alarm Printer, each query specifying different parameters. Each
query will be conducted by a separate instance of Alarm Printer. If two instances of Alarm Printer
are running the same query, the entries will be duplicated. While Alarm Printer is running, you can
manually start or stop queries as follows:

Starting or Stopping a Query


a. Click on the Start/Stop Query tool on the toolbar.
This is a toggle on and off.

Alarm Printer Output


Printing is the only Output available.

Click the Enable/Disable Printing button on the toolbar to toggle the printing output on and
off.
Any or all of these tools can be used.

Wonderware Training
Section 7 – Alarm Databasing Tools 8-89

Section 7 – Alarm Databasing Tools

Section Objective
z Understanding and configuration the Alarm DB Logger Utility.
z Configure and use the Alarm Pareto Control ActiveX alarm object.

Alarm DB Logger Manager Utility


The InTouch Distributed Alarm system includes the Alarm DB Logger Manager utility that logs
alarms and events to Microsoft® SQL Server and/or Microsoft® Data Engine (MSDE).

Note: MSDE is a de-featured version of SQL Server that has its own special attractions. High on
the list is the ease with which you can attach databases initially built for MSDE to a full SQL Server
service. There is no need to upsize the database or copy individual tables in a database from
MSDE to a full SQL Server. This makes it more suitable for environments where it isn't cost
effective to deploy vast computer resources. The maximum size of an MSDE database is 2 GB.

Alarm DB Logger is an Alarm Consumer. You configure it with an alarm query that defines which
alarms are to be logged. You use the Alarm DB Logger to specify alarm queries and to log the
resultant alarm records. These alarm queries are sent via the Alarm Consumer interface of the
Distributed Alarm System.
The Alarm DB Logger also has the ability to auto-reconnect. When the connection to the database
is lost, the logger continually checks for the database connection at regular intervals. When the
connection is re-established, logging proceeds.
The Alarm DB Logger reports all errors whether running as a service or a normal application to the
Wonderware Logger.
The Alarm DB Logger consists of the following two components:
Alarm DB Logger Manager Utility – This utility is a separate executable that solely takes care of
starting and stopping the logging operations. It is launched and starts working either as a service
or a normal application (depending upon the running mode you select in the Alarm DB Logger
Manager). The logging utility retrieves the setting information from the registry and performs the
logging.

InTouch 10.0 – Advanced Application Development Course


8-90 Module 8 – Alarm Distribution

Alarm DB Logger Configuration Utility – This utility takes care of user input and database
configuration. The Alarm DB Logger Manager allows you to select the mode in which the Alarm
DB Logger will run (either as a windows service or a normal application).

Note: The Alarm DB Logger Manager only saves the setting values into the registry. The utility is
responsible for starting and stopping the Alarm DB Logger. It is also responsible for displaying the
status of Smart Cache. When Alarm DB Logger Manager (almlogwiz.exe) is closed while
wwalmlogger.exe is running (either by pressing the Esc key or by clicking the “X” button on the
upper right of the dialog box), the logging operation does not stop.

The progress control status indicates the percentage fill of the in-memory buffer with alarm
records. The alarms are buffered when the SQL Server connection is down, and/or when the
alarms are coming at a rate faster than the logging rate of Alarm DB Logger.

The Alarm DB Logger Configuration Utility provides you with the ability to:
z Run the application as a Windows Service or as a normal application
z Select the database connection type – SQL Server or MSDE
z Create the necessary SQL tables in the database
z Specify the alarm query that will be a part of the logging instance
z Select the logging mode – Detailed or Consolidated
z Check/Uncheck logging of events
z Set performance tuning parameter – The auto reconnect rate is not the same as the
performance tuning parameter. It depends on the time out for a connection attempt
associated with SQL ServerServer.
z Store the setting in the registry

Wonderware Training
Section 7 – Alarm Databasing Tools 8-91

Logging to SQL Database


The Alarm DB Logger logs alarm data into the database. If the OLEDB Provider is SQL Server,
you will need to specify the SQL Server machine in the Alarm DB Logger Manager. Alarm DB
Logger automatically creates the necessary data structures, if they do not already exist in the
database.

To use the Alarm DB Logger Manager Utility


a. Start up the Alarm DB Logger Manager.

The Alarm DB Logger Manager dialog box appears.

When minimized, the Alarm DB Logger Manager appears as an icon in the system tray. When
you right-click the icon, a popup menu appears displaying the following commands:
Start – Begins the alarm logging process.
Stop – Ends the alarm logging process.
Settings – Opens the Alarm DB Logger Manager - Configuration dialog box.
Hide Window –Minimizes the Alarm DB Logger Manager dialog box to an icon in the system
tray.
Show Window – Opens and maximizes the Alarm DB Logger Manager dialog box.
Close – Exits the Alarm DB Logger Manager Utility.
b. The Smart Cache Status indicates the percentage fill of the in-memory buffer with alarm
records.
c. Click Settings to configure the Alarm DB Logger. The Alarm DB Logger Manager -
Configuration dialog box appears.
For more information on configuring the Alarm DB Logger, see "Alarm DB Logger
Configuration."
d. Click Start to begin the alarm logging process.
e. Click Stop to end the alarm logging process.

InTouch 10.0 – Advanced Application Development Course


8-92 Module 8 – Alarm Distribution

Alarm DB Logger Configuration


Before you begin using the Alarm DB Logger, you must configure a few items, such as your
database connection, your query list, the logging mode and so on. This information is configured
via the Alarm DB Logger Manager.
The first Alarm DB Logger Manager Utility dialog box deals with your database connection. You
can either select SQL Server or Microsoft® Data Engine (MSDE) for storage of data. The Alarm
DB Logger Configuration Utility also allows you to create necessary data structures (tables, views,
and stored procedures) and to test your database connection.

To configure Alarm DB Logger


a. Start up the Alarm DB Logger Manager.
The Alarm DB Logger Manager dialog box appears.
b. Click Settings. The Alarm DB Logger Manager - Configuration dialog box appears.

This is the default


name. This name is
editable.

In Detailed mode,
the record shows
the data at the time
of the event.

Consolidated mode
reduces the size of
the database.

c. In the SQL Server/MSDE group, click the Server Name arrow to open the listing of available
SQL/MSDE Servers and then select the name of the database server that you want to use.
d. In the User Info group, type in your User Name and Password in the respective entry boxes.
(All Password characters are displayed as ** for security reasons.)
e. Click Create to create new database/tables on the selected Server.
f. Click Test Connection to test your connection to the target database.
g. Click Next to access the Alarm DB Logger Manager - Query Selection dialog box.

Wonderware Training
Section 7 – Alarm Databasing Tools 8-93

Alarm DB Logger Query Configuration


The second Alarm DB Logger Manager dialog box refers to the query details that need to be
selected for alarm logging. It provides you with a multi-line text entry box to key in the query. It also
allows you to select the from and to alarm priority values.

To configure query details


a. If it is not already running, start up the Alarm DB Logger Manager Utility. The Alarm DB
Logger Manager Configuration dialog box appears.
b. Click Next. The Alarm DB Logger Manager - Query Selection dialog box appears.
c. Click the From Priority arrows to select the starting of the alarm priority range.
d. Click the To Priority arrows to select the ending of the alarm priority range.
e. In the multi-line Alarm Query entry box, type the sets of InTouch alarm queries that you want
to perform.
f. Click Next. The Alarm DB Logger Manager - Advanced Setting dialog box appears.

Note: The Alarm State field displays the alarm state for logging. The Query Type field
displays the type of query. (These are both read-only fields.)

InTouch 10.0 – Advanced Application Development Course


8-94 Module 8 – Alarm Distribution

Alarm DB Logger Advanced Setting Configuration


The third Alarm DB Logger Manager dialog box refers to the advanced query settings, such as the
running mode (either as a Windows Service or a normal application). It also provides you with the
option for logging of events. You can tune the performance of the alarm logging by setting the
frequency at which the alarms are to be flushed from the memory buffer to the database.

To configure advanced setting details


a. If it is not already running, start up the Alarm DB Logger Manager.
The Alarm DB Logger Manager Configuration dialog box appears.
b. Click Next. The Alarm DB Logger Manager - Query Selection dialog box appears.
c. Click Next. The Alarm DB Logger Manager - Advanced Setting dialog box appears.
d. In the Running Logger As group, select the option that you want to use for the logger:
z Windows Service - Configures the logger to function as a Windows service
z Normal Application - Configures the logger to function as a normal application
e. Select the Log Events option to log all Events to the events table.
f. In the Log Alarms Every # msec entry box, type the interval at which the alarms are to be
logged in milliseconds.

Note: The reconnect rate is not the same as the msec rate set.
It depends on the time out for a connection attempt associated with the SQL Server.
Setting the Performance Tuning parameter too low will impact system performance.

g. Click Finish to close the Alarm DB Logger Manager Utility and save all logger configuration
settings into the registry.

Wonderware Training
Section 7 – Alarm Databasing Tools 8-95

Alarm DB Logger Features


The InTouch Alarm DB Logger also stores the UNACK duration value in the alarms database. The
UNACK Duration is the ACK time minus the time of the most recent alarm transition, where all
dates and times are represented in GMT. Whenever an alarm record is ACKed, the Alarm DB
Logger calculates the UNACK Duration as follows:
If the alarm has been through a sub-state transition (eg. Hi to HiHi), the UNACK duration is the
ACK time minus the sub-state time. Otherwise, the UNACK duration is the ACK time minus the
alarm origination time.
If the alarm record transition type is any type other than ACK, the Alarm DB Logger logs the
default value for the UNACK Duration column (NULL value).
The Alarm DB View Control also displays the return duration. This is calculated as the return time
minus the alarm origination time. The alarm duration is not stored in the database, but is
calculated on demand and presented by the database views.
InTouch and is related applications will NOT launch the Alarm DB Logger in the event that it is not
already running.

InTouch 10.0 – Advanced Application Development Course


8-96 Module 8 – Alarm Distribution

Alarm DB View ActiveX Control


InTouch provides an Alarm DB View ActiveX Control that allows you to visualize the alarm data
from the Alarm DB Logger. This control is used to view all alarm and event information.

Alarm Viewer ActiveX Display Guidelines


The Alarm Viewer ActiveX display is an additional alarm viewer control object. There are certain
guidelines to be observed when using objects such as the Alarm Viewer ActiveX display. These
guidelines are as follows:
Each display must have an identifier so that any associated QuickScript function knows which
display to modify. This identifier, entered as Control Name in the Alarm Viewer ActiveX
Properties dialog box, must be unique for each display.
Displays should not overlap other InTouch objects such as window controls or graphic objects. You
can easily verify this by clicking on the Alarm Viewer ActiveX display in WindowMaker, and
checking the display’s "handles." The handles should not touch other graphic objects on the
screen.
Displays should be used sparingly. Placing numerous displays on one screen can result in
reduced system performance. When possible, limit the number of displays on your screen and call
further screens with additional displays if necessary.

Wonderware Training
Section 7 – Alarm Databasing Tools 8-97

Alarm Pareto Control


The Alarm Pareto Control provides a bar graph showing the frequencies of alarms throughout a
period of time based on records from the alarm database. The bars are placed in order of
frequency, either from left to right or top to bottom in descending order.

The Alarm Pareto Control supports three basic ways of measuring alarms:
z Count – Counts the occurrences of items
z Alarm Time– Adds the total time spent in alarm
z Ack Time– Adds the total time from onset of alarm to acknowledgment
You can configure the Alarm Pareto Control vertical or horizontal bars, color selection, font
selection, implementation of the “other” bar, plus all the capabilities in the Alarm DB View control,
including database access, time selection, filtering, and sorting.

InTouch 10.0 – Advanced Application Development Course


8-98 Module 8 – Alarm Distribution

Alarm Pareto Control ActiveX Object General Configuration Properties

Property Description
Refresh Enables the Refresh menu option at the right-click menu of the control. The
Refresh menu refreshes the control and displays the set of records in the range 1
to MaxRecords.
Query Favorites Opens the Query Favorites dialog box.
Reset Enables the Reset menu option at the right click menu of the control. The Reset
menu arranges all the columns to the settings saved at design time.
Bar Count Sets the number of bars to view in the Alarm Pareto control.
Display Mode This list shows the available view options. The options are Alarm & Event History,
Alarm History, and Event History.
No-Match Message Sets the message to show when no data is processed from the Pareto control.
Vertical Shows the bars on a vertical scale.
Horizontal Shows the bars on a horizontal scale.
Show Status Bar Enables the status bar.
Silent Mode If Silent Mode is selected, the Alarm Pareto control does not show runtime error
messages. If it is not selected, the alarm display shows error messages. Error
messages are always sent to the Logger.
Auto Font When the space available is not enough to show the text on the selected bar
correctly, Auto Font hides the text and only shows the text when the bar is
selected.
Show Node Name Shows the node name on the bar graph.
Show Selected in Status Bar This option shows the description of a selected bar on the Status Bar.
Consolidated Alarms Consolidate the alarm states into two states. For example, if an analog tag has a
threestate alarm: Hi, HiHi and Normal, the Hi and HiHi alarm states are classified
as one state.
Show Count in Percentages Shows the bars based on the percentage of count to the total count.
Show Time in State Shows the Alarm Pareto control based on the time each tag is in an alarm state.
This option is only enabled when the Display Mode is set to Alarm History.

Wonderware Training
Section 7 – Alarm Databasing Tools 8-99

Alarm Pareto Properties Tab Properties

Property Name Purpose


AutoConnect Returns or sets a value that determines whether the control connects to
the database as soon as the control is in runtime mode.
AutoFont When the space available is not enough to show the text on the
selected bar correctly, Auto Font hides the text and only shows the text
on the selected bar when the bar is selected.
BarColor Sets the bar color of the Alarm Pareto control.
BarCount Sets the number of bars that appear on the Alarm Pareto control.
BarSelectColor Sets the color of the selected bar in the Alarm Pareto Control.
Connected Determines if the Alarm Pareto control is connected to a database.
ConsolidatedAlarms Consolidates the alarm states into two states. For example, if an analog
tag has a three state alarm: Hi, HiHi and Normal, the Hi and HiHI alarm
states are classified as one state.
DatabaseName Sets the database name to which the Alarm Pareto control has to
connect.
DisplayMode Sets the display mode. The display mode options are Alarm & Event
History, Alarm History or Event History.
Duration Returns or sets the duration used by the control to set the "Start Time"
and "End Time".
EnableFilterMenu Enables or disables the context menu where you can edit the filter to
change the data received by the Pareto control. This property is only
enabled if Filter Menu Files is set.
EnableRefresh Enables or disables the context menu to refresh the Alarm Pareto
control.
EnableReset Enables or disables the context menu used to reset the Alarm Pareto
control.
EnableSilentMode Enables or disables the Silent Mode. If Silent Mode is disabled, the
Alarm Pareto control shows error message boxes. If Silent Mode is
enabled, the error message boxes do not appear. Error information is
written to the logger.
EndTime Returns or sets the end date and time.
Font Sets the font for the display of records and the heading in the control.
FontColor Sets the font color for the view of records in the Alarm Pareto control.
HorizontalChart Shows the chart as horizontal bars. If HorizontalChart is disabled, the
chart shows vertical bars.
MaxRecords Returns or sets a value that specifies the maximum records to be
retrieved at a given time.
NoMatchMessage Sets the message that will appear when there is no data to be
processed for the Alarm Pareto control.
FilterFavoritesFile Sets the query favorites file name.
QueryTimeZone Sets the time zone to either UTC Time or Origin Time.
ServerName Returns the current server name.
ShowCountPercentage If selected, shows the count for each bar as a percentage of the total
count. If not selected, shows the actual count for each bar.

InTouch 10.0 – Advanced Application Development Course


8-100 Module 8 – Alarm Distribution

Property Name Purpose


ShowNodeName Sets the Alarm Pareto control to show the node name in addition to the
other information on the bar.
ShowSelectedInStatusBar Enables or disables to show the information from the selected bar on
the status bar.
ShowStatusBar Returns or sets a value that determines whether the status bar is
shown.
ShowTimeinState Returns or sets a value that determines whether the Alarm Pareto
control shows the bars based on the time in which the tag has remained
in alarm state. If disabled, the control shows the bars based on the
number of times an alarm has occurred.
SpecificTime Returns or sets a value that determines whether the control uses the
"start time" and "end time" properties, or computes the start time and
end time based on the value of the Duration property.
StartTime Returns or sets the start date and time.
User Returns or sets the User used as the control to connect to the SQL
Server.

Alarm Pareto Methods and Events

Method Name Purpose


AboutBox Shows the "About" dialog box.
Connect Connects to the database configured from the Database tab of the Pareto
Control properties.
GetItemAlarmName Purpose Gets the name of the alarm for a specific bar.
GetItemAlarmType Gets the type of alarm for a specific bar.
GetItemCount Gets the number of alarms in a bar.
GetItemEventType Gets the type of event for a specific bar.
GetItemProviderName Gets the name of the provider from the generated alarms for a specific bar.
GetItemTotalTime Gets the total time of a tag in an alarm state.
Refresh Refreshes the control from the database, and if the connection is
successful, displays the set of records in the range from 1 to MaxRecords.
SelectQuery Selects a filter that is configured as a query favorite file.

Wonderware Training
Lab 22 – Alarm Database Logger & Alarm Database View Control 8-101

Lab 22 – Alarm Database Logger &


Alarm Database View Control
Introduction
In this lab, you will create and configure the Alarm DB Logger Manager to connect to a database.
You can use you own computer or a remote node on your network to install and configure SQL
Server or MSDE for alarm storage.

Objectives
Upon completion of this lab, you will be able to:
z Configure the Alarm DB Logger Manager to connect and log alarms to a database.
z Place the AlmDbViewCtrl object in an InTouch window and configure it to connect to the
alarm database.

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

a. Open the Alarm DB Logger Manager and create a connection to your local WWAlmDb SQL
Server database.
b. Start and Minimize the DB Logger Manager.
c. Open the window named Alarm Database.
d. Place the AlmDBViewCtrl in the window and resize it.
e. Configure AlmDBViewCtrl to connect to the WWAlmDb SQL Server database.
f. Configure Filter Favorites so you can set the filter criteria in Runtime.
Enter MyFilters in the Filter Favorites File field.
g. Go to Runtime.
h. Right-click on the AlmDBViewCtrl control you placed on the Alarm DB window and add a
filter by Name where the Value is ReactTemp.
i. Stay in Runtime and test this control.
j. View Alarms and test the right-click functionality available.

See the next page for Detailed Lab Instructions

InTouch 10.0 – Advanced Application Development Course


8-102 Module 8 – Alarm Distribution

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Create an Alarm Database


1. In the Tools pane, expand Applications and double-click Alarm DB Logger Manager.

2. This will display the Alarm DB Logger Manager.


Click Settings.

Wonderware Training
Lab 22 – Alarm Database Logger & Alarm Database View Control 8-103

3. The Alarm DB Logger Manager - Configuration dialog box appears. Using the drop down
arrow, select the SQL Server or MSDE Server Name that you will use to connect.
Also indicate the User Name and Password in the User Info section.
4. Select Detailed for the Logging Mode.

This is the default


name. If you change
this name, please
make a note of it. You
will need it later.

Your instructor will


provide the Password if
necessary.

5. Click Create and then click OK.

6. Click Test Connection.

InTouch 10.0 – Advanced Application Development Course


8-104 Module 8 – Alarm Distribution

You will see a message indicating that the connection succeeded or failed.

7. Click OK.
8. Click Next.
9. This will take you to the Alarm DB Logger - Query Selection screen where you can verify
your Query settings.

Your instructor will


provide any additional
Query paths.

Wonderware Training
Lab 22 – Alarm Database Logger & Alarm Database View Control 8-105

10. Once you have verified your settings click Next.


This will display the Alarm DB Logger Manager - Advanced Setting screen.
11. Accept the defaults here and click Finish.

12. This will again display the initial Alarm DB Logger Manager screen we saw earlier.
Click Start and Minimize this dialog.

InTouch 10.0 – Advanced Application Development Course


8-106 Module 8 – Alarm Distribution

Alarm Database View Control Object


13. Open the window named Alarm Database.
14. Click the Wizard Hat and select the AlmDbViewCtrl ActiveX object.

15. Place the object in your InTouch window and resize it.

16. Double-click on the object to access its Properties.

Wonderware Training
Lab 22 – Alarm Database Logger & Alarm Database View Control 8-107

17. Click the Database tab.


18. Configure like the example below.
Test the Connection.

See page 8-103 if


you did not retain the
default name.

Your instructor will


provide Password.

19. Click OK.

InTouch 10.0 – Advanced Application Development Course


8-108 Module 8 – Alarm Distribution

20. Click the Query Filter tab.


21. Configure Filter Favorites so you can set the filter criteria in Runtime.
Enter MyFilters in the Filter Favorites File field.
22. Click OK.

23. Go to Runtime.

24. Right-Click on the AlmDBViewCtrl object you placed on the Alarm DB window.
Select Filter.

Note: You may be prompted to create the MyFilters.xml file.

Wonderware Training
Lab 22 – Alarm Database Logger & Alarm Database View Control 8-109

25. Select Default Filter and click Add.

26. Select the Name filter criteria and click Add.


The criteria will be displayed in the right pane.

27. Double-click the criteria name.

InTouch 10.0 – Advanced Application Development Course


8-110 Module 8 – Alarm Distribution

28. Enter the filter parameters and click OK when finished.

29. Name your filter and click OK.


Your window will look something like this.

Wonderware Training
Lab 22 – Alarm Database Logger & Alarm Database View Control 8-111

Your new filter will now be in your Filter Favorites list.

30. Click OK.


31. Stay in Runtime and test this object.

Note: If you receive this message, check to see if your data source is producing alarms.

You will now be able to select your own filter criteria on the fly.
32. View Alarms.
33. Test the Right-Click functionality available.

InTouch 10.0 – Advanced Application Development Course


8-112 Module 8 – Alarm Distribution

Wonderware Training
Lab 23 – Configure an Alarm Pareto Control 8-113

Lab 23 – Configure an Alarm Pareto Control


Introduction
In this lab, you will place an Alarm Pareto ActiveX Object in an InTouch window and configure it to
connect to a database.

Objectives
Upon completion
z Place an ActiveX Alarm Pareto Control object in an InTouch window.
z Configure the Alarm Pareto Control to connect to a database.

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

a. Open the Alarm Database window and place an AlarmPareto control.


b. Use the Filter Favorites from Lab 22.
You can select Filter Favorites by clicking the ellipses button and browsing.
c. Configure the General properties to match those shown below.

d. Configure a connection to the local WWAlmDb Database and test it.


e. Test this object in Runtime using the filter you configured earlier.
f. Experiment with the right-click functionality.
You can filter, reset the query, and refresh the object.

See the next page for Detailed Lab Instructions

InTouch 10.0 – Advanced Application Development Course


8-114 Module 8 – Alarm Distribution

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Configure an Alarm Pareto Control Object to Display Alarm Data


1. Open the window named Alarm Database.
2. Place an AlarmPareto control on the application window.
3. Resize the alarm control as shown below:

4. Double-click the alarm control to open its Properties and click the Database tab.
5. Enter the following database configuration:
Check Auto Connect, and Test your Connection and click Apply.

Wonderware Training
Lab 23 – Configure an Alarm Pareto Control 8-115

6. Click the Query Filter tab.


7. You can use the Filter Favorites from Lab 22.
You can select Filter Favorites by clicking the ellipses button and browsing.

The default is blank. If you


type in your filter favorites
name, it will put in the path
automatically as
<Node>\Galaxy\Path for a
managed Application.

8. Click the General tab.


Configure the General properties to match those shown below.

9. Click OK when finished.

InTouch 10.0 – Advanced Application Development Course


8-116 Module 8 – Alarm Distribution

The Alarm Pareto Control is now configured for the Alarm Database.
10. Test this object in Runtime.
Use the filter you configured earlier.

Note: You can select an individual bar and see the data at the bottom of the object.

11. Experiment with the Right-click functionality.


You can filter, reset the query, and refresh the object.

Wonderware Training
Module 9

History Distribution
Section 1 – Distributed History 9-3
Lab 24 – InTouch as a History Provider 9-11
Lab 25 – Wonderware Historian as a History Provider 9-21
9-2 Module 9 – History Distribution

Module Objectives
z Become familiar with the various ways to store and retrieve distributed and local data
from InTouch.
z Configure history data storage and retrieval from within InTouch.
z Configure history data storage and retrieval using the Wonderware Historian.
z Use the Wonderware Historian for InTouch history storage and view data from InTouch.

Wonderware Training
Section 1 – Distributed History 9-3

Section 1 – Distributed History

Section Objective
z Use the InTouch Distributed History system to view historical data from remote InTouch
and Wonderware Historian nodes.

InTouch provides a distributed history system that allows retrieval of historical data from any
InTouch application, even those across a network. This system extends the capabilities of the
standard InTouch history by allowing remote retrieval of data from multiple historical databases
simultaneously. These databases are referred to as history providers. Up to eight history
providers can be displayed simultaneously, one for each historical trend chart pen.
Using the capabilities of the distributed history system, you can easily configure a networked
system that provides access to multiple history providers:

View Node View Node View Node View Node

Retrieve Retrieve Retrieve Retrieve


Log / Retrieve

Log / Retrieve
History File History File
View Node (Logger)

Each distributed history file is limited to one node writing (logging) to the file. However, there is no
restriction on the number or type of InTouch nodes that can view that file.

Note: Only applications developed in InTouch version 5.6 or later can be history providers. To
remotely view history files from an earlier version, you must first convert that application to version
5.6 or later.

A remote node retrieving data from a history file may not see data for the last hour of data (based
on the logger node's time). Remote trends can only view data that has been written to the logging
node's disk. The logging node will write data to disk after 22 samples have been collected.

InTouch 10.0 – Advanced Application Development Course


9-4 Module 9 – History Distribution

Using the Distributed History System


The following diagram illustrates how you should set up your distributed history system. This
system is a typical distributed application using Network Application Development (NAD) to
distribute the application.

Nodes 1 and 2 contain copies of the same InTouch application; however, the application is
configured to allow only Node 1 to log to a local history file, whereas either node can retrieve from
the local history file or the remote history file. Node 3 is also logging to and retrieving from the
same remote history. This provider is assigned the name HistPrv1. Node 1 is both a
development and runtime station, while Node 2 is just a runtime station.
The major steps you need to perform to create this application include:
a. Create a history provider list.
b. Create and configure a historical trend object.
c. Configure the application for distributed logging.
d. Distribute the application.

Distributing Your Application


You can distribute your application manually or by using the NAD system. When you distribute
your application, the historical provider list file is distributed as part of the application.
After you have distributed your application, you can run the View nodes and retrieve both local
tagnames and tagnames from a remote history provider. While the application will run on all the
View nodes, only the logging node will log to the historical log file. Other nodes will only be able to
read from it.

Wonderware Training
Section 1 – Distributed History 9-5

Configuring Distributed or Local Historical Logging


a. In Tools pane, expand Configure and double-click Historical Logging.

The Historical Logging Properties dialog box appears:

b. Select Enable Historical Logging to enable global tagname logging.


c. Select Store Log Files in Specific Directory and then in the input field, enter the path of the
location where the log files will be stored. You must type a valid Universal Naming Convention
(UNC) path. For example, "\\Node\Share\Path."
If NAD is being used, make sure that the path points to a directory other than the application
directory.
d. In the Name of Logging Node field, enter the name of the node that will be logging to the
history log file.
This setting will only allow the node named here to log to the file.
e. Click OK.

Note: When an application with the Enable Historical Logging option selected is distributed to a
WindowViewer node, that node checks this option to determine if it should log or not. If Enable
Historical Logging is selected, the possible settings are:

Field equals name of Node - Logging enabled


Field does not equal name of Node - Logging disabled

InTouch 10.0 – Advanced Application Development Course


9-6 Module 9 – History Distribution

Configuring the Distributed History Provider List


Each remote history provider you intend to retrieve historical data from must be registered in the
InTouch history provider list. This list allows you to specify a name and network location for each
history provider. These names will be used whenever you refer to a history provider in InTouch.
a. In Classic View, expand Configure then double-click on Distributed Name Manager.

The Distributed Name Manager dialog box appears:

b. Click the Distributed History tab.


c. In the Provider Name field, enter the name to use for the new historical provider.
d. To access an InTouch application's log file, select InTouch Provider and enter the UNC
(Universal Naming Convention) path for the InTouch application directory in the UNC field.
The valid format is: \\Node\Share\ApplicationPath

Note: This path is limited to 51 characters. C$ is only available to administrators.


This location cannot be on the root and must be at least one layer down.
The directory you are connecting to MUST be shared on that node.

The History Provider Name should be the same as the associated Access Name. If not, you
will have to type the History Provider Name in place of the Access Name when selecting a tag.

If the UNC location is password-protected, you must first establish a connection using the
Windows Explorer.

Wonderware Training
Section 1 – Distributed History 9-7

Wonderware Historian as History Provider

Configuring the InTouch Distributed Name Manager for Wonderware


Historian
If the data is being logged directly to Wonderware Historian, InTouch needs to be able to read the
data from Wonderware Historian and display it within InTouch Historical Trends. This
configuration is done using the InTouch Distributed Name Manager. Once the Wonderware
Historian is configured as a source of data for InTouch, the data can be displayed in Historical
Trends. Each of the eight pens can be assigned to the Wonderware Historian or each pen could
represent a separate data source (e.g., data for one pen coming from InTouch and data for
another pen coming from Historian).
The following outlines the steps required to add the Wonderware Historian as a source of historical
data to InTouch:
a. In Tools pane, expand Configure then double-click Distributed Name Manager.

b. Click on the Distributed History tab:


c. Enter a name in the Provider Name field (any name can be used here) and select the InSQL
Provider option.

InTouch 10.0 – Advanced Application Development Course


9-8 Module 9 – History Distribution

d. Click the Configure InSQL Provider… button and enter the following information for the Data
Source, User and Password:

Node Name provided


by instructor.

The Data Source is the remote node where the Wonderware Historian is running. User is a
valid Wonderware Historian user name (e.g., wwuser, wwadmin or a custom username).
Password is the password assigned to the user.

Note: If using the built-in user names (wwadmin and wwuser), the passwords are the same
as the user names.

e. Click on the Test button to verify the entries.


If it is not correct, the following dialog will appear:

Check the Node Name and User information and test again.

If all entries are correct, the following dialog box will appear as shown below.
f. Click on OK to close the dialog box.

g. Then, click on OK to save the Distributed Name Provider definition.

Wonderware Training
Section 1 – Distributed History 9-9

InSQLHistory will now be included in the History Providers list:

Note: To edit the definition, click on the History Provider to be modified and then click on the
Modify button.

Important Note:
When data is queried in the Wonderware Historian database for the InTouch trend object, 100
evenly-spaced rows are retrieved for the given time period (a row count) and plotted on the
historical trend. The minimum and maximum values shown for a tagname in the historical
trend may not be the actual minimum and maximum values for the tagname.

You cannot use the InTouch HistData utility to retrieve data from history providers.

InTouch 10.0 – Advanced Application Development Course


9-10 Module 9 – History Distribution

Accessing Tags From the History Provider


In runtime, you can dynamically configure a historical trend's remote history provider by creating a
QuickScript that specifies the remote history provider tagname reference in the HTSetPenName
function.
For example:
HTSetPenName("HistTrendTag", 1, "HistPrv1.Boiler1");
where, 1 specifies the pen that will plot the specified remote history provider tagname.
Another method is to use a dot field for a HistTrendTag.
For example:
HistTrendTag.Pen1 = Tagname.TagID

Note: The runtime Historical Trend Setup dialog box and .Pen# are not supported for remote
history providers.

Wonderware Training
Lab 24 – InTouch as a History Provider 9-11

Lab 24 – InTouch as a History Provider


Introduction
InTouch provides a distributed history system that allows retrieval of historical data from any
InTouch application, even those across a network. These connections are called History
Providers. Up to eight history providers can be displayed simultaneously, one for each historical
trend pen. In this lab, you will configure historical logging on two nodes and access data from each
node.

Note: Historical logging has been configured for the following tags on the second PC:
ProdLevel, ReactLevel and ReactTemp

You will use the Tag Source configured in Module 4, “Remote Tagname Referencing.”

Objectives
Upon completion of this lab, you will be able to:
z Set up local history
z Retrieve distributed history from an InTouch provider

InTouch 10.0 – Advanced Application Development Course


9-12 Module 9 – History Distribution

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

Local History Setup


a. Open the same application you used in the last lab in WindowMaker.
b. Verify that the Tagname Dictionary contains two Memory Real tags,
LocalHistory1 and LocalHistory2 and that logging is enabled on each.
c. Enable Historical Logging and close WindowViewer.
d. Open the Distributed History window.
e. Switch to Runtime and move the sliders for a few seconds.
Verify that the tags are being logged and that the trend is displaying them.
f. Exit WindowViewer.
g. Switch to Runtime and look at the Action Script assigned to the LocalHistory1 pushbutton.
Attach a similar script to the LocalHistory2 pushbutton.
h. Assign the LocalHistory2 tag to the first pen.
i. Test in Runtime.

Retrieving Distributed History from a Remote InTouch Provider


j. In the Distributed Name Manager, configure ReactDemo as the remote Distributed History
provider.
k. Enter the correct UNC that points to the remote InTouch Provider application logging the data.
l. Open the Hist Trend wizard again and assign one Pen to the ReactLevel tag.
m. The remote reference appears in the pen entry using the syntax HistoryProvider.Tagname.
Repeat this process for the ReactTemp tag.
n. Go to Runtime and verify that you can monitor both local and remote data.

See the next page for Detailed Lab Instructions

Wonderware Training
Lab 24 – InTouch as a History Provider 9-13

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Local History Setup


1. In WindowMaker, verify that the Tagname Dictionary contains two Memory Real tags,
LocalHistory1 and LocalHistory2 and that logging is enabled on each.

2. In the Tools pane, click on Configure and then double-click on Historical Logging.
3. Check the Enable Historical Logging option and use the other default settings and click OK.

4. Close WindowViewer and do not restart it.

InTouch 10.0 – Advanced Application Development Course


9-14 Module 9 – History Distribution

5. Open the Distributed History window.


Notice that the LocalHistory1 and LocalHistory2 tags are attached to the two slider wizards.
The other wizards have been configured as well.
6. Verify that all of the following wizards are assigned the HistTrend tag:

7. Double-click on the Hist Trend wizard and then click the Pens button.
Notice that LocalHistory1 has been assigned to the first pen.
8. Switch to Runtime and move the sliders for a few seconds.
Verify that the tags are being logged and that the trend is displaying them.
9. Select today’s date as pointed out below.

You will need to click


on this button to
update the trend to
current time.

10. Exit WindowViewer.


11. In WindowMaker, look at the Action Script assigned to the LocalHistory1 pushbutton and
verify it is assigned the LocalHistory1 tag to the first pen.

Note: To dynamically reassign a pen to a different tag, use the script shown above.

Wonderware Training
Lab 24 – InTouch as a History Provider 9-15

12. Attach a similar script to the LocalHistory2 pushbutton.

13. Test in Runtime.


Click the LocalHist2 pushbutton and confirm the tag assignment.

InTouch 10.0 – Advanced Application Development Course


9-16 Module 9 – History Distribution

Retrieving Distributed History from a Remote InTouch Provider


14. Exit WindowViewer.
15. In the Tools pane, click Configure and double-click Distributed Name Manager.
16. Select the Distributed History tab.
17. Enter ReactDemo for the Provider Name.
18. Enter the correct UNC that points to the remote InTouch Provider application logging the data.
19. Click Add and OK to exit.

Provided by
instructor.

Note: Your remote application must be in a shared directory. This share cannot use the C$
default name.

Wonderware Training
Lab 24 – InTouch as a History Provider 9-17

20. Double-click on the Hist Trend wizard again.


21. Click the Pens button and then double-click in the next blank Pen field.

22. Double-click ReactDemo from the List of Tag Providers.


This is the remote reference tag source we created earlier.

InTouch 10.0 – Advanced Application Development Course


9-18 Module 9 – History Distribution

The ReactDemo tag source will be available from the drop-down menu in the Tag Browser:
23. Select the ReactDemo tag source.

24. Double-click on the ReactLevel tag.

Note: If the ReactDemo Tag Source is not available, perform the steps in Lab 11 for
Method 2 – Creating Remote Reference Tag Sources in Module 4 – Section 4.

25. The remote reference appears in the pen entry using the syntax HistoryProvider.Tagname.
Repeat this process for the ReactTemp tag as in the figure below.

Note: The remote reference can be typed in using this syntax or selected as shown above.

26. Click OK.

27. Click OK to close the Historical Trend Chart Wizard.

Wonderware Training
Lab 24 – InTouch as a History Provider 9-19

28. Start WindowViewer and verify that you can monitor both local and remote data.
In Runtime, you can click on the Trend object and bring up the following
Historical Trend Setup dialog.

InTouch 10.0 – Advanced Application Development Course


9-20 Module 9 – History Distribution

Wonderware Training
Lab 25 – Wonderware Historian as a History Provider 9-21

Lab 25 – Wonderware Historian as a


History Provider
Introduction
The Wonderware System Platform contains several tightly integrated application components.
One of these components is Wonderware Historian. Wonderware Historian is a real-time,
relational database designed specifically for the factory floor. In this lab you will use Wonderware
Historian as the data provider to the InTouch historical trend.
In this lab, you will use your own computer plus a second node running Wonderware Historian with
the Tagname Dictionary from DemoApp1 (logged tags only) imported and logging data. (For this
exercise, it could be the same PC that’s running Wonderware Historian – not recommended in a
production environment).

Objectives
Upon completion of this lab, you will be able to:
z Configure Distributed History
z Configure the Historical Trend Object

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

Configure Distributed History


a. In the Distributed Name Manager, add InSQL as the remote Distributed History provider and
configure as follows:
Enter wwUser in the User, Password and Re-enter password fields.
b. Test the connection.
c. Close the Distributed Name Manager.

Configure the Historical Trend Object


d. Open the Hist Trend object in the Distributed History window and add the following Pens.
Enter InSQL.ReactLevel and InSQL.ReactTemp.
e. Test in Runtime.

See the next page for Detailed Lab Instructions

InTouch 10.0 – Advanced Application Development Course


9-22 Module 9 – History Distribution

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Configure Distributed History


1. Exit WindowViewer and select Configure/Distributed Name Manager from the Tools pane.
2. Click on the Distributed History tab and enter InSQL for a Provider Name.
3. Click on the InSQL Provider radio button to enable the Configure InSQL Provider button:

4. Click on the Configure InSQL Provider button shown above and enter the information shown
in the figure below.
Enter wwUser in the User, Password and Re-enter password fields.
5. Click the Test button.

Node Name provided


by instructor.

6. If successful, the following dialog box appears.


Click OK.

7. Click Apply.
Click OK.
Click OK in the Distributed Name Manager.

Wonderware Training
Lab 25 – Wonderware Historian as a History Provider 9-23

Configure the Historical Trend Object


8. Double-click on the Hist Trend object in the Distributed History window.
9. Click on the Pens button.
10. Enter InSQL.ReactLevel and InSQL.ReactTemp OR
double-click in the blank field to select the tag.

Warning: The Wonderware Historian Name Provider is case-sensitive!

11. Start WindowViewer and verify the tags coming from the Wonderware Historian running on
the remote node.

Note: Once the tags are imported into Wonderware Historian, there may not be a compelling
reason to continue to log them in InTouch. In the Application Explorer, select Configure/
Historical Logging and de-select the Enable Historical Logging checkbox.

InTouch 10.0 – Advanced Application Development Course


9-24 Module 9 – History Distribution

Wonderware Training
Module 10

Runtime Language Switching


Section 1 – Runtime Languages 10-3
Lab 26 – Configuring Languages for Runtime 10-15
10-2 Module 10 – Runtime Language Switching

Module Objective
z Configure a second language for an InTouch Application.
z Switch back and forth between the two languages in Runtime.

Wonderware Training
Section 1 – Runtime Languages 10-3

Section 1 – Runtime Languages

Section Objective
z Configure a second language for an InTouch Application.
z Switch back and forth between the two languages in Runtime.

Overview
InTouch is not limited to the available InTouch languages. InTouch has the capability of building
applications that can switch to different language interfaces during Runtime. Multiple language
interfaces in one application are supported. This means that a developer can develop an InTouch
application for customers in multiple countries or for a customer whose operators who speak
multiple languages. The developer configures the application with more than one language and
then the text strings shown at Runtime can be easily switched to any specified language.
After translation, Runtime Language Switching is controlled either by changing the value of the
system tag $Language to correlate with the international Locale ID, choosing the language from
the Language option of the Special pull-down menu at Runtime, or by using the QuickScript
function SwitchDisplayLanguage.
All static strings in an application can be configured for different languages, including:
z Text Labels and Button Text
z Discrete (on/off) Messages
z SmartSymbol Text
Scripts are NOT translated. They are not accessed in Runtime.
Fonts can be configured separately for each language, which may be necessary when the text
strings in one language are longer than another and do not fit within the space provided. InTouch
has the ability to mix single and multi-byte fonts in an application. In most languages, a single-byte
of data can represent a character in a font family. However, in some languages, such as Chinese,
Japanese, and Korean, two or more bytes are required to represent each character uniquely.
To enable an application for Runtime language switching, a developer defines which languages
the application will support, adds Runtime language switching trigger (such as a button that using
an Action script, when clicked, switches to a different language), and then exports an XML file of
all the text strings in the application. This file is sent for translation, where the translator can use a
common tool such as Microsoft Excel to enter the translated words and phrases. Then the
translated file is imported back into the application.

InTouch 10.0 – Advanced Application Development Course


10-4 Module 10 – Runtime Language Switching

Configure Language Switching


Configuring Runtime Language Switching is a simple process that must be done in the proper
order. The entire switch is triggered by a change in the value of the $Language tag. For example,
when $Language = 1033, the system will display American English. When $Language = 4105,
the system will display in Canadian English.
This module will focus on configuring the system to switch languages. You will need to translate
the words and phrases separately for the language of your choice.

Export the Dictionary


During the exporting process you will select the additional language you wish to translate into.
a. In WindowMaker, select Special / Language / Export Dictionary from the menu bar.
The Export Dictionary dialog is now visible.
b. Select the new language in the Defined Languages field using the drop-down arrow.
c. Browse to the Path where you will store your language switching dictionary files.
Note the file location. You will need it later.
InTouch automatically names the file using the number of the language you selected.

Using Microsoft Excel to Document Translation


Wonderware recommends using Microsoft Excel 2003 or XP to document the translated phrases.
Most of the labels (phrases) in your application will be exported. There may be a few you do not
find in the new language file.
a. Open the file saved earlier using Microsoft Excel.
The text labels are included in the primary language. They tend to be grouped together
according to window location, but it is difficult to see where the label came from. Scroll to the
right to view the column that gives more specific information about window location within the
InTouch application.

Note: You can send this file directory to your translator.

b. Enter the translation in the Translation column to the right of the corresponding Phrase in the
primary language.

Wonderware Training
Section 1 – Runtime Languages 10-5

c. Enter other translation criteria as necessary.


Some languages will be longer or shorter and may need modifications to the font size.
Some languages require a different character set of font property.

Note: If no translation or translation criteria is defined, the application will retain the primary
language and its settings.

d. Save the file as an XML Data file type.

Warning: Use the Save As command. Select the file format XML Data! Do NOT same the file
as an XML Spreadsheet or Excel will alter the schema and InTouch will not recognize the data.

e. Click Save.
The following warning appears:

f. Click Continue.
g. Close the Excel file without saving.
The file is now ready for use.

Import the Dictionary


a. In WindowMaker, select Special / Language / Import Dictionary from the menu bar.
The Import Dictionary dialog is now visible. Not the similarity to the Export Dictionary dialog.
b. Select the translated language to import in the Defined Languages field by using the drop-
down arrow.
c. Specify the Path, but not the file name.
d. Click Import and Close when finished.

InTouch 10.0 – Advanced Application Development Course


10-6 Module 10 – Runtime Language Switching

Exporting Alarm Comments for Translation


You can export alarm comments for translation.
You export the Alarm State, Alarm Type, and Alarm Class fields for:
z All tags with an alarm comment.
z All tags with a tag comment.
z System tags so you can localize comments shown in clients when events are raised by
system tags.

Understanding Two-Character Application IDs


When you export alarm and tag comments for localization, you must specify a two-character
application ID. The ID is used internally by the system to distinguish between alarms generated by
applications having the same name.
Because a tag can contain both a tag comment and an alarm comment, 1 and 2 are added after
the two-character application ID to differentiate between these two fields. Tag comments have a 1
between the ID and the tag name. Alarm comments have a 2 between the ID and the tag name.
For example, AA1TankLevel is a tag comment, and AA2TankLevel is an alarm comment.
If you export an application, the application ID information is removed.
If the alarm database contains old data without a two-character application ID and new records are
prefixed with an ID, then alarm comment queries in the Alarm DB View control do not work with the
following operators: <, <=, >, and >=.

Exporting Alarm Comments


You can export alarm comments for translation.

Caution: Before exporting alarm and tag comments, back up any files in your target directory in
case of possible data corruption or errors.

To export alarm comments for offline translation


a. Start WindowMaker and open the application for which you want export alarm comments for
offline translation.
b. On the Special menu, point to Language, and then click Export Alarm Fields.
The Export Alarm Fields dialog box appears.

Wonderware Training
Section 1 – Runtime Languages 10-7

c. In the Path box, type the folder to which you want to export the dictionary.
Click Browse to select an existing folder or create a new folder.
d. In the Two characters representing Unique application box, type the two characters.
The ID can only contain alphanumeric characters and it is case-sensitive.

Caution: If you previously exported alarm or tag comments from this application, you must
use the same two-character application ID when you export them the next time. If you enter a
new two-character application ID, the InTouch HMI regenerates the IDs for all the alarms and
tags, which causes all existing translations to be lost.

e. Click Export to export the information to an XML dictionary file.


The InTouch HMI creates an individual export file for each configured language. All the
dictionary files for different languages are exported to the single directory you specify.
If a duplicate file exists for any language being exported, you are prompted with the name of
the file. You can cancel the export or continue the export operation.
If the export is successful, the Export Successful dialog box appears.

Note: Note If the size of the alarm comment configured in the tag dictionary is greater than
127 characters or the tag comment is greater than 46 characters, the alarm or tag comment is
not exported. You are notified that the comment was not exported to the dictionary file at the
end of the export process and an AlarmComment.log or TagComment.log file is created in the
export directory.

f. Click Close to return to the WindowMaker window or click Close and Launch Explorer to open
the folder containing the dictionary file.

InTouch 10.0 – Advanced Application Development Course


10-8 Module 10 – Runtime Language Switching

Exporting to an Existing Alarm Comment File


After you export your alarm and tag comments for offline translation, you may need to make
changes to your application that require you to export alarm and tag comments again.
If you export more than one time to the same directory, the Confirm File Replace dialog box
appears.

Click Yes to update the existing dictionary files with any new strings and language information
added since you exported last. If the existing dictionary file contains translations for any phrases
and you imported it to InTouch previously, those translations are preserved. If you deleted any
phrases from the application since the last export, they are removed from the dictionary file.
Click Yes to All to update existing dictionary files for all languages configured in the InTouch HMI.
Click No or No to All to prevent overwriting the existing file or the existing files for all languages,
respectively.
The existing translations for any alarm comments, alarm fields and tag comments are preserved if
they are exported again.

Wonderware Training
Section 1 – Runtime Languages 10-9

Editing the Dictionary File


After creating the dictionary file, you need to edit the strings.
The name of the dictionary file is created from the two-character application ID and the language
being exported. For example, if the configured language is Chinese(PRC)-2052 and two-character
application ID is AA, the resulting file name is AA_2052_ AlarmComment.xml. The file is written
using the same XML schema used by the run-time language switching files.
The general structure of the dictionary file is as follows:

Enter the translation for the translation strings. Do not change any of the other information.
You can override some of the Alarm State, Alarm Type, and Alarm Class values. The maximum
allowed length for these values is 50 characters.

InTouch 10.0 – Advanced Application Development Course


10-10 Module 10 – Runtime Language Switching

The following Alarm State values can be overridden for InTouch generated alarms:

Value to Override Default String to be Shown


UNACK_RTN UNACK_RTN
ACK_RTN ACK_RTN
UNACK_ALM UNACK_ALM
ACK_ALM ACK_ALM

The following Alarm Type values can be overridden for InTouch generated alarms:

Value to Override Default String to be Shown


SPC SPC
HIHI HIHI
HI HI
LO LO
LOLO LOLO
MINDEV MINDEV
MAJDEV MAJDEV
ROC ROC
DSC DSC
OPR OPR
LGC LGC
DDE DDE
SYST SYST
USER USER
PRO PRO
LOGON_FAILED LOGON_FAILED

The following Alarm Class values can be overridden for InTouch generated alarms:

Value to Override Default String to be Shown


DEV DEV
ROC ROC
DSC DSC
EVENT EVENT
VALUE VALUE

Wonderware Training
Section 1 – Runtime Languages 10-11

Importing Translated Alarm Comments


After translating the strings, you must import the dictionary files for each language to enable run-
time language switching for those languages.
After you import the translated alarm comment dictionary files, they are copied into the respective
language folders inside the application directory.
Any translated alarm comments for an existing application are overwritten with the contents of the
imported files and the application version ($AppVersion) increments by 1.
To import multiple dictionary files from other nodes to support localization of alarm fields from
multiple nodes, copy the translated dictionary files from the other nodes into a single directory.
Select this directory as the import path. Multiple dictionary files are imported on a single import
operation. The InTouch HMI automatically creates the file path based on the language being
imported.
To import a translated alarm comment file
a. Start WindowMaker and open the application to import translated dictionary files into.
b. On the Special menu, point to Language, and then click Import Alarm Fields.
The Import Alarm Fields dialog box appears.

c. In the Path box, type the path to the dictionary file to import or click Browse to browse and
select the file.
d. Click Import. If there is no translation done in the dictionary file, a dialog box appears saying
that there are no translated dictionary files to import.
e. Click OK. If the import is successful, the Import Successful dialog box appears.

InTouch 10.0 – Advanced Application Development Course


10-12 Module 10 – Runtime Language Switching

Testing the Language Switching Functionality at Run Time


After you enable run-time language switching in your application, test the language switching
functionality. Language switching of alarm and tag comments and alarm fields can be viewed only
in the Alarm Viewer and Alarm DB View controls.
As you work with localized alarm and tag comments, be aware of the following:
z If the alarm or tag comment hasn't been translated to the language specified by
$Language, the default comment appears in the alarm client.
z If an Alarm Viewer control is querying from multiple providers, the alarm comment, tag
comment, and alarm fields from remote nodes also appear translated if the application has
the translated dictionary files of the remote node applications.
z If you acknowledge an alarm and provide a comment, this comment appears in the alarm
client instead of the localized alarm comment.
z When an Alarm Viewer control is in freeze mode, then the language does not appear
switched even though you switched the language. The moment you unfreeze the control,
the control is updated with the translated strings.
z The localization of the Alarm Viewer control is only for the display of the control. All script
functions still return the default strings even though the language is switched.
z The Alarm DB Logger only stores the data default language strings in the database. The
localized strings are not stored in the database.
z The unique IDs for the alarm fields such as EVENT and ACK, are predefined and have the
same ID across multiple dictionary files in different nodes. Alarm clients pick the
translation from the first loaded dictionary file and the translations from other dictionary
files are ignored. Ideally, the alarm fields in all dictionary files should have the same
translation in a language. Multiple alarm clients (Alarm DB View and Alarm Viewer
controls) use the same translation for the same alarm state for a given language.
z Translated text is truncated to 131 characters for alarm comments and to 50 characters
for tag comments.
To test the language switching functionality
a. Open the application in WindowViewer.
b. On the Special menu, point to Language, and then click the name of the language to switch to.
The information from the corresponding translated dictionary file (if one exists) loads and
appears.
c. If you added a button to switch the language, click the button to test the script.

Distributing Localized Files to Network Application Development Clients


The files containing the localized alarm comments, tag comments, and alarm fields are distributed
to Network Application Development (NAD) clients as part of the InTouch application. When you
receive updated files containing alarm comments, you must restart WindowViewer before the
translated alarm comments can be seen in the supported alarm clients.
If you are using language switching in combination with Network Application Development (NAD),
set the change mode to “Restart WindowViewer” or “Prompt user to restart WindowViewer” for the
NAD client node.

Wonderware Training
Section 1 – Runtime Languages 10-13

Create a Trigger for Language Switching


Remember that your application requires a trigger to activate language switching. Everything will
appear the same at this point. Use animation links for this.
a. In WindowMaker, open the window in which you want to create a trigger.
A button for each language used in the application is the easiest way to test this.
b. Create a button for the primary language.
c. Create another button for the second language (or more if you have more languages).

Note: You can use graphics instead of buttons for a visual clue. You might want to use the
country’s flag or a map for quick recognition of the language to switch to.

d. Create a Touch Pushbutton – Action link for the button to trigger new language and enter
the following script:
$Language=xxxx; {Use the number for the corresponding language}
For example, switching to Italian would use the following script:
$Language=1040; {Set to Italian}
e. Create a Touch Pushbutton – Action link for the button to return to the primary language and
enter the following script:
$Language=xxxx; {Use the number for the corresponding language}
For example, switching to American English would use the following script:
$Language=1033; {Set back to English}
You can also use the SwitchDisplayLanguage Miscellaneous script function. This script function
switches the display of visible, static texts in a desired language for which translated strings are
provided.
The syntax is SwitchDisplayLanguage(LocaleID);
LocaleID specifies the language in which static text strings should be displayed at runtime.
The following is an example of a script using this script function:
DIM German as INTEGER;
German=1031
SwitchDisplayLanguage(German);
where German is the language to be displayed at runtime.

InTouch 10.0 – Advanced Application Development Course


10-14 Module 10 – Runtime Language Switching

Switch the Language in Runtime


a. In WindowMaker, open the window where you created the buttons to trigger language
switching.
b. Go to Runtime.
c. Click the button (or symbol) created to trigger the new language.
Note the change in the display.
d. Click the button (or symbol) created to trigger the return to the primary language.
Note the change in display again.
Now that the language(s) has been configured, you can also switch the language from the menu.
a. Select Special / Language and then the new language to switch the language from the menu.
b. Repeat this process for the primary language.

Wonderware Training
Lab 26 – Configuring Languages for Runtime 10-15

Lab 26 – Configuring Languages for Runtime


Introduction
This lab will introduce you to the InTouch functionality for language switching in Runtime. You will
configure your application to support the Italian language, and then go to Runtime to switch the
interface to Italian and then back to English. The language files for InTouch are XML based and
use Microsoft Excel as a front end.

Objective
Upon completion of this lab, you will:
z Configure a language in InTouch
z Add Runtime animation links to switch languages
z Export, translate, and import a dictionary file

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

Configure Languages
a. Configure the Runtime Language as Italian and change the font settings.

Add Runtime Animation Links to Switch Languages


b. Open the Reactor display window.
c. From the Symbol Factory Library, add flags for Italy and USA (Maps and Flags category),
and place them side-by-side on an empty area of the Reactor display window.

Note: If Symbol Factory is not installed, draw your own buttons for the switching function.

d. Select both flag symbols and resize them to 60 pixels wide.


e. Create a Touch Pushbutton – Action link for the Italian flag symbol and enter the following
script:
$Language=1040; {Set to Italian}
f. Create a Touch Pushbutton – Action link for the USA flag symbol and enter the following
script:
$Language=1033; {Set back to English}

InTouch 10.0 – Advanced Application Development Course


10-16 Module 10 – Runtime Language Switching

Export the Dictionary File


g. Close all windows and save the Reactor Display window.
h. Export the text strings in your application to an Italian dictionary file and launch Windows
Explorer.
i. Minimize Windows Explorer and export Alarm Fields, adding a two-letter prefix for the
application. For example: IT for Italian or FR for French.

Translate Dictionary Files


j. Open the dictionary file in Microsoft Excel As an XML list.
k. In the Translation column, enter some translations for the phrases in the Phrase column. You
can also enter font names and properties (for example Bold ; 10) in the third and fourth
columns if desired.
l. Save the translated dictionary file into the same folder As XML Data file type.

Warning: If you select another file type, such as XML Spreadsheet, Excel alters the schema
and InTouch cannot recognize the file.

m. Open the alarm Export XML file in Excel As XML List, enter the translations, and Save As
XML Data file type.

Import Dictionary Files


n. Import the dictionary and Alarm Fields files into your application.

Switch Language in Runtime


o. Open the Reactor Display window and test in Runtime.
p. Use the Italian and US animated flag symbols to switch back and forth between languages.

See the next page for Detailed Lab Instructions

Wonderware Training
Lab 26 – Configuring Languages for Runtime 10-17

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Configure Languages
First you will configure the languages to use in your application.

Note: This lab is written using Italian as the example.


You are welcome to choose another language.

1. On the Special menu, select Language, and then Configure Languages.


The Configure Languages dialog box appears.
2. Click Add.

The Add Language dialog box appears:


3. In the By Name drop-down list, select Italian.

The Locale ID is automatically entered. You can select the language by name or by Locale ID.

Note: When developing your application, you may want to write down the Locale IDs of the
languages you are adding. You use the Locale IDs in the Action scripts you create for
switching languages.

4. Click Font.

InTouch 10.0 – Advanced Application Development Course


10-18 Module 10 – Runtime Language Switching

The Font dialog box appears.


5. Change the font settings and click OK.

This font will be the base font used for this language. This is necessary if a language requires
a special character set or is a significantly different length than the base language.
6. Click OK and Close to close the Configure Languages dialog box.

Add Runtime Animation Links to Switch Languages


Now you will make animation links that can be used in Runtime to switch languages.
7. Close any open windows, and then open the Reactor display window.
8. From Symbol Factory Library, add flags for Italy and USA (Maps and Flags category), and
place them side-by-side on an empty area of the Reactor display window.

Note: If Symbol Factory is not installed, draw your own buttons or other symbols to represent
the languages for the switching function.

9. Select both flag symbols and resize them to 60 pixels wide.


10. Create a Touch Pushbutton – Action link for the Italian flag symbol and enter the following
script:
$Language=1040; {Set to Italian}

Note: You can also use the SwitchDisplayLanguage Miscellaneous script function.

11. Create a Touch Pushbutton – Action link for the USA flag symbol and enter the following
script:
$Language=1033; {Set back to English}

Wonderware Training
Lab 26 – Configuring Languages for Runtime 10-19

Export the Dictionary File


You will now export the text strings in your application to a dictionary file which can later be
translated.
12. save the Reactor display window and then close all windows.
13. On the Special menu, point to Language, and then click Export Dictionary.
The dialog box shown below appears.

14. Select the language to export and the directory to export to.
Your instructor will provide this information.

Note: In this case you only have one language to export.


When there are multiple languages, you need to export them one at a time.

15. Click Export.


InTouch shows the progress of the windows being written to the export file, as shown in the
following example:

When the export is complete, the dialog box below appears:

16. You can close the dialog box, or you can close it and be taken immediately to the directory
where you exported the file.
17. Click Close and Launch Explorer.
Explorer opens to the directory where you saved the dictionary file.
The file name contains the Galaxy, InTouch application name, and Locale ID. For example:
ABCGalaxy_$AdvancedClass_1040.xml for the Italian language file.

InTouch 10.0 – Advanced Application Development Course


10-20 Module 10 – Runtime Language Switching

Export Alarm Fields


18. Minimize Windows Explorer.
19. From the WindowMaker Special menu, select Language / Export Alarm Fields.
20. Select the Language to export, the path, and add a two-letter prefix for the application.
For example: IT for Italian or FR for French.

Note: This lab only has one language configured. You will need to select the language if you
have more than one foreign language configured.

21. Click Export.


22. Click Close and Launch Explorer.

Wonderware Training
Lab 26 – Configuring Languages for Runtime 10-21

Translate Dictionary Files


Now that you have a dictionary file for your application, you can translate the text. Normally, you
provide this file to translators to complete the localization. For the purpose of this class, you will
open the file and provide translation for some of the phrases.
23. Right-click on the dictionary file you created earlier, point to Open With, and then click
Microsoft Office Excel.
The Open XML dialog box appears:
24. Select As an XML list and click OK.

Note: Excel 2007 refers to this As an XML table instead of a list.

The following dialog box appears:

25. Click OK.


The XML file opens. The file can be sorted to make translation easier.

26. Scroll to see all the columns.

InTouch 10.0 – Advanced Application Development Course


10-22 Module 10 – Runtime Language Switching

The first column, labeled Phrase, contains all the static text in the application.
The second column, labeled Translation, is where you enter the translated phrases.
The third and fourth columns, labeled TranslatedFontName and TranslatedFontProperty,
are for redefining the font for specific phrases. If you recall, we defined a base font for the
language earlier in this lab. Here you can change the font for specific text strings so the text
fits in the space allowed.
27. In the Translation column, enter some translations for the phrases in the Phrase column. You
can also enter font names and properties (for example Bold ; 10) in the third and fourth
columns if desired.

Note: You can enter anything you want for the translated phrases, or go to
http://www.google.com/language_tools to look up translations.

28. On the File menu, click Save As.


29. Browse to the directory in which you saved the file, and select the file type XML Data.

Warning: If you select another file type, such as XML Spreadsheet, Excel alters the schema
and InTouch cannot recognize the file.

30. Click Save.


The following warning appears:

31. Click Continue.


32. Close the file.
33. From Windows Explorer, open the alarm Export XML file with Microsoft Excel As XML List
and click OK.

34. Click OK.

Wonderware Training
Lab 26 – Configuring Languages for Runtime 10-23

Note: Two items are listed: Tagnames and their Comments and Alarm Comments.

35. Enter the translation for Alarm fields.

36. Save As XML Data.


37. Close the file and exit Microsoft Excel.

InTouch 10.0 – Advanced Application Development Course


10-24 Module 10 – Runtime Language Switching

Import Dictionary Files


Now that you have translated the dictionary file, you can import it into your application and enable
Runtime language switching.
38. Launch WindowMaker if it is not already running.
39. On the Special menu, point to Language, and then click Import Dictionary.
The dialog box shown below appears.

40. Browse to the directory you saved the translated file in.
41. Click Import.

When the import is complete, the Import Successful dialog box appears.
42. Click OK.
43. From the Special menu, select Language / Import Alarm Fields.
44. Browse to the same path as the previous dictionary.
45. Click Import.

Wonderware Training
Lab 26 – Configuring Languages for Runtime 10-25

Switch Language in Runtime


You are now ready to test the language switching capability.
46. Open the Reactor display window and go to Runtime.

Note: If the window you translated has a different name, your instructor will provide it.

Switch Language Using Buttons and Action Scripts Created Earlier


47. Click the Italian flag symbol to switch the application to Italian.
48. Click the USA flag symbol to switch back to English.

Switch Language Using Menu


49. On the Special menu, point to Language.
The Language(s) you configured are now available to select.
50. Select the desired language.
Notice the change in your application.

InTouch 10.0 – Advanced Application Development Course


10-26 Module 10 – Runtime Language Switching

Wonderware Training
Module 11

Application Distribution
Section 1 – Copying the Application 11-3
Lab 27 – Publishing and Exporting the Application 11-7
Section 2 – Network Application Development 11-13
Lab 28 – Using Network Application Development 11-33
Section 3 – Using InTouch on a Tablet PC 11-39
Section 4 – Introduction to Terminal Services 11-47
Section 5 – Introduction to Information Server 11-61
11-2 Module 11 – Application Distribution

Module Objectives
z Use Network Application Development (NAD) to distribute client/server applications.
z Create an awareness for other distribution alternatives both locally and via the internet.

Wonderware Training
Section 1 – Copying the Application 11-3

Section 1 – Copying the Application

Section Objective
z Use NAD, Update options and DRC to distribute client/server applications.
z Use NAD, Update options and DRC to distribute client/server applications.

Published Applications
You can publish a managed application from the derived InTouchViewApp template.
When you publish a managed application, a user-defined folder is created containing InTouch
application files and any ArchestrA symbols embedded in the application. You use Application
Manager’s Find utility to locate the folder. Thereafter, the converted application appears in
Application Manager as a published application.

Key Points
z After you publish a managed application, you cannot use the ArchestrA Symbol Editor to
edit the ArchestrA symbols embedded in the published application.
z After you publish a managed application, you can still use embedded ArchestrA symbols
to write data to a Galaxy or visualize data.
z After you publish a managed application, you can use WindowMaker’s graphic tools to
modify some basic characteristics of an embedded ArchestrA symbol, such as size,
orientation, and screen position.
z A published application cannot be imported again into a Galaxy.

InTouch 10.0 – Advanced Application Development Course


11-4 Module 11 – Application Distribution

Publishing a Managed InTouch Application


After you edit your managed InTouch application, you can publish it from the InTouchViewApp
object that is associated with it. The export consists of a folder containing information about the
object and the managed InTouch application.
This is different than exporting the InTouchViewApp object itself. The published InTouch
application cannot be reimported into an InTouchViewApp object.
A managed application appears in the InTouch Application Manager as Published Application
Type. The advantage of published InTouch applications is that they can be distributed like stand-
alone InTouch applications, but continue to support the functionality of the ArchestrA Symbols.
However, you can no longer:
z Use ArchestrA IDE to deploy the InTouch applications.
z Edit or add ArchestrA Symbols in the InTouch applications.

To publish a managed InTouch application


a. Open the ArchestrA IDE.
b. Locate the InTouchViewApp object that contains the managed InTouch application you want
to publish.
c. Right-click the object.
Click Publish InTouch Application.
The Browse For Folder dialog box appears.

d. Specify the folder to publish to the InTouch application to.


Do any of the following:
z Browse to an existing folder.
z Click Make New Folder to create a new folder or folder structure.
e. Click OK.

Wonderware Training
Section 1 – Copying the Application 11-5

The Publish InTouch Application progress dialog box appears.

f. When publishing is complete, click Close.


A directory containing the new published InTouch application is created in the selected folder.

You can now copy it to any run-time node.

Deleting a Managed InTouch Application


You can delete an InTouch application in the ArchestrA IDE by deleting the associated
InTouchViewApp template.
When you do this, the template and the InTouch application directory associated with that
template are deleted completely.
You can only delete an InTouch application if the associated InTouchViewApp object does not
have any derived instances.
Deleting an InTouchViewApp instance does not delete the associated InTouch application.
To delete the InTouchViewApp template
a. Open the ArchestrA IDE.
b. Select the InTouchViewApp template that contains the managed InTouch application you want
to delete.
c. On the Edit menu, click Delete.
The Delete dialog box appears.
d. Click Yes.
The InTouchViewApp template and the associated InTouch application folder are deleted.

InTouch 10.0 – Advanced Application Development Course


11-6 Module 11 – Application Distribution

Wonderware Training
Lab 27 – Publishing and Exporting the Application 11-7

Lab 27 – Publishing and Exporting


the Application
Introduction
In this lab you will use the tools within InTouch to publish applications for use as standalone
applications on any computer node. You will also use the tools within the ArchestrA IDE to export
InTouch applications for use in other Galaxies or for a backup that can be re-imported into the
current Galaxy.

Objectives
Upon completion of this lab, you will be able to:
z Publish an InTouch application for standalone use
z Export an InTouch application that can be used with other Galaxies

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

Publishing an InTouch Application


a. Open the ArchestrA IDE if it is not already running.
b. Verify that InTouch (both WindowMaker and WindowViewer) is NOT running.
c. Locate the InTouchViewApp object that contains the managed InTouch application you want
to publish.
d. Publish the InTouch Application.
e. Retrieve your published InTouch application.

Export an InTouchViewApp Object


f. Select the object template to export. For example, $AdvancedClass.
g. On the Galaxy menu, select Export / Object(s).
h. Select a folder to export, specify an ArchestrA package (.aaPKG) file name and click Save.
The object and its managed InTouch application are exported.

See the next page for Detailed Lab Instructions.

InTouch 10.0 – Advanced Application Development Course


11-8 Module 11 – Application Distribution

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Publishing an InTouch Application


1. Open the ArchestrA IDE if it is not already running.
2. Verify that InTouch (both WindowMaker and WindowViewer) is NOT running.
3. Locate the InTouchViewApp object that contains the managed InTouch application you want
to publish.
4. Right-click the object.
Click Publish InTouch Application.

The Browse For Folder dialog box appears.


5. Browse to the folder from which you will retrieve your published InTouch application.
6. Click OK.

Wonderware Training
Lab 27 – Publishing and Exporting the Application 11-9

7. When publishing is complete, click Close.

A directory containing the new published InTouch application is created in the selected folder.

You can now copy it to any run-time node.

InTouch 10.0 – Advanced Application Development Course


11-10 Module 11 – Application Distribution

Exporting and Importing an InTouchViewApp Object


You can import and export the InTouch application derived from the InTouchViewApp object in the
ArchestrA IDE. The InTouchViewApp object contains all information for hosting a managed
InTouch application and can be used to exchange a managed InTouch application between
Galaxies.

To Export an InTouchViewApp Object


8. Select $AdvancedClass.
On the Galaxy menu, select Export / Object(s).
The Export Automation Object(s) dialog box appears.

9. Select a folder to export to, specify an ArchestrA package (.aaPKG) file name and click Save.
The object and its managed InTouch application are exported.
10. Click Close.

Wonderware Training
Section 2 – Network Application Development 11-11

Section 2 – Network Application Development

Section Objective
z Understand the different network and application architectures.

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.

In the NAD architecture, a master copy of an application is maintained on a central network


location. Each View node loads that network application as they would in a server-based
architecture, but instead of running the application from the server, the application is copied to and
run from a user-defined location. This provides the client-based advantage of redundancy. In the
example below, the two View nodes both have the master application registered from the
development node, but actually run it from their own hard drives.

InTouch InTouch InTouch


App. App. App.
Process

Development Node View Node 1 View Node 2


Network

When a View node copies and runs a master application, it automatically monitors for changes in
the master copy. These changes are indicated by a flag in the master application directory. This
flag is set manually when the application developer uses the WindowMaker Special/Notify
Clients command while editing that application. When this flag changes, each View node has a
user-definable action that specifies the response of that node. This can range from ignoring the
flag to automatically shutting down and restarting the View node, which reloads the master
application.

Advantages
z Distributing the application
z Single client application to maintain
z View nodes automatically notified when application changes
z Each node defines action to take on change
z Unrestricted development of the application

Disadvantages
z Distributing a large, complex application takes time
z Limits flexibility of having different applications running on different nodes
z View is suspended while application is transferred and compiled

InTouch 10.0 – Advanced Application Development Course


11-12 Module 11 – Application Distribution

Configuring an InTouch Application for NAD


Note: You cannot use the NAD features if you are using WindowViewer as an NT Service.

a. Start the InTouch program (INTOUCH.EXE).


The InTouch Application Manager dialog box appears:

b. Click the Node Properties tool .


The Node Properties dialog box appears with the App Development tab active:

Note: The App Development tab provides several options that allow you to specify how NAD
will function. These settings are configured on each View node, NOT ON THE
DEVELOPMENT NODE. This allows unique configurations for each View node.

Wonderware Training
Section 2 – Network Application Development 11-13

When WindowViewer is run as an NT service, it allows continuous operation of WindowViewer


through operating system logins and logouts, e.g., operator shift changes. Using this option
also allows automatic start up of InTouch following power failure or when the machine is
turned off and on. This provides unmanned station startup of WindowViewer without
compromising NT operating system security. However, you cannot use NAD features if you
are using WindowViewer as an NT service.
c. Select Enable Network Application Development to enable NAD. The five Change Mode
options become active. Only one change mode may be selected for each node.

Note: The initial copying of the master application may take longer than subsequent updates.

d. In the Local working directory field, type the directory that you want WindowViewer to copy
the master application to. If this is the development node, you can type a local directory path,
such as c:\InTouch\NAD. You can also type a networked remote UNC path, such as
\\node\share\path. This is convenient for file server based networks where most file storage
is kept in a central location. If this is a client node (runtime only), it will likely use a local
directory path. If you do not specify a directory, WindowViewer automatically creates a local
subdirectory named "NAD" in the directory from which WindowViewer is launched.
It is recommended that you use a local directory whenever possible to prevent network delays
and failures from affecting the operation of WindowViewer.

Caution! Do not use a "root" directory or a UNC path name that points to a root directory.
The View node will recursively delete all files and sub-directories in the specified destination
application directory before copying the master application directory. Therefore, NEVER use
the path of the master application directory or a UNC to the master application directory.

This directory should be considered a temporary directory and no files should be saved to it
except those copied by NAD itself.
e. Set the Polling period (sec): time. This value sets the interval (in seconds) at which the View
node will poll the development node to check for changes.

Note: Caution is advised when specifying this setting. If you set the value too small,
WindowViewer will waste time checking for master application changes. This can interfere
with WindowViewer servicing the running application.

InTouch 10.0 – Advanced Application Development Course


11-14 Module 11 – Application Distribution

f. In the Change Mode group, select the option for the action that you want WindowViewer to
take when the master application changes.

Action Description
Ignore changes Causes the runtime (WindowViewer) node to ignore any changes
made on the development node.
Restart Window Viewer 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 an interactive message box to appear, notifying the operator
WindowViewer that the application has changed. The operator is asked if they want
to restart WindowViewer.
Load Changes into Causes changes made in the development node to dynamically be
WindowViewer loaded into WindowViewer. This may affect performance for large
updates.
Prompt user to load changes Causes an interactive message box to appear, notifying the operator
into WindowViewer that the application has changed. The operator is asked if they want
to load the changes dynamically into WindowViewer.

g. Click OK.

Wonderware Training
Section 2 – Network Application Development 11-15

Customizing NAD Update Function


In addition to the five update options previously described, 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 Push button 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.

Manually Notifying Clients of Application Changes


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.

InTouch 10.0 – Advanced Application Development Course


11-16 Module 11 – Application Distribution

The Application Copying Process


When the WindowViewer node copies an application, it makes every attempt to retain the
attributes (read-only, system, hidden, etc.) of the master application during the copy process.
WindowViewer also copies all files and subdirectories of the master application. The copy process
does not copy the following files: *.WVW, *.LGH, *.LOG, *.IDX, *.LOK, *.FSM, *.WBK, *.CBK,
*.DBK, *.GBK, and *.NBK.

Note: WindowViewer will recursively delete all files and subdirectories in the destination
application directory. This directory should be considered a temporary directory (no files should
be placed into it).

Application Editing Locks


InTouch applications can only be edited by one developer at a time. To prevent multiple
developers from trying to edit an application, WindowMaker locks an application during the edit
session. If you try to load an application into WindowMaker that has a lock created, you will
receive a message telling you that the application cannot be edited because it is being edited by
another computer. The name of the node editing the application will also be stated in the
message.

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.

Wonderware Training
Section 2 – Network Application Development 11-17

Dynamic Resolution Conversion (DRC)


Dynamic Resolution Conversion (DRC) works with other distributed features to provide
independence from screen resolution restrictions. In a NAD architecture, an InTouch application is
created and maintained on a development node and then copied to several View nodes. DRC
allows all of these nodes to view the application even if they are running at different screen
resolutions.
DRC enables each View node to scale the application to a number of user-defined options,
including a custom resolution. This scaling takes place while WindowViewer compiles the
application and does not require WindowMaker. Since each View node can use a different DRC
setting, each View node must have its own settings configured.
a. Start the InTouch Application Manager.
The InTouch Application Manager dialog box appears:

b. Click the Node Properties tool . See page 11-14 for more details.

InTouch 10.0 – Advanced Application Development Course


11-18 Module 11 – Application Distribution

The Node Properties dialog box appears.


c. Click the Resolution tab.

d. Select Allow WindowViewer to dynamically change resolution for WindowViewer to locally


scale the master application, based on the selected resolution option.
If you do not select this option, WindowViewer will run the application only if the node's screen
resolution is identical to the screen resolution of the application development node. If the
resolutions are different, WindowViewer prompts the operator to run WindowMaker to convert
the application to the node's resolution. Use caution when doing this if you have set up a UNC
path to the master application directory, as this will only modify the original application.
e. Select Use application resolution for WindowViewer to run the application at the resolution it
was developed for and ignore the node's resolution. For example, if the application was
developed at 640x480 and the node's resolution is 1024x768, WindowViewer will not
dynamically scale the application. Instead, the application will be displayed at 640x480.
f. Select Convert to screen video resolution for WindowViewer to run the application at the
node's resolution and ignore the resolution the application was developed at. For example, if
the node is running at 640x480 and the application was developed at 1280x1024,
WindowViewer will dynamically scale the application (smaller) to fit the node's 640x480
display. (This will more than likely be the most commonly used setting.)
g. Select Custom Resolution for WindowViewer to run the application at the resolution specified
in the Pixel width (X) and Pixel height (Y) (must be integer values) fields. The application's
resolution and the node's resolution are both ignored. For example, if Pixel width (X) and
Pixel height (Y) are set to 512 and 384, respectively, the application will dynamically be
scaled to fit in a 512x384-pixel area on the node's display.
h. Click OK.

Wonderware Training
Section 2 – Network Application Development 11-19

Working with Multiple Monitor Systems


There are several advanced graphics adapter cards on the market today that allow you to have
more than one VGA monitor connected to your system at a time. These monitors act in tandem,
creating a virtual screen that can be very large. As an example, a popular system connects four
17" monitors stacked as a cube: two on the bottom and two on the top. Since each screen has a
resolution of 800x600, the virtual screen created is 1600x1200 pixels.
Dynamic Resolution Conversion (DRC) makes it easy to support these multi-monitor systems.
Simply select from the DRC resolution conversion options to take full advantage of all the virtual
display or just a portion of it.
If an application is scaled to run on an even number of the monitors, a problem exists when certain
dialogs are displayed over the span of the monitors. One of these dialogs, the Keypad, can cause
particular problems as certain keys may not be accessible. To solve the problem, InTouch
provides several multi-monitor configuration options.

Configuring the Multi-monitor Settings on a Node


a. Using a suitable text editor, e.g., Windows Notepad to open the WIN.INI file (located in your
Windows directory).
b. Locate the [InTouch] section and add the following parameters:
[InTouch]
MultiScreen=1 turns on multi-screen mode
MultiScreenWidth=640 width in pixels of a single screen
MultiScreenHeight=480 height in pixels of a single screen
For example, if your computer's resolution is 2560 x 1024 split on two horizontal screens,
enter the following:
[InTouch]
MultiScreen=1
MultiScreenWidth=1280
MultiScreenHeight=1024

Note: The above entries affect the numeric keypad and the QWERTY keyboard. Other
InTouch dialog boxes and option boxes are not affected.

InTouch 10.0 – Advanced Application Development Course


11-20 Module 11 – Application Distribution

Distributed Applications and Time Zones


InTouch provides services that ease the use of applications across multiple time-zones. These
services are used by both the alarm and history systems to permit values to be viewed at the local
time they occurred. For example, if an engineer in California is viewing an alarm that occurred in a
manufacturing plant in Kansas at 10AM, that engineer would see the local California time that the
alarm occurred; 8AM. The same is true if the engineer is viewing historical data from that plant.
The key to these services is the use of UCT (Universal Coordinated Time), also known as
Greenwich Mean Time or GMT, as the time reference. Each computer is configured with both the
local time and a UCT offset for the time zone where it resides. In the above example, the time
zone for the computer in California is set at GMT eight hours, while the time zone for the computer
in Kansas is set at GMT six hours.
InTouch uses these GMT offsets as the basis for retrieving all alarm and historical data. In the
above example, when the InTouch application in California received the alarm from the application
in Kansas, it also looked at the GMT offset of both computers to determine the local California time
that the alarm occurred. Thus, a 10AM alarm in a UCT six time zone equals an 8AM alarm in a
GMT eight time zone. To use this feature, the GMT offset must be configured for each computer.

Note: For more information on setting time zones, see the following Wonderware Tech Notes:
#135, Setting Up Distributed History in InTouch and #144, How Time Zones and Daylight Savings
Time Affect InTouch Historical Logging.

Wonderware Training
Section 2 – Network Application Development 11-21

Client/Server Architecture
InTouch allows for a single tag configuration database to serve an entire network of InTouch
clients. This ability to deploy “thin” clients against a single database provides the HMI developer
with an even greater level of usability and performance.

Advantages
z Single tag database can serve entire network
z Remote Tagname Referencing
z Distributing Alarms and History
z FactorySuite component integration
z Lower traffic
z Lower cost
z Easy to distribute
z In concert with NAD – this is the recommended approach to distributing applications

Disadvantages
z Client can never be master

Considerations
z Planning up front

InTouch 10.0 – Advanced Application Development Course


11-22 Module 11 – Application Distribution

Remote Tag Referencing


Remote Tagname Referencing allows the InTouch developer to create true client/server MMI
applications (this subject was covered in more detail earlier). With Remote Tagname Referencing,
a single copy of the Tagname Dictionary may be stored on a server node and referenced across
the network by any number of InTouch client nodes. It is unnecessary for client nodes to maintain
copies of the Tagname Dictionary on their local hard drives. Remote Tagname Referencing allows
client nodes to view and change all applicable data over the network.
The following diagram illustrates a three-node InTouch application, however, the two client nodes
are “tagless.” They do not have corresponding entries in their local Tagname Dictionaries for the
data being obtained from the server. Remote referencing, in this case, reduces the number of
configuration databases to be maintained from three to one.

Remote Referencing Client/Server Architecture:

InTouch can just as easily act as a client to an InControl or InBatch node. In this architecture the
tags reside on the InControl or InBatch nodes and no tags are created on the InTouch Client node
(see diagram below).

Remote Referencing Client/Server Architecture with InTouch as Client to


FactorySuite Servers:

Wonderware Training
Section 2 – Network Application Development 11-23

Distributed Alarms
Both InTouch’s Standard and Distributed Alarm Systems provide services to display, log, print and
acknowledge process alarms and system events (these subjects were covered in Module 8,
“Alarm Distribution”).
Under the Distributed Alarm system, InTouch nodes are classified as alarm “providers” and/or
alarm “consumers,” allowing the display and acknowledgment of alarms generated by the local
alarm systems of other InTouch applications on the network.
Since the distributed systems allows the view and acknowledgment of alarms not represented in
the local Tagname Dictionary, distributed alarms combined with Remote Tagname Referencing
facilitates the development of true client/server applications.
InTouch’s Distributed Name Manager may be used to combine both local and remote alarm groups
into customized queries that can be called under a single name. The distributed alarm system
also includes script functions that provide dynamic control over alarm display and
acknowledgement, as well as the ability to add comments to alarms when acknowledged.

Distributed History
InTouch provides for the retrieval across the network of historical data from any InTouch 5.6 (or
later) application. Data may be retrieved from up to eight historical providers simultaneously.
Distributed History may be combined with Remote Tagname Referencing and Distributed Alarms
to create true client/server applications. Under this architecture, “tagless” nodes may be
configured to view historical data from any history provider on the network.

Wonderware Historian
Wonderware Historian is a plant floor historian optimized for the acquisition, storage and retrieval
of real time data. Based on Microsoft SQL Server, Wonderware Historian combines the real-time
data acquisition and compression needed for plant floor applications with full relational access for
any ODBC compatible client. For these reasons, Wonderware Historian is the ideal choice for use
in distributed InTouch applications, providing tremendous improvement over the native InTouch
Historian.
While ActiveX client tools for querying and displaying the Wonderware Historian are available with
InTouch, Wonderware Historian data may still be accessed in the same manner used to access
native InTouch history. This native access allows applications developed with InTouch 5.6 or 6.0
to also access Wonderware Historian Server data.

InTouch 10.0 – Advanced Application Development Course


11-24 Module 11 – Application Distribution

Configuring Network Resources


InTouch provides many configurable options for distributed use. This section contains hands-on
examples of how to set up and use these options to distribute your InTouch applications.

Configuring UNC Paths for Files


InTouch supports the use of Universal Naming Conventions (UNCs) for application directory
entries, configuration items, remote history, and distributed alarms. UNC allows direct access to
network-based files without needing to create a mapped drive letter. Each UNC address may
consist of three parts: Node, Share, and Path in the form Special/Notify Clients. Node refers to
the computer node name that contains the file share. Share refers to the logical name assigned to
the shared directory on that computer. Path refers to the normal DOS path to that file with respect
to the share.
Before you can access a file through UNC, you must create a file share on the computer you want
to access. You can share an entire drive or just a directory of that drive. You can even customize
the security of that share. Either way, you must create a share name that will be used in the UNC
address. For more information on creating a file share, refer to your Windows operating system
manuals.
Once the share is created, you can use a UNC address to refer to that drive anywhere that you
would normally enter a file path. For example, the InTouch program allows either a UNC path or a
standard DOS path to be entered for the location of InTouch applications.
Let's assume that you have a computer with the network name of "EngineRm" that you have
shared the root drive "C:\" with the share name of "Root". To set up a UNC path to the
"C:\InTouch\Apps\Boiler" application you must use the following UNC:
\\EngineRm\InTouch\Apps\Boiler
If the "Boiler" directory itself was shared as "Boiler," the UNC could be shortened to:
\\EngineRm\Boiler
No path is required if the share is the path.

Note: If you need to write to a file referred to by a UNC address, the share must be a read/write
share, even on a local node. If you create a share that is password-protected, you will not be able
to access the share with a UNC unless you first set up a network drive mapping. You can set up a
drive mapping from the remote node by using Windows Explorer

Wonderware Training
Section 2 – Network Application Development 11-25

Wonderware SuiteLink Communication Protocol


Wonderware FactorySuite is shipped with Wonderware's communications protocol SuiteLink.
Wonderware SuiteLink uses a TCP/IP based protocol. SuiteLink is designed specifically to meet
industrial needs, such as data integrity, high-throughput, and easier diagnostics. This protocol
standard is only supported on Microsoft Windows NT 4.0 or later.
SuiteLink is not a replacement for DDE, FastDDE, or NetDDE. Each connection between a client
and a server depends on your network situation. SuiteLink was designed specifically for high
speed industrial applications and provides the following features:
z Value Time Quality (VTQ) places a timestamp and quality indicator on all data values
delivered to VTQ-aware clients.
z Extensive diagnostics of the data throughput, the server loading, computer resource
consumption, and network transport are made accessible through the Microsoft Windows
NT operating system performance monitor. This feature is critical for the scheme and
maintenance of distributed industrial networks.
z Consistent high data volumes can be maintained between applications, regardless of
whether the applications are on a single node or distributed over a large node count.
z The network transport protocol is TCP/IP using Microsoft’s standard Winsock interface.

Configuring InTouch for Common Data Sources


InTouch allows you to build your application using several different architectures. Regardless of
the architecture you choose, it is important to consider the data sources that application will
access and how it will access them.
Each architecture shares a common trait in that the application is run by each View node as if it
owns it. While this may not seem problematic at first, it's important when you consider the data
source references that an InTouch application may contain. Typical data sources are Access
Names, SQL connect strings or Recipe files.
Each of these sources are retrieved through a reference address, such as D:\PROCESS\RECIPE.CSV,
in the case of a Recipe file or DSN=PROCDB, in the case of a SQL connect. While these
addresses may make sense from the perspective of the computer they were developed on, they
may be meaningless when that application is copied to and run from a View node that has no
D: drive or registered ODBC data source name called PROCDB.
If you plan to distribute an application to more than one node, you need to consider the impact of
your data source addresses. There are two basic ways to do this:
a. Create identical copies of the data sources on each View node.
b. Use only global addresses for the data sources.
The following will cover these options as they pertain to the two major data sources: remote data
and file access.

InTouch Access Names


InTouch uses Access Names to reference real-time I/O data. Each Access Name equates to an I/
O address that can contain a Node, Application, and Topic. In a distributed application, I/O
references can be set up as global addresses to a network I/O Server or local addresses to a local
I/O Server.

InTouch 10.0 – Advanced Application Development Course


11-26 Module 11 – Application Distribution

Global Addresses to I/O Data Sources


Global addresses to I/O data allow all of the View nodes to share a common network-based I/O
Server. This prevents the cost of multiple I/O Servers, but is less fault-tolerant and can result in
lower overall performance. In the following example, two View nodes, each running a copy of the
same application, are referencing the same I/O data source. Since each application uses a fully
qualified I/O address for the data source, all references point to the same I/O Server.

Process

View Node 1 View Node 2 IOServer "Moo"

Computer Network

Setting Up this Configuration


a. Click on Special/Access Name.
The Access Names dialog box appears:
b. Click Add.

Wonderware Training
Section 2 – Network Application Development 11-27

The Add Access Name dialog box appears:


c. Enter an Access Name.
d. Enter the Node Name.
e. Enter the Application Name.
f. Enter a Topic Name.
You can define any name you want for the Access Name, but the Application Name and
Topic Name must reference the computer with the I/O Server.
g. Select the protocol that you are using.
h. Click OK.

The Access Names dialog box reappears displaying the new Access Name:
i. Click Close.

InTouch 10.0 – Advanced Application Development Course


11-28 Module 11 – Application Distribution

Local Addresses to I/O Data Sources


Local addresses to I/O data can be used when each View node has its own I/O Server. This
architecture provides fault-tolerant operation, as each View node can independently run if the
network goes down. In the example below, two View nodes, each running a copy of the same
application, are referencing their own I/O data source. Since each application uses a local I/O
address for the data source, each reference points to the local I/O Server.
This method significantly increases the load on the process connection network. That is, three
nodes triples the traffic created by one node, as each node's requests must be separately
processed. There are three view nodes:

Process

View Node 1 View Node 2 View Node 3

Network

File Access
InTouch uses DOS files, FAT or NTFS to read and write reference data. Certain programs, such
as Recipe Manager, utilize files very heavily. In a distributed application, file references can be set
up as global addresses to a network file server or as local addresses to a local file.

Global Addresses to File Data Sources


Global addresses to file data allow all of the View nodes to share a common network-based set of
files. This provides single-source maintenance of the files, but is less fault-tolerant than local
copies. In the example below, two View nodes, each running a copy of the same application, can
reference the same Recipe file. Since each application uses a drive letter mapped to a fully-
qualified network path for the file, all references point to the same file.

View Node 1 View Node 2 FileServer "Moo"

Computer Network

Wonderware Training
Section 2 – Network Application Development 11-29

Setting Up this Configuration


Map a network drive to the shared path containing the referenced files. Enter the following script
to retrieve a Recipe file:
RecipeSelectRecipe("G:\Directory\Recipe.CSV", "review", "RecipeName");
where "G:\" is the mapped drive letter that refers to \\Node1\Share. Every View node must be
independently configured to have this same "G:\" drive mapped.

Local Addresses to File Data Sources


Local addresses to file data can be used when each View node has its own copy of the file. This
architecture provides fault-tolerant operation, as each View node can independently run if the
network goes down. It does require that any changes to the files be copied to all the View nodes.
In the following example, three View nodes, each running a copy of the same application, can
reference their own copies of the Recipe file. Since each application uses a local address for the
file, each reference points to the local file.

View Node 1 View Node 2 View Node 3

Computer Network

Setting Up this Configuration


Use a local address (for example, C:\Directory) to directly reference files. In a script to retrieve a
Recipe file, type the following:
RecipeSelectRecipe("C:\Directory\Recipe.CSV", "review", "RecipeName");
where "C:\" is a local drive.
A copy of the file "Recipe.csv" must be stored on each machine in its local directory "C:\directory."
If the file is modified, it must be copied again to each machine. Because of the difficulty in
maintaining this configuration any file access should be "Read Only" and modification to the local
file should not be permitted.

InTouch 10.0 – Advanced Application Development Course


11-30 Module 11 – Application Distribution

Wonderware Training
Lab 28 – Using Network Application Development 11-31

Lab 28 – Using Network Application


Development
Introduction
In this lab you will use the tools within InTouch to distribute an application to multiple nodes. The
lab investigates the application's functionality to understand the impact of local tags vs. remote
tags. NAD options, as well as Dynamic Resolution Conversion, are covered.
The instructor’s application is slightly different than the student’s application. The instructor’s node
will be responsible for all data acquisition from the real world (e.g., PLC1 and PLC2) for the
application. This InTouch Tagname Dictionary will then contain I/O tag types that map to the two
PLCs. Your application will contain no I/O tags, but other Remote References to the instructor’s
I/O tags.
Historical data is being logged by the instructor’s computer (PC1 in the diagram below) and by
PC2 via DemoApp1. Therefore, the Master NAD App contains two Distributed History Name
Providers. The Name Providers point to the two history files located on PC1 and PC2. PC1 and
PC2 are also generating alarms. The Master NAD App contains Alarm Groups that represent
each node so all nodes can see and acknowledge alarms.
PC2 will be running DemoApp1 and an I/O Server communicating to PLC2. DemoApp1 will be
generating Alarms that can be seen from all nodes. It will also be logging historical data locally.
This data will be accessible from any node. The instructor’s node contains the Access Name to
the PLC connected to this node so all nodes will get its data from the Instructor’s node using
Remote Referencing.

Objectives
Upon completion of this lab, you will be able to:
z Configure node properties to enable NAD
z Configure dynamic resolution conversion

InTouch 10.0 – Advanced Application Development Course


11-32 Module 11 – Application Distribution

Requirements
z NAD Development Node (Instructor Node) running Advanced InTouch Student App.
z Second Data Source Node–third PC running DemoApp1 and I/O Server to PLC2.
z NAD Runtime Client–PC running WindowMaker and WindowViewer
z Network connection between PC1, PC2, and PC3.

Additional Requirements
z Check Access Names in the applications to ensure they are pointing to the correct Node
Names.
z Check Distributed Alarms and Distributed History Name Managers to ensure that they
point to the correct shares, paths, directories, etc.

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab. For detailed
instructions, please refer to the Detailed Lab Instructions on subsequent pages.

Configure Node Properties to Enable NAD


a. Exit WindowViewer and WindowMaker.
b. Start InTouch Application Manager and find the Advanced InTouch Student App on the
Instructor Node (or other designated node as provided by the instructor).
c. Using the Node Properties, Browse to the desired node as designated by your instructor.

Enables NAD.

Directory containing
the local copy of the
application once
distributed by NAD.

Action to take place


when application
changes.

d. With the remote application selected in InTouch Application Manager,


click on the WindowViewer icon.
e. Observe the results as your instructors makes changes to the application.

Dynamic Resolution Conversion


f. Change the resolution of your monitor.
g. From the Node Properties / Resolution tab, check Allow WindowViewer to dynamically
change resolution and select Convert to screen video resolution and start WindowViewer.

Wonderware Training
Lab 28 – Using Network Application Development 11-33

Detailed Lab Instructions


Following are Detailed Lab Instructions for completing this lab. For a summary of instructions,
please refer to the Summary Lab Instructions on the previous page(s).

Configure Node Properties to Enable NAD


1. Exit WindowViewer and WindowMaker.
2. Start InTouch Application Manager and find the Advanced InTouch Student App on the
Instructor Node (or other designated node as provided by the instructor). Use the Tools/Find
Applications menu item:

The InTouch application list will now contain the path to the remote application.

3. Click on the Node Properties icon .


4. Browse to the desired node as designated by your instructor.
5. Set the following options under the App Development tab and click OK.

Enables NAD.

Directory containing
the local copy of the
application once
distributed by NAD.

Action to take place


when application
changes.

InTouch 10.0 – Advanced Application Development Course


11-34 Module 11 – Application Distribution

6. With the remote application selected in InTouch Application Manager,


click on the WindowViewer icon:

7. Ensure that the main windows are operating.

Note: Your instructor will make changes to the application and update the nodes in the
classroom. You will be able to see NAD working and test its behavior.

Updating the Application


There are different ways to update the client applications when a change has been made to the
original copy. The usual way is to have each client application either automatically update when
the application version changes or to notify the user that a new version is available and leave it up
to the user whether or not to request the update.
Another possibility is to use the system tag $ApplicationChanged to check whether or not a
newer version of the application exists. This is an integer tag that will be 1 (one) if there is a newer
version of the application available and 0 (zero) if there is not.
The script function RestartWindowViewer() can be used to shut down the application and reload
it to get the newer version, OR ReloadWindowViewer() can be used to simply upload the
changes without requiring a shut down.

Wonderware Training
Lab 28 – Using Network Application Development 11-35

Dynamic Resolution Conversion


In some situations, it will be necessary to run the same application at different resolutions on each
of the different client machines. To do this, perform the following steps:
8. Exit WindowViewer.
9. Right-click on the background of the screen and select Properties to change the monitor's
resolution.
10. When the dialog box appears, click on the Settings tab.
Use the slider to change the resolution to 1024x768:

Note: If the default Desktop area is 1024 by 768, change the setting to 1280 by 1024.

11. Start InTouch Application Manager and click on the Node Properties icon.

InTouch 10.0 – Advanced Application Development Course


11-36 Module 11 – Application Distribution

12. Click on the Resolution tab.


Set the following options:

13. Click OK and start WindowViewer.


The application will be copied locally and converted to meet your screen resolution.

Wonderware Training
Section 3 – Using InTouch on a Tablet PC 11-37

Section 3 – Using InTouch on a Tablet PC

Section Objectives
z Introduce highlighted features of the Windows XP for Tablet PCs.
z Introduce highlighted features of Wonderware InTouch 8.0 SP2.
z Demonstrate the AnnotateLayout script function.
z Change screen orientation from landscape to portrait.
z Introduce Tips for Using Tablet PCs.

Tablet PCs have been used for years in the Utilities, Oil & Gas, and Emergency Response
environments. They are extremely durable and have several features that make them appropriate
for industrial settings.

Hardware
Ruggedized Tablet PCs are sealed units which are waterproof and vibration resistant. Most come
equipped with a light sensor which allows for automatic adjustment of screen brightness based on
the light surrounding them. They have dual batteries which allow batteries to be swapped out on-
the-fly when necessary. Most come with docking stations and a digital pan. A wireless network
card makes them completely portable in a wireless environment.

Operating System
Tablet PCs run on Microsoft Windows XP Tablet PC Edition which supports full functionality of all
software including pen extensions which allow data input with a digital pen. The digital pen is also
used as a pointing device.

Target Users
These features make tablet PCs an ideal tool to create efficiency in plant settings. They empower
users to access InTouch applications anywhere any time when in range of a wireless network.
They are perfect for users who need to move around, monitor plant activities, enter small pieces of
data, or enter data without a keyboard. They are also ideal for harsh environments.

Highlighted Features of the Operating System


This information is intended to introduce the features most applicable to Wonderware customers.
Please refer to the owner’s manual for your specific Tablet PC for detailed instructions.

Digital Ink
Digital Ink in practical terms is simply electronic handwriting. Using the digital pen, you can input
data, change set points, and make notes with handwriting. This is especially useful when the
tablet is undocked.

InTouch 10.0 – Advanced Application Development Course


11-38 Module 11 – Application Distribution

Windows Journal
Windows Journal is a note-taking application that lets you create and organize handwritten notes
in a Tablet PC using a digital pen. You can think of it as a version of Notepad that handles "digital
ink". It also provides character recognition capabilities so your handwriting can be converted to
text; although you can enter, manage and keep your notes in digital ink if you so desire.

It includes search and highlight capabilities.

Wonderware Training
Section 3 – Using InTouch on a Tablet PC 11-39

It will also convert your handwriting into text.

Screen Rotation
The XRT Screen Rotation tool is especially useful when the Tablet is undocked. This allows you to
change from landscape orientation to portrait. This is more comfortable when you're holding the
Tablet and taking notes. This is done by changing the screen resolution.

InTouch 10.0 – Advanced Application Development Course


11-40 Module 11 – Application Distribution

Write Anywhere
With the Write Anywhere feature, you can use most of the screen on your Tablet PC as a writing
area. This is especially useful for longer writing tasks.
The Write Anywhere feature converts your handwriting into typed text and inserts it in a location
that you specify, such as a word-processing document. You can use the Write Anywhere feature
to enter text anywhere that you can use a standard keyboard to enter text.
The Write Anywhere feature recognizes handwriting in English only.
This feature also allows you to write on or highlight a live application with the digital pen and can
function as a transparency.
Access this feature through the Tablet PC Input Panel.
a. Tools / Options and click the Write Anywhere tab.
b. Check Show the Turn on Write Anywhere button on the title bar.
c. Click Apply.
d. Click OK.
The Write Anywhere icon will now be visible on your Tablet PC Input Panel.

Wonderware Training
Section 3 – Using InTouch on a Tablet PC 11-41

AnnotateLayout Script Function


The AnnotateLayout script function is only available when using the Windows XP Tablet PC
Edition operating system.
Invoking the script function takes a screen capture of the visible portion of the active window. You
can then use the digital pan to make notations and highlight information.
You can save this screen capture with your annotation(s) as a .jpg or .gif file for later use. The
Annotate Layout dialog box contains a toolbar and menu items and shows the InTouch
WindowViewer screen capture in its client area. The dialog box has a Close button on the caption
bar, but does not have minimize or maximize buttons.

InTouch 10.0 – Advanced Application Development Course


11-42 Module 11 – Application Distribution

Pen Input Panel


The digital pen allows handwritten input into any field in InTouch that allows data input in Runtime.
InTouch WindowViewer displays edit boxes when the user clicks touch links of Analog or Message
types. In addition to these edit boxes, WindowViewer now displays the Pen Input Panel to facilitate
data entry using the digital pen.

Wonderware Training
Section 3 – Using InTouch on a Tablet PC 11-43

Screen Rotation
The XRT Screen Rotation tool is usable in InTouch. Please note that InTouch only checks for
Windows screen resolution when an application is started. Changes made while the application is
running will result in strange outcomes. You must configure InTouch Node Properties to allow
WindowViewer to dynamically change resolution.

InTouch 10.0 – Advanced Application Development Course


11-44 Module 11 – Application Distribution

Tips for Using Tablet PCs


If you order a tablet PC from Wonderware, InTouch will already be installed as will the license file.
If you purchase one from another vendor, please note the following:
z Installation requires the .NET Framework Version 1.1.
This can be installed by using the Start menu.
Start / Windows Updates / Scan for updates
Scroll to the bottom and select .NET Framework Version 1.1.
Click Review and install updates.
z Tablet PCs can be docked and do have external ports. However, they do not come with
CD ROM drives. Plan ahead by creating shares on other nodes to access InTouch and a
license file for installation.
Mouse/Digital Pen Equivalents
One can also use the Tablet PC digital pen to perform commands instead of the mouse. The table
below shows examples of common actions performed with the mouse as well as the
corresponding default settings for actions using the digital pen. For more information on Tablet PC
functionality, refer to the Tablet PC documentation.

Mouse Digital Pen


Point Point
Click Tap
Double-click Double-tap
Right-click Tap and hold
Click and drag Drag

Control Alt Delete


Control Alt Delete combination is accessed by pressing the power button twice.
Power Down
Power down by pressing and holding the power button.

Wonderware Training
Section 4 – Introduction to Terminal Services 11-45

Section 4 – Introduction to Terminal Services

Section Objectives
z This section will provide you with an overview of various Terminal Services
configurations.
z Understand the Advantages of using Terminal Services for InTouch.

Terminal Services Overview


Microsoft Windows 2000 Terminal Services is an integral part of Windows 2000 technology that
delivers the familiarity and ease-of-use associated with the Windows graphical user interface
(GUI) through a thin-computing model. Windows 2000 Server or Advanced Server is required to
enable Terminal Services.
With the integration of Windows 2000 Terminal Services into the core server operating system,
you can now choose to deploy InTouch in a fully server-centric mode, where applications run
entirely on the server. Each operator logs on and perceives only their presentation (known as a
session), which is transparently managed by the server operating system and is independent of
any other client session. Only screen, mouse, and keyboard information is passed between the
client and the server.

How Terminal Services Works

The Terminal Server Concept


The Terminal server is a return to the mainframe concept of computing. All application processing
and logic takes place on the Terminal server. As terminals connect to the Terminal server, they
open a session and utilize a portion of its resources. Since the Terminal server is providing all the
resources, the maintenance and upgrading of the clients is minimized. The majority of the
attention is shifted back to the centralized server, as it is in the mainframe computer model. This
greatly simplifies maintenance.
Communication between the server and clients is made possible through server/client software
such as RDP (Remote Desktop Protocol) and ICA (Independent Computing Architecture). Each
terminal needs an installed RDP or ICA client application that passes the input data (keystrokes,
mouse movements, and serial communication) to the communication software on the server. This
information is processed by the server, and the graphic presentation (screen shot) is returned to
the terminal for display
RDP (Remote Desktop Protocol) is the communication protocol whose server-side software is
included with Windows 2000 Server Terminal Services. It includes a utility for creating RDP client
disks for 16-bit and 32-bit Windows computers to communicate over TCP/IP.

InTouch 10.0 – Advanced Application Development Course


11-46 Module 11 – Application Distribution

ICA (Independent Computing Architecture) is a third party communication protocol from Citrix. It is
used in conjunction with Citrix Device Services or Citrix MetaFrame server-side software. ICA
provides greater flexibility than RDP, with client software available for Unix, Linux, OS/2, DOS,
Windows CE, PDA, Java, and Macintosh, in addition to Windows 3.11/95/98/NT and Windows
2000. The ICA protocol can be used over IPX, SPX, NetBIOS, and RAS remote access in addition
to TCP/IP. The ICA protocol is fully supported by Windows 2000.
Installing the RDP or ICA protocol on a traditional computer allows the traditional computer to
become a client that does its processing on the Terminal server and displays the Terminal server
desktop on its screen. This is a "fat client" because the computer has an operating system and a
hard drive, but connects and runs applications from the Terminal server. The fat client system is
often used to extend the life of aging computers. A Windows 3.11 computer can run Windows 2000
by loading a RDP or ICA client and running as a terminal. The disadvantage of fat clients is the
possibility of disk failure and the need for continued maintenance of the hard drive.
"Thin Clients" are clients that lack a hard drive and are designed for use with Terminal servers. The
machines either have the operating system and client software embedded on a chip or download
the operating system and client from the server. These connect to the Terminal server and run
their applications there. Thin clients are advantageous because they have a minimal amount of
required maintenance and they increase reliability by eliminating the chance of hard drive failure.
Thin clients that use the network download of the operating system can have its system updated
without replacing chips or components. Upgrading the downloading software on the server will
upgrade all those thin clients.
The idea of Total Cost of Ownership (TCO) is simple: Maximize the company's return on
investment (ROI) in technology while minimizing the cost involved in doing so. The costs you are
attempting to minimize can be broken down into two categories: hard costs and soft costs. Hard
costs are the costs of purchasing and deploying the hardware. Soft costs are associated with end-
user support, and training, as well as maintenance of your production environment. The use of thin
clients (defined as terminals without a hard drive), terminals, new appliance-like devices, and
scaled-down PCs promises to reduce the acquisition hard cost of computer hardware, especially
at the desktop level, while reducing administrative soft costs related to systems management. In
other words, by implementing thin client/server-centric computing models, IS managers can
significantly lower their Total Cost of Ownership for computer equipment while, at the same time,
improve their level of service provided to users.

Note: For more information, see "Scalability" in the Users Guide.

User Environment
You access Terminal Services from a client by running the Terminal Services Client command on
the Windows Program menu. When you connect to the Terminal server, the environment on your
client machine looks the same as the Windows 2000 server and Windows 2000 Professional
environment. The fact that the application is not running locally is completely transparent to the
user.
The application opens in the Terminal Services window on the client desktop. All application
processing takes place on the server running Terminal Services and the server sends the display
to all clients.

Wonderware Training
Section 4 – Introduction to Terminal Services 11-47

The multi-user system environment of Terminal Services consists of three parts:


a. Terminal Services Server. The server manages the computing resources for each client
session and provides all users who are logged on with their own unique environment. The
server receives and processes all keystrokes and mouse actions that the remote client
performs and directs all display output for both the operating system and applications to the
appropriate client.
b. Remote Desktop Protocol (RDP). RDP supports communication between the client and the
server. RDP is optimized to move graphic interface elements to the client. RDP is an
application-layer protocol that relies on Transmission Control Protocol/Internet Protocol (TCP/
IP) to carry it across the network. RDP is based on the International Telecommunication Union
(ITU) T.120 standard for multi-channel conferencing.
c. Client. The Terminal Session opens as a window within the local desktop environment.
Running within that window is the remote desktop of the Terminal server. The computer or
device needs only the minimum amount of software necessary to establish a connection to the
server and present the user interface.

Note: Wonderware only supports Microsoft Terminal Services clients running on Windows 9x, Windows
NT and Windows 2000.

Note: Neither Microsoft nor Citrix recommends running any BackOffice product, such as SQL
Server, on a Terminal Server except when the user load is very small. As the load increases,
the background processes queue while waiting to run, giving the appearance of a lockup.
Additionally, BackOffice-type products will run more slowly on a Terminal Server than on a
traditional server

InTouch 10.0 – Advanced Application Development Course


11-48 Module 11 – Application Distribution

Terminal Services Configurations & Industrial Applications


In a simple deployment, all InTouch applications will be located on a single computer – a terminal
server. This computer also has an I/O server to connect the WindowViewer sessions to the plant
process.

Session 1 Session 2 Session 3

Ethernet

I/O server running


on Console

I/O View View View


server Session session Session
1 2 3

HAL (Windows 2000)


Physical Hardware

NIC I/O Card

Terminal server

PLC PLC

Proprietary Network

Simple Terminal Services for InTouch Deployment


Each WindowViewer session may be the same InTouch application or a different one. They can
communicate with each other and run as they would in a traditional client-server environment. The
primary difference is that now InTouch is operating in a server-centric environment where all the
processing is performed on the terminal server. As the architecture expands and more
components are added, you need to consider the impact of such an arrangement.

Wonderware Training
Section 4 – Introduction to Terminal Services 11-49

Remote Access

Operators and other end-users gain access to a terminal server over any Transmission Control
Protocol/Internet Protocol (TCP/IP) connection including Remote Access, Ethernet, the Internet,
wireless, wide area network (WAN), or virtual private network (VPN). Due to the reduced
bandwidth requirements of the RDP/ICA protocol, Terminal Services extend the capabilities of
InTouch to users who would otherwise be unable to access the FactorySuite.
Wireless networks have traditionally been unable to support the large amount of process
information for real-time monitoring and control. With Terminal Services for InTouch, applications
can run with the same response time and performance as their counterparts directly connected to
the local area network (LAN).
MTI can therefore support real-time monitoring and control for their mobile operators. The client
terminals need only the emulation software to connect to the terminal server. They can then
simply launch WindowViewer to monitor the operation of choice.

InTouch 10.0 – Advanced Application Development Course


11-50 Module 11 – Application Distribution

Internet Access

Using Microsoft's new Terminal Services Advanced Client (TSAC), remote users can access a
terminal server over the Internet. TSAC is based on the RDP 5.0 feature set, but comes in the form
of an ActiveX control. The ActiveX control can be downloaded and executed within Microsoft
Internet Explorer (I.E 5.0), allowing remote users to experience full InTouch with super-thin clients.
Microsoft Point-to-Point Tunneling Protocol (PPTP) provides secure access to a private network
for users operating over a public medium, such as the Internet.
MTI can therefore support real-time monitoring and control for their mobile operators with either
the Terminal Services Client software or by simply launching a web browser and downloading the
TSAC ActiveX control.

Note: Wonderware does not currently support Microsoft's Terminal Services Advanced Client
(TSAC).

Wonderware Training
Section 4 – Introduction to Terminal Services 11-51

Increased Availability

Network Load Balancing Services is a feature of Windows 2000 Advanced Server that enhances
the availability and scalability of applications. It provides constant support to end-users by
redirecting the connection from a failing or offline server to a backup. After necessary maintenance
is completed, the offline computer can transparently rejoin the cluster.
Remote Control is a feature of Terminal Services that provides the ability to take control of another
workstation in the event of a client hardware failure. Remote Control also provides an easy way to
train operators and monitor operations without being physically next to the terminal.
MTI can therefore be confident that even though failures may occur, their impact on production will
be a minimum. Remote Control enables a workstation to immediately take over another that has
failed. By adding a second server and installing Network Load Balancing, all the sessions are
protected.
Wonderware has not tested the suitability of load balancing for industrial applications. We strong
recommend you consult a Microsoft professional and perform adequate testing before deploying
load balancing into production.
ACP ThinManager 2.3 or later supports server fail-over for both Windows 2000 Server and
Advanced Server.

InTouch 10.0 – Advanced Application Development Course


11-52 Module 11 – Application Distribution

Why Terminal Services for InTouch?


Terminal Services for InTouch allows InTouch to run in a multi-user environment. For organizations
wanting to increase flexibility in process visualization and to control operator workstation
management costs, an Terminal Services for InTouch architecture offers an important
enhancement to the traditional two or three tier client-server architecture.

Benefits of Terminal Services for InTouch


Beyond cost and scalability improvements, Terminal Services for InTouch also provides many
technological advantages. For example, you can remotely control an InTouch application for quick
troubleshooting and operator training. Using Microsoft's new Terminal Services Advanced Client
(TSAC), you can view your process over the web for a super-thin client, full InTouch experience.
You can also provide roaming operators with real-time information and control by using wireless
Ethernet.

Note: Wonderware does not currently support Microsoft's Terminal Services Advanced Client
(TSAC). We strongly recommend limiting the ability to remotely control industrial applications
through the Internet.

Lastly, using Terminal Services for InTouch with Embedded NT and Windows CE provides a full
desktop experience on hardware that would otherwise be unable to support such operating
systems. Embedded clients are generally dedicated purpose devices. Due to InTouch licensing
and hardware requirements, full-featured HMI functionality has not been available for embedded-
type applications – until now. Terminal Services for InTouch fully supports very thin hardware –
hardware with less components than a desktop computer. Not only are these clients less likely to
fail but they can be replaced in less than 60 seconds, reducing the overall MTTR (mean time to
repair).

Note: Terminal Services scalability does not consider the impact on the control network. Data fan
out can occur when InTouch sessions exceed the number of topics/update rates that SuiteLink or
the I/O devices can support. For a more scalable solution, consider SuiteVoyager.

Wonderware Training
Section 4 – Introduction to Terminal Services 11-53

Terminal Services Benefits


z Bringing Windows Based Operating Systems to desktops faster. For example,
Terminal Services helps bridge the gap while older desktops are migrated to Windows
2000 Professional, providing the Windows 2000 desktop experience "virtually" to non-
computer desktops and computers that require hardware upgrades to run a full Windows
2000 operating system locally. Terminal Services clients are available for many different
desktop platforms including MS-DOS, Windows-based Terminals, Macintosh, and UNIX.
(Connectivity to MS-DOS, Macintosh, and UNIX-based computers requires additional
software).
z Takes full advantage of existing hardware. Terminal Services extends the model of
distributed computing by allowing computers to operate as both thin clients and full-
featured personal computers simultaneously. Computers can continue to be used as they
have been within existing networks while also functioning as thin clients capable of
emulating the Windows 2000 Professional desktop.
z Remote administration and support. Terminal Services provides remote administration
for the Windows 2000 Server, giving system administrators a method of remotely
managing their server from any client over a WAN or dial-up connection. Administrators
can remotely manage Windows 2000 servers from a single desktop. Administrators have
access to system management tools and can perform all administrative tasks, including
software installation, as if they were performing them locally at the server.
z Replace text-based terminals. Because many Windows-based terminals also natively
support terminal emulation on the same device, you can replace text-based terminals with
Windows-based terminals. Windows-based terminals enable you to work with data from
mainframe systems to have access to newer Windows-based applications, such as e-
mail.
z Increased Security and Reliability. Multiple encryption levels enable administrators to
encrypt all or some of the data transmitted between the Windows 2000 Server and
Terminal Services clients at three different levels (low, medium, or high), depending upon
security needs. In addition, the Terminal Services logon process includes change
password, unlock desktop, and unlock screen saver features. The logon process is
encrypted, ensuring secure transfer of user name and password. Terminal Services
supports both 40-bit and 128-bit encryption (available only in the U.S. and Canada)
between server and client.
Because no application or user data ever resides on the client, Terminal Services provides
you with more control for security. Terminal Services also provides multi-level encryption
support, which you can enable whenever there is a risk of unauthorized transmission
interception on the link between the server and the client. There are three levels of
encryption available: low, medium and high. All levels of encryption use the standard RSA
RC4 encryption.
The use of thin clients can help prevent the loss of data from computer failure. Since the
data is processed and stored on the Terminal server, damage to the client does not lead to
destruction of data. This decreases the number of nodes that need to be hardened for
data protection.
For more information, refer to the Microsoft Windows® 2000 Server Administrator's
Companion.
z Remote Control. The Remote Control feature allows an Administrator to temporarily
control another user's session and see the user's actions. The administrator can also
interact with the user and execute commands on behalf of the user. To take advantage of
Remote Control using RDP, both clients must be connect to a Windows 2000 Terminal
Server.

InTouch 10.0 – Advanced Application Development Course


11-54 Module 11 – Application Distribution

Note: Before you enable remote control of a session, you can inform the user by displaying a
message on the client machine and requiring client permission to view or take part in the
session. The settings of the remote control can be set so that control can take place without
user acceptance. The mouse and keyboard inputs can be enabled or turned off.

z Centralized deployment of programs. With Terminal Services running on a Windows


2000 Server, all program execution, data processing, and data storage occur on the
server, centralizing the deployment of programs. Terminal Services ensures that all clients
can access current versions of a program. Software is installed only once on the server,
rather than every desktop throughout the organization, reducing the costs associated with
updating individual computers.
z Centralized Management. Windows Terminal Services provides you with the ability to
manage centrally while still allowing the individual user the flexibility of using the Windows
desktop environment. Since all applications in a Windows Terminal Services session
reside only in one place on the server, all upgrades of processing power and systems
software versions are conducted at the server level rather than at the desktop level, thus
eliminating time-consuming field upgrades. There is no client application software to
develop, install and update. Therefore, installation and related soft costs are significantly
reduced. User profiles can be stored on the Terminal Server so client desktops are
administered centrally, thus improving applications management efficiency (centralized
backup and restore, revision level upgrades, and so on).
In addition, Windows Terminal Services allows an administrator to view what is happening in a
user's session, or even to directly control it. Support personnel can actually see exactly what the
user is seeing without leaving their desks. If the user is configured accordingly, the support person
can share control of the session, walking the user through a difficult problem. Resulting in lowered
maintenance costs because of less time spent trouble-shooting; decreased threat of local viruses,
software upgrades are easier and failed platforms can be easily swapped with no loss of data
When configured in remote administration mode, Windows Terminal Services can also be used as
a management tool. Administrators can log on directly to the server from their desktop and perform
normal system maintenance without having to sit at the server console.
By implementing Windows Terminal Services you will centralize three components that
traditionally reside at the user's desktop:
a. Application support and maintenance
b. Maintenance of the operating system
c. Storage management

Wonderware Training
Section 4 – Introduction to Terminal Services 11-55

Terminal Services Considerations

Known Issues and Limitations


The following describes the limitations you will encounter when running Wonderware products
using Terminal Services:

Before Starting Development:


z NetDDE is limited to console (server) use only because of the
\\node\application|topic!item naming convention. Since several sessions share the same
node, NetDDE cannot differentiate between the sessions. A terminal will not connect,
even if it is the first user to connect to NetDDE.
z SuiteLink. Sessions running InTouch can only communicate using the SuiteLink protocol.
I/O Servers that use DDE must run on separate non-Terminal server computers. An
instance of View running on the Terminal server can then act as a Tag Server. The Tag
Server would use NetDDE to communicate to the I/O Servers using DDE, and SuiteLink to
communicate to the desired session.
To share data with another session, you must append the IP Address of the other session to the
Application name. For example, to read/write data from one InTouch session to another, you would
configure an Access Name as follows:
Node: <Server Name>
Application: View10.103.25.6
Topic: Tagname
z NAD. Using NAD with Terminal servers is recommended and in some cases required. The
required cases are Historical Trending and Retentive Tags.
Historical Trending creates a file in the application directory. NAD must be used for Historical
Trending to work properly. If NAD is not used, each user will keep overwriting the file, impacting
the data.
Additionally, if you reboot the thin client that is logging history of an I/O type tagname, some values
will be lost (the tagname will appear to have remained at the same value) if InTouch is changing
the screen.
If InTouch is minimized or not changing the screen, it will log the data correctly. This is because
Terminal server will suspend the process that is updating the screen until the TCP connection
times out. If the thin client remains off for a longer time, the application will resume after the
connection times out (estimated up to 30 seconds).
Wonderware recommends that all logging be done on the console—even the logging of tagnames
that would normally be collected by InTouch running on thin client sessions.
Retentive Tagnames. If several users are using the same application that contains retentive
tagnames, the Terminal server will select one session at random and retain the value for those
tagnames. By using NAD, each session retains the value of their tagnames. For more information,
on the three bullets above, see your Terminal Services for InTouch Deployment Guide.
z InTouch development on multiple Terminal Services client nodes may cause
unpredictable results. For details, see your Terminal Services for InTouch Deployment
Guide.

InTouch 10.0 – Advanced Application Development Course


11-56 Module 11 – Application Distribution

While Developing:
z Clients are limited to 256 colors. Aside from the 256-color palette reducing the image
quality, the lack of colors can cause a shift causing images that were transparent with
larger color palettes to no longer be transparent.
z Rapid Mouse Clicks on buttons are not sent to the host. A mouse button press is not
received by the InTouch application until the application screen has been updated.
z Script Execution. Delays in video processing on clients can also cause problems in script
execution because of timing issues. Actions designed to occur at a specific time, for
example, end of shift calculations, may not work because the amount of processing
requested by many sessions at exactly the same time can cause scripts to miss execution
triggers.
z Bitmaps and ActiveX Controls. There are certain Internet web pages that will disrupt
communication between the server and the client when displayed in an Internet Explorer
ActiveX that has been dropped into an application. Large Bitmaps and some ActiveX
controls may also cause significant performance degradation/issues.
z Graphics. Because changes in graphics must be sent to the client and redrawn on the
monitor, rapidly changing graphics or large amounts of graphics can overload the
processor and cause a queue of commands, giving the symptoms of a locked machine.
This is similar to the wait on the Internet when a site doesn’t display because of the large
amounts of graphics that need to be downloaded. Graphics should be optimized to
provide quick "downloads" to the client.
Vector-based graphics are much smaller than bitmapped graphics and work best on
clients. Bitmaps can be used, even full screen bitmaps if they are relatively static instead
of frequently changing.
z Screen Savers. Graphics-based screen savers should not be used with a thin client.
z Keyboard filter does not work in the Terminal server environment.
z Communication Object. Each screen should have a moving item, counter, or blink object
to keep the server sending communications to the thin client so that it will notice if a
connection is lost. The clock on the Windows Taskbar fulfills this requirement.

Unsupported:
z SPC Pro and InControl are not supported.
z InSQL is supported for Windows 2000 or later and SQLServer 7.0 or later on an external
SQLServer only.
Currently Wonderware only supports using the InSQL Configure tool from the console or
the InSQL server node. Additionally, Wonderware only supports logging data from the
console application not the session applications.
z BackOffice Products. Microsoft and Citrix do not recommend the use of BackOffice
products on the Terminal server because long SQL queries will interfere with the
interactivity of user applications.
z WindowViewer Start Local Servers option. InTouch cannot start a local I/O server in a
Terminal server environment. To avoid receiving an "Initializing I/O" error message when
WindowViewer starts, turn off the Start Local Servers option on the WindowViewer
General property sheet.

Wonderware Training
Section 4 – Introduction to Terminal Services 11-57

Suggested Work-Arounds
The following table describes the limitations and suggested work-arounds you may need to
implement when running applications on a terminal server.Wonderware is aggressively resolving
many of these issues in the next release.

Feature Supported? Comment


AlarmSuite Logger No Use a tagname server (separate computer only)
DDE to an I/O Device or MS No Use a tagname server (console or separate computer).
Office 2000 This includes DDE QuickScripts:
(e.g., Excel) WWExecute, WWpoke and WWRequest,
DDE from MS Office 2000 Yes Excel and InTouch must be running in the same
(e.g., Hot-link configured in Excel) session.
Distributed Alarming Yes
Historical Trending Yes Use a tagname server or NAD to log values. Multiple
sessions may read the same historical files.
InBatch No In work - to be supported in a future release.
InControl Yes InControl must run on the console, and requires
v7.11 SP1 Patch 01 or later.
InSQL Active Controls (OLE DB) Yes InSQL should be on a separate computer
InTrack OLE Automation No In work - to be supported in a future release.
"Playsound" QuickSript No
Printing Alarms No In work to be supported. Parallel printers may be
configured to print from the client using the net use
command. Refer to Tech Note 149 for more
information.
Retentive tags Yes Must use NAD
SPC Pro No
SQL Access (ODBC) Yes Database should be on a separate computer
SuiteLink to an I/O Device or Yes When communicating to another view session, include
another InTouch application. the terminal server Node name and append the IP
address of the desired session to the Application name
(e.g., view10.103.25.6).

InTouch 10.0 – Advanced Application Development Course


11-58 Module 11 – Application Distribution

Wonderware Training
Section 5 – Introduction to Information Server 11-59

Section 5 – Introduction to Information Server

Section Objectives
z Introduce the Wonderware Information Server.
z Review what Wonderware Information Server is and what it is not, who will likely use it,
what it will be used for, system requirements, licensing and localization.

Note: Wonderware Information Server clients all access the server using Internet Explorer 6.0 or
higher. They need no special hardware requirements. Most of this section will be focused on
setting up and maintaining the server.

What IS Wonderware Information Server


Wonderware Information Server is a web portal to factory information.
Wonderware Information Server supplies the first scalable, extensible and multi-lingual
manufacturing information portal to the world of industrial automation enabling companies to
harness data from all of their plant real-time and historical data sources in a secure and consistent
manner.
Wonderware Information Server allows users to visualize plant floor information coming from
Wonderware InTouch systems, InTouch and AlarmSuite Alarm databases, I/O Servers and
Wonderware Historian over the intranet/Internet with nothing but Internet Explorer 6.X or later.

Note: Wonderware Information Server will not work using Netscape.

The portal interface provides a secure framework, common navigation method and user-friendly
GUI for delivering access to factory floor information. The easy-to-use portal interface offers users
an organized, personalized view of factory floor information. The simple and easy to set-up
architecture requires no other knowledge of Web site construction or design. The architecture has
been designed for scalability, extensibility and centralized administration. Customizable sections
allow easy integration with Web sites, corporate applications, reports and resources. The portal
provides additional services including single sign-on and portal tagname search capability.
Security is fully integrated with Windows 2003.
Wonderware Information Server is built on the foundation of FactorySuite Web Server and Internet
Information Services (IIS). It was designed for Windows 2003, which includes significant security
to prevent malicious hacking. Please refer to Microsoft’s website for details of fixes.
Wonderware Information Server is designed to provide a subset of factory information to a wider
variety of people located in OR outside the company network. It does provide some control
capability with tight security.

InTouch 10.0 – Advanced Application Development Course


11-60 Module 11 – Application Distribution

Key Features
The Wonderware Information Server portal is not merely a "thin" graphic view of factory floor HMI
supervisory systems but also provides:
z Integrated -Web site or portal for many types of factory floor data.
z Easy - to install and requires no prior Web knowledge or knowledge of specific Website
building tools.
z Scalability - with the use of new "made-for-the-Web" technologies like XML (eXtensible
Mark-up Language), Web servers can be immediately scaled for greater than 300+
"casual" users. Little or no re-engineering is required to add new data sources, analysis
tools, or HMI windows.
z Information Management - companies can manage this new level of casual user by
controlling the type of access and their method of accessing information.
z Analysis Tools- the casual user may need an additional level of analysis beyond the
typical HMI windows. The Wonderware Information Server allows the integration in a
single framework with these additional tools.
z Reports - the casual user may need summary information in the form of reports.
Wonderware Information Server allows HTML reports to be linked directly to the portal.
z Documents - Wonderware Information Server will allow maintenance and control
engineers to access online documents and forms.
z Performance- by taking advantage of new Internet technologies like XML, users no
longer need to wait for long periods of time while components download to the client.
Access to components including HMI windows is immediate.
z Security -no compromise has been made on security. Companies can feel secure when
using Wonderware Information Server over the Internet as well as an intranet. Firewalls
do not need to be opened. Access can be fully controlled and managed.
z Extensibility - not only has the portal been designed for multiple data handlers like DDE,
SuiteLink, OPC, XML and ADO, but also Portals themselves can be linked.

Advantages of the Portal Concept


A portal is simply a Web site that offers a doorway to additional information about a specific topic.
From a technical standpoint, the SuiteVoyager manufacturing information portal is a system of
integrated programs designed to make it easier for a user to find information. The purpose of these
integrated programs is to offer convenience and a community for specific information. This
strategy also enables users to locate information quickly as opposed to going to several different
places using different sets of tools to find the information.

"Thin" Architecture Means Less Duplication of Data


Wonderware Information Server connects to the factory network. It uses InTouch View, I/O
Servers, Wonderware Historian and the AlarmSuite or InTouch alarm database as its data
providers. In previous architectures, client tools would have needed to be loaded on each of the
desktop clients or casual users. Each of these components would have needed to be maintained
and updated on each computer. Another benefit of the portal concept is that it centralizes all of the
tools and data. Everything can be maintained from the portal. There is less duplication of data and
users have a common method for looking at all types of information.

Wonderware Training
Section 5 – Introduction to Information Server 11-61

The Next Generation of "Thin" Process Graphics


Wonderware Information Server introduces a new generation in process graphics designed
specifically for use by "thin" browser-based clients. With the advent of thin-client computing, it is
desirable for packets of information sent out via an intranet/Internet to be as compact as possible.
Traditional graphics have always been large files and taken long periods of time to download.
SuiteVoyager delivers interactive HTML pages by converting existing InTouch graphic windows
and associated animation to XML, applying an XSL translation (Extensible Style Language) and
rendering VML (Vector Mark-up Language) graphics on the fly at the client machine. It also will
automatically provide connections to their data sources. These new XML-based graphics with
client-based graphics rendering reduces the amount of information to be transported between
client and server by as much as 80 percent.
Conversion of InTouch Windows to an XML format also now enables windows to be dynamically
scalable. Browser windows can be re-sized and the InTouch window will dynamically re-size with
it.

Configurable / Customizable Framework


The complete portal framework has been pre-configured for the factory automation user. Typical
users will be provided with log-on dialogs, intuitive navigation to converted HMI windows, reports,
documents, alarms and history information. The user also will be provided with the convenience of
single sign-on and an InTouch or InSQL "Tagname" search capability. No prior knowledge of
building Web sites or of Web site building software is required.
The installation of Wonderware Information Server creates a default factory portal that can be
used in two modes: user and configuration. The administrator of the system can configure users,
data providers, licenses and system and portal parameters including security, alarm queries and
folders for converted graphic windows. Unless a user has administrative privileges he will not even
see the administrative section of the portal.

InTouch 10.0 – Advanced Application Development Course


11-62 Module 11 – Application Distribution

Comparing Uses of “Thin” Client Products

Terminal Server

profit
low!
LAN
profit

InTouch/FS Web Server


low!

profit
low!

profit
low!

InTouch
Control Stations
Internet
profit profit profit
low! low! low!

InTouch
Clients

IndustrialSQL
Server
Alarm
Suite
InTouch
Tag
Server
Domain
Controller

Wonderware
Information
Server
profit
LAN
low!
profit
low!

profit
low!

Internet

Casual Users With


Internet Explorer Browsers
profit
low! profit
low!

profit
low!

Casual Users With


Internet Explorer Browsers

Wonderware Training
Section 5 – Introduction to Information Server 11-63

What Wonderware Information Server is NOT


Wonderware Information Server is NOT an additional InTouch node! Due to the limitations of the
internet and XML, it is not intended to be used as an operator station or plant control node. Its
major purpose is for viewing plant information, not supervisory control for processes like InTouch.

Who Will Use Wonderware Information Server – and for What


The most common users will be managers or other personnel who need to keep an eye on
production, alarms, and any other information available from SQL Server. Those who need
summaries or overviews will find Wonderware Information Server particularly useful.

System Requirements
Wonderware recommends that someone familiar with maintaining and administering an operating
system install the Windows 2003 Server or Advanced Server operating system. Depending on
your company, this may be handled by a person from the IT department who knows how to
configure network and communication options.
Best practices are to start with a clean machine. That is, regardless of what is already installed on
the machines, format the hard drive and install Windows and any other required software.
The partition must be NTFS, regardless of which operating system is used. If the installation
partition is not NTFS, the user will be given a chance to upgrade it during the installation.
Windows 2003 Server is the platform we STRONGLY recommend for Wonderware Information
Server. Windows 2003 Server incorporates Internet Information Server 5.0 (IIS) and the Microsoft
Data Access Components (MDAC) into its installation. These components are necessary for
Information Server which relies on the Microsoft Transact Server (MTS) and COM+ that are a part
of Windows 2003 Server, but are not an integral part of Windows NT. It also has many additional
security features, better performance and improved reliability.
Current Windows security has been significantly enhanced over previous operating systems to
prevent malicious hacking.
All of the components we use with Wonderware Information Server are optimized to work in a
Windows 2003 environment. Our recommendation is to start with a clean machine and Windows
2003 Server.

Server Hardware Requirements:

Minimum Suggested
700 MHz Pentium II 1 GHz Pentium III
256 MB RAM 512 MB or more
2 GB Disk Space (NTFS required) 10 GB Disk Space (NTFS required)
SVGA Monitor 800x600 with 256 Colors XVGA Monitor 1024x768 with 24-Bit Color

When using Wonderware Information Server, more memory is better.

InTouch 10.0 – Advanced Application Development Course


11-64 Module 11 – Application Distribution

Software Requirements Available to Server:

Windows 2003 Server with the latest **MSSQL Server 2005 SP2 or later
Service Packs applied* Mixed Mode Authentication
IE 6.0 or above (No Netscape) MS FrontPage Server Exentions
MS Internet Information Server 5.0 Digital Dashboard 3.0 or later

Access to InTouch 7.1 or higher **Configuration Licenses


* Cannot be installed on the server, but needs to be available on the network.
** These items do not need to be installed on the server, but do need to be available to it.

The Wonderware Information Server cannot be installed on a Domain Controller!


For this class, software has been pre-installed. The computers are networked together and are
members of a domain.

Localization
The initial Wonderware Information Server product supports the English, German, French,
Japanese and Simplified Chinese languages. The SuiteVoyager software, which supports the
User Interface (UI) and the product documentation, has been localized to provide multiple
language capability.
Wonderware Information Server detects what language the browser client is running and
dynamically adjusts the language of the Wonderware Information Server Portal to match.
The Wonderware Information Server components that are localized include:
z Server Install
z Converter Install
z Factory built pages and framework
z “Popup” dialog
z Show window dialog
z Product documentation
z Help
z License agreement
Product documentation, Help, License agreement, and release notes is created in HTML format
and viewable via web browser.
Any updates or additions made will be posted on Wonderware’s website.

Licensing
Wonderware Information Server uses a server-based concurrent user licensing system. Unlike
other Wonderware products, Wonderware Information Server doesn’t care who the users are for
licensing purpose – only the number of users that can access the portal at the same time. There
are NO license files required on client machines, only on the server.
This licensing will not interfere with current Wonderware licensing or access to licensed InTouch
nodes through the internet / intranet so long as you “append” the current license file rather than
copy over it.

Wonderware Training
Module 12

Implementation Considerations
Section 1 – Implementation Considerations 12-3
Section 2 – Services 12-17
12-2 Module 12 – Implementation Considerations

Module Objective
z Review implementation considerations.

Wonderware Training
Section 1 – Implementation Considerations 12-3

Section 1 – Implementation Considerations

Section Objective
z Understand what can go wrong in networked applications and which tools can be used to
monitor them.

System Loads
It is important to know where the load on a system is. For example:
What makes a tag active?
z Used in an active display
z Alarmed/Event logged
z Used in an active script
z Real-time/historically trended
z Requested by a client application
What about server operations?
z Requests
z Master Poll Lists
z Messages

What Can Go Wrong?


Network Overload:
z Number of items per second * 11 bytes = bytes/second
z More data (Integer = 4 bytes + Time/Quality)
z 6000 items/second that is equal to about 10% loading of regular Ethernet
z Watch the update rates – default was 55mS
Lost Files:
z Important SuiteLink files could be deleted or moved
z SuiteLink is guaranteed to break if files are not available
z Don’t do it!
Memory Usage:
z More Memory is used due to more data being sent per item

InTouch 10.0 – Advanced Application Development Course


12-4 Module 12 – Implementation Considerations

Performance Monitor
The Microsoft NT Performance Monitor (PERFMON.EXE) can be used to monitor system
variables with respect to the operating system and the hardware. Performance Monitor is included
with both Windows NT Workstation and Windows NT Server and can be used to monitor a remote
computer that is also running the Windows NT operating system.

Note: SuiteLink can be monitored specifically by selecting any process beginning with SL or SLS.

This section provides some tips on how to use Performance Monitor to effectively monitor your
system and identifies some of the more useful objects and processes to monitor.

Starting Performance Monitor


a. From the Windows Taskbar, click Start/Programs/Administrative Tools/Performance.
b. If Performance Monitor has not previously been configured, it will start up with an empty main
window.

c. To add a counter, click on Edit/Add to Chart or click the toolbar button.

Wonderware Training
Section 1 – Implementation Considerations 12-5

The Add to Chart dialog box appears:

d. By default, the chart will be pointed at your local computer (in this case, a computer named
"LABCT01"). To browse for another computer on the network, click the button to the right of
the Computer field.
e. Select an object in the Performance Object drop-down list.
f. In Select counters from list, click the counter to monitor.
g. As seen above, the %Processor Time Counter includes an instance of SuiteLink (slssvc).
Any instance preceded by SLS is related to SuiteLink.
h. Configure the color, scale, width, and style of the line that will designate this counter in the
Chart View.
i. Click Add to put this counter on your chart. As you add counters, the chart shows the data
dynamically.

InTouch 10.0 – Advanced Application Development Course


12-6 Module 12 – Implementation Considerations

Counters
Performance Monitor allows you to view different types of counters that have been incorporated
into the Windows NT operating system. Counters are associated with objects and with instances
of objects. Objects include memory, processes, servers, system, etc. Instances of objects identify,
for example, specific processes.
Once an object and one or more instances of an object are selected, specific counters are
selected to be monitored. Counters include such measurements as %processor time, private
bytes, available memory, etc. The counters that are available depend on the object and the
instances selected.
Use of counters and the Performance Monitor can provide valuable information to assist in system
tuning and to identify bottlenecks in a sluggish system. Use of the Pool Non-paged Bytes counter
of the memory object, for instance, can identify memory leaks that contribute to a poorly
responsive system.
The following counters give a useful indication of a computer's loading and what is causing it. This
is only a partial list of what can be monitored. Depending on your requirements, you might want to
perform a detailed review of all of the various counters that are available.
System Counters
The overall performance of the computer can be monitored using the system object. If the
computer utilizes multiprocessors, the system object represents them collectively. These are
counters for each processor under the processor object.
Counter Description
% Total Processor Time Total time for all processors in the system that the processor(s) is busy.
This counter does not include time that the processor is running the idle thread waiting for
something to do.
This counter provides an overview of what the system is doing. It should not be flat-lined at 100%
for an extended period of time, although it is not necessarily a problem if certain activities cause
this to happen. You will notice a specific pattern for the computer's loading and a quick check of
this variable will tell you what is happening on your system.
If this counter is high, further investigation is required to determine the cause. This can be done
using other Performance Monitor counters.
Counter Description
File Data Operations/sec Represents that rate at which the computer is issuing read/write
operations to file system devices.
This counter provides an overall indication of the disk activity in the system. It can be very
misleading as there is no indication if the activity is for single or multiple disks, possibly on multiple
controllers. There are two objects more useful for analyzing disk activity: LogicalDisk and
PhysicalDisk, which are summarized later in this section.
System Up Time Total time that the computer has been running since it was last started.
This counter is useful if your department must generate statistics on equipment performance.
Processor Queue Length of the processor queue in units of threads. It is zero unless you are
also monitoring a thread counter. It represents the "number" of threads that are waiting for
processor cycles. It does NOT include threads that are currently executing.
A sustained processor queue length that is greater than 2 generally indicates a processor
bottleneck. A processor queue length other than zero is indicating that the system is "too busy" to
even initiate another process. It does not give an indication of the performance of the processes
that the system is attempting to process.

Wonderware Training
Section 1 – Implementation Considerations 12-7

Processor Counters
Processor counters are very similar to the system counters, except that they are associated with a
specific processor in multiprocessor systems. In a single processor system, they will have the
same values as the system counters. The Process Object allows an individual process on the
computer to be investigated. It is possible to determine how much of the overall processor time is
being spent on this process, the disk activity it is generating, memory requirements, etc. It is
possible to determine which process(es) is causing a loading on the system by monitoring various
process counters with the system counters.
Counter Description
Interrupts/sec Number of device interrupts that the processor is experiencing. A value over 1000
may indicate a low efficiency of hardware I/O devices, such as the disk controllers and network
cards.
If this value changes dramatically without a corresponding increase in system activity, it may be an
indication of a possible hardware problem.
Counter Description
% Processor Time Percentage of elapsed time that all of the threads of this process used the
processor to execute instructions. It essentially represents this process’ (application) load on the
system and provides an indication of "how busy" the machine is.
If the % Processor Time is high and there does not appear to be a particular process responsible,
check the Interrupts/sec counter to determine if the processor load is being caused by hardware.

Note: This value does not include the "time" that the processor uses running the "idle" thread
while it is waiting for something to do.

Elapsed Time Total elapsed time (in seconds) the process has been running.
Page Faults/sec Rate of page faults by the threads executing in this process. This counter can be
used to determine which process is placing excessive memory demands on the system.
Refer to the Memory object for information on the cause of page faults.
Private Bytes Current number of bytes the process has allocated that cannot be shared with other
processes.
If you have determined that your system is short on memory, this counter can be used to
determine if a process is failing to free memory as it should.
LogicalDisk Counters
A logical disk represents a partition, stripe set, mirror, or volume set, such as a RAID configuration.
A logical disk is assigned a drive letter, such as "C." Logical disk counters differ from PhysicalDisk
counters because several logical disks could be located on the same physical disk or a logical disk
my be comprised of several physical disks.
Counters in the LogicalDisk object allow you to see the performance of your disk subsystem as
you have chosen to configure it. The PhysicalDisk object type must also be examined to
determine how the hardware components of the disk subsystem are performing.
Counter Description
% Disk Time Percentage of time that the disk is busy. There are also counters that can be used to
determine whether the activity is caused by Disk Reads and/or Disk Writes.
This value can be misleading. If the logical disk that is being examined is a three-disk volume set,
the work may be done by multiple drives, which means they are actually only busy part of the time.
You should also monitor the PhysicalDisk counters to get an accurate view of the disk subsystem.

InTouch 10.0 – Advanced Application Development Course


12-8 Module 12 – Implementation Considerations

Counter Description
Avg. Disk sec/Transfer Average time it takes to process each disk transfer. Higher figures
indicate that additional disk channels will help performance.
Free Megabytes Space (in Megabytes) remaining on the drive.
% Free Space Percentage of space remaining on the drive.
Disk Queue Length Number of requests waiting for the drive. This is a snapshot value, not the
average over the time period. Typically a value over 2 indicates disk congestion. Increasing the
number of disks or obtaining faster disks will help. This value needs to be checked for the
PhysicalDisk object to see if performance can be improved by changing the configuration of the
disks.
PhysicalDisk Counters
This object represents the physical disk and may represent multiple "drives" in Windows NT,
depending on the number of partitions.

Note: In order to monitor disk activity by using the PhysicalDisk counters, it is necessary to enable
them. By default, they are turned off because of the approximate 0.1-1.5% load they place on the
system. They can be enabled by entering disperf -y at the command prompt. It is necessary to
reboot the machine before they are activated.

Counter Description
% Disk Time Percentage of time the disk was busy servicing read and/or write requests. If this
value is consistently high, check the disk queue length. If it is greater than 2, you can be fairly
confident that your physical disk is a bottleneck in the system. There may be a number of
solutions to your problem, including: changing how your disks are configured, buying additional
disks, buying a faster disk, buying another disk controller, buying a faster disk controller, etc.
Average Disk sec/Transfer A high value (values greater than 0.3 seconds) may indicate that the
disk controller is continually retrying the disk because of failures.
Disk Queue Length Number of requests that are waiting for the drive. It is a snapshot value and
does not represent an average queue length over a time period.
If this value is high, you may want to consider changing how your disk subsystem is configured to
improve performance. It may be possible to improve the system by changing partitions and/or
where applications and data are being stored, assuming that you have a multiple disk system.
Average Disk sec/Transfer Average amount of time for a disk transfer (either reads or writes) to
complete.
Memory Counters
The counters in the Memory object provide information on the behavior of the memory in the
system, both real and virtual. Adequate memory (both real and virtual) is necessary for good client
performance.
A system that is short of real memory will require excessive use of virtual memory (paging file).
This, in turn, creates additional overhead on the disk subsystem, which will adversely affect
system performance.
Counter Description
Pages/sec Number of pages read from the disk or written to the disk to resolve memory
references to pages that were not in memory at the time of reference. This is the sum of Pages
Input/sec and Pages Output/sec. This is the primary counter to observe if you are concerned
about excessive paging.

Wonderware Training
Section 1 – Implementation Considerations 12-9

Available Bytes Amount of free physical memory. If the counter is consistently below 1 MB on a
Windows NT Server, paging is occurring and performance will be less than optimal.

Network Counters
The Network counters should be checked to ensure that the network is not a bottleneck in the
system. In particular, check the performance of the network connections used by the I/O Servers
to ensure that there are no network delays on data throughput.
Counter Description
% Network Utilization Percentage of network bandwidth in use. A high figure indicates that
splitting the network segment will improve performance.

Paging File Counters


The paging file represents virtual memory and is used as the system runs low on real memory.
The size of the paging file is dynamic; the operating system will size the file as needed based on a
minimum/maximum size that is defined. If the paging file approaches its maximum size, it is a
good idea to find out why and consider raising the maximum.
Counter Description
% Usage Percentage of the swap file that is in use.
% Usage Peak Peak percentage of the swap file that is in use. Increase the paging file size if the
usage peak is over 75%.

Redirector Counters
The Redirector object manages the network connections to other computers on the network.
Counters for the Redirector object provide insight as to how much "work" is being done on a server
due to requests from clients.
Counter Description
Current Commands Number of requests pending service. If the number of pending requests
exceeds the number of network cards in your server by more than two, your server is overloaded.
However, requests can also be pending because:
z The server with which the redirector is communicating is slower than the redirector.
z The network may be experiencing capacity problems.
z The redirector is busier than the adapter can handle.
Network Errors/sec Number of serious network errors per second. Any value other than 0 needs
attention. Network errors will also create an entry in the Event Log, which should be checked.

InTouch 10.0 – Advanced Application Development Course


12-10 Module 12 – Implementation Considerations

Chart View
The Chart View shows the status of a number of selected counters, such as %Processor Time,
%Disk Time, etc. The Chart View allows the counter values to be displayed over a period of time.

Wonderware Training
Section 1 – Implementation Considerations 12-11

Selecting Objects and Counters


When Performance Monitor is first started, it will default to the Chart View. You must add counters
to the chart in order to graphically monitor your local or remote Wonderware Historian machine.

Report View
The Report View provides a tabular view of data. For example, a table showing the amount of free
disk space (in Megabytes) on each computer drive can be displayed.

InTouch 10.0 – Advanced Application Development Course


12-12 Module 12 – Implementation Considerations

Alert View
Use the Alert View to monitor a server and generate an alert (event) when a certain condition
occurs. The Alert View provides a similar functionality to configuring alarms for an InTouch
application. An alert can be configured to run a program, generate a record in the event log, send
a network message to a designated computer, etc.
In general:
z Alerts (alarms) can be generated on almost any aspect of a servers operation.
z Alerts can be generated on any computer running a Windows based operating system.
z Performance Monitor checks alarm conditions based on the alert interval.
Configured alerts are displayed in the bottom half of the alert window. Generated alerts are
displayed in the top half.

Wonderware Training
Section 1 – Implementation Considerations 12-13

Log Viewer
The Log Viewer is an ArchestrA utility that records information regarding the activity occurring on
the computer. For example, it records start-up data, error conditions, and DAServer information.
When running an ArchestrA™ application, the Logger runs as a system service. The Log Viewer
is a Microsoft Management Console (MMC) snap-in that provides a user interface for viewing
messages reported to the Logger. The MMC is a host or container utility for the Log Viewer with its
own generic functions.

Note: If a problem occurs while running an ArchestrA application, always check logged messages
by using the Log Viewer prior to calling Technical Support.

The Logger and Log Viewer are automatically installed when an ArchestrA™ component is
installed.
z Logger - This is the background process that stores messages and events in the system.
This process occurs without any prompting from or interaction necessary from the user.
The logging process can be customized with the LogFlag Editor Snap-In utility. The
Logger is installed as a system service, and can be configured to be an Auto Service or
Manual Service. As an Auto Service utility, the Logger is started when the PC is booted
up. As a Manual Service utility, the Logger requires a manual start through the System
Services utility in Windows’ Control Panel. In either case, the logging process is always
started when an ArchestrA™ component begins functioning.
z Log Viewer - This utility is used to view error and informational messages that are sent by
ArchestrA™ components. The look-and-feel and the format of the user interface can be
customized to suit individual needs.
Typical Log Viewer Usage
The Log Viewer is primarily a troubleshooting tool. After initially installing an ArchestrA-enabled
program and on occasion, you might check logged messages to determine whether all processes
are functioning well. But typically, you would use the Log Viewer to work through problems you
encounter with a DAServer, the IDE or other ArchestrA component.

Note: The Log Viewer displays error messages in red-highlighted stripes. These indicate
malfunctioning processes and should be resolved quickly. Warning messages are displayed in
yellow stripes. These indicate major events in the system.

A good strategy for troubleshooting problems


a. Gather as much information first about the process that is malfunctioning. For instance, you
attempted to deploy an object in the IDE and a message was displayed stating the deployment
was not completed. Note the function you attempted and the message you received.
b. Open the Log Viewer by clicking Start, pointing to Programs and then to Wonderware, and
then clicking System Management Console. In the SMC, select Log Viewer and then the
node the IDE is located on. Look for red and yellow messages. Also, use the information you
collected about the failed process to search for clues in the logged messages.
c. Use the Find command on the View menu to single out messages by message text or other
category of data, or use the Filter command on the View menu to reduce the number of
displayed messages based on message, time range or terminal session criteria.

InTouch 10.0 – Advanced Application Development Course


12-14 Module 12 – Implementation Considerations

The journey of a Log Message originates with the Application where Log Flags are generated.
These are passed to the Logger where they are then stored in the Log Message Storage.
They are then available for viewing by the LogFlag Viewer. The LogFlag Editor provides the
capability to edit the LogFlags. This is illustrated in the following diagram.

Wonderware Training
Section 1 – Implementation Considerations 12-15

Recovery From Improper Shut Down


There may be times during development that InTouch shuts down on its own. If this happens, it is
possible that you will receive an error when you attempt to re-start InTouch. If the error tells you
that InTouch is still running, there are some additional processes that need to be shut down.
Close Processes Using Windows Task Manager
a. Launch Task Manager using the Ctrl Alt Delete keys.
b. Click the Processes tab.

c. It might be necessary to shut down one or more of the processes in the list below. You may not
have all of these processes running on your computer. For those you do have running, select
and click End Process for any *.exe file with the following names:
z wm (windowmaker)
z view
z Spcpro
z alarmmgr
z hd
z aaLogger
z wwAlarmLogger

InTouch 10.0 – Advanced Application Development Course


12-16 Module 12 – Implementation Considerations

Wonderware Training
Section 2 – Services 12-17

Section 2 – Services

Section Objective
z Understand how to use WindowViewer and I/O servers as services.

WindowViewer as a Windows NT Service


Running WindowViewer as an NT Service allows you to take advantage of all the features that an
NT Service provides. For example, continuous operation after the operator logs off and automatic
startup at system boot time without operator intervention. This allows unmanned station startup of
WindowViewer without compromising NT operating system security.

Note: All NAD features are disabled when WindowViewer is installed as an NT Service.

Configuring WindowViewer to Start as an NT Service


a. Start InTouch.
The InTouch Application Manager dialog box appears:

b. Click the Node Properties tool .

InTouch 10.0 – Advanced Application Development Course


12-18 Module 12 – Implementation Considerations

The Node Properties dialog box appears with the App Development tab active:

c. Select the Start WindowViewer as an NT service option to configure WindowViewer to


automatically run as an NT service.
d. Click OK.

Note:
1) If WindowViewer is configured as an NT service and subsequently started directly (from
its icon, the Windows startup menu, etc.), there will be approximately a 15 second delay
before WindowViewer will display a window. This delay is due to WindowViewer attempting to
connect to the NT Service Control Manager. Upon failing to connect to the Service Control
Manager, WindowViewer will display the following message box:

Yes starts WindowViewer as an application not an NT service.


No cancels the command to start WindowViewer.

2) If you stop WindowViewer from running as an NT service by disabling the Start


WindowViewer as an NT service option, the WindowViewer service is automatically
uninstalled. However, it can still be run as an application.

Wonderware Training
Section 2 – Services 12-19

Starting the WindowViewer Service from Services Dialog Box


a. To configure service startup, click Start/Settings/Control Panel/Administrative Tools on the
Windows Taskbar and then click the Services icon. The Services dialog box appears:

b. Select Wonderware WindowViewer and click Start.


c. Click Close.
When these steps are performed, WindowViewer can be started as both a service and as an
application.

Startup Options for the WindowViewer Service


a. To configure service startup, click Start/Settings/Control Panel/Administrative Tools on the
Windows Taskbar and then click the Services icon.
b. Select Wonderware WindowViewer from the Service list and click the Startup button. The
following dialog box appears:

c. Select Automatic to start WindowViewer automatically when the operating system restarts.
Select Manual if a user or another process must explicitly launch the server. Select Disabled
to prevent a service from being started (usually used for troubleshooting purposes).

InTouch 10.0 – Advanced Application Development Course


12-20 Module 12 – Implementation Considerations

Troubleshooting Services
You may encounter the following error message after starting NT: “One or more services failed to
start”. To investigate this, click Start/Control Panel/Administrative Tools/Event Viewer. Use
the Event Viewer to see the system log – a file listing problems that occurred during startup. If
WindowViewer failed to start, it is likely to be one of the dependency issues described in the
previous section.

If WindowViewer has been configured to run as an NT service and you attempt to start it from a
shortcut icon or from the Windows Taskbar, WindowViewer will pause for 15 seconds and then
display the following message:

If you select Yes to start WindowViewer as a desktop application, the NT service will be disabled
and WindowViewer will run as a console or desktop application. If you click No, WindowViewer
will run as a Service. When running WindowViewer as a Desktop Service, it acts in every way like
the console application. For example, you can switch back and forth between WindowMaker and
WindowViewer while developing an application.

Servers as Windows NT Services


To configure a server to act a Windows NT service, simply do the following:
a. Click on the Configure/Server Settings command (in this case, we are using a Modbus
server). The following dialog box appears:

b. Enable the Start automatically as Windows NT Service option.

Note: It is highly recommended that the server is configured and communicating successfully
prior to running it as a Windows NT service.

Wonderware Training
Appendix A

Keyboard Shortcuts for InTouch


A-2 Appendix A – Keyboard Shortcuts for InTouch

Introduction
In order to create a more efficient work environment, InTouch allows several time saving keyboard
shortcuts to execute commands. This eliminates the need for extra mouse movements for some
common actions. Those listed below apply to InTouch 8.0 SP2 and higher.

Keyboard Shortcuts
Shortcut Command
F2 Select All
Ctrl + A Animation Links
Ctrl + E Substitute Tags
Ctrl + L Substitute Strings
Ctrl + T Tagname Dictionary

Ctrl + W Window Properties

Ctrl + N New Window


Ctrl + O Open Window
Ctrl + S Save Window

Ctrl + Plus Enlarge Font


Ctrl + Minus Reduce Font

Ctrl + Z Undo
Ctrl + Y Redo
Ctrl + D Duplicate
Ctrl + X Cut
Ctrl + C Copy
Ctrl + V Paste
Del Erase

Shift + Plus Enlarge Radius (Rounded Rectangle)


Shift + Minus Reduce Radius (Rounded Rectangle)
Ctrl + R Reshape Object (Polygon)

F9 Send to Back
Shift + F9 Bring to Front
Ctrl + H Space Horizontal
F6 Rotate CW
Shift + F6 Rotate CCW
F7 Flip Horizontal
Shift + F7 Flip Vertical

F5 Make Symbol
Shift + F5 Break Symbol
F3 Make Cell
Shift + F3 Break Cell

Wonderware Training

You might also like