You are on page 1of 780

W O N D E R W A R E

T R A I N I N G

Training Manual
Revision A
September 2007
Part Number 05-2090

Wonderware System Platform


3.0 Course - Part 1
Wonderware Application Server 3.0 and Device Integration Products

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

Table of Contents
Module 1

Introduction .................................................................................1-1
Section 1 Course Introduction......................................................................... 1-3
Section 2 Wonderware System Platform ...................................................... 1-17
Lab 1 Creating a Galaxy......................................................................... 1-35
Section 3 The ArchestrA IDE ........................................................................ 1-41
Section 4 Automation Objects....................................................................... 1-63
Section 5 System Requirements, Licensing and Support ............................. 1-77
Section 6 Application Planning ..................................................................... 1-85
Lab 2 Identifying the Mixer ..................................................................... 1-91

Module 2

Application Infrastructure ..........................................................2-1


Section 1 The Plant Model .............................................................................. 2-3
Lab 3 Creating the Plant Model ................................................................ 2-5
Section 2 The Deployment Model ................................................................. 2-11
Lab 4 Creating and Deploying the Deployment Model ........................... 2-17
Section 3 The Runtime Environment ............................................................ 2-27
Lab 5 Using Object Viewer ..................................................................... 2-31
Section 4 Connecting to the Field ................................................................. 2-41
Lab 6 Connecting to the Field ................................................................ 2-51

Module 3

Application Objects ....................................................................3-1


Section 1 Templates and Instances ................................................................ 3-5
Section 2 The $UserDefined Object ............................................................... 3-9
Lab 7 Heat Exchanger............................................................................ 3-11
Section 3 Change Control and Propagation ................................................. 3-27
Lab 8 Change Control and Propagation ................................................. 3-29
Section 4 The $AnalogDevice Object ........................................................... 3-35
Lab 9 Meter ............................................................................................ 3-37
Section 5 The $DiscreteDevice Object ......................................................... 3-41
Lab 10 Valve, Pump and Motor .............................................................. 3-45
Section 6 Containment.................................................................................. 3-61
Lab 11 Mixer........................................................................................... 3-67

Module 4

Extending the Objects ................................................................4-1


Section 1 UDAs............................................................................................... 4-3
Section 2 Extensions ...................................................................................... 4-7
Lab 12 Motor Speed ............................................................................... 4-11
Section 3 Introduction to QuickScript .NET................................................... 4-19
Lab 13 DDESuiteLinkClient Auto Reconnect ......................................... 4-51
Lab 14 Automatic Reference Configuration ........................................... 4-57

Module 5

Alarms and History .....................................................................5-1


Section 1 Alarms ............................................................................................. 5-3
Lab 15 Configuring Alarms ....................................................................... 5-9
Section 2 Historization .................................................................................. 5-25
Lab 16 Configuring History ..................................................................... 5-29

Module 6

Security ........................................................................................6-1
Section 1 Security Overview ........................................................................... 6-3
Lab 17 Security ...................................................................................... 6-13

Wonderware System Platform 3.0 Course - Part 1

Wonderware System Platform 3.0 Course - Part 1


Module 7

Galaxy Maintenance ................................................................... 7-1


Section 1 Exporting and Importing Objects ..................................................... 7-3
Section 2 Configuring Instances Through a .CSV File .................................. 7-13
Section 3 System Management Console (SMC) ........................................... 7-21
Section 4 Network Account Utility ................................................................. 7-33

Module 8

Device Integration Products ...................................................... 8-1


Section 1 Wonderware I/O Servers ................................................................. 8-3
Section 2 Data Access Servers ....................................................................... 8-9
Section 3 Device Integration Objects ............................................................ 8-19

Module 9

Multi-Node Applications ............................................................ 9-1


Section 1 Application Redundancy.................................................................. 9-3
Lab 18 Configuring Application Redundancy ......................................... 9-17
Section 2 DI Redundancy.............................................................................. 9-31
Lab 19 Configuring the Redundant DI Object ......................................... 9-35
Section 3 Multi Node Application................................................................... 9-45
Lab 20 Convert to Network Environment ............................................... 9-49

Module 10

InTouchView..........................................................10-1
Section 1 Creating and Managing Symbols ....................................................103
Section 2 Using ArchestrA Symbols in WindowMaker..................................1085
Lab 21 Symbol Creation .........................................................................1093
Section 3 Using Custom Properties ............................................................10103
Lab 22 Defining Custom Properties .....................................................10109
Section 4 Animating Graphic Elements ......................................................10117
Lab 23 Animation ..................................................................................10193
Lab 24 Referencing a Symbol ...............................................................10203
Section 5 Associating Scripts with Symbols ...............................................10209
Lab 25 Scripting ....................................................................................10221
Section 6 Quality & Statusg ................................................10209

Appendix A Wonderware Application Server Glossary ...............................A-1


Appendix B Plant Model Planning Diagrams ................................................B-1

Wonderware Training

Module 1

Introduction
Section 1 Course Introduction
Section 2 Wonderware System Platform
Lab 1 Creating a Galaxy

1-3
1-17
1-35

Section 3 The ArchestrA IDE

1-41

Section 4 Automation Objects

1-63

Section 5 System Requirements, Licensing and Support

1-77

Section 6 Application Planning

1-85

Lab 2 Identifying the Mixer

1-91

1-2

Module 1 Introduction

Module Objective


Introduce the Wonderware System Platform and its architecture, environment, and
requirements for installation and licensing.

Wonderware Training

Section 1 Course Introduction

Section 1 Course Introduction


Section Objective
This section identifies the objectives and agenda for the Wonderware System Platform 3.0 - Part
1 course as well as the key basics of Wonderware Application Server.
This section describes the Wonderware System Platform 3.0 course - Part 1, (Wonderware
Application Server 3.0), the objective of the course, intended audience, prerequisites, and the
course agenda. It also includes a description of Wonderware Products.

Course Description
The Wonderware System Platform 3.0 - Part 1 course is a four-day, instructor-led course designed
to provide a fundamental understanding of the basic principles of ArchestrA and supply the
knowledge necessary to develop and support applications for the Wonderware Application Server
3.0. The course utilizes a number of hands-on labs to reinforce concepts and features.
The focus of this course is to illustrate the use of ArchestrA tools and services in the System
Platform to develop a project utilizing connectivity to the field, data processing, scripts, alarms and
history, using features and functionality such as Automation Objects, templates, template
instances, ArchestrA Integrated Development Environment and QuickScript .NET.
This course also provides a fundamental understanding of how to utilize the InTouch Alarm DB
Logger for real-time alarm recording as well as the security settings available for securing the
applications.

Course Objectives
Upon completion of this course, you will be able to:

Create new projects using ArchestrA Integrated Development Environment


Model the plant floor using automation objects

Work with the alarm and history configuration in the Galaxy

Configure ArchestrA security in the Galaxy

Troubleshoot Wonderware Application Server applications

Audience
This training class is targeted to engineers, application developers, system integrators, and other
individuals whose jobs include creating and/or maintaining a Galaxy for use with the Wonderware
System Platform.

Prerequisites
The prerequisites for this course are:

Completion of Getting Started with Wonderware Application Sever web tutorial located at
http://www.wonderware.com/training/online_training/tutorials.asp


Manufacturing industry experience

Wonderware System Platform 3.0 Course - Part 1

1-3

1-4

Module 1 Introduction

Agenda
Module 1 Introduction
Section 1 Course Introduction
This section describes the Wonderware System Platform 3.0 course - Part 1, (Wonderware
Application Server 3.0), the objective of the course, intended audience, prerequisites, and the
course agenda. It also includes a description of Wonderware Products.
Section 2 Wonderware System Platform
This section provides an overview of the Wonderware System Platform, the architecture of
ArchestrA and the importance of how it is critical to plant automation, and an overview of the
differences between Object-oriented and traditional Tag based HMI and SCADA products and
how it applies to Wonderware System Platform applications. It also provides an understanding
of what a Galaxy is, how it relates to the Galaxy Database and the Galaxy Repository and how
a Galaxy is created.
Lab 1 Creating a Galaxy
Section 3 The ArchestrA IDE
This section provides an overview of the ArchestrA IDE, the Template Toolbox and Application
Views and the object Check-in/Check-out process.
Section 4 Automation Objects
This section provides an explanation of the various types of objects utilized in the ArchestrA
IDE and an overview of when and how they are used. Additionally, it describes how to create
and configure instances of objects and the hosting and containment relationships of objects.
Section 5 System Requirements, Licensing and Support
This section provides a detailed explanation of the system requirements necessary for System
Platform, discusses Licensing details and covers Support services.
Section 6 Application Planning
This section provides an explanation of the need for adequately modeling your plant in order
to achieve an application implementation that will be optimal for efficiency.
Lab 2 Identifying the Mixer

Module 2 Application Infrastructure


Section 1 The Plant Model
This section provides an explanation of the importance of having a model of the plant facility.
Additionally, it explains the concept of how to utilize ArchestrA Application Server to model a
specific facility.
Lab 3 Creating the Plant Model
Section 2 The Deployment Model
This section provides an explanation of the Deployment Model and demonstrates the structure
of the Deployment Model.

Wonderware Training

Section 1 Course Introduction


Lab 4 Creating and Deploying the Deployment Model
Section 3 The Runtime Environment
This section provides an explanation of the Runtime environment and explains the use of the
Object Viewer in monitoring the Runtime environment.
Lab 5 Using Object Viewer
Section 4 Connecting to the Field
This section provides an understanding of the Device Integration Objects, I/O Server and DA
Server. It also provides an overview of DI Objects.
Lab 6 Connecting to the Field

Module 3 Application Objects


Section 1 Templates and Instances
This section introduces you to the concept of templates and explain how to derive a template.
Section 2 The $UserDefined Object
This section introduces you to the $UserDefined object and its functionality.
Lab 7 Heat Exchanger
Section 3 Change Control and Propagation
This section presents the concept of attribute locking and provides an illustrations on how
locking attributes can propagate to previously derived instances.
Lab 8 Change Control and Propagation
Section 4 The $AnalogDevice Object
This section introduces you to the concept of the $AnalogDevice object and its functionality.
Lab 9 Meter
Section 5 The $DiscreteDevice Object
This section introduces you to the concept of the $DiscreteDevice object and its functionality.
Lab 10 Valve, Pump and Motor
Section 6 Containment
This section illustrates the concept of containment and how it works with Application Objects
and Templates.
Lab 11 Mixer

Module 4 Extending the Objects


Section 1 UDAs
This section introduces and explains UDAs and how they are configured and used.
Section 2 Extensions
This section provides describes the Output Functionality for Application Objects in the
Extensions environment.
Lab 12 Motor Speed
Section 3 Introduction to QuickScript .NET

Wonderware System Platform 3.0 Course - Part 1

1-5

1-6

Module 1 Introduction
This section introduces and explains the scripting environment and the various scripting
configuration attributes of the ApplicationObject
Lab 13 DDESuiteLinkClient Auto Reconnect
Lab 14 Automatic Reference Configuration

Module 5 Alarms and History


Section 1 Alarms
This section provides familiarization of the concept of alarms and events and how ArchestrA
handles them.
Lab 15 Configuring Alarms
Section 2 Historization
This section provides familiarization with the background concept of historization and the
details of historizable configuration.
Lab 16 Configuring History

Module 6 Security
Section 1 Security Overview
This section provides an understanding of Security as it relates to Application Server.
Lab 17 Security

Module 7 Galaxy Maintenance


Section 1 Exporting and Importing Objects
This section provides an understanding of fundamental functions dealing with Galaxy
Maintenance. Specifically, it illustrates how to Export for future use and how to Import a
galaxy created previously.
Section 2 Configuring Instances Through a .CSV File
This section provides an understanding of fundamental functions dealing with Galaxy
Maintenance. Specifically, it illustrates how to Export for future use and how to Import a
galaxy created previously.
Section 3 System Management Console (SMC)
This section provides an understanding of role of the System Management Console and how it
can be configured.
Section 4 Network Account Utility
This section discusses the role of changing the network account and how to use the Change
Network Account and how to configure it.

Module 8 Device Integration Products


Section 1 Wonderware I/O Servers
This section will describe the configuration of a Wonderware I/O Server (Modbus).
Section 2 Data Access Servers
This section provides familiarization with DAServer and its use with Wonderware Application
Server.

Wonderware Training

Section 1 Course Introduction


Section 3 Device Integration Objects
This section provides familiarization with DI Objects and their use with Wonderware
Application Server.

Module 9 Multi-Node Applications


Section 1 Application Redundancy
This section provides an understanding of the concept of redundancy, how it can be
configured and key points to more effectively implement this feature. It also provides an
understanding of the concept and functionality of Redundant DI Objects
Lab 18 Configuring Application Redundancy
Section 2 DI Redundancy
This section provides an understanding of the concept of redundancy, how it can be
configured and key points to more effectively implement this feature. It also provides an
understanding of the concept and functionality of Redundant DI Objects
Lab 19 Configuring the Redundant DI Object
Section 3 Multi Node Application
This section provides an understanding of how to migrate from a standalone configuration to a
network configuration. At the conclusion of this section you will have an understanding of the
steps necessary to migrate to a network environment.
Lab 20 Convert to Network Environment

Wonderware System Platform 3.0 Course - Part 1

1-7

1-8

Module 1 Introduction

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.

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


.NET, are applied as a basis, enabling compatibility with commercial IT hardware and
software.
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.
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.
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 Solutionswhether in the areas of Supervisory HMI, Production and
Performance Management, or Geo-SCADAleverage the comprehensive ArchestrA industrial
automation and information software architecture.

Wonderware Training

Section 1 Course Introduction


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:

Industrial domain services for industrial computing functions that are not provided by
commercial operating systems or products

Software and device connectivity services for easy communication to any plant or
business information source

Information and data management services for management of real-time and historical
information

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

Application development services that provide easy and intuitive development of
modular industrial software solutions that are easily changed to meet future needs

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

Information Delivery
and Visualization
ArchestrA
Applications Architecture

Industrial Domain
Features

Application
Development

Information and
Data Management

System Mgmt and


Extensibility

Database and
Historian

Software and Device Connectivity

Existing HMIs,
Historian, Lab Systems,
CMMs

Software Applications Business Systems, MES


Databases

Field Devices - PLCs,


RTUs, DCS

Wonderware System Platform 3.0 Course - Part 1

1-9

1-10

Module 1 Introduction
System Platform Components
The Wonderware System Platform consists of a variety of software components.
Wonderware Clients

InTouch View

Functional
Modules

ActiveFactory

Reporting Client
(Information
(Information Server
Server CAL)
CAL)

Wonderware System Platform

Application Server
Server
Application
(IAS)
(IAS)

Historian
(InSQL)

Information Server
(SuiteVoyager)

Device Integration

3rd Party
Data Sources
HMI, LIMS

S/W
Applications
DB, MES

Field Devices
PLC, RTU
DCS

Wonderware System Platform



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

Wonderware Historian (formerly known as IndustrialSQL Server) plant data historian


Wonderware Information Server (formerly known as SuiteVoyager) industrial portal


software for Internet/intranet visualization and content management
Wonderware Device Integration Tools for field device connectivity

Wonderware Clients

Wonderware InTouch View human-machine interface (HMI) software as a visualization
client for the System Platform

ActiveFactory trending and analysis software


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


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:




Integrate with your existing plant, IT and business systems, creating one effective system
for the entire organization

Leverage a single, open and scalable software architecture called the ArchestrA industrial
automation and information software architecture
Complete MES and flexible batching capabilities that can help you actively manage
production and collect data for analysis and reporting

Enable secure, wide-scale delivery of reports on KPIs, downtime, OEE, and SPC through
a powerful portal that delivers the information contextually

Improve data analysis and information sharing with advanced trending and reporting
capabilities

Wonderware System Platform 3.0 Course - Part 1

1-11

1-12

Module 1 Introduction
Product Offerings
The Wonderware Production and Performance Management Software Solutions consist of a
variety of products:

Wonderware System Platform providing a core set of service capabilities as a
foundation for application development, operations, and information delivery

InBatch flexible batch management software


Manufacturing Execution Module (formerly known as InTrack) resource and WIP


tracking software
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
Equipment Performance Module (formerly known as DT Analyst) equipment
downtime tracking and performance management software
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:


Easily design, build, deploy and maintain the most flexible and secure supervisory
solutions with the lowest total life-cycle costs

Scale from a single machine up to multiple networked supervisory stations

Integrate plant devices, databases, and control systems

Incorporate strong security at the data-element level and for every user in the system

Rapidly expand production and performance management solutions

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 prebundled with powerful visualization software

Product Offerings
The Wonderware Supervisory HMI Software Solutions consist of a variety of products:

Wonderware System Platform providing a core set of service capabilities as a
foundation for application development, operations, and information delivery

InTouch human-machine interface (HMI) software for process visualization and control

InControl real-time control software

Wonderware Training

Section 1 Course Introduction


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.

The easiest and most efficient, open software solution for SCADA


Highly available, reliable, and scalable SCADA applications

Single-click software redundancy

Leverages ArchestrA architecture for easy configuration and management of operational


and system security that is compatible with existing IT security capabilities

Empowers users to design, build, deploy, and maintain standardized SCADA applications

Lowest total system lifecycle costs

Product Offerings
The Wonderware Geo-SCADA Software Solutions consist of a variety of products:

Wonderware System Platform providing a core set of service capabilities as a
foundation for application development, operations, and information delivery.

InTouch human-machine interface (HMI) software for process visualization and control


SCADAlarm event notification software for real-time alarm notification, data acquisition,
and remote control from telecommunication devices to industrial automation software
systems

Wonderware System Platform 3.0 Course - Part 1

1-13

1-14

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:

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

InTouch human-machine interface (HMI) software for process visualization and control


Wonderware System Platform providing a core set of service capabilities as a


foundation for application development, operations, and information delivery
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
Wonderware Historian (formerly known as IndustrialSQL Server) real-time historian for
SCADA and factory data
Wonderware Information Server (formerly known as SuiteVoyager) Web analysis
software for Internet/intranet visualization and content management
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
InTouch View human-machine interface (HMI) software as a visualization client for the
System Platform

ActiveFactory trending and analysis software for accelerating and improving decisionmaking at all levels within an organization
QI Analyst statistical process and quality control software to predict process variations
and enable online adjustments for improved production
InControl real-time control software

InBatch flexible batch management software

SCADAlarm event notification software for real-time alarm notification, data acquisition,
and remote control from telecommunication devices to industrial automation software
systems
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


Wonderware System Platform Framework
ArchestrA provides an infrastructure for simplifying the development, deployment, lifecycle
maintenance, and administration of distributed automation applications.
The supervisory control and manufacturing information environment is served by a variety of
systems, including (HMI), Distributed Control Systems (DCS), Supervisory Control and Data
Acquisition systems (SCADA), Process Information Management systems (PIM), Manufacturing
Execution Systems (MES), batch and recipe management systems, and advanced control/
simulation systems.
ArchestrA leverages advanced software technologies to fill the gap between ERP systems and the
control systems. This architecture provides the following:

Framework: supports common services and a core set of system objects


Domain Objects: are industry-specific objects

Object Development Toolkit: allows 3rd parties to create new domain objects
customized for specific needs

The ArchestrA infrastructure, or Framework, supports core services that are required by most of
the different types of supervisory control and manufacturing information systems mentioned
above. These core services include the following:


Integrated development environment

Version management

License management and centralized deployment

System diagnostics and system administration

Internationalization

Data visualization and monitoring

Event based processing, scripting, and calculation capabilities

Alarm and event management, historization, and security

Data acquisition and field device integration

Inter-object communications and name service

Reporting and ad-hoc query capability

Support for industry standards such as OPC and SQL

The ArchestrA Framework consists of:




Configuration and Deployment Related Components: which include the centralized


object repository (called Galaxy Repository), integrated development environment (IDE)
and object deployment services (called Bootstrap). These components are installed just like
any other Windows application. They are required for centralized deployment of the
runtime components.
Runtime Components: which include PCs with core infrastructure (called Platforms), key
software applications (Engines) and objects (Framework Objects) that expose framework
related functionality. These components are centrally deployed and administered.

Wonderware System Platform 3.0 Course - Part 1

1-15

1-16

Module 1 Introduction

Intentionally left blank

Wonderware Training

Section 2 Wonderware System Platform

Section 2 Wonderware System Platform


Section Objectives


Introduce the concept of ArchestrA and how it relates to the manufacturing environment

Describe the benefits of migrating to an ArchestrA architectural environment

Clarify how Object Oriented tag-based products relates to SCADA

Explain the difference between Object Oriented development process and Tag Based
development process
Explain what a Galaxy is and how it relates to the Galaxy Database and the Galaxy
Repository

Demonstrate how a Galaxy is created

This section provides an overview of the Wonderware System Platform, the architecture of
ArchestrA and the importance of how it is critical to plant automation, and an overview of the
differences between Object-oriented and traditional Tag based HMI and SCADA products and
how it applies to Wonderware System Platform applications. It also provides an understanding of
what a Galaxy is, how it relates to the Galaxy Database and the Galaxy Repository and how a
Galaxy is created.

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. It provides a common and strategic industrial application services platform
on top of virtually any existing system, and is built upon the industry-standards based, ArchestrA
real-time SOA technology.
The Wonderware System Platform is designed to make it easier for manufacturers to adjust to the
ever-changing needs of customers and the overall market. Its diverse functionality extends
Wonderware customers software investments and encourages flexibility in application
development.
It supports consistent and reliable operations across industrial operations and manufacturing
facilities as well as promotes sustainable production and operational performance improvements.
The Wonderware System Platform contains an integral core set of capabilities and services to
support sustainable production and operations performance improvement via a comprehensive
set of six capability areas:


Industrial domain services

Software and device connectivity services

Information and data management services

Information-delivery and visualization services

Application development services

System management and extensibility services

Industrial Domain Services


The Wonderware System Platform offers industrial domain services that are not provided by
commercial operating systems or generic IT products. It provides a powerful infrastructure that

Wonderware System Platform 3.0 Course - Part 1

1-17

1-18

Module 1 Introduction
enables Wonderware customers to leverage lower-cost commercial PC hardware and operating
systems in industrial applications.
Application functions are quickly customized. Whether you have no knowledge of computer
programming or consider yourself an expert software engineer, the System Platform can empower
you to conveniently interact with process systems from any remote location. The result is a reduction
of personnel costs and improved response times because the software continuously monitors and
deploys messages, 24/7.
Industrial Domain Services provide:


Real-time, peer-to-peer communications and messaging, enabling instant responses

High computing availability and redundancy for critical applications

Centralized alarm- and event-monitoring for operational conditions

Data-level security to protect plant equipment

Audit logging and extended security protection for developers and system-maintenance
personnel

Pager, mobile phone, PA system and e-mail alerts for unattended operational monitoring

A single global Namespace to access data elements anywhere, without tag limitations

Plant information and supervisory functions to script special behavior and responses

Support for slow and/or intermittent data networks

Software and Device Connectivity Services


The Wonderware System Platform enables cost-effective communication to virtually any plant
information source. Unifying diverse systems can improve operations and information
management. Integrating business and manufacturing activities can also increase plant
profitability.
Software and Device Connectivity Services provide:


Integration of manufacturing and business systems

Easy importing and migration of legacy systems and external system configurations

Conversion of non-structured devicecommunication models into structured systems to


increase the maintainability of applications and systems

Connectors and communication servers for control devices, applications and systems
including:


Automation devices, control systems and HMIs


Historians and relational databases

Quality and maintenance systems

Enterprise resource management (ERP) and business systems

Manufacturing execution systems (MES)

Information and Data Management Services


Furthermore, the Wonderware System Platform facilitates the management of all real-time and
historical information including data transformation and storage. This information management
capability can increase a plants profitability because it enables immediate access to key

Wonderware Training

Section 2 Wonderware System Platform


performance indicators (KPIs); SPC, downtime and OEE information; live data calculations; event
and alarm notifications; and historical data.
More effective information and content management can also improve production management
and enhance plant performance. For instance, the reliable information that the Wonderware
System Platform provides enables not only data visualization, but actionable control. The platform
also enhances batch management, real-time production monitoring and access to MES data.
Information and Data Management Services provide:


Content management tools

Streaming real-time data (available to all authorized users)

A high-performance process historian and production database that offer:

A production history archive for a single production line, an entire facility or the
complete enterprise
Data compression, which reduces disk storage and makes more data available online

An historical archive thats auto-configured, eliminating duplicate work

Off-line and late data handling for:




Manual data

Labs and quality systems

Remote terminal unit (RTU) environments

Correlation of events and alarms with production history

Data transformation and normalization

Data Buffering and Store & Forward features

Simple and fast configuration with powerful process event monitoring

Information-Delivery and Visualization Services


Delivering the right information, to the right user, at the right time, and in the form in which they
expect it is a key service provided by the Wonderware System Platform. Wonderware customers
can concurrently visualize manufacturing and business information, and dynamically implement
changes to reach their business objectives.
Quickly access real-time and historical information using the open and easy-to-use HMI solution
that seamlessly integrates with legacy and new plant systems. Proactively enhance your plants
profitability by taking action on information in real time, obtaining real-time and historical data from
beyond the boundaries of the secured process network. Create queries and run reports, even if
you have no SQL database knowledge. The Wonderware System Platform can even help you
achieve regulatory compliance with simple and accurate automated reports.

Wonderware System Platform 3.0 Course - Part 1

1-19

1-20

Module 1 Introduction

Capabilities

Multiple client interfaces [i.e., Thick, Terminal Services Edition (TSE) or Web Client]


Visualization and HMI




Expansive graphical user interface (GUI)

Access-level Windows authentication and data security, as well as enhanced


password encryption

Comprehensive alarm troubleshooting tools


Information Analysis and Reporting


Integration with trending tools and Microsoft Office products

Production, SPC, downtime and batch analysis tools

Automatic data retrieval calculations - reduction and aggregate methods

Open SQL access, enabling simplified data queries with powerful retrieval modes

Secure access across firewalls

Multi-language client support

Application Development Services


The Wonderware System Platform and its underlying ArchestrA technology provide easy and
intuitive development of modular industrial software solutions, which can be easily changed to
meet Wonderware customers future needs. As a result, you can drive standards by developing
applications once and using them everywhere. The result is a decrease in the amount of time and
costs associated with creating, modifying, deploying, maintaining and standardizing software
applications.

Wonderware Training

Section 2 Wonderware System Platform


Application Development Services provide:

Flexible, comprehensive software development capabilities for HMI and/or MES
applications


Advanced ArchestrA technology, which facilitates the assembly of applications that are
component-based and generated from standard templates

SmartSymbol technology, enabling the creation of re-usable graphics

Different development views, which show:




How the application is related to the facility or plant

How the application is distributed across the network

Parent-child relationships for templates and runtime components

Multi-Developer Environment for concurrent development

Modeling - Applications can be structured based on a plant model; are self-documenting;


and offer common security, validation and audit trails

Unification with Microsoft products including:




Microsoft Windows operating systems

The Visual Studio development system

SQL Server, BizTalk server

SharePoint services

Microsoft Office

Internet Explorer internet browser

System Management and Extensibility Services


Furthermore, the Wonderware System Platform facilitates the easy management, expansion and
modification of applications or the host computing architecture. These services provide a range of
architectural choices, both during the initial system design phase and throughout the lifetime of an
installed system.
Leverage the flexible and scalable ArchestrA software architecture for small and large systems
systems that can be easily expanded to meet future requirements. Improve system
troubleshooting. Leverage Wonderwares technological evolution and increased protection for
operating systems and databases. Decrease lifecycle costs for plant IT solutions. Change and
expand your system as a whole without disruption.
System Management and Extensibility Services provide:

The ability to re-architect systems at any time to support different system topologies (i.e.,
Single Node, Client/Server, Peer-to-Peer or Web-centric
Easy redistribution of server load

Remote application installation and administration

An online configuration database that centrally maintains software

Remote change propagation

Centralized computer diagnostics and distributed PC network management

In essence, the Wonderware System Platform facilitates consistent and reliable operations across
manufacturing and industrial operations to protect brand integrity. It empowers Wonderware
customers to extend their systems in virtually any direction to meet their current and future needs.

Wonderware System Platform 3.0 Course - Part 1

1-21

1-22

Module 1 Introduction

ArchestrA
ArchestrA is a comprehensive plant automation and information architecture designed from the
outset to extend the life of legacy systems by leveraging the latest software technologies.
Offerings built upon this architecture empower decision-makers to achieve their business goals,
without abandoning prior investments in automation systems, production processes or intellectual
property.
ArchestrA's complete approach to industrial architecture significantly reduces a plant's total cost of
ownership through easy installation, operation, modification, maintenance and replication of
automation applications.
In the ArchestrA environment, software applications can be rapidly assembled rather than
programmed. New applications also can be created simply through the reassembly of existing
applications.
The ArchestrA vision is to provide a unified and robust architecture that is the basis for
collaborative production systems in support of industrial enterprises. Its open-development
platform and tools uniquely enable Invensys and third parties such as OEMs, machine builders
and system integrators to build domain knowledge and add significant value to the solutions they
provide. End-users and suppliers will benefit from ArchestrA's unified platform, which enables the
instant integration of application information.
ArchestrA is the comprehensive industrial automation and information architecture that
orchestrates a new way to run or expand older plants more efficiently, and an optimal way to build
new plants.

The Need for ArchestrA


Quality, responsiveness, and cost efficiency have always been necessary for any plant or factory
that wishes to surpass the competition. Today, they are vital for any plant, factory, or enterprise to
survive.
The pace of change accelerates. Product cycles become shorter and more complex. New or
enhanced products must be commercialized at breakneck speed, or risk rapid failure. Such
offerings must also be quickly customizable for use in todays global business spaces. Again, as
these markets grow ever more economically efficient, the choice for manufacturers is between
agility and finality.
Thats why today a variety of computer-based systems are used to operate plants as well as to
improve their efficiency. In most plants, multiple varieties of hardware and software systems provide
machine and process control, information management, and decision support. These systems
enable manufacturers to operate their businesses more effectively and add value to the raw
materials they process. Without these systems, many highly engineered consumer and industrial
products simply would not exist, because of the complexities involved in their manufacture.
Unfortunately, even today, in most plants these systems operate independently. This hinders a plant
managers ability to synchronize and control production and business processes in a real- time
environment. In other words, the majority of manufacturers have not successfully integrated the
functionalities of automation/business/information systems into a single, unified infrastructure.
In the past, this has been an expensive and time-consuming process. Those that have
successfully integrated have done so at great cost in terms of money and resources. Moreover,
despite the huge investments made by companies in these systems over the years, managers still
find it difficult to quantify resulting tangible benefits.

Wonderware Training

Section 2 Wonderware System Platform


The most compelling aspect of the problem now facing manufacturers is that the underlying
technology of these systems is rapidly becoming obsolete. As general technology lifecycles
shorten, manufacturers are pressed to procure and integrate new technologies with everincreasing speed making the ultimate goal of productivity improvement even more difficult to
achieve.

In most plants today, islands of automation within business and manufacturing systems hinder
the plant managers ability to synchronize business processes in real time.
Recognizing this challenge, Invensys has developed a solution, ArchestrA automation and
information architecture (ArchestrA).
A powerful new infrastructure for industrial applications, ArchestrA promises to provide an
information and control superstructure that will increase the productivity of a plants existing
systems, while enabling the plant to easily integrate important new technologies over the longer
term. Building on ArchestrA research and technology, the recently released I/A Series A2 system
(I/A Series A2) has taken the first major step toward reducing the risk of automation obsolescence
and protecting manufacturers investments far into the future.

Wonderware System Platform 3.0 Course - Part 1

1-23

1-24

Module 1 Introduction
Manufacturing Goals
For approximately a decade, manufacturers have been revising business practices, organization
charts, and systems infrastructures to become more market-driven and customer-centric. Their
overall objectives have been straightforward and consistent:


Become more responsive to market shifts and the increased competition brought on by
globalization

Develop greater agility and a more collaborative, data-driven environment

Synchronize the manufacturing process with planning and scheduling functions to


optimize enterprise performance
Empower operators with critical information to foster improved plant performance




Utilize existing assets more efficiently to increase production, without the need to expand
the plant or build new capacity

Ensure the greatest possible return on assets, and improve profitability, in the face of
continuing manpower reductions

To achieve these goals, managers know they can no longer simply "invest in technology" and
expect improvements to come about automatically. In fact, millions of dollars have already been
invested with only marginal returns. However, management cannot afford to stand still, because
there are significant rewards to be reaped by those who develop improved responsiveness,
greater agility, and a higher return on assets.
Compounding the problem, many of yesterdays automation and information systems are
beginning to show their age, failing to offer the agility or rapid response that todays producers
require. Acting as a massive anchor, they actually impede the organizations forward progress as
they increasingly require greater amounts of maintenance and the corresponding expansion of
infrastructure support. But the original investment in these systems was so extensive and so
visible to owners and investors that it is understandably difficult to broach the subject of
"bulldozing" and starting over with the latest generation of technology. Further, it means not only
eliminating extensive hardware infrastructure, but also destroying an asset that is even more
valuable the intellectual capital unique to the manufacturing mission.

Synchronization of Systems
Todays collaborative manufacturing environment requires that manufacturers synchronize
automation systems with business/information systems to accomplish total supply chain
management.
To facilitate this collaborative environment, many manufacturers are working toward a rational,
cost-effective solution that does not require enormous investment and allows for the preservation
of as much existing infrastructure as possible. They are preserving, to the maximum extent
feasible, existing investments in hardware and software, as well as in intellectual properties
contained in application-specific software. They are working to synchronize the various
informational elements within the manufacturing domain, namely automation systems, business
systems, and information systems, thereby fulfilling these systems original promise of improved
manufacturing efficiency. They are identifying optimal long-term strategies based on total cost of
ownership.
The pace of change has increased to a point at which it is difficult for manufacturers to execute a
new strategy before market conditions change once again. Todays manufacturer, however, must
have the ability to respond to challenges that are virtually unanticipated. Response times have
now become the cornerstones of manufacturing competitiveness, and will remain so for the
foreseeable future.

Wonderware Training

Section 2 Wonderware System Platform


The challenge has been to develop an architectural infrastructure that optimizes quality, customer
satisfaction, and efficiency of operation, while facilitating quick response and easy reengineering.
And to identify and deploy a plant information superstructure that embraces existing systems while
providing expansion capabilities for the long term.
Such an architectural infrastructure is available through ArchestrA. This allows manufacturers to:


Preserve a significant portion of their existing automation and information infrastructures

Integrate and synchronize existing production systems and new applications

Move ahead into the future, confident of shorter project execution times, reduced total cost
of ownership, and a proven, long-term strategy that will remain in a leadership position for
the life of the plant.

ArchestrA Architecture
ArchestrA, developed by Invensys, is a software infrastructure designed to unify combinations of
Invensys, third-party, and customer internal applications, both current and emerging, into a
synchronized, plant-level application model, and to foster their ongoing adaptation and
improvement. It comprises a unique combination of new toolsets and new applications
infrastructure services, allowing the rapid generation of new applications, products, and services.
Because it enables easy upgrades via integration of existing systems with these new technologies,
it offers manufacturers the promise of extending the lifecycle of an entire plants information and
control system infrastructure.
ArchestrA facilitates the next logical extension of enabling software architecture designed to
accommodate emerging technologies and to ease the reuse of engineering from one project to
another. The objective of this unique technology is to dramatically reduce engineering and
maintenance time and expense when a manufacturer must modify or expand his companys
process. Incorporating ArchestrA will considerably reduce the cost and time involved in executing
strategic change.

Wonderware System Platform 3.0 Course - Part 1

1-25

1-26

Module 1 Introduction
ArchestrA enables manufacturers to synchronize the various informational elements within the
manufacturing domain and supply the information required by business systems in real time.
ArchestrA provides a number of key functions designed to free users from the complexities of
dealing with current underlying technologies. So users require only assembly skills, not
sophisticated programming knowledge, and are able to apply their time to functions in which they
have more expertise. By embedding common application services directly into a common
infrastructure, application engineers can design and reuse solutions that are instantly integrated.
The key elements of the software infrastructure are the following:

Common design and development environment


Deployment, scripting, and calculation services

Alarm and event subsystems with reliable delivery

Built-in distributed architecture services for scalability

Integration with various types of field devices

Inter-object communication and name service management

Version management services

Security model services

Centralized license management and deployment services

Centralized system diagnostics and administration

Internationalization of objects and application services

Graphical user interface (GUI) editing services

Automation Information Pyramid


ArchestrA supports all layers of industry standard models. It is the basis for Supervisory,
Production and Plant Intelligence solutions. In addition, it extends functionality across the
enterprise enabling true manufacturing collaboration. The Automation Information Pyramid
illustrates these points. It displays the complete effectiveness of ArchestrA across all levels of the
manufacturing environment:
1. Plant Floor Connectivity
2. Supervisory
3. Production
4. Plant Intelligence
5. Manufacturing Collaboration
The following page illustrates these segments as they relate to the Automation Information
Pyramid.

Wonderware Training

Section 2 Wonderware System Platform

Manufacturing
Collaboration

Plant
Intelligence

Production

Supervisory

Plant Floor
Connectivity

Wonderware System Platform 3.0 Course - Part 1

1-27

1-28

Module 1 Introduction
Scalability
Wonderware Application Server provides a scalable and integrated architecture to meet the needs
of small, simple applications all the way up to highly challenging manufacturing information
management systems.
Wonderware Application Server resolves the problems associated with scaling automation
applications because there are no limitations on system size and performance issues are easily
addressed through the introduction of new nodes. New workstations and any data points defined
are automatically integrated into the initial application through the plant model. The common
distributed peer-to-peer Namespace means that all information is shared between the nodes
without the user having to perform any additional engineering or configuration.

Object Oriented vs. Tag Based Supervisory Control


There are several fundamental differences between Object-oriented and traditional Tag based
HMI and SCADA products. The following table illustrates the differences in how various processes
are managed in Object Oriented vs. Tag Based systems.
Process

Object Oriented

Tag Based

Structure

Hierarchical

Flat

Graphics Development

Done Last

Done Early

Background Process

Developed in Objects

Developed in Tags

Promotion of Standards

Strictly Enforced

Not Strictly Enforced

Global Application Change

Progagated from Templates

Changed in Tools like Excel

Data Represented By

Physical Devices as Objects

Data Types and communication


Bits as Tags

From the inception of PC-based HMI and Supervisory products, the development of data access,
scripting, alarming and data analysis has been based on the concept of tags. While simple and
very portable from one project to another, a tag-based environment has the downfall of a flat
Namespace, with no inherent ability to link elements together into more intelligent structures, with
built in relationships and interdependencies. Global changes to a tag database are typically done
externally to the development environment, in tools like Microsoft Excel or as a text file and then
re-imported into the application. Reuse in a tag-based system is commonly instituted through
dynamic or client-server referencing, that allows a common graphic to be created. Then a script is
executed to switch the tags being viewed in run-time. Furthermore, because of the flat structure of
the application, changes need to be sought out and analyzed as to the affect on the rest of the
application.

Use of the word "Object-oriented" with SCADA


The phrase "Object-oriented SCADA" has been with us since the early 1990's. It is mostly used
today to refer to the ability to build graphics and draw pictures based on classes or a hierarchy.
This is referred to as Object Oriented Graphics. This allows you to build a symbol and replicate it
across a screen or HMI application and have visual changes made to all the similar symbols at the
same time. This is useful functionality, but SCADA applications are more than just pretty pictures.
For example, the majority of work that goes into a supervisory application is for things like:


Alarm Monitoring

Wonderware Training

Section 2 Wonderware System Platform

Animation Scripts
Security Scripts

Supervisory Scripts

Historical data storage

Integration with other applications and Databases

Event Detection

Flow and movement calculations

Device integration

In order to fully realize the benefit of an Object-oriented architecture, a SCADA System today
needs to depict all of these things, along with the graphics as objects.

Types of objects
In object-oriented SCADA, objects contain the aspects or parameters associated with the device
they represent. For example, a valve object can contain all the events, alarms, security,
communications and scripting associated with a device. Objects don't just represent plant
equipment. They can also model common calculations, database access methods, Key
Performance Indicators (KPIs), condition monitoring events, ERP data transfer operations and
many more things that you want the plant information system to do. Because these operations are
modular, it is easy to add them to any and all parts of the application. For example, let's say that
there is a standard way your organization calculates and initiates a maintenance work order for a
pump. By encapsulating this function as an object, it is possible to use it with any pump in the
application.

Wonderware System Platform 3.0 Course - Part 1

1-29

1-30

Module 1 Introduction
Using object-oriented tools in manufacturing applications
Manufacturing applications typically have a lot of common components. These include common
types of:

Plant devices and equipment


Operating procedures

Process measurements

Calculations

Graphics displays

This leads to a cookie cutter approach, where typically small software programs are developed as
objects/code modules that can be stamped out and joined together to form an application. Almost
all of the automation vendors have this capability today with their software. Where an objectoriented SCADA System is different, is that after the cookies are stamped out, you can change the
stamp, and all of the cookies you already made are automatically changed.

This is possible because when a SCADA package is truly object-oriented, it has the notion of a
parent-child relationship, where parent templates are developed and then "Child Objects" are
replicated or instantiated from the parent templates. Now all of the children are tied back to the
parent, so a change in the parent can be replicated to all of the children. This is an extremely
powerful development capability in that:

Application creation is optimized by using parent Templates and automated child object
replication

Project change orders are easily accommodated by making changes in the parent
template and having the child objects inherit the changes via change propagation

Ongoing system changes and expansions are easier and more cost effective because of
automated object replication and change propagation

Wonderware Training

Section 2 Wonderware System Platform


Traditional, Tag Based SCADA Development Process
From the inception of PC based HMI and SCADA software, users have built operator graphics and
linked them to tags, which represented addresses in a PLC or a control system. The concentration
was on the computer and the software application. Here is an example of how a traditional tagbased SCADA application is developed.
1. A new HMI application is created on a single computer
2. Windows or displays are created for the application
3. Graphics are created for the windows
4. Tag definitions are imported from the PLC or manually configured
5. Alarm and Event Detection Scripts are defined for each tag
6. Tags are linked to graphic elements
7. Graphics animation scripts or links are created
8. IO Tags are defined and linked to the application
9. If the application is to be deployed in a client-server environment, the application is rearchitected to centralize alarming, event detection, history archiving, graphics and IO servers.
10. Changes to the system require shutting down the application, making changes to the many
scripts and tag database references to enable the new functionality, and reloading the new
HMI application on each workstation.

Object oriented Development Process- graphics are created last


Wonderware Application Server and the ArchestrA Integrated Development Environment (IDE)
have brought a new era to SCADA Software development through the ability to create a complete
plant device model. The developer is abstracted from the complexities of the computing environment
and allowed to concentrate on "modeling" how the production facility is laid out and
the different manufacturing cells and processes that comprise plant-wide supervisory control.
Once the plant model is captured, it is easy to implement supervisory control functions. A small
investment in creating Templates yields big results in engineering productivity. The ten easy steps
to creating a supervisory application using the Application Server are:

1. A site survey is conducted to understand the layout of the manufacturing operation or process.
Piping and Instrument Diagrams (P&ID) can also be referenced to understand the specific
equipment in use.
2. A list is developed of similar pieces of equipment, like common types of motors, valves,
transmitters, control loops, drives, etc. Distinct areas of operation are also identified.
3. Templates are configured for each common device or component in the facility. For example,
there may be 100 transmitters of a particular type that can be modeled as a single device
template. This process sets up the standards for the supervisory application and for any
applications that are created in the future. These templates will be used to develop objects
which represent a specific device, such as a level transmitter LIC101. In addition, templates
contain all of the logic, input/outputs, scripting, history configuration, security and alarms and
events for the device.
4. Device templates can be contained within each other to build-up a more complicated device,
for example, a mixer may contain a level transmitter, pump, inlet / drain valves and agitator.

Wonderware System Platform 3.0 Course - Part 1

1-31

1-32

Module 1 Introduction
5. Device templates have attributes which represent real I/O available in the PLC or control
system. These attributes are then linked to the I/O through Device Integration Objects.
6. The application can then be assembled by using a simple drag and drop capability inside if the
ArchestrA IDE. As templates are dropped into their individual plant areas, an object instance is
created that is linked back to the template. This is the "Object-Oriented" nature of the
Application Server, which provides incredible power when it comes time to modify anything in
the system. The software does all the work as the user is simply configuring templates that
represent the equipment in the plant.
7. Objects are then assigned to security groups. This can be done on an individual basis or by
area of the plant. These security groups have common permissions. Roles are created to map
rights onto each security group. Users can be given one or more roles. This offers a great
amount of flexibility in changing user permissions and in managing the security model.
8. The model created in the ArchestrA IDE can now be deployed to the computers that will host
the application. Notice that absolutely no consideration needs to be given to how the
supervisory stations are going to be laid-out or which computer needs to have a specific part
of the system running on it. The Application Server is a fully distributed system, which can
reside on a single computer or on hundreds of computers. Standard system objects, such as
Platforms and Engines, represent specific computers that are used to host objects when they
are deployed.
9. Graphics are then configured using InTouch, the world's most popular HMI software
package. This can also be done using the Smart-Symbol functionality contained in InTouch
9.0 SP 2 which allows a graphic element to be created and linked to a template in the
ArchestrA IDE. That way the display graphics are also object-oriented and tightly coupled to
the plant model.
10. Once the application is developed, maintenance of the system is easy. Changes made to
Templates can be propagated to the "Child Objects" linked to the Templates. For example, if the
units associated with a level transmitter need to change from gallons to liters, this can be done
once in the template, and the changes can automatically propagate to all the operator
displays in the plant.

Wonderware Training

Section 2 Wonderware System Platform


Plant Model for Developing Application Server Course Application
In this course, the manufacturing environment that is modeled centers on a Plant with various Tanks
and assorted Tank related components. Initial focus is on one Area of the Plant and model that
Tank System in the Integrated Development Environment (IDE) of the Application Server. Templates
are then developed which allow for the simple creation of multiple instances of your
Tank System.
The following Figure illustrates the Tank System Model that created in the application developed
throughout the course of this class.
AGITATOR

LIT

INLET 1

PUMP 1
TT

OUTLET
INLET 2

PUMP 2

What is a Galaxy?
Its important to understand what a Galaxy is before one is created. A Galaxy is your whole
application. The complete ArchestrA system consisting of a single logical name space and a
collection of WinPlatforms, AppEngines and objects. One or more networked PCs that constitute
an automation system. It defines the name space that all components and objects live in and
defines the common set of system level policies that all components and objects comply with.
A Galaxy Database is the relational database containing all persistent configuration information for all
objects in a Galaxy.
And a Galaxy Repository is the software sub-system consisting of one or more Galaxy Databases.

Wonderware System Platform 3.0 Course - Part 1

1-33

1-34

Module 1 Introduction
Creating a Galaxy
Each ArchestrA IDE session requires connection to a specified Galaxy. In other words, the
ArchestrA IDE cannot be started in a Galaxy-neutral state. When you attempt to start the
ArchestrA IDE, the Connect to Galaxy dialog box is displayed.

This dialog box is comprised of three groups of options:




Galaxy Repository/Galaxy connect selections: This consists of the GR Node Name and
Galaxy Name boxes.

Action buttons: Connect, New Galaxy, Delete Galaxy, About and Cancel.

Licensing information

If the Galaxy Name box is empty, you have not yet created a Galaxy on the computer shown in the
GR Node Name box. Before you can start the ArchestrA IDE, you must either browse for a Galaxy
on another node or create a new Galaxy.
All new Galaxies are created with no security. They also have the following characteristics: two
users (DefaultUser and Administrator, both with full access to everything), two security roles
(Default and Administrator, both with full privileges) and one security group (Default).
If you previously created one Galaxy on the GR node shown, the Galaxys name is automatically
shown. Click Connect to start the ArchestrA IDE and to connect to that Galaxy. If you previously
created more than one Galaxy on the GR node shown, the most recently accessed Galaxy name
is shown. Choose the desired Galaxy from the Galaxy Name list and click Connect to start the
ArchestrA IDE and to connect to that Galaxy.

Wonderware Training

Lab 1 Creating a Galaxy

Lab 1 Creating a Galaxy


Introduction
This lab illustrates the steps necessary to create a default Galaxy and open the ArchestrA
Integrated Development Environment (ArchestrA IDE). Throughout this class you will use this
Galaxy to develop a sample application.

Objectives
Upon completion of this lab you should be able to:


Create a Galaxy

Open the ArchestrA development environment

Note: To better facilitate the clarity of individual work in this training environment, because of the
Global Naming Space, ALWAYS preface the object name with your FIRST and LAST initial.
(e.g., if the user is Ann Brown, Valve would be ABValve)

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.

Create a Galaxy
1. Create a new Galaxy named <your initials>Galaxy.
2. Connect to the new Galaxy and open the ArchestrA development environment.

See the next page for Detailed Lab Instructions

Wonderware System Platform 3.0 Course - Part 1

1-35

1-36

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).

Create a Galaxy
1. Launch the Integrated Development Environment by selecting Start / All Programs /
Wonderware / ArchestrA IDE. This will display the Connect To Galaxy dialog box.
The GR node name field will reflect the name of the local computer.
The Galaxy name drop-down list is initially empty since there are no Galaxies created in this
node.

2. Click the New Galaxy button to create a new Galaxy. The New Galaxy dialog box is
displayed.

Note: The different Galaxy types will be discussed later.

Wonderware Training

Lab 1 Creating a Galaxy


3. For Galaxy name enter the ABGalaxy and make sure Galaxy type is set to
Base_Application_Server.cab.

This must be the


node that contains
the Galaxy
Repository (the
Host name of the
computer).

4. Click the Create button to continue.


This will display the Create Galaxy dialog box indicating the progress on creating the new
Galaxy.

Wonderware System Platform 3.0 Course - Part 1

1-37

1-38

Module 1 Introduction
5. As soon as the process is complete and the Close button is enabled, click Close.

6. At the Connect To Galaxy dialog box the name of the newly created Galaxy, ABGalaxy, is
displayed in the Galaxy name drop-down list.
Click the Connect button.

Wonderware Training

Lab 1 Creating a Galaxy


This closes the Connect To Galaxy dialog box and displays the Integrated Development
Environment (ArchestrA IDE).

Wonderware System Platform 3.0 Course - Part 1

1-39

1-40

Module 1 Introduction

Intentionally left blank

Wonderware Training

Section 3 The ArchestrA IDE

Section 3 The ArchestrA IDE


Section Objectives


Discuss ArchestrA IDE

Introduce the Template Toolbox and Application Views

Discuss the object Check-in/Check-out process.

This section provides an overview of the ArchestrA IDE, the Template Toolbox and Application
Views and the object Check-in/Check-out process.

The ArchestrA IDE User Interface


The Integrated Development Environment (IDE) is the integrated design and development tool
from which all ArchestrA objects are configured and deployed to target PCs. It is used to maintain
and configure the objects that comprise your application and the underlying infrastructure that
supports your application.
Using the ArchestrA IDE, you can import new types of objects in to the Galaxy Repository,
configure new ones, and deploy them to PCs on your network. Multiple users can work
concurrently on different sets of objects from different ArchestrA IDEs.
The ArchestrA IDE can be installed on any PC that has ArchestrAs Bootstrap software installed.

Key Functions of the ArchestrA IDE


The Main Window is the user interface in which you can create your application and deploy it to
your enterprise. This main window provides the key platform where a wealth of functionality
capability can be accessed and configured. Some of these key functions include the following.

Galaxy Configuration

Connect to an existing Galaxy on the network

Create a new Galaxy

Destroy a Galaxy

Import/Export Objects (aaPackage, .csv)

Import/Export script function libraries (.dll, .tlb, .olb, .wdf, .aaSLIB)

Security Configuration


Configure User security

Configure Object security

Object Configuration


Create new objects

Check out objects

Edit objects

Configure Historization through objects

Configure objects for Alarms and Events

Extending object functionality

Check in objects with comments

Deploy/undeploy objects

Propagate changes to runtime objects

View objects configuration errors/warnings

Wonderware System Platform 3.0 Course - Part 1

1-41

1-42

Module 1 Introduction
Upload runtime changes to Galaxy database
IDE Configuration



Set user preferences

Create a Tool Box

As the main aspects of the ArchestrA IDE Main View (e.g., Menu options, Toolbars, Template
Toolbar and Application Views, etc.) are identified and discussed, they are elaborated on in
greater detail as to how these Key Functions can be used

The ArchestrA IDE User Interface


Main View

The Main Window of the ArchestrA IDE is composed of the following components:


Title bar

Menu bar

Toolbar

Template Toolbox

Application Views

Object Editor Area

Operations View

Status bar

Wonderware Training

Section 3 The ArchestrA IDE


When you first log in to the ArchestrA IDE, the Main Window displays the Template Toolbox and
Application Views docked on the left, the Toolbar docked at the top, and the Object Editor Client
Area on the right. Upon subsequent logins by the same user, the Main Window displays the
positions for these controls as they were at the end of the last log in session.
The Title Bar displays the name of the utility. The other elements of the Main Window are
described below.

Menu Bar
The ArchestrA IDE Menu Bar is a dynamic element that includes the following menus:

Galaxy, Edit, View, Object, Window, and Help. Depending on what object or Main Window
element is in focus, what condition it is in, or whether certain functions are logically permitted,
some menu commands may be deactivated. The following is a description of menu commands.
Galaxy menu Providing Galaxy or user-level global commands, the Galaxy menu includes the
following:

New For creating a new Instance, Derived Template, or Template Toolset.

Open For opening the editor of the object in focus. The editor appears in the Object
Editor Client Area of the Main Window.
Open Read-Only For opening the editor of the object in focus, but only in read-only
mode. There are several conditions that can place this restriction on opening an objects
editor. One example would be when the object is checked out to someone else.
Additionally, if you do not have configuration permissions for the object in question.

Wonderware System Platform 3.0 Course - Part 1

1-43

1-44

Module 1 Introduction








Close For terminating the object edit session in focus. This command is available only if
the editor for one or more objects is open. If the object has been modified, you are
prompted to save the new data to the Galaxy Repository. The same validation scenario
applies as described in the Save menu command.
Import For importing Automation Objects, Script Function Library, and Galaxy Loads.
Export For exporting Automation Objects, All Automation Objects, Script Function
Libraries, and a Galaxy Dump.
Save For saving the currently-opened objects configuration, which is persisted to the
Galaxy Repository. This command is available only if the editor for at least one object is
open and configuration data has been modified in at least one of them. Validation occurs on
the editor level; if errors or warnings are identified during validation, they are displayed
in a message box and the user is given the choice to continue saving or cancel the save.
Save All For saving ALL the currently-opened objects configuration, which is persisted
to the Galaxy Repository. This command is available only if the editor for at least one
object is open and configuration data has been modified in at least one of them. Validation
occurs on the editor level; if errors or warnings are identified during validation, they are
displayed in a message box and the user is given the choice to continue saving or cancel
the save.
Configure For configuring Security, the Time Master, or to Customize Toolsets.
Galaxy Status For viewing information relating to the Galaxy such as the total number
of instances, total number of templates and other related Galaxy information.
Properties For viewing the properties of the object in focus.

Change Galaxy For selecting a Galaxy repository that is different from the one to which
you are currently connected, this command opens the Select Galaxy dialog box.

Change User For changing the logged in user of this ArchestrA IDE, this command
opens the ArchestrA IDE Login dialog box.

Edit menu providing edit capabilities, the Edit menu includes the following commands:

Rename For renaming the object in focus.


Rename Contained Name For renaming the contained name of the object in focus.

Delete For deleting the object in focus.

Find For locating specific items of information based on a variety of configurable search
criteria.
User Information For viewing the Prompts, Initial Scan State, Scan State Defaults, and
User Defaults.

Wonderware Training

Section 3 The ArchestrA IDE


View menu similar to a standard Microsoft View menu, this menu provides commands for
controlling the Main Window display. On your initial ArchestrA IDE login, all four Main Window
components listed below are visible (checked) and the client language is set to the one chosen
during installation. Subsequent logins by the same user implement the previously saved ArchestrA
IDE settings. This menu includes the following commands:

Model For bringing focus to the Model view of the Main Window.

Deployment For bringing focus to the Deployment view of the Main Window.

Derivation For bringing focus to the Derivation view of the Main Window.

Template Toolbox For bringing focus to the Template Toolbox of the Main Window.

Graphic Toolbox For bringing focus to the Graphic Toolbox of the Main Window.

Operations For displaying the progress and results of a set of Galaxy database
operations that can be done at the same time as other application-building operations.
Synchronize Views For specifying that a selected object stay selected as you move
through the views.
Reset Layout For resetting everything back to its original default locations.
Toolbars For toggling on/off the Toolbar of the Main Window.

Status Bar For toggling on/off the Status Bar of the Main Window.

Wonderware System Platform 3.0 Course - Part 1

1-45

1-46

Module 1 Introduction
Objects menu the Objects menu includes the following commands:

Check-Out For checking out an object from the Galaxy Repository so that you can
maintain sole authority to configure that object. Nobody else connected to the Galaxy can
affect the configuration of the object until you have checked it back in to the Galaxy.
Check-In For checking in to the Galaxy Repository an object which was previously
checked out. This command opens the Check-In Object dialog box.
Undo Check-Out For reversing a previous check-out without affecting the configuration
of the object in question. The result of this command is the object can be checked out by
anyone connected to the Galaxy.
Override Check Out Use this command to disable the checked out flag on the selected
object. This command typically requires special security permissions and should be used
only in those circumstances in which it is certain that object configuration is not being done
by the user who originally checked out the object. If the objects editor is currently open,
the override function fails.
Validate For checking allowable attribute value ranges, compiling its scripts, updating
and binding its references, validating its extensions, updating its status, and validating
other configuration parameters that may be unique to the object.

Note: See Validating Objects on page 1-49 for additional information regarding this feature.


View in Object Viewer For allowing the evaluation of attributes and conditions when the
objects are deployed. It provides a visual display of the actions being executed.
Deploy For deploying the object or objects currently in focus to the nodes their
configurations denote, this command opens the Deploy Object dialog box.

Undeploy For undeploying the object or objects currently in focus from the nodes that
currently host them, this command opens the Undeploy Object dialog box.
Assign To For assigning objects to a different platform.

Unassign For unassigning objects to a different platform.

Set As Default For setting a System Object, such as WinPlatform or AppEngine, as the
default for assigning appropriate objects.

Wonderware Training

Section 3 The ArchestrA IDE




Upload Runtime Changes For uploading a deployed objects configuration to the


Galaxy Repository. This function is useful when changes to certain attributes
(Writeable_UC, Writeable_UC_Lockable, Writeable_USC, Writeable_USC_Lockable) are
made in the configuration environment, but at a later time, the runtime objects
configuration is determined to be preferred. Select the desired object and click Upload.
The runtime configuration overwrites the configuration environment data in the Galaxy
Repository.

Window menu For manipulating the Object Editor Client Area of the Main Window, this menu is
available if at least one objects editor is open. This menu includes the following commands:

Cascade Standard Windows command for cascading (layering) multiple object editors.

Tile Horizontally Standard Windows command for displaying the editors horizontally.

Tile Vertically Standard Windows command for displaying the editors vertically.

Close All For closing all open object editors. If any data was changed on any editor, you
are prompted to save those changes individually for each editor.
Windows For selecting through a separate dialog box which editors to activate or how
they are to be displayed.

Help menu similar to a standard MS Help menu, the ArchestrA IDE Help menu includes the
following commands:




Help Topics Standard Help command, used for opening the ArchestrA IDEs HTML
Help documentation system.
Object Help Provides information about the object in focus.
About ArchestrA IDE Opens the About ArchestrA IDE dialog box which provides
software version and copyright information.

Operations Pane
The Operations pane displays the progress and results of a set of Galaxy database operations
that can be done at the same time as other application-building operations. Currently, validating
the configuration of objects is the only operation that uses this pane.
Important! Validation can be done on both templates and instances, but only on those that are
checked in.

Wonderware System Platform 3.0 Course - Part 1

1-47

1-48

Module 1 Introduction
Validating an object checks its configuration; that includes checking allowable attribute value
ranges, compiling its scripts, updating and binding its references, validating its extensions,
updating its status, and validating other configuration parameters that may be unique to the object.
Note: A primary use of validation is to validate objects that were configured prior to the importing
of relevant script libraries. Such objects would have a status of Bad. Validating these Bad objects
corrects references to the script libraries and updates their status to Good.
To display the Operations pane, either

Right-click on an object (multi-select is allowed) and click Validate on the shortcut menu.


Click Operations on the View menu.

The following pane is then displayed in the Main Window.

To hide the Operations pane, click the X close button.


During the validation of an object, its icon and name are displayed along with the status of the
operation. The status of the object (Status column) is dynamically represented by an icon: no icon
indicates Good status, an Error or Warning icon indicates either of those states. When validation is
complete, the Command Result column displays either a "Succeeded" or "Failed" message, which
may contain additional information about the validation results.
Note: You can validate all objects in the Galaxy by running the Validate operation on the Galaxy
object. In that case, Command Result messages are displayed after all objects in the Galaxy are
validated.
If multiple objects are validated, the list of objects is sorted by object name. You can click a column
heading to re-sort according to alphanumeric or icon groupings. Use the check mark column heading
to sort for objects that are checked out and, therefore, cannot be validated. The objects icon
indicates checked out status with a check mark.
You can perform any operation on an object listed in the Operations pane that is possible in the
Template Toolbox or Application Views. Right-click on the object and select commands from the
shortcut menu. You can open an object's editor from the Operations pane by double-clicking
it. To view an objects properties (particularly, the Errors/Warnings page of the Properties dialog
box), double-click its status icon. You can also copy a line of text in the Operations pane list by
clicking Copy from the shortcut menu (or Ctrl+C). The Operations pane, like the Template
Toolbox and Applications Views, is also updated as the status and conditions of objects in the
Galaxy change.

Wonderware Training

Section 3 The ArchestrA IDE


Validating Objects
Each object in a Galaxy has a set of possible configurations that authorizes its proper use in an
application. That set of configuration possibilities is validated by the object either while you are
configuring it or when you save that configuration to the Galaxy database.
Validation of an objects configuration includes checking allowable attribute value ranges,
compiling its scripts, updating and binding its references, validating its extensions, updating its
status, and validating other configuration parameters that may be unique to the object.
Typically, each option on an objects editor that requires a string or numeric input has an allowable
range of inputs. If you type an input outside the allowable range and then attempt to change editor
page, close the editor or save the objects configuration, a message is displayed about the input
error indicating the allowable range.
Some configuration settings are dependent on associations with external components, such as
script function libraries and relative references to other objects attributes. The status of these
external components can change, perhaps rendering some capability of the object inoperative.
For instance, an object may refer to a value of an attribute of another object, which is subsequently
deleted. That scenario would break the configuration of the remaining object. Objects may be
configured prior to the importing of associated script function libraries. In each case, the object
would have a status of Bad. You can verify that an objects configuration is valid and reset its
status to Good by manually validating it with the Validate command on the Object menu.

Manual Validation
To manually validate one or more objects, select the object(s) and click Validate on the shortcut
menu (by right-clicking the object) or on the Object menu. You can select objects from the
Template Toolbox, the Application Views or the Find dialog box.
Important! Manual validation can be done on both templates and instances, but only on those that
are checked in.
Using the Find dialog together with the Validate command is an especially useful tactic. For
instance, you can find objects in Error state, select them all, right-click on one of them, and click
Validate on the shortcut menu.
The Validate command opens the Operations pane in the ArchestrA IDE. See section on
Operations Pane for more information.
Only one validation operation can be run at a time. But you can multi-select more than one object
for each validation operation. The set of objects are validated serially.
Note: Validation operations cannot be canceled.
Continue using the ArchestrA IDE to perform other operations, if necessary, while validation is
ongoing, including work on objects in the validation set. If an object is not available for validation
when the command is initiated on it, validation is not be performed. Also, if validation is in process
on an object, other operations initiated by you on the object fail. Failure to perform validation on an
object is indicated in the Command Results column of the Operations pane.
To validate all objects in the Galaxy, validate the Galaxy object.

Wonderware System Platform 3.0 Course - Part 1

1-49

1-50

Module 1 Introduction

Toolbar
The ArchestrA IDE Toolbar consists of icons for quick access to frequently used commands. It is
shown below, and each icon, from left to right, is described afterwards. The description titles
associated with each below are based on the tool tip that appears when you hover over each
Toolbar icon.

Change Galaxy For selecting a Galaxy repository that is different from the one to
which you are currently connected, this command opens the Select Galaxy dialog box.
Import Automation Object For importing a template definition file (.aapdf). This
command opens the standard Microsoft Open dialog box with the default file extension
(.aapdf). One or more files can be selected at a time. Validation is done with regard to the
selected file(s) being a valid template definition file. A progress indicator then provides a visual
view of the importing process. After the file(s) is imported, one or more new objects is added to
Galaxy Repository and the Template Toolbox displays the new object(s).
Open For opening the editor of the object in focus. The editor appears in the Object
Editor Client Area of the Main Window.
Save For saving the currently-opened objects configuration, which is persisted to the
Galaxy Repository. This command is available only if the editor for at least one object is open
and configuration data has been modified in at least one of them. Validation occurs on the
editor level; if errors or warnings are identified during validation, they are displayed in a
message box and the user is given the choice to continue saving or cancel the save.
Find For locating specific objects based on a variety of configurable search criteria.
Check-Out For checking out an object from the Galaxy Repository so that you can
maintain sole authority to configure that object. Nobody else connected to the Galaxy can
affect the configuration of the object until you have checked it back in to the Galaxy.
Check-In For checking in to the Galaxy Repository an object which was previously
checked out. This command opens the Check-In Object dialog box.
Undo Check-Out For changing an objects status from checked out to checked in.
Afterwards, any user can check out and configure the object. Undo Check Out places a
notation in the objects change log. Changes you made to the object when it was checked out
are backed out. An error message is displayed when the objects configuration editor is open.
Properties For accessing the properties of the object in focus.

Wonderware Training

Section 3 The ArchestrA IDE

Deploy For deploying the object or objects currently in focus to the nodes their
configurations denote, this command opens the Deploy Object dialog box.
Undeploy For undeploying the object or objects currently in focus from the nodes that
currently host them, this command opens the Undeploy Object dialog box.
Delete For deleting the object in focus.
Customize Toolsets For maintaining the toolset categories displayed in the Template
Toolbox, this command opens the Customize Toolsets dialog box.
User Information For configuring global user preferences for the ArchestrA IDE.
Using this command opens the Configure User Information dialog box.
Galaxy Status For accessing the status of the current Galaxy.
Model View For displaying the Model view in the Main Window.
Deployment View For displaying the Deployment view in the Main Window.
Derivation View For displaying the Derivation view in the Main Window.
Template Toolbox For displaying the Template Toolbox in the Main Window.
Graphic Toolbox For displaying the Graphic Toolbox in the Main Window.
Operations View For displaying the Operations View in the Main Window.
IDE Help Standard Help command, used for opening the IDEs HTML Help
documentation system.
The availability of the previously described icons is dynamic depending on which part of the
ArchestrA IDEs Main Window is in focus, whether a particular action is allowed, or whether
something has been changed in the configuration environment. Depending on these conditions,
some icons may be unavailable.

Template Toolbox
This part of the Main Window hosts object template toolsets, which contain object Templates, from
which instances are created or other object templates are derived. The Template Toolbox contains
separate toolset bars for each toolset in the Galaxy Repository. Click the toolset bar to open that
toolset and display the object templates contained in the chosen toolset.

Wonderware System Platform 3.0 Course - Part 1

1-51

1-52

Module 1 Introduction
When you first log in, the default toolset with default object templates is opened. Once a user has
logged in to the Galaxy Repository, the Template Toolbox is loaded with the toolset that was
displayed during the last login session.
An example of a Template Toolbox view is as follows:

The items with $ prefixes are templates or templates which were derived from other templates.

Wonderware Training

Section 3 The ArchestrA IDE

Application Views
The Application Views pane displays the galaxy configuration based on how an object is related to
other objects:

Model View - This defines the Object relationship to the automation scheme layout. The
Objects are organized into Areas to represent the physical plant layout.


Deployment View - This view defines the Object instance relationship to the PC that the
Object code is running on.

Derivation View - This view displays what the derivation path is from Base Template to
Instance. All templates and instances are displayed in this view.

The Model view is the default display when the ArchestrA IDE is first launched. Subsequent
ArchestrA IDE sessions retain the users last setting.

Model View
The Model view presents objects in terms of their physical or containment relationships, and allows
you to organize them through a folder structure. This view most accurately represents an
application perspective of the processes that users are emulating: for instance, specific process
areas, tanks, valves, pumps and their relationships based on containment.
An example of a Model view is as follows:

Galaxy Name

This view is used to display the assignment of Object Instances to their area. All Object instances
belong to one and only one area.
Areas can be hierarchical. This means that an area can contain an area and the parent area
collects the statistics for all its Objects and its sub-areas.
The above diagram represents the tree view that is displayed within the model view. This
represents the area based relationships of each of the objects. The diagram is read left to right and
top to bottom, so an Area can host Application objects, DeviceIntegrationObjects,.and Objects that
contain Objects
If the instance does not have a defined host then the instance will be displayed under the
"Unassigned Area" root of the tree.
The top of the tree is the GalaxyObject, This is displayed using the name that was given to the
Galaxy when it was created.
To assign one object to another, drag-and-drop it. To unassign an object currently assigned to
another object, drag-and-drop it to the Unassigned Area folder.

Wonderware System Platform 3.0 Course - Part 1

1-53

1-54

Module 1 Introduction
Deployment View
Note: More detail of the Deployment View is discussed in Module 2, Section 2, The Deployment
Model, page 2-11.
The deployment view is used to display the assignment of the automation scheme to physical
machines and process engines. This view describes where the objects are running. This view
does not represent your physical plant environment.
An example of a Deployment view is as follows:

This diagram represents the tree view that is displayed within the deployment view. This
represents the topology view based on which PC and Engines the objects run on. The diagram is
read left to right and top to bottom, so a Platform can host an AppEngine. Also, an AppEngine can
host an Area.
If the instance does not have a defined host then the instance will be displayed under the
"Unassigned Host" root of the tree.
To assign an object to another, drag-and-drop it onto the host object. An inappropriate assignment
match is not allowed. Conversely, to unassign an object, drag-and-drop it to the Unassigned
folder.

Derivation View
The Derivation view presents objects and templates in terms of their genealogy relationships. The
derivation view is the only tree view that shows both templates and instances. The purpose of this
view is to display to the user from which templates and derived templates an instance inherits its
properties.

Wonderware Training

Section 3 The ArchestrA IDE


An example of a Derivation view is as follows:

This view contains all templates and instances. The tree is displayed in alphabetical order at each
level within the tree.
The base templates created within the ApplicationObject Toolkit is on the left, as all other
templates and instances are derived from these an extra level will be added to the tree.
The items with $ prefixes are templates or templates which were derived from other templates.
Base templates are shown in the second level of the tree structure, and derived templates and
object instances are appropriately indented based on their relationship with parent objects.
Templates with no associated instances are grouped together under Unused Templates. Under
each branch of the tree, child objects are listed in alphabetical order. Default objects are displayed
in bold.
Unlike the Model and Deployment views, you cannot drag-and-drop objects from one branch to
another in the Derivation view. The parent-child relationship between a template and a
downstream object cannot be changed dynamically. You can perform other commands on objects
in this view.

match is not allowed. Conversely, to unassign an object, drag-and-drop it to the Unassigned


folder.

Graphic Toolbox
The Graphic Toolbox contains the global ArchestrA graphics that can be used in the Galaxy. It lets
you organize your symbols in special folders, called Toolsets. The Graphics Toolbox shows a
treeview of toolsets which contains ArchestrA Symbols and Client Controls.
It allows you to define graphics as a standard that you can re-use, such as a generic valve symbol.
Symbols in the Graphic Toolbox can later be used by Automation templates and instances. You
can store ArchestrA Symbols here, if you only want to use them in InTouch and not in any other
Automation object content.

Wonderware System Platform 3.0 Course - Part 1

1-55

1-56

Module 1 Introduction
An example of a Graphic Toolbox is as follows:

Object Icons
When viewing the objects, there are several states that are reflected in the way the icons for that
particular object are represented.
For instance, notice the different types of icons in the following example:

Wonderware Training

Section 3 The ArchestrA IDE


Three Types of Status Indicators
There are three kinds of indicators that accompany object icons:


deployment status (for instances only)

configuration status (for templates and instances)

redundancy status (for instances only).

Deployment status indicators include:


Icon

Description
Undeployed (see AnalogDevice_001 and
DDESuiteLinkClient_001 in example above)

(no indicator)

Deployed (see AppEngine_002 in example


above)
Deployed with configuration changes (see
AppEngine_001 in example above)
Deployed with software update required (see
WinPlatform_001 in example above)

Wonderware System Platform 3.0 Course - Part 1

1-57

1-58

Module 1 Introduction
Configuration status indicators include:
Icon

Description
Configuration warning

Configuration error

(no indicator)

Configuration good

Redundancy status indicators include:


Icon

Description
AppEngine undeployed, its redundant pair
deployed.
AppEngine deployed, its redundant pair not
deployed.
AppEngine deployed, its redundant pair not
deployed pending configuration updates.
AppEngine deployed, its redundant pair not
deployed pending required software update.

InTouch status indicator:


Icon

Description
Applies to InTouchViewApp deployment when
files are being transferred.

Wonderware Training

Section 3 The ArchestrA IDE


Checking Out/Checking In Objects
Users of the ArchestrA IDE reserve an object for making private changes by checking it out. The
user can then modify the object and save private versions of it before releasing it to the Galaxy
(check in) for others to see and use. You can also back out changes made to the object through
the undo check out feature.
Note: All ArchestrA IDEs connect to a Galaxy display current status for each object in the Galaxy,
and a change history for each object can be reviewed.
If any of the objects you attempt to check out are already checked out to other people then a dialog
appears indicating their status. Also, if some of the objects you attempt to check out are already
checked out to you, the operation is ignored.
The Galaxy marks the objects as checked out to you, making them unavailable for check out to
other users, and it updates the objects revision history. A check mark is shown next to an objects
icon in the ArchestrA IDE.
To check out unreserved objects
a. Select them in the Template Toolbox or Application Views.
b. On the Object menu, click Check Out.

Or, right-click on the object and select Check Out. Optionally, an object is automatically checked
out to you when you open its configuration editor. If the object is already checked out, you can
open its editor only in read-only mode.
To determine an objects status and history, open the Properties dialog box.

Wonderware System Platform 3.0 Course - Part 1

1-59

1-60

Module 1 Introduction

The user responsible for an operation at a specific date and time is listed on the Change Log
page. Comments typed by a user in the Check In dialog box (see image later) are listed under the
Comment heading.

To check an object in to the Galaxy database


a. Select it and, on the Object menu, click Check In

Or, right-click on the object and select Check In. The Check In dialog box is displayed.
Note: If the object was originally checked out to you when you opened its configuration editor,
the check in function can be combined with the save and close functions of the editor. If you
close the editor without making any changes to the objects configuration, a check in operation
effectively does an undo check out (no change log recorded).

Wonderware Training

Section 3 The ArchestrA IDE

b. Enter a comment (optional) and click OK to finish checking in the object. Click Cancel to
terminate the check in process.
The Galaxy indicates whether any of the objects you are attempting to check in are check-out to
other people. If an object you are attempting to check in already is checked in, check in is ignored.

The Check In dialog box enables you to provide comments about configuration changes made
while the object was checked out. It is comprised of the following options:

Comment: Use this box to enter your comments about configuration changes made to the
object.

Dont Prompt for Check-In Comments in the Future: Use this check box to turn off the
comment feature when checking in objects in the future. If you decide to reinstate this
feature, click User Information on the Edit menu and select Ask for Check In
Comments in the Configure User Information dialog box.

Undo Checkout, Override Check Out


Two other ArchestrA IDE commands related to the concept of check out and check in include:

Undo Check Out: Use this command to change an objects status from checked out to
checked in. Afterwards, any user can check out and configure the object. The check out/
check in function places a notation in the objects change log. Use Undo Check Out to
effectively check in the object without affecting the change log. Changes you made to the
object when it was checked out are backed out. This command is not allowed when the
objects configuration editor is open.

Override Check Out: Use this command to disable the checked out flag on the selected
object. This command typically requires special permission, and should be used only in
those circumstances in which it is certain that object configuration is not being done by the
user who originally checked out the object. If the objects editor is currently open, the
override function fails.

Wonderware System Platform 3.0 Course - Part 1

1-61

1-62

Module 1 Introduction

Object Viewer
Note: The Object Viewer is explained in more detail when the Runtime Environment is discussed
in Module 2, Section 3, The Runtime Environment,, page 2-27
The Object Viewer monitors the status of the objects and their attributes and can be used to
modify an attribute value for testing purposes.
To add an object to the Object Viewer Watch list, you can manually type the object and attribute
names into the Attribute Reference box in the menu bar and select Go. When prompted to enter
the Attribute Type, press the OK key.
You can save a list of items being monitored. Once you have a list of attributes in the Watch
Window, you can select all or some of them and save them to an XML file. Right-click on the
Watch window to save the selection or load an existing one. You can also add a second Watch
window that shows as a separate tab in the bottom of the Viewer.
Refer to the Platform and Engine documentation for information about attributes that may indicate
system health. These attributes provide alarm and statistics on how much load a platform or
engine may have when executing application objects or communicating with I/O servers and other
platforms.

Wonderware Training

Section 4 Automation Objects

Section 4 Automation Objects


Section Objectives


Introduce the various objects in the ArchestrA IDE.

Identify when and how they are used.

Explain how to create and configure instances of objects.

Introduce and explain the hosting and containment relationships of objects.

This section provides an explanation of the various types of objects utilized in the ArchestrA IDE
and an overview of when and how they are used. Additionally, it describes how to create and
configure instances of objects and the hosting and containment relationships of objects.

Objects
Within the Template Toolbox there are three main categories of objects. These are:


Application objects


AnalogDevice

Boolean

DiscreteDevice

Double

FieldReference

Float

Integer

Sequencer

String

Switch

UserDefined

Device Integration objects




DDESuiteLinkClient

InTouchProxy

OPCClient

RedundantDIObject

System objects


AppEngine

Area

InTouchViewApp

ViewEngine

WinPlatform

Wonderware System Platform 3.0 Course - Part 1

1-63

1-64

Module 1 Introduction
Application Objects

Application Objects are used to create devices in your Galaxy. These devices represent real
objects in your environment.

AnalogDevice Object
This object can act as either an Analog Input (with optional Output) or as an AnalogRegulator that
provides an external representation of a PID controller that exists elsewhere (typically a PLC or
DCS).
The AnalogDevice can be configured to have a personality of one of the two basic types:


Analog a basic Analog Input or Analog Output

AnalogRegulator an analog controller that represents an external PID controller

When configured as Analog, this Template is very similar in functionality to the Analog Tag within
InTouch today. Just as the InTouch Analog can be configured for Read or ReadWrite, the
Archestra AnalogDevice configured as type Analog can be configured as an analog input (with no
output capability) or as an analog output (with output capability). The Analog supports the basic
alarming capabilities of level alarms, ROC alarms and deviation alarms from a SP target value. In
addition, the Analog in ArchestrA provides additional functionality such as PV override enable, PV
mode (auto, manual), bad PV alarming, and separate output reference capability.
When configured as an AnalogRegulator, this Template provides both PV and SP monitoring of an
external PID controller. It provides SP output capability with an optional separate feedback
address for the SP. Other controller-oriented features include controller mode (manual vs.
cascade). All the alarm capabilities of the more basic AnalogDevice object are included, with the
difference that the SP value for deviation alarms is based on the SP value read from the controller.
Some of the common features of the AnalogDevice regardless of type (Analog or
AnalogRegulator) are:


Supports optional scaling of input and output, both linear and square root conversions.

Supports HiHi, Hi, Lo, and LoLo level alarms on PV with both value and time
deadbanding.

Supports Rate of Change (ROC) alarming on PV for both positive-slope and negativeslope ROC.

PV Override when true, allows the PV to be written by a user if the PV mode is set to
Manual.

Adds SP read and write capability with optional separate read-back address. For data
integrity, the value of SP always represents the value read from the external controller, not
the requested SP that is output to the external controller.

Wonderware Training

Section 4 Automation Objects





Supports minor and major deviation alarming when PV deviates from SP.
Initial Control Mode When in Cascade, the SP can only be written by other objects.
When in Manual, a user can write the SP. When None, anything can write to it.
Control Tracking optional capability to read a Boolean control track flag from an external
device or object. When tracking is on, the SP is pure read-only and cannot be changed.

Boolean Object
The Boolean object is derived from the FieldReference object and is used for evaluations that
result in either of the truth values of true of false, often coded 1 and 0 respectively.

DiscreteDevice Object
A Discrete Device is a general purpose Object that is used to represent a large class of physical
equipment common in manufacturing such as pumps, valves, motors, and conveyors. These
devices have two or more physical states (e.g. Open, Closed, Moving), and are optionally
controlled using a combination of discrete outputs. Their actual state is monitored via a
combination of discrete inputs.
The meaning of the states depends on the kind of Discrete Device. In the case of a pump, the
states might be configured as Off and On, while for a valve they might be configured as Open,
Closed, or Moving. Note that a control valve has a continuous position represented by 0 to
100% and is not typically represented with a Discrete Device, since its state is represented by a
continuous signal rather than discrete signal.
When a Discrete Device is commanded to a new state, it sets an appropriate combination of
discrete outputs for that state. When its monitored discrete inputs change, the Discrete Device
determines the new actual state of the equipment and sets the PV (process variable)
appropriately.
Through the use of the Discrete Device the operator is guaranteed that a value displayed on the
screen is a good and reliable value. This object will automatically display the state as Bad if the
quality of any of the inputs is bad or the inputs are in an invalid combination determined at
configuration time by the application developer.
Some of the features of the Discrete Device object are as follows:


Input and Output states of the DiscreteDevice object are totally independent of each other
and can be configured as required by the users application.
Input and Output can be linked by alarms, which allow the object to detect
CommandTimeout and UncommandedChange alarms, when devices unexpectedly
change, or fail to change when commanded.
Supports devices with two to three commandable states (Passive, Active1, and
Active2) plus two additional states Fault and InTransition which cannot be commanded. All
those states with the exception of InTransition and 'Passive' can trigger a state alarm.

Supports the three input modes Auto, Manual, and Simulate.

Supports the two control modes Manual and Cascade.

CtrlTrack allows a PLC to notify the Discrete Device that the PLC is in control of the state
of the actual physical device, and is no longer accepting commands. If configured this
way, the Command attribute of the DiscreteDevice object just tracks PV (i.e., the state
indicated by its inputs).

Wonderware System Platform 3.0 Course - Part 1

1-65

1-66

Module 1 Introduction
Double Object
The Double object is derived from the FieldReference object.

FieldReference Object
The FieldReference object is the generic object for accessing data from an external device. This
object can act as both the field input and a field output.
The FieldReference Object can be configured into three basic access modes:


ReadOnly Input object

ReadWrite Output object with scanned Feedback

WriteOnly Output

This object is very simple; it only allows the value to be historized.

Float Object
The Float object is derived from the FieldReference object.

Integer Object
The Integer object is derived from the FieldReference object.

Sequencer Object
The Sequencer object allows you to configure, execute, and manipulate a sequence of operations
associated with ArchestrA attributes within a Wonderware Application Server application.
You can use it to automate:


repetitive manufacturing procedures with a finite number of steps

supervisory processes with a finite number of steps

Note: There is an Online Seminar available for the ArchestrA Sequencer Object. To register,
visit www.wonderware.com/training or call 1-866-WW-TRAIN (1-866-998-7246) or email
Wonderware Training at training@wonderware.com.

String Object
The String object is derived from the FieldReference object.

Switch Object
The Switch object is the object for accessing data from a simple discrete (0/1) device. This object
can act as both a discrete input and a discrete output.

Wonderware Training

Section 4 Automation Objects


The Switch Object can be configured into three basic access modes:

ReadOnly Input object


ReadWrite Output object with scanned Feedback

WriteOnly Output

The PV value can be historized, logged as an event, and alarmed when abnormal.

UserDefined Object
The UserDefined object is an empty object that you can use to create customized objects. You can
use the UserDefined object in the following ways:

As a "container" for other objects. An object relationship in which one object is comprised
of other objects is called containment. Containment allows you to group various objects
together to make complex objects. For detailed information on object containment, see the
Integrated Development Environment (IDE) documentation.
To use the UserDefined object as a container object, you simply create an instance of the object,
and add ApplicationObjects to it while in the Model View. The only indication of this containment
structure is in the tree structure in the Template Toolbox or Model View. The UserDefined object
editor does not provide any indication of this containment relationship. To edit the configuration of
any contained objects, you must open the individual editors of those objects.
Note: A UserDefined object can only contain ApplicationObjects.


As a base object to extend through user-defined attributes (UDAs), scripting, and attribute
extensions. For detailed information how to customize an object using these features, see
the common editor documentation.

For example, you might create a UserDefined object called "Tank" and use it to contain
ApplicationObjects that represent aspects of the tank, such as pumps, valves, and levels. You
could create two DiscreteDevice object instances called "Inlet" and "Outlet" and configure them as
valves, and create an AnalogDevice object instance called "Level" and configure an alarm to be
triggered when it overflows. The containment hierarchy would be as follows:
--Tank
--V101 (Inlet)
--V102 (Outlet)
--LT103 (Level)

The Tank object derived from the UserDefined object can be customized to raise an alarm when
both the Inlet and Outlet valves are open. For example, you could add a Boolean UDA called
"StateAlarm," extend it with an alarm extension, and add the following script:
if me.inlet == "Open" and me.outlet == "Open" then
me.statealarm = true;
else
me.statealarm = false;
endif;

You would now have a UserDefined object that forms the complex Tank object, which uses
containment and has been extended to raise a specific process alarm.

Wonderware System Platform 3.0 Course - Part 1

1-67

1-68

Module 1 Introduction
Device Integration Objects

A DeviceIntegration object (DIObjects) is an AutomationObject that represents communication


with external devices. DIObjects run on an AppEngine, and include DINetwork Objects and
DIDevice Objects. A DIDevice Object is a representation of an actual external device (for example,
a PLC or RTU) that is associated with a DINetwork Object. A DINetwork Object is a representation
of a physical connection to a DIDevice Object via the Data Access Server.
A more detailed discussion of the Device Integration Objects will take place later in this course in
Module 2, Application Infrastructure, Section 4, Connecting to the Field on page 2-41

System Objects

System objects are used to define system instances.

AppEngine Object
The AppEngine Object must have a Platform on which to run. The key functionality of this object
includes:

hosting application objects, device integration objects and areas


containing the logic to setup and initialize objects, when theyre deployed.

containing the logic to remove objects from the engine, when theyre undeployed.

determines the scan time within which all objects within that particular engine will execute.

In general the AppEngine contains no added value other then to support the creation, deletion,
startup, and shutdown of objects.

Wonderware Training

Section 4 Automation Objects


Area Object
The Area Object plays a key role in alarm and event distribution. All AutomationObjects belong to
an Area. Areas can contain sub-Areas. Areas provide a key organizational role in grouping alarm
information and assigning it to those who use alarm/event clients to monitor their areas of
responsibility.
This object is very simple; it only allows the value of three attributes to be historized:


Active alarm counter

Unacknowledged alarm counter

Disabled (or silenced) alarm counter

InTouchViewApp Object
The InTouchViewApp object represents an InTouch application in the Industrial Application server
environment. The InTouchVewApp object manages the check-in, check-out, and deployment of an
InTouch application.
When you create an InTouchViewApp for a new InTouch application, WindowMaker is started by the
ArchestrA IDE. You then create the application the same way you would if WindowMaker had
been started from the InTouch Application Manager.

ViewEngine Object
The ViewEngine object is used to host InTouchViewApp objects. The ViewEngine object supports
common engine features such as deployment, undeployment, startup and shutdown. One
ViewEngine object can handle several InTouchViewApp objects.

WinPlatform Object
The WinPlatform platform object is a key base object. The key functionality of this object includes:


Calculating various statistics related to the node its deployed to. These statistics are
published in attributes.
Monitoring various statistics related to the node its deployed to. These monitored
attributes can be alarmed as well has historized.

Starting and stopping engines, based on the engines startup type, which are deployed to
it.

Monitoring the running state of engines deployed to it. If the platform detects an engine
has failed it can (optionally based on the value of the engines restart attribute) restart the
engine.

There is a special instance of the platform object called the galaxy platform. This platform
instance:


Exists on the galaxy node.

Is used by message exchange to bind unresolved attribute references

Wonderware System Platform 3.0 Course - Part 1

1-69

1-70

Module 1 Introduction

Hosting and Containment Relationships


Host relationships are displayed in Deployment View.
Galaxy
Platform (representative of your Plant)
Engine
Area
Application Objects
DI Objects
Containment relationships are displayed in Model View.
Areas
Areas
Application Objects
Application Objects

Wonderware Training

Section 4 Automation Objects

Templates and Instances


Templates
Templates are high-level definitions of the devices in your environment. Templates are like a
cookie cutter from which you can make many identical cookies.
You define a template for an object, like a valve, one time and then use that template when you
need to define another instance of that item. Template names have a dollar sign ($) as the first
character of their name.
A template can specify application logic, alarms, security, and historical data for an object.
A template can also define an area of your environment. You can extend and customize a
template by adding User Defined Attributes (UDAs), scripts, or extensions to meet the specific
needs of your environment. Objects inherit attributes from their parents.
Wonderware Application Server comes with predefined templates, called base templates. You
cannot change these templates. All templates you create are derived from base templates.
You can also nest templates, or contain them. Contained templates consist of nested object
templates that represent complex devices consisting of smaller, simpler devices, including valves.
A reactor is a good candidate for containment.
Templates only exist in the development environment.
Using the Diaphragm valve template, you can quickly create an Diaphragm valve instance when
you need another Diaphragm valve in your application.

Instances
Instances are the run-time objects created from templates in Wonderware Application Server.
Instances are the specific things in your environment like processes, valves, conveyer belts,

Wonderware System Platform 3.0 Course - Part 1

1-71

1-72

Module 1 Introduction
holding tanks, and sensors. Instances can get information from sensors on the real-world device
or from application logic in Wonderware Application Server. Instances exist during run time.
In your environment, you may have a few instances or several thousand. Many of these instances
may be similar or identical, such as valves or holding tanks. Creating a new valve object from
scratch when you have several thousand identical valves is time-consuming. That's where templates
come in.

Creating and Deleting Instances


ApplicationObject instances are created from the templates provided by the Template Toolbox.
A default name is given to the new instance. The newly created Object instance is put into focus
and set to rename mode.
This view also allows the Object instance to be edited.
Object instances can be deleted from this view if the Object does not have any other Objects
assigned to it.
By default the first instance of the Platform object will be configured with the name of the Galaxy
Repository node name. This platform can then be renamed.
There are two ways to create an instance of a template. This is indicated as follows:

Creating an Instance - 1
Drag and drop the template object from the Template Toolbox to the Application View. To delete an
instance of the Platform object highlight it and click on the Delete icon in the menu icon bar
, or, right-click on it and select Delete.

Wonderware Training

Section 4 Automation Objects

Notice you are looking at


the Model View.

Once the instance has been created it displays as follows:

It can now be renamed using the naming convention as designated by your instructor.

Wonderware System Platform 3.0 Course - Part 1

1-73

1-74

Module 1 Introduction
Creating an Instance - 2
Highlight the object in the Template Toolbox for which you desire an instance. Then from the
Galaxy menu, select Galaxy/New/Instance or use the short cut which is Ctrl+N.

Component Names
ArchestrA AutomationObject Toolkit This is the toolkit for developing core ApplicationObjects,
in a C++ environment, which will be imported into the Galaxy via the IDE.
Area AutomationObject the AutomationObject that represents an Area of a plant within an
Application Server Galaxy. The area object acts as an alarm concentrator and is used to put other
AutomationObjects into the context of the actual physical automation layout.
ApplicationEngine (AppEngine) a real-time Engine that hosts and executes
AutomationObjects.
ApplicationObject An AutomationObject that represents some element of a user application.
This may include things such as (but not limited to) an automation process component (e.g.
thermocouple, pump, motor, valve, reactor, tank, etc.) or associated application component (e.g.
function block, PID loop, Sequential Function Chart, Ladder Logic program, batch phase, SPC
data sheet, etc.).
AutomationObject A type of object that represents permanent things in your plant (such as
Application Objects or Device Integration Objects) as objects with user-defined, unique names
within the Galaxy. It provides a standard way to create, name, download, execute, and monitor the
represented component.

Wonderware Training

Section 4 Automation Objects


ContainedName This is the final portion of the HierarchicalName that defines the name of the
object within that containment level, i.e. HierarchicalName = Line1.Tank1.InletValve, TagName =
V1101 ContainedName = InletValve
Device Integration Objects (DIObject) AutomationObjects that represent the communication
with external devices, which all run on the application engine local. The objects for example are:

DINetwork Object Refers to the object that represents the network interface port to the
device via the Data Access Server, providing diagnostics, and configuration for that
specific card.

DIDevice Object Refers to the object that represents the actual external device (e.g.
PLC, RTU) which is associated to the DINetwork Object. Providing the ability to diagnose,
browse data registers, and DAGroups for that device.
Framework An infrastructure consisting of a common set of services, components and
interfaces for creating and deploying Automation objects that collect, store, visualize, control,
track, report and analyze plant floor processes and information.
Galaxy complete Application Server system consisting of a single logical name space (defined
by the Galaxy Repository) and a collection of Platforms, Engines and Objects that are included
within it. One or more networked PCs that constitute an automation system. It defines the name
space that all components and objects live in and comply with a common set of system level
policies. This is the whole application.
GalaxyDatabase the relational database containing all persistent configuration information for all
Templates and Objects in an Application Server Galaxy.
GalaxyRepository the software sub-system consisting of the Galaxy Repository Engine,
Package Server, Repository Interface, and the Galaxy Database.
HierarchicalName This is the name that is created by the system that positions the object within
any containment i.e. HierarchicalName = Line1.Tank1.InletValve, TagName = V1101
Integrated Development Environment (IDE) The IDE is an Integrated Development
Environment consisting of various configuration editors that are used to configure the total system,
aimed for the application engineer, and general use.
Objects AutomationObjects (all types), AutomationObject, UserProfiles, Displays, Symbols,
DisplaySets, ActivityObjects are collectively referred to as Objects. Common characteristic of all
Objects is that they are stored as separate components in the GalaxyRepository.

ObjectTemplate a specific state of an Object in which the Object is a generic template
from which instances can be generated.

ObjectInstance a specific state of an Object in when the Object has been substantiated
to the actual unique instance of the object that will run in the system.
Platform Object a representation of the physical hardware that the Application Server software
is running on. Platform Objects host AppEngine Objects (see WinPlatform).
QuickScript .NET this is the name of the scripting language component that is an enhanced
version of InTouch QuickScript with new language features and integration with Microsoft .NET.
System Management Console (SMC) This is the central runtime system administration /
management user interface, where all required runtime administration functions like new users,
redeployment, license management will occur.
TagName This is the Galaxy-wide unique name given to a Object.
i.e. HierarchicalName = Line1.Tank1.InletValve, TagName = V1101

Wonderware System Platform 3.0 Course - Part 1

1-75

1-76

Module 1 Introduction
WinPlatform a single computer in an Application Server galaxy consisting of Network Message
Exchange, a set of basic services, the operating system and the physical hardware; hosts
Application Server Engines and is a type of Platform Object.

Product Names
ArchestrAObject Toolkit a programmers tool used to create new Application and Device
Integration Object Templates, including their configuration and run-time implementations along
with their corresponding IDE editors.
Wonderware Application Server This is the product name given to the Wonderware A2
Application Server, which will run the objects as a blind node, allowing a product to be loaded on top
of existing systems to extend value. This product has an execution engine (AppEngine) which
hosts the application objects performing the functionality, and then stores this into a history
storage system, which is also included in the product.
DAServer Toolkit This is the toolkit for building Data Access Servers, which are the next
generation of I/O servers, and are I/O server executable. These are OPC servers, and this toolkit
is to be a product which enables Wonderware and third parties to develop powerful OPC servers
which can connect to third party clients and Application Server clients.
Data Access Server (DAServer) Refers to the Server executable that interfaces to the device
serving data to the DINetwork Object and DIDevice Object, via standard client protocols OPC, or
to any third party client. These replace our current I/O Servers.

Components of a DAS Toolkit:







Client Plug-ins: These are the components which are added to a DAS server to enable
communication with clients. Examples are: OPC 2.03, DDE/Suitelink, etc.
DAS Engine: This is the .DLL which contains all the common logic to drive data access
(this used to be called Core toolkit).
Device Protocol: This is custom code set up by the user to define the communication
with a particular device.
DAS Control Client: This is the MMC snap-in supplied with the DAServer that provides
the necessary UI for activation and configuration.
 DAS Diagnostic: This is part of the DAS Control Client MMC snap-in-that provides a
set of diagnostic information for DAServers within the system
 DAS Configuration: This is part of the DAS Control Client MMC snap-in which
enables configuration of the DAServer either locally or remotely.
 DAS Activation: This is part of the DAS Control Client MMC snap-in which enables
the user to start and stop the DAServer.
DAS AppWizard: This is the C++ Wizard that generates the framework of the DAServer
Generic State Engines: These are engines which enable the device protocol developer
to build the particular functions:
 Device Engine


Serial Engine

TCP/IP Engine

Wonderware Training

Section 5 System Requirements, Licensing and Support

Section 5 System Requirements, Licensing and Support


Section Objectives


Describe the necessary system requirements for a successful installation

Discuss Licensing requirements

Discuss Support services

This section provides a detailed explanation of the system requirements necessary for System
Platform, discusses Licensing details and covers Support services.

System Requirements for Wonderware Application Server/Galaxy


Repository
Note: There is an Online Seminar available for the Installation of Wonderware Application
Server 3.0. To register, visit www.wonderware.com/training or call 1-866-WW-TRAIN (1-866998-7246) or email Wonderware Training at training@wonderware.com.

Hardware Requirements
The following list shows the recommended hardware requirements to install Application Server
version 3.0.
Galaxy Repository Platform:


Dual core PC with 2 gigahertz (GHz) or faster processor clock speed, or single core PC
with 3 gigahertz (GHz) or faster processor clock speed

Dual core processor recommended for optimal performance

2 gigabytes (GB) or more of RAM. (1 GB minimum supported; may limit performance of


some features) The Galaxy Repository locks the SQL Server maximum memory usage to
65% of the physical memory.

Non-Galaxy Repository Platforms (IDE or Runtime):




PC with 2 gigahertz (GHz) or faster processor clock speed

1 gigabyte (GB) or more of RAM

All Systems (IDE, GR, Runtime):




30 gigabytes (GB) of available hard disk space

Super VGA (1024 x 768) or higher resolution video adapter and monitor

CD-ROM or DVD drive

Keyboard

Mouse or compatible pointing device

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

Wonderware System Platform 3.0 Course - Part 1

1-77

1-78

Module 1 Introduction
Software Requirements
This section describes the operating system and other software requirements to install Application
Server version 3.0.
Operating System
The following table lists the supported operating systems that can be installed on computers
running server, client, and run-time components.
Application Server Components
ArchestrA IDE

ArchestrA Run
Time

Galaxy
Repository

Windows Vista Business (See Vista Restrictions)

Windows Vista Enterprise (See Vista Restrictions)

Windows Vista Ultimate (See Vista Restrictions)

Windows Server 2003 Standard Edition SP2

Windows Server 2003 Enterprise Edition SP2

Windows Server 2003 Standard Edition R2 SP2

Windows Server 2003 Enterprise Edition R2 SP2

Windows XP Professional SP2

Operating Systems

Windows XP Tablet 2005

Notes:


Windows 2000 Professional, Windows 2000 Server, and Windows 2000 Advanced Server
are not supported operating systems for Application Server version 3.0. If you attempt to
install or upgrade Application Server on a computer running one of these operating
systems, an error message appears.

Windows Server 2003 Standard Edition SP2 is the recommended operating system to run
server components.

Windows XP Professional SP2 is the recommended operating system to run client


components.

If you plan to run Application Server version 3.0 on computers running Windows Vista, all
editions except for Home Basic and Home Premium are supported. The Business Edition
is recommended.

Windows XP Professional SP2 and Windows Vista may be used on a Galaxy Repository
Node for only single-node solutions.

The Bootstrap, IDE, and Galaxy Repository are supported on the following language versions of
Microsoft operating systems: English, Japanese, Chinese, German, and French. The Galaxy
Repository is also supported in English, Japanese, Chinese, German, and French versions of
Microsoft SQL Server 2005.

Wonderware Training

Section 5 System Requirements, Licensing and Support


Other Software Requirements
The following list describes other third-party software requirements to support Application Server
version 3.0.





Microsoft SQL Server 2005




SQL Server 2005 with SP2 (Standard or Enterprise) is the only database supported
by Application Server version 3.0. The Compact, Express, and Workgroup editions of
SQL Server 2005 are not supported for the Galaxy Repository.

The SQL Server 2005 SP2 database must be installed on the same computer as the
ArchestrA Galaxy Repository.

TCP/IP must be enabled on the computer running SQL Server. The TCP/IP protocol
setting can be verified from the SQL Server 2005 Network Configuration under SQL
Server Configuration Manager.

Microsoft Visual Studio 2005 (toolkits only)


.NET Framework Common Language Runtime (CLR) 2.0.50727

Note: The Microsoft SQL Server login for BUILTIN\Administrators group must be present and
enabled.
Note: Application Server 3.0 requires installing Microsoft SQL Server 2005. You cannot use
Microsoft SQL Server 2000 with this version. You also cannot install and use Application Server on
a computer that has both Microsoft SQL Server 2000 and Microsoft SQL Server 2005 installed.

Vista Restrictions


Application Server version 3.0 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.

Users must log on as a Windows Vista administrator to run Application Server version 3.0.
You cannot run Application Server as a Windows Vista standard user or power user.

You can run Wonderware 32-bit software only with a 32-bit version of Windows Vista.
Running Wonderware 32-bit software with a 64-bit version of Windows Vista on 64-bit
hardware is not supported

The Windows Vista User Account Control (UAC) must be disabled when running
Application Server. Refer to Microsoft Windows Vista documentation for instructions to
disable UAC.
When you disable Windows Vista UAC, you must restart the computer before attempting
to install the ArchestrA IDE or Wonderware Application Server. A Galaxy connection error
occurs if you attempt to install the ArchestrA IDE or Wonderware Application Server and
you did not restart the computer after you disabled the UAC.

Windows Vista does not support a traditional Application Server 3.0 single-node
configuration that includes Wonderware Historian (formerly IndustrialSQL Server).

A Vista Platform cannot be configured to be an alarm provider and also have InTouch
WindowViewer on the same computer configured to generate alarms. Only one of the two
will function properly as an alarm provider.

Windows Vista does not support NetDDE. ArchestrA graphics make use of the client layer
when accessing InTouch tags, and appear as a third-party client trying to access

Wonderware System Platform 3.0 Course - Part 1

1-79

1-80

Module 1 Introduction
WindowViewer as a data server. As a result, ArchestrA symbols cannot communicate with
InTouch tags. Windows Server 2003 and Windows XP Pro still support NetDDE.


Application Server 3.0 cannot be configured to run as a service under Windows Vista.
Windows Vista security prevents started Windows services from interacting with desktop
objects. When Application Server 3.0 is installed on a computer running 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.
The Galaxy Repository is only supported on Vista for single-node systems. For multiplenode Galaxies, Windows Server 2003 is the preferred operating system for the Galaxy
Repository node.

Using Multiple Network Interface Cards with Vista


If you are using multiple network interface cards (NICs), you must configure certain settings for the
firewall or else a remote Vista node cannot connect to a Galaxy Repository node.
A connection in Vista is a term used to define a network interface card (NIC), its settings and the
settings of whatever the NIC is connected to. Under certain circumstances, the connection on your
computer can change if, for example, the IP address on the computer to which you are connected
changes. Your computer's connection can be affected by external factors. During boot, and each
time a connection changes, Vista goes through an "Identifying" process to determine which profile
should be assigned to the connection.
A profile is a collection of firewall settings that can be applied to a connection. There are three
profiles currently defined in Vista: Domain, Public and Private.

The Domain profile is assigned automatically to a connection if a domain controller for the
domain to which the computer is a member is found on the connection.

The Public profile is designed to keep the computer from being visible to other computers
on the network. Network discovery is turned off for the Public profile.

The Private profile is used for a more trusted environment. Network discovery is turned on for
a Private profile. Firewall exceptions and rules can be created on any or all of these profiles.
This is important because the OS Configuration utility and the Vista Firewall utility apply their
firewall exceptions to the Domain and Private profiles only.
As previously noted, you can specify which profile you want assigned to a connection as long as
that connection is not a Domain connection. This is done through the "Network and Sharing
Center". Click on the Network icon in the right-hand side of the task bar and then click on one of the
networks that is displayed. You can change a connection from a Public profile to a Private profile.
The firewall calls these settings "Profiles" but the network calls them "Location types".
On computers using dual NICs, the first NIC is normally connected to the domain and is assigned
the Domain profile automatically. The second NIC is typically assigned the Public profile.
The first issue is that your entire computer (all connections) is restricted to the most restrictive of
the profiles assigned to any connection. So if the second connection was assigned a profile of
Public, none of the firewall exceptions set by the OS Configuration or Vista Firewall utilities will be
allowed. The exceptions were set for Domain and Private only, not Public. You must set the
second connection to the Private profile for any of the firewall exceptions to work.
The second issue is that it appears that a re-boot of your computer, or even a re-boot of a
computer to which you are connected, can change your connection back to the Public profile.

Wonderware Training

Section 5 System Requirements, Licensing and Support


Once again the firewall exceptions will not be effective. You'll have to change the connection back
to the Private profile after each re-boot or a re-boot of the connected computer.
To avoid these NIC issues and prevent the Identifying process from taking place on a connection
and changing the assigned profile, certain items must be present in the definition of the
connection. Follow the rules below:
1. If you have only one NIC, no action is required. The profiles and firewall rules are automatic.
2. If you have two NICs follow the actions below:


If the second NIC is not physically connected to anything (that means no wire in it), no
action is required. The profiles and firewall rules are automatic.

If the second NIC is connected, it MUST be configured. Follow the rules for configuring
a normal redundancy setup, Vista will identify this NIC and assign it a Private profile. If
the NIC is not configured, Vista will assign a profile of Public to this
NIC and cause all of our firewall exceptions to be deactivated on all NICs. For the NIC
to be configured properly, give it an IP address, sub net mask and gateway address.
The gateway address can be the same as the IP address. Usually these addresses
will be the internal, non-routable addresses like 192.168.0.x or the 10.x.x.x range.

If you have more than two NICs, make sure all connected NICs are configured with an
IP address and default gateway address and have been assigned a profile of Private.

Wonderware System Platform 3.0 Course - Part 1

1-81

1-82

Module 1 Introduction
Licensing
Term

Description

Galaxy

This refers to the total Application Model that resides in a Galaxy repository.
Also the single Namespace.

Platform Count

Number of PCs in the Galaxy (note each InTouch needs a platform to be part
of the Galaxy Namespace).

I/O Count

Number of I/O points being accessed into the Galaxy.

ArchestrA IDE

Integrated Development Environment (the editing environment for Application


Server). Only available as part of the ArchestrA Development License.

Access to the Galaxy Repository is controlled by a license. If a license-related message is


displayed when you are attempting to open the IDE, you have a problem with your license. This
message may indicate one of the following conditions:


No license has been installed.

Your license has expired.

You may have exceeded the licensed I/O count or number of WinPlatforms.

Use the License Utility to correct these problems. Until the problem is resolved, you cannot:


Open the ArchestrA IDE.

Connect to existing Galaxies.

Create new Galaxies.

After you have updated your license, you should be able to connect to your Galaxy and open the
ArchestrA IDE with no further problems.
Note: If a license expires while you are using the ArchestrA IDE, you are not allowed to connect to
the Galaxy the next time you open the ArchestrA IDE.
To check your current license, expiration date (if any) and limitations (if any), double-click the
License icon at the bottom of the ArchestrA IDEs Main Window

For more information on licensing requirements, please contact your local distributor.

Wonderware Training

Section 5 System Requirements, Licensing and Support


Product Support
Product Support
Wonderware provides responsive, award-winning teams of specialists committed to delivering
world-class customer support, training, and consulting services. For information on the various
customer support programs, contact your local distributor or access the Wonderware Technical
Support site online at http://www.wonderware.com/support/mmi/
You will find a variety of information on the Technical Support site including the Expert Knowledge
Base, Documentation, FAQs, Tech Alerts, Tech Articles, Tech Notes, and Tech Support Forums.
When you first enter the site, you will have limited access. To gain access to the different areas
and services, you must first register.
Also on the Technical Support site is the Technical Support Policies, Terms & Conditions guide
which provides information on how to contact Technical Support, information on the support
policies and procedures, and much more.

Wonderware System Platform 3.0 Course - Part 1

1-83

1-84

Module 1 Introduction

Intentionally left blank

Wonderware Training

Section 6 Application Planning

Section 6 Application Planning


Section Objectives


Explain a project workflow and area devices and why they are needed

Identify functional requirements and naming conventions

Expand on the concept of ArchestrA and how it relates to the manufacturing


environment.
Explain the benefits of migrating to an ArchestrA architectural environment.

This section provides an explanation of the need for adequately modeling your plant in order to
achieve an application implementation that will be optimal for efficiency.

Introduction
In order to successfully implement a project for the Wonderware A2 environment, you should start
with careful planning to come up with a working model of your plant or plant area. A six-step
project workflow is provided that describes how to complete different tasks in a logical and
consistent order, so that you minimize the engineering effort.
The project information that you define will become your guide when actually creating your
industrial application using the ArchestrA IDE. The better your project plan, the less time it will take
to create the application, and with fewer mistakes and rework.

Suggested Project Workflow


Just as there are many different criteria for Wonderware A2 projects, there are many different ways
to design and implement a supervisory and control system. The suggested project workflow is
designed to help plan and implement projects. By providing this workflow, the work flows more
smoothly enabling completion of the project to be accomplished much easier. You may develop
your own workflow for implementing projects based on your experiences.
The following flow chart summarizes the logical steps to project completion.

Wonderware System Platform 3.0 Course - Part 1

1-85

1-86

Module 1 Introduction

Identify Field Devices and Functional Requirements

Define Naming Conventions

Define the Area Model

Plan Templates

Define the Security Model

Define the Deployment Model


Before you start this process, you should determine how you want to document the results of your
project planning. One good way is to use a spreadsheet application such as Microsoft Excel to
document the list of devices, the functionality of each device, process areas to which the devices
belong, and so on.

Identifying Field Devices and Functional Requirements


The first step in project planning is to identify the field devices that you want to include in your
application. Field devices include components such as valves, agitators, rakes, pumps,
Proportional-Integral-Derivative (PID) controllers, totalizers, and so on. Some devices are made

Wonderware Training

Section 6 Application Planning


up of more base-level devices. For example, a motor is a device that may be part of an agitator or
a pump.
After you have identified all of your field devices, you will then need to determine the functionality for
each.

Identifying Field Devices


When identifying field devices, you should start with your piping and instrumentation diagram
(P&ID). Typically, this diagram shows all of the field devices and illustrates the flow between them.
If you have a good P&ID, the application planning process will take less time and go more
smoothly. You should verify that your P&ID is correct and up-to-date before starting the planning
process.
The following diagram shows a simple P&ID:

The key for this P&ID is as follows:


FIC = Flow controller
PT = Pressure transmitter
TT = Temperature transmitter
FT = Flow transmitter
CT = Concentration transmitter
LT = Level transmitter
LIC = Level controller
FV = Flow valve

Examine each component in your P&ID and identify each basic device that is used. For example,
a simple valve can be a basic device. A motor, however, may be comprised of multiple basic
devices.

Wonderware System Platform 3.0 Course - Part 1

1-87

1-88

Module 1 Introduction
Once you have created the complete list, group the devices according to type, such as valves,
pumps, and so on. Consolidate any duplicate devices into common types so that only a list of
unique basic devices remains, and then document them in your project planning worksheet.
Each basic device is represented in the ArchestrA IDE framework as an "object." An instance of an
object must be derived from a defined template. The number of device types in your final list will help
you to determine how many object templates you will need to create for your application. You can
group multiple basic objects to create more complex objects, which is a concept known as
"containment."

Identifying Functional Requirements


For each unique device, you will need to define the functional requirements, which includes:


Inputs and outputs. How many inputs are required for the device? How many outputs are
required?
Scripting. What scripts will be associated with the device? For example, does the device
require any indirect calculations?
Historization. Are there process values associated with this device that you want to
historize? How often do you want to store the values? Do you want to add change limits
for historization?
Alarms and events. What values require alarms? What values do you want to be logged as
events? (ArchestrA IDE alarms and events provide similar functionality to what is provided
within InTouch.)
Security. Which users do you want to give access to the device? What type of access do
you want to give? For example, you may grant a group of operators read-only access for a
device, but allow read-write access for a supervisor. You can set up different security for
each attribute of a device.

Defining Naming Conventions


The second step in the workflow is to define the naming conventions for templates, instances, and
object attributes. Naming conventions should adhere to:

Conventions that you use within your company.


ArchestrA IDE naming restrictions. For example, you might have an instance tagname of:

YY123XV456
with the following attributes:
OLS, CLS, Out, Auto, Man
The following illustration shows how the naming convention in a traditional Human-Machine
Interface (HMI) is different from the naming within ArchestrA IDE:

Wonderware Training

Section 6 Application Planning

! "#$ %

( %

! "#$ %
! "#$

( %
! "#

! "#$ &

( &

! "#$'

('

For more
information refer
to the InTouch to
IAS Migration
document

For ArchestrA IDE, references are created using this naming convention:
<objectname>.<attributename>
For example:
YY123XV456.OLS

Defining the Area Model


The third step of the project workflow is to define the Area model. An Area is a logical grouping
within your application that represents a portion of the layout of your plant. In a typical manufacturing
plant, you would define the following Areas: Receiving Area, Process Area, Packaging Area and
Dispatch Area. You will need to define and document all of the Areas of your plant that will be part of
your application.
Each object will need to be assigned to a particular Area. When you install Application Server, a
single placeholder is created by default, called "Unassigned." Unless you specify otherwise, all
object instances will be assigned to this placeholder location.
The following are a few tips for creating Areas:


If you create all of your Areas first, you can easily assign an object instance to the correct
Area if you set that particular Area as the Default Area; otherwise, you will have to move
them out of the unassigned Area later.

It is helpful to create a System Area to which you can assign instances of WinPlatform and
AppEngine objects. WinPlatform and AppEngine objects are used to support
communications for the application, and do not necessarily need to belong to a plantrelated Area or any Area for that matter.

Alarms will be grouped according to Areas.

Areas can be nested.

When building an Area hierarchy, keep in mind that the base Area that is assigned to a Platform
determines how the underlying objects will be deployed. If a plant area (physical location) is going
to contain two computers running AutomationObject Server platforms, then two logical Areas will
have to be created for the one physical plant area.
One approach for creating instances of an object is to create an instance for one Area at a time. If
you use this approach, then mark the Area as the default, so that each instance is automatically

Wonderware System Platform 3.0 Course - Part 1

1-89

1-90

Module 1 Introduction
assigned to the selected Area. Before you begin to create instances in another Area, change the
default to the new Area.
A final consideration for constructing Areas is that the various Areas equate to alarm groups. It is
at the Area level that alarm displays can easily be filtered.

Object Templates
A template is an element that contains common configuration parameters for objects that are used
multiple times within a project. Templates are instantiated to represent specific objects within the
application.
For example, you might need multiple instances of a valve within your application, so you would
create a valve template that has all of the required properties. This allows you to define once, and
reuse multiple times. If you change the template, the changes can be propagated to the instances.
You can use simple drag-and-drop within the ArchestrA IDE to create instances from templates.
Additional information on how to actually develop objects using templates is covered in Module 3,
Planning for Object Templates on page 3-7.

The next three steps (Planning Templates, Defining the Security Model, and Defining the
Deployment Model) are done once the initial Plant Model is in place. These are represented
through subsequent Modules in this training course. Please refer to additional information which is
available in the Wonderware A2 Deployment Guide.

Wonderware Training

Lab 2 Identifying the Mixer

Lab 2 Identifying the Mixer


Introduction
In this lab you will study
This lab provides the three detailed diagrams used to identify the factory layout for the simulated
scenario; as well as the main pieces of equipment that you are going to model and develop during
this training course.
The diagrams provided in this lab will be used as reference in following exercises and are listed
below:


Factory Layout

Heat Exchanger: Process Diagram & Field I/O Signals

Mixer: Process Diagram & Field I/O Signals

Your instructor will assign you a student number that you will use to create the unique identifiers
for each heat exchanger and mixer assigned to you.
This lab will help you familiarize yourself with the work that is going to be made in the rest of the
labs for the class.

Objectives
Upon completion of this lab you should be able to:


Understand the information that needs to be collected before proceeding to develop a


Galaxy

Feel familiar with the naming convention and device structure to be used in this class

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab.
Note: For this lab there are no additional detailed instructions.
Identify the Sample Application
1. Study and discuss the following diagrams with your instructor.

2. Create the IDs for the heat exchangers and mixers assigned to you.

Wonderware System Platform 3.0 Course - Part 1

1-91

1-92

Module 1 Introduction

Wonderware Training

Lab 2 Identifying the Mixer

Wonderware System Platform 3.0 Course - Part 1

1-93

1-94

Module 1 Introduction

Wonderware Training

Lab 2 Identifying the Mixer

Wonderware System Platform 3.0 Course - Part 1

1-95

1-96

Module 1 Introduction

Intentionally left blank

Wonderware Training

Module 2

Application Infrastructure
Section 1 The Plant Model
Lab 3 Creating the Plant Model
Section 2 The Deployment Model
Lab 4 Creating and Deploying the Deployment Model
Section 3 The Runtime Environment

2-3
2-5
2-11
2-17
2-27

Lab 5 Using Object Viewer

2-31

Section 4 Connecting to the Field

2-41

Lab 6 Connecting to the Field

2-51

2-2

Module 2 Application Infrastructure

Module Objective


Explain the concept and describe the need of developing a Plant Model before
configuring the Wonderware Application Server

Identify key factors necessary for building successful applications.

Explain Galaxies and introduce you to the Integrated Development Environment (IDE)

Explain Plant Modeling as it relates to Objects and Object Instances

Wonderware Training

Section 1 The Plant Model

Section 1 The Plant Model


Section Objectives


Explain the importance of having a model of the plant facility.

Examine the concept of how to utilize ArchestrA Application Server to model a specific
facility.

This section provides an explanation of the importance of having a model of the plant facility.
Additionally, it explains the concept of how to utilize ArchestrA Application Server to model a
specific facility.

Modeling of the Facility


With the ArchestrA Application Server it is possible to create a working model of the plant
manufacturing environment which will utilize the product. Having this model will enable you to
implement a structured naming convention that will facilitate the coordination of all the processes
and areas. It will also provide the ability to create objects representing your actual plant, configure
them to your own specifications and create templates from them which will enable you to
propagate one area to another.
The ArchestrA plant application model allows you to organize a distributed computing application
by:
Plant

Section

Area

Production
Line

Manufacturing
Cell

Once a plant application model has been developed, applications can be easily extended or
replicated based on the structure you have provided. With this Facility Model you can:


Rapidly create application standards.

Deploy applications across multiple plants or projects.

This provides universal application development capabilities. Additionally, it provides the ability to
build industrial applications that ensure consistent engineering quality and operational best
practices.

Wonderware System Platform 3.0 Course - Part 1

2-3

2-4

Module 2 Application Infrastructure


Reporting Alarms Based on Area Model
When an alarm is detected, or an event occurs, the condition is reported to its alarm and event
distributor, which is running on the same AppEngine. These alarm and event distributors include:
Area AutomationObjects

All AutomationObjects and Area objects report


detected alarms through the Area, which distributes
them to alarm and event clients.

WinPlatform AutomationObjects

Report their own alarms and events

AppEngine AutomationObjects

Report their own alarms and events

Device IntegrationObjects

Report their own alarms and events

WinPlatforms, AppEngines and Device Integration objects do not report their alarms and events to
Area AutomationObjects even though they belong to Areas. This allows alarm clients to receive
alarm notifications without any dependencies on Area AutomationObjects. For example, a
deployed and running WinPlatform can report alarms even though its Area is not deployed and
running.
Using the Area model will become a filtering mechanism for alarms when we cover the Module on
Alarms and History.

Wonderware Training

Lab 3 Creating the Plant Model

Lab 3 Creating the Plant Model


Introduction
This lab illustrates the steps necessary to create the plant model for the Galaxy based on the
information gathered in Lab 2 Identifying the Mixer. An additional $Area instance is created to
accommodate future system objects created throughout the rest of this class.
To help organize the templates, a custom toolset is created to hold the templates created in the
class.

Objectives
Upon completion of this lab you should be able to:


Create new template toolsets

Create derived templates

Create instances

Use the $Area object to create a plant model for the Galaxy

Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.

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.
Create a Template Toolset
1. Create a new Template Toolset named AB Training under the Galaxy.

Create the Plant Model


2. Create a derived template from the $Area object named $ABArea and assign it to the AB
Training template toolset.
3. Create the following instances out of the new $ABArea template:


AB Discharge

ABIntake

ABProduction

ABLine1

ABLine2

ABControlSystem

4. Arrange the new $Area instances to model the factory layout defined in Lab 2.

See the next page for Detailed Lab Instructions

Wonderware System Platform 3.0 Course - Part 1

2-5

2-6

Module 2 Application Infrastructure

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 Template Toolset


1. In the ArchestrA IDE, make sure that the Template Toolbox is selected.

2. In the Template Toolbox, right-click on the Galaxy and select New Template Toolset.

Wonderware Training

Lab 3 Creating the Plant Model


3. A new template toolset is created. Use AB Training for the name.

Create the Plant Model


4. In the Template Toolbox, create a derived template of the $Area object by right-clicking the
$Area template and selecting New / Derived Template.

Wonderware System Platform 3.0 Course - Part 1

2-7

2-8

Module 2 Application Infrastructure


5. A new template is created. Use $ABArea for the name.

6. Move the $ABArea object to the newly created template toolset.

Wonderware Training

Lab 3 Creating the Plant Model


7. Ensure that the Model view is selected.

8. Create a new instance of the $ABArea template by drag-and-dropping the $ABArea object
from the Template Toolbox to the Model view.
Name the new instance ABDischarge.

Wonderware System Platform 3.0 Course - Part 1

2-9

2-10

Module 2 Application Infrastructure

9. Repeat step 8 to create the following areas:



ABIntake


ABProduction

ABLine1

ABLine2

ABControlSystem

10. Drag-and-drop the newly created objects to assign areas ABLine1 and ABLine2 to the
ABProduction area. The final plant model should look like the following illustration.

Wonderware Training

Section 2 The Deployment Model

Section 2 The Deployment Model


Section Objectives


Explain the concept of the Deployment Model.

Demonstrate the structure and organizational execution of the Deployment Model.

This section provides an explanation of the Deployment Model and demonstrates the structure of
the Deployment Model.

Deploying the Galaxy


You can deploy and test your objects at any time during development. When you are ready to test
or move the application into production, it's time to deploy the Galaxy.

Planning for Deployment


Deploying your Galaxy copies the objects from the development environment to the run-time
environment. This makes your objects "live" and functional.
Until you deploy your ArchestrA IDE configuration environment to the run-time environment,
changes you make in the ArchestrA IDE do not appear in the run-time environment. To see runtime data associated with your objects, use Object Viewer or InTouch.
Objects deploy from the configuration environment to the run-time environment as follows:

Wonderware System Platform 3.0 Course - Part 1

2-11

2-12

Module 2 Application Infrastructure


Determining Galaxy Status
You can see an overview of the condition of your Galaxy before you deploy. This lets you know if
you have objects that are in warning or error status.
To determine the status of a Galaxy
a. Connect to the Galaxy.
b. On the Galaxy menu, click Galaxy Status. The Galaxy Status dialog box appears.

You see information about total instances, total templates, deployed instances with changes,
undeployed instances with changes, objects that have an error or warning state, objects that are
checked out, and object you have checked out.
c. Click OK.

Deploying Objects
You deploy object instances for three reasons:


Testing.

Place the application into production to process field data.

Update an existing application with changes you made.

When you are ready to deploy, make sure the following conditions are met:


Bootstrap software is installed on the target computer(s).

The objects being deployed are not in an error state in the Galaxy database.

You created, configured, and checked in objects to the Galaxy.

Objects are assigned to a host.

The object's host is already deployed. A cascade deploy operation, which deploys a
hierarchy of objects, deploys all objects in the correct order. This deploys an object's host
before the object is deployed.

Wonderware Training

Section 2 The Deployment Model


To Deploy an Object
a. Select the object in an Application view.
b. On the Object menu, click Deploy. The Deploy dialog box appears.

c. Select one or more of the following




Cascade Deploy: Select this check box to deploy the object selected for deployment as
well as any objects it hosts. This option is selected by default if the object is a host. If you
are deploying an individual host object, clear the check box. Objects being deployed
across multiple platforms will be deployed in parallel.
Include Redundant Partner: Select this check box to also deploy an AppEngine's
redundancy partner object. This option is selected and unavailable when the redundant
engine has pending configuration changes or software updates.

d. In the Currently deployed objects area, select one or more of the following options. These
options are not available if the selected object has not been deployed before.

Skip: If one of the objects you are deploying is currently deployed, selecting Skip makes
no changes to the already-deployed object.

Deploy Changes: If one of the objects you are deploying is currently deployed, this option
updates the object in question with new configuration data.

Redeploy Original: If one of the objects you are deploying is currently deployed, this
option deploys the same version as previously deployed. For example, use this option to
redeploy an object that is corrupted on the target computer.

Force Off Scan: If one of the objects you are deploying is currently deployed, this option
sets the target object to off scan before deployment occurs.
e. In the Currently undeployed objects area, select the Deploy New Objects check box to
start a normal deployment.

Wonderware System Platform 3.0 Course - Part 1

2-13

2-14

Module 2 Application Infrastructure


f.

In the Deploy Status Mismatch area, select the Mark as Deployed check box to mark the
object as deployed in the Galaxy. A mismatch happens when the object is previously deployed
to a target node, but the Galaxy shows the object is undeployed. Clear this option to redeploy
the object to the target node.

g. In the Initial Scan State area, select one of the following:




On Scan: Sets the initial scan state to on scan for the object(s) you are deploying. If the
host of the object you are deploying is currently off scan, this setting is ignored and the
object is automatically deployed off scan. While deploying multiple objects the deploy
operation will deploy all of the selected objects "off-scan." Once all of the objects are
deployed the system will set the scan-state to "on-scan."

Note: Objects can only execute when both the host/engine is "on scan" and the object is "on
scan." If either the host/engine or the object is "off scan," the object can not execute.
Note: Always deploy Areas to their host AppEngines on scan. Since Areas are the primary
providers to alarm clients, deploying Areas off scan results in alarms and events not being
reported until they are placed on scan.


Off Scan: Sets the initial scan state to off scan for the object(s) you are deploying. If you
deploy objects off scan, you must use the ArchestrA System Management Console
Platform Manager utility to put those objects on scan and to function properly in the runtime environment.

Note: The System Management Console controls on the state of the host/engine. The
ObjectViewer controls the state of the objects.
Note: The default scan setting is set in the User Default settings in the Configure User
Information dialog box.
h. Click OK to deploy the object(s). The Deploy progress box appears. When the deploy is
complete, click Close.

Redeploying Objects
Redeploying is similar to deployment. While you are testing, you frequently redeploy your
application to see changes you make. The redeploying process undeploys the object and then
deploys it back.
You may have an object whose deployment state is Pending Update. That means the object
changed since it last deployment. When you deploy those changes, the new object is marked as
the last deployed version in the Galaxy.
To redeploy
a. On the Object menu, click Deploy.
b. Follow the procedure for Deploying Objects.

Wonderware Training

Section 2 The Deployment Model


Undeploying Objects
You may need to undeploy one of more objects. Undeploying removes one or more objects from
the run-time environment.
Before you start, you need to select the object or objects you want to undeploy in the ArchestrA
IDE.
Before you delete or restore a Galaxy, undeploy all objects in the Galaxy.
Note: Undeploying can fail if the target object has objects assigned to it. Make sure you select
Cascade Undeploy in the Undeploy dialog box.
To undeploy
a. On the Object menu, click Undeploy. The Undeploy dialog box appears.

In the upper right of this dialog box, the Undeploy Object Count box shows the number of objects
being undeployed. You can select a single object in Application view and, if you selected
Cascade Undeploy and other objects are assigned to the selected object, the total number of
objects appears in this box.
b. Select one or more of the following. Some of these options might not be available, depending on
the kinds of object you select.

Cascade Undeploy: Select to undeploy the selected object as well as any objects it
hosts.

Include Redundant Partner: Select to also undeploy an AppEngine's redundancy
partner object.
Note: The AppEngine in a redundant pair that was configured as the Primary can be
undeployed alone because objects hosted by it run on the deployed Backup AppEngine,
which becomes Active.


Force Off Scan: If one of the objects you are undeploying is currently on scan, selecting
Force Off Scan sets the target object to off scan before undeployment. If you do not select
Force Off Scan and the target object is on scan, the undeployment operation fails.
On Failure Mark as Undeployed: Marks the object as undeployed in the Galaxy when
the object targeted for undeployment is not found

Wonderware System Platform 3.0 Course - Part 1

2-15

2-16

Module 2 Application Infrastructure

Intentionally left blank

Wonderware Training

Lab 4 Creating and Deploying the Deployment Model

Lab 4 Creating and Deploying the


Deployment Model
Introduction
This lab illustrates the steps necessary to create a deployment model for the Galaxy based on a
standalone setup and a single $AppEngine. You start by organizing the system objects using the
plant model created in the previous lab, and then, after creating the deployment model, the
complete Galaxy is sent to the runtime environment by deploying all objects.

Objectives
Upon completion of this lab you should be able to:


Use the $WinPlatform, $AppEngine and $Area objects to create a deployment model for
the Galaxy

Deploy instances to the runtime environment

Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.

Wonderware System Platform 3.0 Course - Part 1

2-17

2-18

Module 2 Application Infrastructure

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.

Create the $WinPlatform Object


1. Create a derived template from the $WinPlatform object named $ABPlatform and assign it to
the AB Training template toolset.
2. Create an instance of the $ABPlatform template named ABGRPlatform and assign it to the
ABControlSystem area.

Create the $AppEngine Object


3. Create a derived template from the $AppEngine object named $ABAppEngine and assign it
to the AB Training template toolset.
4. Create an instance of the $ABAppEngine template named ABAppEngine and assign it to the
ABControlSystem area.

Create the Deployment Model


5. Using the Deployment view, host the ABAppEngine object on the ABGRPlatform object and all
areas on the ABAppEngine object.

Deploy the Objects


6. Deploy the ABGRPlatform on cascade.

See the next page for Detailed Lab Instructions

Wonderware Training

Lab 4 Creating and Deploying the Deployment Model

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 the $WinPlatform Object


1. In the Template Toolbox, create a derived template of the $WinPlatform object by rightclicking the $WinPlatform template and selecting New / Derived Template.

2. A new template is created. Use $ABPlatform for the name.

3. Move the $ABPlatform object to your template toolset.

Wonderware System Platform 3.0 Course - Part 1

2-19

2-20

Module 2 Application Infrastructure


4. Using the Template Toolbox and the Model view, create a new instance of the $ABPlatform
template.
Name the new instance ABGRPlatform.

5. In the Model view, assign the ABGRPlatform instance to the ABControlSystem area.

Wonderware Training

Lab 4 Creating and Deploying the Deployment Model


Create the $AppEngine Object
6. In the Template Toolbox, create a derived template of the $AppEngine object by rightclicking the $AppEngine template and selecting New / Derived Template.

7. A new template is created. Use $ABAppEngine for the name.

8. Move the $ABAppEngine object to your template toolset.

Wonderware System Platform 3.0 Course - Part 1

2-21

2-22

Module 2 Application Infrastructure


9. Using the Template Toolbox and the Model view, create a new instance of the
$ABAppEngine template.
Name the new instance ABAppEngine.

10. In the Model view, assign the ABAppEngine instance to the ABControlSystem area.

Wonderware Training

Lab 4 Creating and Deploying the Deployment Model


Create the Deployment Model
11. Select the Deployment view.

12. Assign the ABAppEngine instance to the ABGRPlatform.

Wonderware System Platform 3.0 Course - Part 1

2-23

2-24

Module 2 Application Infrastructure


13. Assign all areas to the ABAppEngine instance.

Deploy the Objects


14. On the Deployment view, right-click the ABGRPlatform instance and select Deploy.

Wonderware Training

Lab 4 Creating and Deploying the Deployment Model


15. The Deploy dialog box is displayed. By default the system will perform a Cascade Deploy
with a Deploy Object Count of 8 instances, and it will set all instances On Scan as soon as
the objects are deployed.

16. Leave the default settings and click the OK button. This will display a second Deploy dialog
box indicating the progress on deploying the objects.
As soon as the process is complete, the Close button is enabled.

Wonderware System Platform 3.0 Course - Part 1

2-25

2-26

Module 2 Application Infrastructure


17. Click the Close button to return to the ArchestrA IDE.
The different views now display the instances in their deployed state.

Wonderware Training

Section 3 The Runtime Environment

Section 3 The Runtime Environment


Section Objectives


Explain the concept of the Runtime Environment.

Illustrate the differences in the Development environment and the Runtime environment.

Explain the use of the Object Viewer in monitoring the Runtime environment.

This section provides an explanation of the Runtime environment and explains the use of the
Object Viewer in monitoring the Runtime environment.

Runtime Environment
The previous workflow task defined the deployment model that specifies where objects are
deployed. In other words, the deployment model defines which nodes will host the various
AutomationObjects.
The objects deployed on particular platforms and engines define the objects' "load" on the
platform. The load is based on the number of I/O points, the number of user-defined attributes
(UDAs), etc. The more complex the object, the higher the load required to run it.
After deployment, the Runtime environment facilitates the activity generated by the objects. In
Application Server the Object Viewer is used to monitor the Runtime environment. The Object
Viewer is used to check communications between nodes and determine if the system is running
optimally. For example, a node may be executing more objects than it can easily handle, and it will
be necessary to deploy one or more objects to another computer.
To view the activity in the Runtime database the Object Viewer is used. It displays the current
value of all of the objects and object attributes in the database. In order to create the Runtime
database, Application Server requires information about all of the variables being created. As
object and object attribute values change (e.g. created, value change, configuration change), the
changes are reflected in Runtime and monitored via the Object Viewer.

Object Viewer
The Object Viewer monitors the status of the objects and their attributes and can be used to
modify an attribute value for testing purposes.
To add an object to the Object Viewer Watch list, you can manually type the object and attribute
names into the Attribute Reference box in the menu bar and select Go. When prompted to enter
the Attribute Type, press the OK key.
You can save a list of items being monitored. Once you have a list of attributes in the Watch
Window, you can select all or some of them and save them to an XML file by right-clicking on the
Watch window and selecting Save. A previously saved Watch window can also be loaded to
monitor previously saved attributes. You can also add a second Watch window that shows as a
separate tab in the bottom of the Viewer.

Wonderware System Platform 3.0 Course - Part 1

2-27

2-28

Module 2 Application Infrastructure

Deployed Objects section


Objects deployed on the Platform.

Attributes section
Individual attributes of the object.

Attribute Monitoring section Location


for monitoring attribute activity.

Uploading Run-time Configuration


You can upload run-time configuration changes to the Galaxy database. This lets you keep any
attribute values that changed during run time.
The values of certain attributes can be set in the configuration environment, but they can also be
changed by the user at run time. As a result, the values of these attributes can differ between the
run-time and configuration environments.
For example. you create an object with a UDA myInteger. In the Object Editor, you specify an initial
value of 30.
Then you deploy the object. At run time, you write a new value to myInteger of 31. If you redeploy
this object, the original value of 30 overwrites any value assigned during run time. To avoid losing
changes made during run time, upload changes before redeploying an object.

Wonderware Training

Section 3 The Runtime Environment


If you want to upload run-time changes to the Galaxy, make sure the selected objects are:

Not edited and checked in since last deployment or upload


Not in Pending Update state

Checked in

Objects whose configuration are successfully uploaded have a new version number and a change
log entry for the upload operation. The run-time objects version number also has a new version
number. That version number matches the version in the configuration database.
If you select an object that is currently checked out to you, a warning appears during run-time
upload. If you continue, you lose all configuration changes you made to the checked out object.
The Galaxy performs an Undo Check Out operation on it before the run-time attributes are copied
to the Galaxy database.
Note: You cannot upload run-time changes for objects checked out to other users.
To upload run-time changes to the Galaxy
a. Select one or more objects in the Model view or Deployment view. For example, you could
select an entire hierarchy from AppEngine down.
b. On the Object menu, click Upload Runtime Changes. The run-time attributes of the selected
objects are copied over those in the Galaxy database.

Wonderware System Platform 3.0 Course - Part 1

2-29

2-30

Module 2 Application Infrastructure

Intentionally left blank

Wonderware Training

Lab 5 Using Object Viewer

Lab 5 Using Object Viewer


Introduction
This lab illustrates the steps necessary to use Object Viewer to monitor live data from your
Galaxys runtime environment. Different watch windows are added to organize the attributes to be
monitored. The watch windows are 3then saved in a single file for future reference.

Objectives
Upon completion of this lab you should be able to:


Open Object Viewer from the ArchestrA IDE

Add attributes to watch windows to get a live feed

Create and rename watch windows within Object Viewer

Save watch windows to disk

Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.

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.

Using ObjectViewer
1. Open Object Viewer from within the ArchestrA IDE.
2. Rename the default watch window to Platform Info and add the following attribute references:


ABGRPlatform.CPULoad

ABGRPlatform.DiskSpaceFree[1]

ABGRPlatform.RAMAvailableAvg

3. Create a new watch window called Engine Info and add the following attribute references:


ABAppEngine.Scheduler.ScanPeriod

ABAppEngine.ScanState

ABAppEngine.ScanStateCmd

4. Save the watch list to you training folder (C:\Wonderware Training) with the name My Watch
Windows.

See the next page for Detailed Lab Instructions

Wonderware System Platform 3.0 Course - Part 1

2-31

2-32

Module 2 Application Infrastructure

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).

Using ObjectViewer
1. In the Model view, open Object Viewer by right-clicking the ABGRPlatform instance and
selecting View in Object Viewer.

Wonderware Training

Lab 5 Using Object Viewer


2. The Object Viewer application opens displaying the attributes of the selected object on the
right panel.
Deployed Objects section
Objects deployed on the Platform.

Attributes section
Individual attributes of the object.

Attribute Monitoring section Location


for monitoring attribute activity.

3. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the default Watch List 1 tab.

Wonderware System Platform 3.0 Course - Part 1

2-33

2-34

Module 2 Application Infrastructure


4. The Rename Tab dialog box is displayed. Enter Platform Info for the Tab Name field and
click OK.

5. The tab is now labeled Platform Info.

Wonderware Training

Lab 5 Using Object Viewer


6. On the Attribute List (right section of Object Viewer) locate and right-click on the CPULoad
attribute and select Add to Watch to add the attribute to the watch list.

Wonderware System Platform 3.0 Course - Part 1

2-35

2-36

Module 2 Application Infrastructure


7. Repeat step 6 for the following attributes:

DiskSpaceFree (enter 1 as the array index to access drive C:)


RAMAvailableAvg

8. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch
Window to add a new tab to the watch list.

Wonderware Training

Lab 5 Using Object Viewer


9. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the default Watch List 1 tab.

10. The Rename Tab dialog box displays.


Enter Engine Info for the Tab Name field and click OK.

Wonderware System Platform 3.0 Course - Part 1

2-37

2-38

Module 2 Application Infrastructure


11. On the Object List (left section of Object Viewer) select the ABAppEngine object to display
its attributes.

Wonderware Training

Lab 5 Using Object Viewer


12. On the Attribute List (right section of Object Viewer) locate the following attributes, right-click
on them, and select Add to Watch to add them to the watch list:


Scheduler.ScanPeriod

ScanState

ScanStateCmd

13. Right-click in the Watch List (bottom section of Object Viewer) and select Save As to save
the watch list to disk.

Wonderware System Platform 3.0 Course - Part 1

2-39

2-40

Module 2 Application Infrastructure


14. The Save As dialog box displays.
Navigate to the C:\Wonderware Training folder and enter My Watch Windows in the File
name field.
Click Save to save the watch list to the selected location.

Wonderware Training

Section 4 Connecting to the Field

Section 4 Connecting to the Field


Section Objectives


Be familiar with Device Integration Objects, I/O Server and Data Access Server

Overview of DI Objects.

This section provides an understanding of the Device Integration Objects, I/O Server and DA
Server. It also provides an overview of DI Objects.

Introduction
Dynamic Data Exchange (DDE)
Dynamic Data Exchange (DDE) is a communication protocol developed by Microsoft to allow
applications in the Windows environment to send/receive data and instructions to/from each other.
It implements a client-server relationship between two concurrently running applications.
The server application provides the data and accepts requests from any other application
interested in its data. Requesting applications are called clients. Some applications such as
InTouch and Microsoft Excel can simultaneously be both a client and a server.
Note: NetDDE, an older protocol used for communication over the network to Wonderware and
non-Wonderware sources, is supported on Windows XP and Windows 2000, but not on Windows
2003 Server. Communication with Wonderware sources is recommended using SuiteLink.

Wonderware System Platform 3.0 Course - Part 1

2-41

2-42

Module 2 Application Infrastructure


Wonderware 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 supported for Windows 2000, Windows 2003 Server, and Windows XP.
SuiteLink is Not a Replacement for DDE. Wonderware recommends that DDE be used for
internal client communication, and SuiteLink for communication over the network.
Each connection between a client and a server depends on your network situation.
SuiteLink provides the following benefits:


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.

Value Time Quality (VTQ) places a time stamp and quality indicator on all data values
delivered to VTQ-aware clients.

Extensive diagnostics of the data throughput, 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.
The network transport protocol is TCP/IP using Microsofts standard Winsock interface.
To use the SuiteLink Communication Protocol, the following conditions must be satisfied.




You must have Microsoft TCP/IP configured and working properly.


You must use computer names (Node Names) of no more than 15 characters.
For more information on installing and configuring Microsoft TCP/IP, see your
Microsoft Windows operating system's documentation.
Wonderware SuiteLink must be running as a service. If for some reason SuiteLink has
been stopped, you will need to start it again. (SuiteLink is automatically installed as a
Common Component when you install InTouch. It is configured to startup
automatically as a Windows Service).

DDE and SuiteLink I/O Addressing


DDE and SuiteLink identifies an element of data in an I/O data source program by using a threepart naming convention that includes the application name, topic name and item name. To obtain
data from another application, the client program opens a communication channel to the server
program by specifying these three items. Additionally, if the communication channel is between
applications running in different computers, a node name must be specified too.
Node: Name of the computer the I/O data source program or service is running on.
Application: Name of the source program or service that provides I/O data to the client
application. This is the name of the executable file without the extension.
Topic: It's an application-specific sub-group of data elements.
Item: Name of the actual individual data point to be access once the communication channel
is opened.
For example, in the case of Excel as a server program, the application name is "Excel", the topic
name is the name of the specific spreadsheet that contains the data and the item name is the
identification of the cell on the spreadsheet to/from which the data is to be read/written.

Wonderware Training

Section 4 Connecting to the Field


OPC
OPC is open connectivity in industrial automation and the enterprise systems that support industry.
Interoperability is assured through the creation and maintenance of open standards specifications.
The first standard (originally called simply the OPC Specification and now called the Data Access
Specification) resulted from the collaboration of a number of leading worldwide automation
suppliers working in cooperation with Microsoft. Originally based on Microsoft's OLE COM
(component object model) and DCOM (distributed component object model) technologies, the
specification defined a standard set of objects, interfaces and methods for use in process control
and manufacturing automation applications to facilitate interoperability. The COM/DCOM
technologies provided the framework for software products to be developed. There are now
hundreds of OPC Data Access servers and clients.
A typical analogy for needing the original Data Access Specification is printer drivers in DOS and
then in Windows. Under DOS the developer of each application had to also write a printer driver
for every printer. So AutoCAD wrote the AutoCAD application and the printer drivers. And
WordPerfect wrote the WordPerfect application and the printer drivers. They had to write a
separate printer driver for every printer they wanted to support: one for an Epson FX-80 and one
for the H-P LaserJet, and on and on. In the industrial automation world, one industrial device
manufacturer wrote their Human Machine Interface (HMI) software and a proprietary driver to each
industrial device (including every PLC brand). Another industrial device manufacturer wrote their
HMI and a proprietary driver to each industrial device (including every PLC brand, not just their
own).
Windows solved the printer driver problem by incorporating printer support into the operating
system. Now one printer driver served all the applications! And these were printer drivers that the
printer manufacturer wrote (not the application developer). Windows provided the infrastructure to
allow the industrial device driver's solution as well. Adding the OPC specification to Microsoft's
OLE technology in Windows allowed standardization. Now the industrial devices' manufacturers
could write the OPC DA Servers and the software (like HMIs) could become OPC Clients.
The resulting selfish benefit to the software suppliers was the ability to reduce their expenditures for
connectivity and focus them on the core features of the software. For the users, the benefit was
flexibility. They could now choose software suppliers based on features instead of "Do they have the
driver to my unique device?" They don't have to create a custom interface that they must bear the
full cost of creating and upgrading through operating system or device vendor changes. Users
were also assured of better quality connectivity as the OPC DA Specification codified the
connection mechanism and compliance testing. OPC interface products are built once and reused
many times; hence, they undergo continuous quality control and improvement.
The user's project cycle is shorter using standardized software components. And their cost is
lower. These benefits are real and tangible. Because the OPC standards are based in turn upon
computer industry standards, technical reliability is assured.
The original specification standardized the acquisition of process data. It was quickly realized that
communicating other types of data could benefit from standardization. Standards for Alarms &
Events, Historical Data, and Batch data were launched.

Wonderware System Platform 3.0 Course - Part 1

2-43

2-44

Module 2 Application Infrastructure


Device Integration Objects

A DeviceIntegration object (DIObjects) is an AutomationObject that represents communication


with external devices. DIObjects run on an AppEngine, and include DINetwork Objects and
DIDevice Objects. A DIDevice Object is a representation of an actual external device (for example,
a PLC or RTU) that is associated with a DINetwork Object. A DINetwork Object is a representation
of a physical connection to a DIDevice Object via the Data Access Server.

DDESuiteLinkClient
The DDESuiteLinkClient object is a key member of the core set of AutomationObjects within the
ArchestrA system infrastructure. The DDESuiteLinkClient object is a DeviceIntegration object that
allows access to a running I/O Server. A DDE or SuiteLink I/O Server can provide data points to
Galaxy application objects through the DDESuiteLinkClient object.
Note: The DDESuiteLinkClient object is compatible with all Wonderware I/O Servers and
components.
There is a one-to-one relationship between an instance of the DDESuiteLinkClient object and a
running I/O Server. If you want to reference data points in more than one I/O Server, you must
configure and deploy more than one DDESuiteLinkClient object. For example, you would need to
configure one DDESuiteLinkClient object to communicate to an ABTCP I/O Server and another
one to talk to the GEHCS I/O Server.
When you configure the DDESuiteLinkClient object, you can specify one or more I/O Server topics
to which access is required. At run time, all items that the Galaxy application requires for a
specified topic are updated with the latest values from the I/O Server. The rate at which the values
are updated depends on how the topics were configured within the target I/O Server.
If you want to connect to a DDE I/O Server, specify login information that the DDESuiteLinkClient
object uses to connect to the I/O Server.
From other objects and from scripts, you can reference the topics you configured for the
DDESuiteLinkClient object. For example, you might configure the input source for a
FieldReference object to reference an item for one of the topics. Thus, the FieldReference object
input source is receiving data from an I/O Server through the DDESuiteLinkClient object.
To aid in rapid application development, you can create a list of topic items that appear in the
ArchestrA Attribute Browser. To do this, specify the item address and associate it with a userdefined attribute name (alias). Creating the item list is not required in order to reference data from
the I/O Server.
The reference syntax for a DDESuiteLinkClient object data point is:
<objectname>.<topicname>.<itemname>

OR
<objectname>.<topicname>.<attributename>

The <objectname> is the name that you choose to give to the DDESuiteLinkClient object.

Wonderware Training

Section 4 Connecting to the Field


Each I/O topic for a DDESuiteLinkClient object is also known as a "scan group." Run-time object
attributes allow you to monitor errors related to the data quality for item values in a scan group.

InTouchProxy
The InTouchProxy Object is a gateway between Galaxy application objects and data that is
available through an InTouch application. The InTouchProxy object allows you to browse a
selected InTouch application tagname dictionary, add selected tags as attributes in the Galaxy
application, then read these attributes from the InTouch application at run time.
Note: Before using the tagname browser to browse for tags, make sure that InTouch
WindowMaker is not running on the InTouch node. WindowViewer, however, can be running. Also,
be sure that you have given share permission of Read to the InTouch folder that contains the
Tagname.X file.
The InTouchProxy object is a key member of the core set of AutomationObjects within the
ArchestrA system infrastructure. The InTouchProxy object is a DeviceIntegration object that
represents a running InTouch node. The InTouch node effectively serves as the data provider
(supporting the SuiteLink communication protocol) by providing data points to Galaxy application
objects through the InTouchProxy object.
Note: This object is compatible with InTouch v7.11 and later applications.
There is a one-to-one relationship between an instance of the InTouchProxy object and a running
InTouch node. An InTouch "node" is a unique combination of the computer name and InTouch
application. If you want to reference data points in more than one InTouch node, you must
configure and deploy more than one InTouchProxy object. For example, you would need to
configure one InTouchProxy object to get data from an InTouch application running on Computer1
and another one to get data from an InTouch application running on Computer2.
When you configure the InTouchProxy object, you might want to specify one or more existing
InTouch tagnames (items) to use as object attributes. At run time, if these attributes are added in the
client (for example, the Object Viewer watch window), they are updated with the latest values from
the InTouch items. InTouch sends a new data value for an item to the InTouchProxy object each
time the value changes. Any items that you configure for an InTouchProxy object automatically
becomes available within the ArchestrA Attribute Browser.
From other objects and from scripts, you can reference the attributes you created for InTouch
items. For example, you might configure the input source for a FieldReference object to reference
one of these InTouchProxy object attributes. Thus, the FieldReference object's input source would
be receiving data from a tag in an InTouch node through the InTouchProxy object. The reference
syntax for an InTouchProxy object data point is:
<objectname>.<InTouchTagName>

The <objectname> is the name that you choose to give to the InTouchProxy object.
The group of specified InTouch items for an InTouchProxy object is also known as the "scan
group." Only one scan group exists in the InTouchProxy object. Run-time object attributes within
the scan group allow you to monitor errors related to the data quality for InTouch item values in a
scan group.

Wonderware System Platform 3.0 Course - Part 1

2-45

2-46

Module 2 Application Infrastructure


OPCClient
The OPCClient object is a key member of the core set of AutomationObjects within the ArchestrA
system infrastructure. The OPCClient object is a DeviceIntegration (DI) object that allows access
to a running OPC Data Access (DA) Server. A third-party OPC DA Server can provide data points
to Galaxy application objects through the OPCClient object.
Note: The OPCClient object is compatible with all OPC Servers that are compliant with OPC Data
Access v2.05 or later standards.
There is a one-to-one relationship between an instance of the OPCClient object and a running
OPC DA Server. If you want to reference data points in more than one OPC DA Server, you must
configure and deploy more than one OPCClient object. For example, you would need to configure
one OPCClient object to communicate to an ABTCP OPC Server and another one to talk to the
ABCIP OPC Server.
An OPCClient object supports the following operations on I/O points for the OPC DA Server:


Subscriptions, which are implemented via scan groups. Read transactions, which are
implemented via block reads.
Write transactions, which are implemented via block writes.

Note: If you are using this object to communicate with an OPC DA Server, you must properly
configure the OPC DA Server before deploying this object.

RedundantDIObject
The RedundantDIObject provides you with the ability to configure a single object with connections
to two different data sources (proxy objects or DIDevice objects). In the event of a failure of the
active data source, this object automatically switches to the standby data source.
This capability allows clients to configure redundant connections to a field device.
The RedundantDIObject is a DeviceIntegration object that makes redundant connections to a field
device possible. If one of the source objects is unable to provide connection to the field device, the
RedundantDIObject automatically switches to the other source object for continued data
acquisition.
The way the RedundantDIObject determines that a data source is in Bad state by monitoring the
ConnectionStatus attribute common to all DIObjects, the ProtocolFailureReasonCode attribute
that reflects a failure in communication by a DAS DIObject with a field device, and the ScanState
attribute common to all ApplicationObjects. When those attributes are, respectively, Disconnected,
non-zero, or Offscan, the status of the corresponding data source object is changed and a
switchover attempt is made to the other data source.
There is a one-to-two relationship between an instance of a RedundantDIObject and a pair of
source DeviceIntegration objects.
The RedundantDIObject supports the following operations on I/O points from field devices:


Subscriptions, which are implemented via scan groups. Read transactions, which are
implemented via block reads (when available in the source DIObject). Write transactions,
which are implemented via block writes (when available in the source DIObject).

Wonderware Training

Section 4 Connecting to the Field

Note: Most ApplicationObjects in the ArchestrA environment write only the last data received in a
scan cycle. DeviceIntegrationObjects, including the RedundantDIObject, operate differently. They
queue all data received in a scan cycle and write them all in the order received.
The two source DIObjects do not have to be the same type. But they must support the same type
of DAGroups and must have the same item address space.
Note: The RedundantDIObject checks the state of its source DIObjects on every scan cycle.
Note: During configuration, one DIObject is set as the Primary DI source and the other is set as
Backup DI source. These are just the starting points. During runtime, the terms Active and Standby
apply, the configured Primary object initially being the Active object (if able to provide connection
to the field device) and the configured Backup object initially being the Standby. If the connection
to the Active object fails, then the Standby becomes the Active one and the other becomes the
Standby. This switching between Active and Standby objects can be repeated multiple times
depending on the configured switch attributes.
For complete redundancy coverage, the RedundantDIObject must be configured to have the
DAGroups that are common to both source DIObjects. When the connection fails to the Active
DIObject, all items are unsubscribed from the Active DIObject and new subscriptions are made to
the Standby DIObject. If either DIObject has unique DAGroups, it is important that the
RedundantDIObject should not be configured to use those uncommon DAGroups.
RedundantDIObjects belong to a family of objects called DINetwork objects.

Wonderware System Platform 3.0 Course - Part 1

2-47

2-48

Module 2 Application Infrastructure


I/O Server
Different I/O data sources have different requirements. Two main groups are identified:


Legacy I/O Server applications (SuiteLink, DDE, and OPC Servers) do not require a
platform on the node on which they run. They can reside on either a standalone or
workstation node.
However, the DI Objects used to communicate with those data sources such as the
DDESuiteLinkClient object, OPCClient object, and InTouchProxy objects must be
deployed to an AppEngine on a Platform. Although it is not required that these DI Objects
be installed on the same node as the data server(s) they communicate with, it is highly
recommended in order to optimize communication throughput.

For Device Integration objects like ABCIP and ABTCP DINetwork objects, both the
DAServer and the corresponding DI Objects must reside on the same computer hosting
an AppEngine.

I/O Servers can run on Workstations, provided the requirements for visualization processing, data
processing, and I/O read-writes can be easily handled by the computer. Run the I/O Server and
the corresponding DI Object on the same node where most or all of the object instances (that
obtain data from that DI Object) are deployed.
This implementation expedites the data transfer between the two components (the I/O Server and
the object instance), since they both reside on the same node. This implementation also minimizes
network traffic and increases reliability.
However, it is good practice to evaluate the overhead necessary to run each

Wonderware Training

Section 4 Connecting to the Field


Data Access Server (DA Server)
DAServers, are designed to provide simultaneous connectivity between plant floor devices and
modern DDE, SuiteLink and/or OPC based client applications. DAServers support the OPC
Data Access 2.05 specification and offer additional features beyond the standard, including
powerful diagnostics and remote configuration capabilities. They offer enhanced communication
diagnostics and performance.
Each DAServer is designed to provide simultaneous connectivity between client applications
based on Wonderware SuiteLink, OPC and DDE protocols that run on Microsoft's Windows
operating systems and the data devices supported by the specific protocol being translated.
Several standard features are available with each DA Server, including:



Compliance with OPC version 2.05


Stand-alone operation mode

Support for hot configuration, device additions and device- and server-specific parameter
modifications

A wide range of DA

Servers support connectivity to numerous protocols and products. Wonderware's current DA


Servers offering also includes support for:


Allen-Bradley's CIP protocol for ControlLogix

Allen-Bradley's TCP protocol

Allen-Bradley's DH Plus protocol

Siemens' Simatic Net S7

Modbus Serial protocol

The DAServer is like a driver: it can receive data from different controllers simultaneously. For
example, a DAServer might use OPC to access data remotely in one machine, and use InTouch to
communicate with another machine. When a DAServer transfers data, it also transfers a
timestamp and quality codes.
The DAServer is flexible enough to be used in a variety of topologies, but some topologies are
more efficient than others.
For example, the DAServer can connect to the OPC Server directly across the network, or
FactorySuite Gateway can be placed on the same machine as the OPC DAServer and SuiteLink
can be used to link the server to devices. Of the two topologies, using FactorySuite Gateway is
more efficient than connecting the DAServer directly to the OPC Server.
OPC DAServer technology also has drawbacks; for instance, data may be lost briefly without the
user realizing the loss has occurred.

Wonderware System Platform 3.0 Course - Part 1

2-49

2-50

Module 2 Application Infrastructure

Intentionally left blank

Wonderware Training

Lab 6 Connecting to the Field

Lab 6 Connecting to the Field


Introduction
In this lab the $DDESuiteLinkClient object is used to create a connection to an InControl
application running the simulation that will feed your Galaxy for the rest of this class.
The InControl application effectively provides the behavior of a regular IO Server or DA Server
connected to a real PLC.

Objectives
Upon completion of this lab you will be able to:


Create and configure a $DDESuiteLinkClient object to connect to an IO Server or DA


Server using SuiteLink as the communication protocol

Monitor the connection status of the $DDESuiteLinkClient object on runtime

Note: FOR THIS LAB ONLY!!! This time you will NOT preface the object name with your FIRST
and LAST initial. Again, this is for THIS LAB ONLY!

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.

Create the Device Integration object


1. Derived a new template from the $DDESuiteLinkClient object, name it
$ABDDESuiteLinkClient, and assign it to the AB Training template toolset.
2. Create an instance of the $ABDDESuiteLinkClient template and name it InControl.
3. Configure the General tab of the new instance as follows:

Server node: <ask your instructor>


Server name: RTEngine

Communication protocol: SuiteLink

4. On the Topic tab, add a topic called tagname and import the InControl Items List.csv file
from the C:\Wonderware Training folder.
5. In the Model view, assign the InControl instance to the ABControlSystem area.

Deploy the Object


6. On the Deployment view, assign the InControl instance to the ABAppEngine object and
deploy the object.

Wonderware System Platform 3.0 Course - Part 1

2-51

2-52

Module 2 Application Infrastructure


Verify the Connection on Runtime
7. Open Object Viewer from within the ArchestrA IDE.
8. Using the watch list created in Lab 5, create a new watch window called InControl and add
the following attribute references:

ConnectionStatus


Reconnect 

ServerName

CommunicationProtocol

ScanGroupList (enter 1 as the array index)

ServerNode

9. Save the watch list.

See the next page for Detailed Lab Instructions

Wonderware Training

Lab 6 Connecting to the Field

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 the Device Integration object


1. In the Template Toolbox, create a derived template of the $DDESuiteLinkClient object by
right-clicking the $DDESuiteLinkClient template and selecting New / Derived Template.

2. A new template is created. Use $ABDDESuiteLinkClient for the name.

3. Move the $ABDDESuiteLinkClient object to your template toolset.

Wonderware System Platform 3.0 Course - Part 1

2-53

2-54

Module 2 Application Infrastructure


4. Using the Template Toolbox and the Model view, create an instance of the
$ABDDESuiteLinkClient template. Name the new instance InControl. (Note that you will not
use your initials for this object)

Configure the Instance


5. Double-click on the InControl instance to open its configuration editor.

Wonderware Training

Lab 6 Connecting to the Field


6. On the General tab, configure the object as follows:

Server node: <ask your instructor>. The following screenshot uses MOE as an
example.

Server name: RTEngine


Communication protocol: SuiteLink

7. Select the Topic tab.

Wonderware System Platform 3.0 Course - Part 1

2-55

2-56

Module 2 Application Infrastructure


8. At the Available topics section, click the Add button, type tagname as the Topic name and
press the Enter key.

9. With the topic tagname selected, click the Import button at the Associated attributes for
tagname section.
The Open dialog box is displayed. Navigate to the C:\Wonderware Training folder, select the
InControl Items List.csv file and press the Open button.

Wonderware Training

Lab 6 Connecting to the Field


10. The content of the CSV file is loaded within the InControl object.

11. Click the Save and Close button and check in the object.

Wonderware System Platform 3.0 Course - Part 1

2-57

2-58

Module 2 Application Infrastructure


12. The Check In dialog box appears. Enter Initial configuration and setup in the Comment
field and click the OK button.

13. In the Model view, assign the InControl instance to the ABControlSystem area.

Deploy the Object


14. Select the Deployment view.

Wonderware Training

Lab 6 Connecting to the Field


15. Assign the InControl instance to the ABAppEngine object.

16. Right-click the InControl instance and select Deploy.

Wonderware System Platform 3.0 Course - Part 1

2-59

2-60

Module 2 Application Infrastructure


17. The Deploy dialog box is displayed. By default the system will set the instance On Scan as
soon as the object is deployed.

18. Leave the default settings and click the OK button.


This will display a second Deploy dialog box indicating the progress on deploying the object.
As soon as the process is complete, the Close button will be enabled.

Wonderware Training

Lab 6 Connecting to the Field


19. Click the Close button to return to the ArchestrA IDE. The different views now display the
instance in its deployed state.

Verify Connection on Runtime


20. In the Model view, open Object Viewer by right-clicking the Instance instance and selecting
View in Object Viewer.

Wonderware System Platform 3.0 Course - Part 1

2-61

2-62

Module 2 Application Infrastructure


21. The Object Viewer application opens displaying in the right panel the attributes of the
selected object. If you closed Object Viewer before, you can use File / Load Watch List to
open the file you saved on the previous Lab.

22. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch
Window to add a new tab to the watch list.

Wonderware Training

Lab 6 Connecting to the Field


23. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the default Watch List 1 tab.

24. The Rename Tab dialog box is displayed. Enter InControl for the Tab Name field and click
OK.

25. On the Attribute List (left section of Object Viewer) locate the following attributes, right-click
on them, and select Add to Watch to add them to the watch list:


ConnectionStatus

Reconnect

ServerName

ServerNode

CommunicationProtocol

ScanGroupList (enter 1 as the array index)

Wonderware System Platform 3.0 Course - Part 1

2-63

2-64

Module 2 Application Infrastructure


26. Right-click in the Watch List (bottom section of Object Viewer) and select Save to save the
watch list to disk.

Wonderware Training

Module 3

Application Objects
Section 1 Templates and Instances

3-5

Section 2 The $UserDefined Object

3-9

Lab 7 Heat Exchanger

3-11

Section 3 Change Control and Propagation

3-27

Lab 8 Change Control and Propagation

3-29

Section 4 The $AnalogDevice Object


Lab 9 Meter
Section 5 The $DiscreteDevice Object
Lab 10 Valve, Pump and Motor
Section 6 Containment
Lab 11 Mixer

3-35
3-37
3-41
3-45
3-61
3-67

3-2

Module 3 Application Objects

Wonderware Training

3-3

Module Objectives
Be able to


Identify and work with templates

Derive and configure templates

Wonderware System Platform 3.0 Course - Part 1

3-4

Module 3 Application Objects

Wonderware Training

Section 1 Templates and Instances

Section 1 Templates and Instances


Section Objectives
This section:


Introduces you to the concept of templates and explain how to derive a template.

This section introduces you to the concept of templates and explain how to derive a template.

Templates
One of the major benefits of Application Server is that it allows you to re-use existing engineering.
Working with templates is the best way to illustrate such capability.
A template is an entity that represents the common functional requirements of a field device
(valves, pumps), a group of field devices (skids, stations), or a user function (algorithms). These
requirements reflect information such as number of Inputs and Outputs, alarm conditions, history
needs, and security. One object template performs the equivalent functions of multiple InTouch
tags and scripts.
A template is created either from a base template or from another derived template. Base
templates are the objects provided with the Application Server. Base templates cannot be
modified.
Note: You should avoid creating instances directly from base templates, since you will not be able
to take advantage of advanced configuration and maintenance capabilities.
Templates are high-level definitions of the devices in your environment. Templates are like a
cookie cutter from which you can make many identical cookies.
You define a template for an object, like a valve, one time and then use that template when you
need to define another instance of that item. Template names have a dollar sign ($) as the first
character of their name.
A template can specify application logic, alarms, security, and historical data for an object.
A template can also define an area of your environment. You can extend and customize a template
by adding User Defined Attributes (UDAs), scripts, or extensions to meet the specific needs of
your environment. Objects inherit attributes from their parents.
Wonderware Application Server comes with predefined templates, called base templates. You
cannot change these templates. All templates you create are derived from base templates.
You can also nest templates, or contain them. Contained templates consist of nested object
templates that represent complex devices consisting of smaller, simpler devices, including valves.
A reactor is a good candidate for containment.
Templates only exist in the development environment.
Using the Diaphragm valve template, you can quickly create an Diaphragm valve instance when
you need another Diaphragm valve in your application.

Wonderware System Platform 3.0 Course - Part 1

3-5

3-6

Module 3 Application Objects

Instances
Instances are the run-time objects created from templates in Wonderware Application Server.
Instances are the specific things in your environment like processes, valves, conveyer belts,
holding tanks, and sensors. Instances can get information from sensors on the real-world device
or from application logic in Wonderware Application Server. Instances exist during run time.
In your environment, you may have a few instances or several thousand. Many of these instances
may be similar or identical, such as valves or holding tanks. Creating a new valve object from
scratch when you have several thousand identical valves is time-consuming. That's where templates
come in.

Propagation
If you need to change something about all diaphragm valves, you can change the template for the
diaphragm valve and all diaphragm valves in your application inherit the changes, assuming the
attributes are locked in the parent template. This makes it easy to maintain and update your
application.

Wonderware Training

Section 1 Templates and Instances


Planning for Object Templates
The fourth step in the workflow is to determine the templates that you will need. A template is an
element that contains common configuration parameters for objects that are used multiple times
within a project. Templates are instantiated to represent specific objects within the application.
Both the templates and the instances created from them are called ApplicationObjects.
For example, you might need multiple instances of a valve within your application, so you would
create a valve template that has all of the required properties. This allows you to define once, and
reuse multiple times. If you change the template, the changes can be propagated to the instances.
You can use simple drag-and-drop within the ArchestrA IDE to create instances from templates.

Wonderware Application Server is shipped with a number of pre-defined templates to help you
create your application quickly and easily. Review these templates and determine if any of their
functionality match the requirements of the devices on your list. If not, you can create (derive) new
templates from the supplied UserDefined templates.

For your project planning, document which existing template can be used for which objects, and
what templates you will need to create yourself.
A child template that you derive from a parent template can be highly customized. You can
implement user-defined attributes (UDAs), scripting, and alarm and history extensions.
Note: You can use the Galaxy Dump and Load Utility to create a .CSV file, which you can then
modify using a text editor and load back into the galaxy repository. This allows you to make bulk
edits to the configuration quickly and easily.

Wonderware System Platform 3.0 Course - Part 1

3-7

3-8

Module 3 Application Objects


Deriving a Template
Templates are either derived from Base Objects, existing templates or created within the
ObjectToolkit and imported.
Base templates cannot have their attributes configured. However, a template can be derived from
one of the base templates. That derived template can then be configured and customized for
attributes unique to the object it is modeling. Once that derived template is configured, instances of
it can be created. Each instance will have all the attributes of the derived template.
Upon derivation the new template is created within the default toolset. The new template is created
and placed into rename mode. The new template will inherit all attributes and associations of the
original template that were locked. If the default toolset does not exist then the system will create it
when the derived template is created. Creating a derived template is available from the Template
Toolbox and the Derivation view as well as by using keyboard shortcut keys.
When creating an instance of an object that object instance will need to be configured independently.
When deriving a template an instance of the template is created that takes on all of the attributes of
the template from which it was created. This propagation of objects of a like kind can have a
tremendous impact on the ability to create multiple instances of template derived
objects containing fully replicated attributes.

Leveraging of Template Instances


To derive a Template from another one, do the following:
1. Select the Template in the ArchestrA IDE the new Template is to be derived from.
2. Right-click the selected Template and click Derived Template on the Create submenu of the
context menu. The new Template is created, placed in the same toolset as the original
Template, and set in rename mode.
3. Rename the derived Template.
Note: The new Template is created in the Galaxy in a checked in state. It can be viewed in the
Template Toolbox or in the Derivation View of the Application Views pane.

Wonderware Training

Section 2 The $UserDefined Object

Section 2 The $UserDefined Object


Section Objectives
This section:


Introduces you to the $UserDefined object and its functionality.

This section introduces you to the $UserDefined object and its functionality.

$UserDefined Object
The UserDefined object provides the basic functionality you need to develop an ArchestrA
supervisory application. The UserDefined object provides this functionality as Field Attributes,
scripts, User Defined Attributes (UDAs), and attribute extensions.
You can configure Field Attributes as an Analog or Discrete type with one of the following access
modes:

Input. The Field Attribute only accepts input. The Field Attribute is updated based on the
value that is read from the configured input address.

InputOutput. The Field Attribute accepts input and sends output. The output destination
can optionally differ from the input source address. The InputOutput mode supports the
User writeable and Object writeable attribute categories.

Output. The Field Attribute only sends output. The Field Attribute writes to the specified
output destination. The Output mode supports the following categories:


Calculated

Calculated retentive

User writeable

Object writeable

Note: We recommend you do not extend the Field Attribute value with an Input, InputOutput, or
Output extension. If the value is extended, unstable behavior with the Field Attribute value will
occur.
The Analog Field Attribute supports the following data types:


Integer

Float

Double

The Analog Field Attribute provides the enabling and configuration for the following functionality:


Scaling of Input and Output values

History

HiHi, Hi, Lo and LoLo Limit Alarms

Rate of Change Alarms

Target Deviation Alarms

Bad Value Alarm

Statistics

Wonderware System Platform 3.0 Course - Part 1

3-9

3-10

Module 3 Application Objects


The Discrete Field Attribute provides the enabling and configuration for the following functionality:

State Labels


History

State Alarm

Bad Value Alarm

Statistics

The UserDefined object is an object that you can use to create customized objects. You can use
the UserDefined object in the following ways:
1. As a template containing Field Attributes associated to multiple variables in a system. In this
case, the object provides a simple and manageable structure as all the variables are
contained in the same object.
For example, you might create a UserDefined object called "Tank" and configure Field
Attributes that represent variables associated to the tank system:


LT100 - Analog Field Attribute - Input from a level transmitter configured with options
such as: Scaling, Limit alarms and Statistics (Min/Max/Avg).
TT100 - Analog Field Attribute - Input from a temperature transmitter configured with
options such as Rate of Change alarm and Statistics (Min/Max/Avg).

SW100a - Discrete Field Attribute - Input from a limit switch configured with options
such as State Labels and State alarm.

SW100b - Discrete Field Attribute - Input from a limit switch configured with options
such as State Labels and State alarm.

XV100a - Discrete Field Attribute - InputOutput to a solenoid valve configured with


options such as State Labels, State alarm, and Statistics (Open/Close time).

XV100b - Discrete Field Attribute - InputOutput to a solenoid valve configured with


options such as State Labels, State alarm, Statistics (Open/Close time).

References between attributes in the object can be accomplished by using relative reference,
for example:
The "Tank" can be customized to raise an alarm when both XV100a and XV100b valves are
open. For example, you can add a Boolean UDA called "ValueOpenAlarm", extend it with an
Alarm Extension, and then add the following OnExecute script:
IF me.XV100a == "Open" AND me.XV100b == "Open" THEN
me.ValueOpenAlarm = true;
ELSE
me.ValueOpenAlarm = false;
ENDIF;

2. As a "container" for other objects. An object relationship in which one object is comprised of
other objects is called containment. Containment allows you to group various objects together
to make complex objects.

Wonderware Training

Lab 7 Heat Exchanger

Lab 7 Heat Exchanger


Introduction
In this lab the $UserDefined object is used to model the heat exchanger device identified in Lab 2.
The InControl object created in the previous lab provides the connection to the live values for the
four temperature transmitters within the heat exchanger.

Objectives
Upon completion of this lab you should be able to:


Configure and use object templates to create instances that will inherited the configuration

Use the Field Attributes functionality provided by the $UserDefined object

Use the Galaxy Browser to build references to instances attributes within the Galaxy

Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.

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.

Create the Heat Exchanger Template


1. Derived a new template from the $UserDefined object, name it $ABHeatEx, and assign it to
the AB Training template toolset.
2. Add to the $ABHeatEx template four analog field attributes named T1, T2, T3 and T4.
Configure each field attribute as follows:
Access mode:

Input

Data type:

Float

Engineering units:

Deg F

Enable I/O scaling:

checked

Raw value - Maximum:

4095.0

EU value - Maximum:

250.0

EU range value - Minimum:

-5.0

EU range value - Maximum:

255.0

Wonderware System Platform 3.0 Course - Part 1

3-11

3-12

Module 3 Application Objects


Create a Heat Exchanger Instance
3. Create an instance of the $ABHeatEx template (leave the default name) and assign it to the
ABIntake area.
4. Configure the Input source of each one of the four field attributes with the following
references:
T1: InControl.tagname.HEXX0_TC1
T2: InControl.tagname.HEXX0_TC2
T3: InControl.tagname.HEXX0_TC3
T4: InControl.tagname.HEXX0_TC4

where XX is your student number.

Deploy the Object


5. Deploy the object.

View the Heat Exchanger Data on Runtime


6. Open Object Viewer from within the ArchestrA IDE.
7. Using the watch list created in Lab 5, add a new watch window called HeatEx and add the
following attribute references:
ABHeatEx.T1
ABHeatEx.T2
ABHeatEx.T3
ABHeatEx.T4
8. Save the watch list.

See the next page for Detailed Lab Instructions

Wonderware Training

Lab 7 Heat Exchanger

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 the Heat Exchanger Template


1. In the Template Toolbox, create a derived template of the $UserDefined object by rightclicking the $UserDefined template and selecting New / Derived Template.

2. A new template is created. Use $ABHeatEx for the name.

3. Move the $ABHeatEx object to your template toolset.

Wonderware System Platform 3.0 Course - Part 1

3-13

3-14

Module 3 Application Objects

4. Double-click on the $ABHeatEx template to open its configuration editor.

5. On the Field Attributes tab, click on the Add Analog button to add a new analog field
attribute.

Wonderware Training

Lab 7 Heat Exchanger


6. Configure the new field attribute as follows:
Name:

T1

Access mode:

Input

Data type:

Float

Engineering units:

Deg F

Enable I/O scaling:

checked

Raw value - Maximum:

4095.0

EU value - Maximum:

250.0

EU range value - Minimum:

-5.0

EU range value - Maximum:

255.0

Wonderware System Platform 3.0 Course - Part 1

3-15

3-16

Module 3 Application Objects


7. Repeat steps 5 and 6 to add three more field attributes. Name the attributes T2, T3 and T4.

8. Click the Save and Close button and check in the object.

9. The Check In dialog box appears. Enter Initial configuration and setup in the Comment
field and click OK.

Wonderware Training

Lab 7 Heat Exchanger


10. A second Check In dialog box is displayed indicating the progress of the operation. As soon
as the process is complete, the Close button will be enabled. Click the Close button.

Create a Heat Exchanger Instance


11. Using the Template Toolbox and the Model view, create an instance of the $ABHeatEx
template using the default name of ABHeatEx_001.
Assign the instance to the ABIntake area.

Wonderware System Platform 3.0 Course - Part 1

3-17

3-18

Module 3 Application Objects


12. Double-click on the ABHeatEx_001 instance to open its configuration editor.

13. On the Inherited field attributes section, select the T1 attribute.

Wonderware Training

Lab 7 Heat Exchanger


14. On the I/O section, click on the Input source ellipsis button to assign a reference using the
Galaxy Browser.

15. The Galaxy Browser window appears.

Wonderware System Platform 3.0 Course - Part 1

3-19

3-20

Module 3 Application Objects


16. Select the reference as follows and click OK:
From the left panel select the InControl object.
From the right panel select tagname.HEXX0_TC1 where XX is your student number. The
following screenshot uses 00 as an example.

17. The Input source attribute contains the selected reference.

18. Repeat steps 13 to 17 to configure the Input source for attributes T2, T3 and T4 using the
tagname.HEXX0_TC2, tagname.HEXX0_TC3 and tagname.HEXX0_TC4 attributes.

19. Click the Save and Close button and check in the object.

Wonderware Training

Lab 7 Heat Exchanger


20. The Check In dialog box appears. Enter Initial configuration and setup in the Comment
field and click OK.

Deploy the Object


21. Select the Deployment view, right-click the ABHeatEx_001 instance and select Deploy.

Wonderware System Platform 3.0 Course - Part 1

3-21

3-22

Module 3 Application Objects


22. The Deploy dialog box appears. By default the system will set the instance On Scan as soon
as the object is deployed. Leave the default settings and click OK.

23. A second Deploy dialog box appears indicating the progress on deploying the object. As soon
as the process is complete, the Close button will be enabled. Click Close.

Wonderware Training

Lab 7 Heat Exchanger


View the Heat Exchanger Data on Runtime
24. Open Object Viewer by right-clicking the ABHeatEx_001 instance and selecting View in
Object Viewer.

Wonderware System Platform 3.0 Course - Part 1

3-23

3-24

Module 3 Application Objects


25. The Object Viewer application opens displaying the attributes of the selected object. If you
closed Object Viewer before, you can use File / Load Watch List to open the file you saved
earlier.

26. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch
Window to add a new tab to the watch list.

Wonderware Training

Lab 7 Heat Exchanger


27. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the default Watch List 1 tab.

28. The Rename Tab dialog box is displayed. Enter HeatEx for the Tab Name field and click OK.

29. On the Attribute List (right section of Object Viewer) locate the following attributes, right-click
on them, and select Add to Watch to add them to the watch list:


T1

T2

T3

T4

Wonderware System Platform 3.0 Course - Part 1

3-25

3-26

Module 3 Application Objects


30. Right-click in the Watch List (bottom section of Object Viewer) and select Save to save the
watch list to disk.

Wonderware Training

Section 3 Change Control and Propagation

Section 3 Change Control and Propagation


Section Objectives


Introduce the concept of attribute locking, and

Explain how locking attributes can propagate to previously derived instances.

This section presents the concept of attribute locking and provides an illustrations on how locking
attributes can propagate to previously derived instances.

Locking an attribute in a Template indicates that its value is to be logically shared with all derived
objects (Templates or instances). In other words, when the value changes in the template, that
change is propagated to all the derived children of the object. When an attribute is locked in the
Template, the value can be changed in that Template but not in any of the derived children.
Based on this concept, an attribute can have one of three logical lock types:

Unlocked: Both Templates and instances can have these. Attribute is read-write. The
object has its own copy of the attribute value and is not shared by derived objects.

Locked: Only Templates can have these. Attribute value is read-write. Derived objects
dont have a unique copy of the attribute value, but instead share the locked one (it is
Locked In Parent see next item). By changing the value of a locked attribute, the logical
value of that attribute is updated in all derived objects.

Locked In Parent: Both Templates and instances can have these. Attribute is read-only.
The object does not have a unique copy of the attribute value, but references the one in
the ancestor in which the attribute is Locked.

Locking an Attribute

Wonderware System Platform 3.0 Course - Part 1

3-27

3-28

Module 3 Application Objects

To lock a Template attribute, do the following:


1. Select the desired Template in the ArchestrA IDE and launch its editor.
2. Enter a value in an attribute field in the objects editor.
3. Select the locking mechanism for that attribute. Some editors may have lock icons associated
with certain edit fields, but this possibility is within the scope of the developer of the objects
editor.
4. Save and close the object editor.
The locked attribute in any derived templates and instances created from this template are locked
and unavailable. To test this, you can derive a new template or create an instance from the original
template, and then check the new objects editor. The locked attribute is unavailable for editing.

Unlocking an Attribute
To unlock a Template attribute, do the following:
1. Select the desired Template in the ArchestrA IDE and launch its editor.
2.

Select the locking mechanism for the locked attribute in the objects editor. Some editors may
have lock icons associated with certain edit fields, but this possibility is within the scope of the
developer of the objects editor.

3. Save and close the object editor.


The previously locked attribute in any instances created from this template are now unlocked. The
previously locked attribute in any templates derived from this template are still Locked (in me). The
previously locked attribute in any instances of derived templates remain in Locked in Parent.

Wonderware Training

Lab 8 Change Control and Propagation

Lab 8 Change Control and Propagation


Introduction
This lab illustrates how to modify the template for the heat exchanger to change the engineering
units from Deg F to Celsius, locking the attribute so the changes are propagated to the existing
instance. It also illustrates that by locking the scaling configuration of the object it cannot be
changed on derived objects.

Objectives
Upon completion of this lab you should be able to:


Lock attributes in templates to control the changes that can be made on derived objects

Propagate changes from templates to derived object by modifying the value of locked
attributes

Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.

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.

Lock the Attributes


1. On the $ABHeatEx template, modify the configuration of the four field attributes as follow:
Engineering units:

Celsius and locked

Scaling section:

locked

Verify the Changes to the Existing Instance


2. Open the configuration editor for the ABHeatEx_001 instance to verify the changes made in
the template.

Redeploy the Object


3. Redeploy the object.

See the next page for Detailed Lab Instructions

Wonderware System Platform 3.0 Course - Part 1

3-29

3-30

Module 3 Application Objects

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).

Lock the Attributes


1. In the Template Toolbox, double-click on the $ABHeatEx template to open its configuration
editor.

Wonderware Training

Lab 8 Change Control and Propagation


2. In the Field attributes section, select the T1 attribute and change the configuration as follows:
Engineering units:

Celsius and locked

Scaling section:

locked

3. Repeat step 2 for field attributes T2, T3 and T4.


4. Click the Save and Close button and check in the object.

Wonderware System Platform 3.0 Course - Part 1

3-31

3-32

Module 3 Application Objects


Verify the Changes to the Existing Instance
5. The existing ABHeatEX_001 instance indicates that a change has been made to its
configuration since it was last deployed.

6. Double-click the ABHeatEx_001 instance to open its configuration editor and verify the
changes.
Select the T1 field attribute and expand the Enable I/O scaling section.

7. Click the Close button to close the editor.

Wonderware Training

Lab 8 Change Control and Propagation


Redeploy the Object
8. Select the Deployment view, right-click the ABHeatEx_001 instance and select Deploy.

Wonderware System Platform 3.0 Course - Part 1

3-33

3-34

Module 3 Application Objects


9. The Deploy dialog box appears. Leave the default settings and click OK.

10. A second Deploy dialog box appears indicating the progress on deploying the object. As soon
as the process is complete, the Close button will be enabled. Click Close.

Wonderware Training

Section 4 The $AnalogDevice Object

Section 4 The $AnalogDevice Object


Section Objectives
This section:


Introduces you to the concept of the $AnalogDevice object and its functionality.

This section introduces you to the concept of the $AnalogDevice object and its functionality.

$AnalogDevice Object
The AnalogDevice object is an ApplicationObject that can be configured as either a basic analog
device, or an analog regulator device. When configured as a basic analog device, the
AnalogDevice object follows the traditional model of a basic analog input/output object with
alarming and history. When configured as an analog regulator device, the AnalogDevice object
provides an external model of a PID controller that exists in a field device, in addition to providing
the traditional analog alarming and history capabilities.

AnalogDevice Object as a Basic Analog Input/Output Object


AnalogDevice Object as an Analog Regulator Object

AnalogDevice Object as a Basic Analog Input/Output Object


When configured as a basic analog device, this object provides a means for reading and optionally
writing analog signals from the field or from another object. The basic I/O characteristics are:

The process value (PV) is read from the field (except when the AnalogDevice object is
configured to be in Manual mode).


You can configure the AnalogDevice object to enable or disable analog output. If you
enable output, you can configure the output destination address to be the same (default)
or different from the input source address. Commands to change the PV will result in an
output to field. For data integrity, the value of PV represents the value read from the
external controller (except when the AnalogDevice object is in Manual mode), not the
requested PV that is output to the external controller.

The input and outputs can be optionally scaled between raw counts and engineering unit
values using either linear or square-root conversions.

The AnalogDevice object supports alarming for PV conditions, such as when the PV:

Exceeds level limits, such as Lo, Hi, LoLo, and HiHi.


Exceeds rate-of-change limits, for both positive and negative directions.

Exceeds major and minor deviations from a target value.

Has a quality value of BAD.

In addition, you can configure the AnalogDevice object to allow or disallow the overriding of the PV
value. If you enable the PV override, then you can use the PV.Mode attribute to place the
AnalogDevice object into either Auto or Manual mode. When the AnalogDevice object is in Auto
mode, the PV is updated from the field and matches the value and quality of the PVAuto attribute.
When the AnalogDevice object is in Manual mode, the PVAuto attribute continues to be updated
from the field, but the PV value does not. Instead, the PV can be set by a user write or a script, and
the quality is always set to UNCERTAIN.
Finally, you can configure the AnalogDevice object to historize key variables, including PV and
PV.Mode.

Wonderware System Platform 3.0 Course - Part 1

3-35

3-36

Module 3 Application Objects


AnalogDevice Object as an Analog Regulator Object
When configured as an analog regulator device, the AnalogDevice object provides a means for
reading and optionally writing two separate analog signals from the field or from another object:
one PV value and one setpoint (SP) value. The basic I/O characteristics are:


The process value (PV) is read from the field (except when the AnalogDevice object is
configured to be in Manual mode), but is never written.

The SP value is both read from the field and written to the field. You can configure the SP
output destination address to be the same (default) or different from the input source
address. Commands to change SP result in an output to field. For data integrity, the value
of SP always represents the value read from the external controller, not the requested SP
that is output to the external controller.

The PV and SP can be optionally scaled between raw counts and engineering unit values
using either linear or square-root conversions.

The AnalogDevice object supports alarming for PV conditions, including when the PV:


Exceeds level limits, such as Lo, Hi, LoLo, and HiHi.

Exceeds rate-of-change limits, for both positive and negative directions.

Exceeds major and minor deviations from the SP value.

Has a quality value of BAD.

In addition, you can configure the AnalogDevice object to allow or disallow the overriding of the PV
value. If you enable the PV override, then you can use the PV.Mode attribute to place the
AnalogDevice object into either Auto or Manual mode. When the AnalogDevice object is in Auto
mode, the PV is updated from the field and matches the value and quality of the PVAuto attribute.
When the AnalogDevice object is in Manual mode, the PVAuto attribute continues to be updated
from the field, but the PV value does not. Instead, the PV can be set by a user write or a script, and
the quality is always set to UNCERTAIN.
Other controller-oriented features that can be configured for an AnalogDevice object of type
analog regulator include:

Controller mode (CtrlMode attribute). You can use the controller mode to govern what
types of writes are allowed to the SP value within the system. Controller mode options are
Manual, Cascade, and None. When the object is in Manual mode, only end users are
allowed to command a change in the value of SP. In Cascade mode, only scripts or other
supervisory objects are allowed to command a change to SP. Finally, if None is specified
for the controller mode, any type of write is allowed for the SP.

Control tracking. A Boolean control track flag can be read from an external device or
object. When tracking is on, the external controller "owns" the value of the SP; the SP is
purely read-only and cannot be commanded to be changed and output to the field.

Wonderware Training

Lab 9 Meter

Lab 9 Meter
Introduction
This lab illustrates how to use the $AnalogDevice object to model a meter template which will be
used later to create the objects for the mixer level and temperature transmitters identified in Lab 2.
The template created in this lab will be integrated later with other templates to form the mixer
object; because of this, no instances will be created yet for this object.

Objectives
Upon completion of this lab you should be able to:


Configure an $AnalogDevice object

Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.

General Steps
Create the Meter template
1. Derived a new template from the $AnalogDevice object, name it $ABMeter, and assign it to
the AB Training template toolset.
2. Configure the object as follows:
Type:

Analog (locked)

Enable analog output:

Unchecked (locked)

Enable PV override:

Unchecked (locked)

Enable I/O scaling:

checked (locked)

Raw value Minimum:

0.0 (locked)

Raw value Maximum:

4095.0 (locked)

Conversion mode:

Linear (locked)

Clamp input to EU range:

unchecked (locked)

See the next page for Detailed Lab Instructions

Wonderware System Platform 3.0 Course - Part 1

3-37

3-38

Module 3 Application Objects

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 the Meter Template


1. In the Template Toolbox, create a derived template of the $AnalogDevice object by rightclicking the $AnalogDevice template and selecting New / Derived Template.

2. Use $ABMeter for the name of the template and move it to your template toolset.

3. Double-click on the $ABMeter template to open its configuration editor.

Wonderware Training

Lab 9 Meter
4. Configure the General tab as follows:
Type:

Analog (locked)

Enable analog output:

Unchecked (locked)

Enable PV override:

Unchecked (locked)

Enable I/O scaling:

checked (locked)

Raw value Minimum:

0.0 (locked)

Raw value Maximum:

4095.0 (locked)

Conversion mode:

Linear (locked)

Clamp input to EU range:

unchecked (locked)

5. Click the Save and Close button and check in the object.

Wonderware System Platform 3.0 Course - Part 1

3-39

3-40

Module 3 Application Objects

Intentionally left blank

Wonderware Training

Section 5 The $DiscreteDevice Object

Section 5 The $DiscreteDevice Object


Section Objectives
This section:


Introduces you to the concept of the $DiscreteDevice object and its functionality.

This section introduces you to the concept of the $DiscreteDevice object and its functionality.

$DiscreteDevice Object
The DiscreteDevice object is a general purpose ApplicationObject that represents a large class of
physical equipment common in manufacturing, such as pumps, valves, motors, and conveyors.
These devices have two or more discrete physical states (for example, Open, Closed, and
Moving). The actual state of a device is monitored using a combination of discrete inputs, and a
device can be optionally controlled using a combination of discrete outputs.
The state names are configurable and are mapped to both input and output Boolean combinations
in truth-table form. The meaning of the states depends on the type of discrete device. For a pump,
the states might be configured as "Off" and "On," while for a valve they might be configured as
"Open," "Closed," and "Moving." Note that a control valve has a continuous position represented
by an analog signal of 0 to 100% and is not properly represented with a discrete device. Control
valves are best represented with the AnalogDevice object.
When a DiscreteDevice object is commanded to a new state, it sets the configured combination of
discrete outputs for that state. When one or more of its monitored discrete inputs change, the
DiscreteDevice object determines the new actual state of the equipment and sets the process
value (PV) appropriately.
Input and output states are totally independent of each other and can be configured as required by
your application; however, the input and output states can be linked by alarms. This allows the object
to detect a command timeout and uncommanded change alarms when devices
unexpectedly change, or fail to change when commanded to do so.
Historization of key attributes including the current state (PV) and commanded state (Cmd) can
also be configured.
Finally, the DiscreteDevice object supports a rich set of statistics reporting that you can enable
during configuration.

DiscreteDevice Object States


The DiscreteDevice object has two key attributes that represent the current state (PV) and the
commanded state (Cmd). Both of these are enumerations. The DiscreteDevice object can have up
to five states that can be configured with state names that are appropriate to the equipment being
monitored. The actual meanings of the states are dependent on the equipment:


Passive
The passive state represents the state of the discrete device when it is idle, stopped, or
closed (the typical non-running position). For example, the passive state for a motor might
be "Off."

First Active
The first active state (Active1) represents the state of the discrete device when it is
considered to be running. For example, the active state for a motor might be "Forward."
You can use outputs to control the first active state.

Wonderware System Platform 3.0 Course - Part 1

3-41

3-42

Module 3 Application Objects


Second Active

(Optional) Some discrete devices have more than one active state. For example, a motor
might have a second active state of "Backward." You can use outputs to control the
second active state (Active2).
Transition

(Optional) The discrete device is in a transition state any time it is changing from one valid
state to another. For example, if you have a valve with a passive state of "Off" and an
active state of "On," the transition state might be "Moving."
Fault

The fault state occurs when the feedback that is coming from the field is incorrect or
impossible based on how the discrete device works. For example, a fault would occur if
the Hi and Lo limit is being reached at the same time for a single device. Examples of fault
state names are "Error," "Bad," or "Broken."

Monitoring a Discrete Device through Inputs


If you configure the DiscreteDevice object to have inputs (feedback) from the field, the input values
are used to update the overall state of the device. A DiscreteDevice object can have up to four
inputs. After defining the inputs, map the different input combinations to the possible states for the
device.
For example, you might have a valve on your discrete device that can be either opened or closed.
You have defined the passive state of the device as Closed, the first active state as Opened, and
the fault state as Bad. You would then create references for two field inputs: one for the open
position (Valve_Open), and one for the closed position (Valve_Close). You then would map the
inputs to the defined states. For example:
Valve_Open

Valve_Close

Mapped State

Bad

Closed

Opened

Bad

where:
1=TRUE
0=FALSE

By default, when the monitored discrete inputs change, the DiscreteDevice object determines the
new actual state of the equipment and updates the value of the process value (PV) appropriately.
You can configure the DiscreteDevice object to allow or disallow overriding of the PV value. If you
enable the PV override, then the object can be placed in Auto, Manual, or Simulate modes using
the PVMode attribute.


When the object is in Auto mode, the PV updates from the field and matches the value
and quality of PVAuto.

When the object is in Manual mode, PVAuto continues to update from the field but the PV
does not. Instead, the PV can be set by a user or script and the quality is always marked
as UNCERTAIN.

Wonderware Training

Section 5 The $DiscreteDevice Object




When the object is in Simulate mode, the PV value is set equal to the Cmd value, rather
than read from the field.

Controlling a Discrete Device through Outputs


You can control (command) the passive, first active, and second active states of the discrete
device using the Cmd attribute. The transition and fault states are not commandable. When a
DiscreteDevice object is commanded to a new state, it sets an appropriate combination of discrete
outputs for that state.
For example, you might map the first active state of "Open" to a discrete device output reference
that will turn a valve to the open position. When you set the Cmd attribute to "Open," the valve is
"commanded" to be opened. If inputs (feedback) are configured for the DiscreteDevice object, the
object could then detect when the valve is actually open or closed.
Commanding a discrete device to a new state does not directly change the PV unless you have
the PVMode set to "Simulate."
Controller-oriented features for the DiscreteDevice object include:


A configurable control mode. The control mode (Manual or Cascade) determines what
types of writes are allowed to the Cmd value within the system. Manual indicates that only
users (operators) are allowed to request a change to Cmd, whereas Cascade indicates
that only scripts or other supervisory objects are allowed to request a change to Cmd.
Control tracking. A Boolean control track flag can be read from an external device or
object. When tracking is on, the external controller "owns" the value of the Cmd; the Cmd
is purely read-only and is set to the value of PV.

Alarm Capabilities
The DiscreteDevice object provides sophisticated alarming capabilities, including:


Command timeout alarm, which indicates that the PV state did not change to match the
Cmd state within a configurable timeout period.

Uncommanded change alarm, which indicates that the PV state changed from the
expected Cmd state to some other state and the quality of PV is GOOD or UNCERTAIN
(not BAD).

Individual alarms for each of Active1, Active2, and Fault state conditions.
Duration alarms for each of Active1 and Active2 states, indicating the discrete device has
been in the state for too long of a time period.

Statistical Features
The DiscreteDevice object offers advanced built-in state tracking calculations that can be used for
equipment monitoring and time-in-use tracking, including:


The most recent time durations of the Active1, Active2 and Passive states.

The total accumulated time durations of the Active1, Active2 and Passive states, with
optional alarming on the Active1 and Active2 total durations.
The number of transitions into the Active1, Active2 and Passive states.

A commandable reset of all statistics.

Wonderware System Platform 3.0 Course - Part 1

3-43

3-44

Module 3 Application Objects

Intentionally left blank

Wonderware Training

Lab 10 Valve, Pump and Motor

Lab 10 Valve, Pump and Motor


Introduction
This lab illustrates how to use the $DiscreteDevice object to model a valve, a pump and a motor
template which will be used later to create the mixers inlet and outlet valves, as well as the
transfer pumps and agitator identified in Lab 2.
Initially, the templates for the pump and the motor are quite similar. Later, you will extend the motor
template to handle the speed associated with the mixers agitator.
The templates to be created in this lab will be integrated later with other templates to form the
mixer object; because of this, no instances will be created for these objects at this time.

Objectives
Upon completion of this lab you should be able to:


Configure a $DiscreteDevice object

Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.

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.

Create the Valve Template


1. Derive a new template from the $DiscreteDevice object, name it $ABValve, and assign it to
the AB Training template toolset.

2. Configure the objects General tab as follows:


Enable inputs:

Checked (locked)

Enable outputs:

Checked (locked)

Wonderware System Platform 3.0 Course - Part 1

3-45

3-46

Module 3 Application Objects


3. Configure the objects States tab as follows:
Enable second active state:

Unchecked (locked)

Enable transition state:

Checked (locked)

State names:

(locked)

Passive state:

Closed

First Active state:

Opened

Transition state:

Traveling

Fault state:

Fault

4. Configure the objects Inputs tab as follows:


Number of Inputs:

2 (locked)

Input Name:

(locked)

Input 2 Input Name:

CLS

Input 1 Input Name:

OLS

Input to PV Map:

(locked)

0 0: Traveling
0 1: Opened
1 0: Closed
1 1: Fault
PV override:

(locked)

5. Configure the objects Outputs tab as follows:


Number of outputs:

1 (locked)

Output Name:

(locked)

Output 1 Output Name:

CmdOpen

Closed:

Unchecked (locked)

Opened:

Checked (locked)

Initial control mode:

Manual (locked)

Control tracking:

(locked)

Wonderware Training

Lab 10 Valve, Pump and Motor


Create the Pump Template
6. Derived a new template from the $DiscreteDevice object, name it $ABPump, and assign it to
the AB Training template toolset.
7. Configure the objects General tab as follows:
Enable inputs:

Checked (locked)

Enable outputs:

Checked (locked)

8. Configure the objects States tab as follows:


Enable second active
state:

Unchecked (locked)

Enable transition state:

Unchecked (locked)

State names:

(locked)

Passive state:

Stopped

First Active state:

Running

Fault state:

Fault

9. Configure the objects Inputs tab as follows:


Number of Inputs:

1 (locked)

Input Name:

(locked)

Input 1 Input Name:

FlowSwitch

Input to PV Map:

(locked)

0: Stopped
1: Running
PV override:

(locked)

10. Configure the objects Outputs tab as follows:


Number of outputs:

1 (locked)

Output Name:

(locked)

Output 1 Output Name:

CmdStart

Stopped:

Unchecked (locked)

Running:

Checked (locked)

Initial control mode:

Manual (locked)

Control tracking:

(locked)

Wonderware System Platform 3.0 Course - Part 1

3-47

3-48

Module 3 Application Objects


Create the Motor Template
11. Derived a new template from the $DiscreteDevice object, name it $ABMotor, and assign it to
the AB Training template toolset.
12. Configure the objects General tab as follows:
Enable inputs:

Checked (locked)

Enable outputs:

Checked (locked)

13. Configure the objects States tab as follows:


Enable second active state:

Unchecked (locked)

Enable transition state:

Unchecked (locked)

State names:

(locked)

Passive state:

Stopped

First Active state:

Running

Fault state:

Fault

14. Configure the objects Inputs tab as follows:


Number of Inputs:

1 (locked)

Input Name:

(locked)

Input 1 Input
Name:

AuxContact (locked)

Input to PV Map:

(locked)

0: Stopped
1: Running
PV override:

(locked)

15. Configure the objects Outputs tab as follows:


Number of outputs:

1 (locked)

Output Name:

(locked)

Output 1 Output Name:

CmdStart

Stopped:

Unchecked (locked)

Running:

Checked (locked)

Initial control mode:

Manual (locked)

Control tracking:

(locked)

Wonderware Training

Lab 10 Valve, Pump and Motor

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 the Valve Template


1. In the Template Toolbox, create a derived template of the $DiscreteDevice object by rightclicking the $DiscreteDevice template and selecting New / Derived Template.

2. Use $ABValve for the name of the template and move it to your template toolset.

3. Double-click on the $ABValve template to open its configuration editor.

Wonderware System Platform 3.0 Course - Part 1

3-49

3-50

Module 3 Application Objects


4. Configure the General tab as follows:
Enable inputs:

Checked (locked)

Enable outputs:

Checked (locked)

5. Configure the States tab as follows:


Enable second active state:

Unchecked (locked)

Enable transition state:

Checked (locked)

State names:

(locked)

Passive state:

Closed

First Active state:

Opened

Transition state:

Traveling

Fault state:

Fault

Wonderware Training

Lab 10 Valve, Pump and Motor


6. Configure the Inputs tab as follows:
Number of Inputs:

2 (locked)

Input Name:

(locked)

Input 2 Input Name:

CLS

Input 1 Input Name:

OLS

Input to PV Map:

(locked)

0 0: Traveling
0 1: Opened
1 0: Closed
1 1: Fault
PV override:

(locked)

Wonderware System Platform 3.0 Course - Part 1

3-51

3-52

Module 3 Application Objects


7. Configure the Outputs tab as follows:
Number of outputs:

1 (locked)

Output Name:

(locked)

Output 1 Output Name:

CmdOpen

Closed:

Unchecked (locked)

Opened:

Checked (locked)

Initial control mode:

Manual (locked)

Control tracking:

(locked)

8. Click the Save and Close button and check in the object.

Wonderware Training

Lab 10 Valve, Pump and Motor


Create the Pump Template
9. In the Template Toolbox, create a derived template of the $DiscreteDevice object by rightclicking the $DiscreteDevice template and selecting New / Derived Template.

10. Use $ABPump for the name of the template and move it to your template toolset.

11. . Double-click on the $ABPump template to open its configuration editor.

Wonderware System Platform 3.0 Course - Part 1

3-53

3-54

Module 3 Application Objects


12. Configure the General tab as follows:
Enable inputs:

Checked (locked)

Enable outputs: Checked (locked)

13. Configure the States tab as follows:


Enable second active state:

Unchecked (locked)

Enable transition state:

Unchecked (locked)

State names:

(locked)

Passive state:

Stopped

First Active state:

Running

Fault state:

Fault

Wonderware Training

Lab 10 Valve, Pump and Motor


14. Configure the Inputs tab as follows:
Number of Inputs:

1 (locked)

Input Name:

(locked)

Input 1 Input Name:

FlowSwitch

Input to PV Map:

(locked)

0: Stopped
1: Running
PV override:

(locked)

Wonderware System Platform 3.0 Course - Part 1

3-55

3-56

Module 3 Application Objects


15. Configure the Outputs tab as follows:
Number of outputs:

1 (locked)

Output Name:

(locked)

Output 1 Output Name:

CmdStart

Stopped:

Unchecked (locked)

Running:

Checked (locked)

Initial control mode:

Manual (locked)

Control tracking:

(locked)

16. Click the Save and Close button and check in the object.

Wonderware Training

Lab 10 Valve, Pump and Motor


Create the Motor Template
17. In the Template Toolbox, create a derived template of the $DiscreteDevice object by rightclicking the $DiscreteDevice template and selecting New / Derived Template.

18. Use $ABMotor for the name of the template and move it to your template toolset.

19. Double-click on the $ABMotor template to open its configuration editor.

Wonderware System Platform 3.0 Course - Part 1

3-57

3-58

Module 3 Application Objects


20. Configure the General tab as follows:
Enable inputs:

Checked (locked)

Enable outputs: Checked (locked)

21. Configure the States tab as follows:


Enable second active state:

Unchecked (locked)

Enable transition state:

Unchecked (locked)

State names:

(locked)

Passive state:

Stopped

First Active state:

Running

Fault state:

Fault

Wonderware Training

Lab 10 Valve, Pump and Motor


22. Configure the Inputs tab as follows:
Number of Inputs:

1 (locked)

Input Name:

(locked)

Input 1 Input Name:

AuxContact

Input to PV Map:

(locked)

0: Stopped
1: Running
PV override:

(locked)

Wonderware System Platform 3.0 Course - Part 1

3-59

3-60

Module 3 Application Objects


23. Configure the Outputs tab as follows:
Number of outputs:

1 (locked)

Output Name:

(locked)

Output 1 Output Name:

CmdStart

Stopped:

Unchecked (locked)

Running:

Checked (locked)

Initial control mode:

Manual (locked)

Control tracking:

(locked)

24. Click the Save and Close button and check in the object.

Wonderware Training

Section 6 Containment

Section 6 Containment
Section Objectives
This section illustrates the concept of containment and how it works with Application Objects and
Templates.
This section illustrates the concept of containment and how it works with Application Objects and
Templates.

Creating Contained Templates


Containment is the relationship in which one object includes another. Containment relationships
organize objects in a hierarchy. You can build objects that represent complex devices consisting of
smaller, simpler devices.
In scripts, these objects can be referred to by the name that derives from the containment
relationship. This name is called a hierarchical name.
An object can have three kinds of names, depending on if it is contained by another object. The
three names include:


Tagnames

Contained Name

Hierarchical Name

Name

Description

Tagname

The unique name of the individual object. For example, Valve1.

Contained Name

The name of the object within the context of its container object. For
example, the object whose Tagname is Valve1 may also be referred to
as Tank1.Outlet, if Tank1 contains it and it has the contained name
"Outlet".

Hierarchical Name

Hierarchical names that are fully-qualified names of a contained object


include the name of the objects that contain it.
Since the object that contains it may also be contained, there are
potentially multiple hierarchical names that refer to the same object.
For example, if:
"Reactor1" contains Tank1 (also known within Reactor1 by its contained
name "SurgeTank").
"Tank1" contains Valve1 (also known within Tank1 by its contained
name "Outlet").
Valve1 could be referred to as:
"Valve1"
"Tank1.Outlet"
"Reactor1.SurgeTank.Outlet".

Wonderware System Platform 3.0 Course - Part 1

3-61

3-62

Module 3 Application Objects


For example, an instance of a $Tank is named Tank01. An instance of $Valve called Valve01 is
contained within the instance of $Tank.
Change the contained name of Valve01 to InletValve. Now Valve01 can also be referred to by its
hierarchical name Reactor1.InletValve. The name of the contained object can be changed, though,
within the scope of the hierarchy.
Contained names can be up to 32 alphanumeric or special characters. The second character
cannot be $ and the name must include at least one letter. You cannot use spaces.
Note: Base templates cannot be contained by another template, either as the container or as the
template being contained. You can only use containment with derived templates.
Higher level objects contain lower level objects. This allows you to more closely model complex
plant equipment, like tank systems. You can nest templates to 10 levels.
Note: Objects can only contain objects like themselves. For example, ApplicationObjects can only
be contained by other ApplicationObjects. Areas can only contain other Areas.

ApplicationObject Containment
ApplicationObjects can be contained by other ApplicationObjects. This provides context for the
contained object and a naming hierarchy that provides a powerful tool for referencing objects.
Note: Base templates cannot be contained by another template, either as the container or as the
template being contained. You can only use containment with derived templates.

Wonderware Training

Section 6 Containment
An example of a containment hierarchy is a tank that contains the following objects:

Inlet Valve


Agitator

Outlet Valve

Level

Wonderware System Platform 3.0 Course - Part 1

3-63

3-64

Module 3 Application Objects


To enable referencing and flexibility within scripting, these objects can be referenced in several
different ways. Each object has a unique Tagname, such as:


Inlet Valve = InletValve01

Agitator = Agitator01

Outlet Valve = OutletValve01

Level = Level01

Wonderware Training

Section 6 Containment
Within the context of each hierarchy, the contained names are unique, in that the names only refer
to this tank system and the contained objects.
So if the tank is named Tank01, the contained names are:


Tank01.Inlet

Tank01.Agitator

Tank01.Outlet

Tank01.Level

Additionally, you can use containment references in scripts such as:




Me.Outlet: Allows a script running within the parent object to generically reference its child
outlet instance.

MyContainer.Inlet: Allows a script running in any of the children instances to reference


another child instance named Inlet that belongs to the same parent.

Wonderware System Platform 3.0 Course - Part 1

3-65

3-66

Module 3 Application Objects


Renaming Contained Objects
Before you rename a contained name of an object, make sure that the object is not checked out to
another user or currently deployed.
The new contained name must comply with naming restrictions. Template names can be up to 32
alphanumeric or special characters, including the required $ as the first character. The second
character cannot be $ and the name must include at least one letter. You cannot use spaces.
Contained names also cannot be the same contained name as an existing contained object within
the same level of hierarchy in the containment relationship.
Note: Be careful renaming contained objects. References from other objects to the object being
renamed are not automatically updated with the new name. You must update the references.
Objects with broken references receive bad quality data at run-time.
To rename an object's contained name
1. Select the object in an Application view.
2. On the Edit menu, click Rename Contained Name.
3. Type a new contained name.
All IDEs connected to the Galaxy show the object's new contained name.

Containment and the Derivation View


The Derivation View does not show containment relationships. It shows templates and instances
with regard to containment in the follow ways:


Non-contained instances show their tagnames.

Contained instances show their tagnames and hierarchical names.

Non-contained templates show their object name.

Contained templates show their hierarchical name.

Containment of instances is limited to Areas containing other Areas and AppObjects containing
other AppObjects.
Renaming can be done on an instance's tagname and contained name. A template only has a
template name.

Wonderware Training

Lab 11 Mixer

Lab 11 Mixer
Introduction
This lab uses the templates created in Labs 9 and 10 to create dedicated templates for each of the
Mixers components identified in Lab 2. Using the $UserDefined template to create a template for
the mixer itself, you will use object containment to integrate all the pieces together and build the
mixer system.
The InControl object created in Lab 6 provides the connection to the live values for each of the
objects that are part of the mixer.

Objectives
Upon completion of this lab you should be able to:


Create and configure a containment relationship between objects.

Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.

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.

Create the Mixer template


1. Derived a new template from the $UserDefined object, name it $ABMixer, and assign it to the
AB Training template toolset.

Create the Mixers Contained Templates


2. Derived three new templates from the $ABValve object, name them $Inlet1, $Inlet2 and
$Outlet, and assign them to the $ABMixer template.

3. Derived two new templates from the $ABPump object, name them $Pump1 and $Pump2, and
assign them to the $ABMixer template.

4. Derived a new templates from the $ABMotor object, name it $Agitator, and assign it to the
$ABMixer template.

Wonderware System Platform 3.0 Course - Part 1

3-67

3-68

Module 3 Application Objects


5. Derived a new template from the $ABMeter object, name it $LIT, and assign it to the
$ABMixer template. Configure the object as follows:
Engineering units:

Liters (locked)

EU value Minimum:

0.0 (locked)

EU value Maximum:

100.0 (locked)

EU range value Minimum:

-5.0 (locked)

EU range value Maximum:

105.0 (locked)

6. Derived a new template from the $ABMeter object, name it $TT, and assign it to the $ABMixer
template. Configure the object as follows:
Engineering units:

Celsius (locked)

EU value Minimum:

0.0 (locked)

EU value Maximum:

250.0 (locked)

EU range value Minimum:

-5.0 (locked)

EU range value Maximum:

255.0 (locked)

Create a Mixer Instance


7. Create an instance of the $ABMixer template (leave the default name) and assign it to the
ABLine1 area.

Wonderware Training

Lab 11 Mixer
8. Configure the input and output references for the contained objects as follows
where XX is your student number.
:

For Agitator_001
AuxContact.InputSource:

InControl.tagname.TXX0_AG_AuxContact

CmdStart.OutputDestination:

InControl.tagname.TXX0_AG_CmdStart

For Inlet1_001
CLS.InputSource:

InControl.tagname.TXX0_IV1_CLS

OLS.InputSource:

InControl.tagname.TXX0_IV1_OLS

CmdOpen.OutputDestination:

InControl.tagname.TXX0_IV1_CmdOpen

For Inlet2_001
CLS.InputSource:

InControl.tagname.TXX0_IV2_CLS

OLS.InputSource:

InControl.tagname.TXX0_IV2_OLS

CmdOpen.OutputDestination:

InControl.tagname.TXX0_IV2_CmdOpen

For LIT_001
PV.Input.InputSource:

InControl.tagname.TXX0_LT_PV

For Outlet_001
CLS.InputSource:

InControl.tagname.TXX0_OV_CLS

OLS.InputSource:

InControl.tagname.TXX0_OV_OLS

CmdOpen.OutputDestination:

InControl.tagname.TXX0_OV_CmdOpen

For Pump1_001
FlowSwitch.InputSource:

InControl.tagname.TXX0_TP1_FlowSwitch

CmdStart.OutputDestination:

InControl.tagname.TXX0_TP1_CmdStart

For Pump2_001
FlowSwitch.InputSource:

InControl.tagname.TXX0_TP2_FlowSwitch

CmdStart.OutputDestination:

InControl.tagname.TXX0_TP2_CmdStart

For TT_001
PV.Input.InputSource:

InControl.tagname.TXX0_TT_PV

Deploy the Object


9. . Deploy the object.

Wonderware System Platform 3.0 Course - Part 1

3-69

3-70

Module 3 Application Objects


View the Mixer Data in Runtime
10. Open Object Viewer from within the ArchestrA IDE.

11. Using the watch list created in Lab 5, add a new watch window called Mixer and add the
following attribute references:
Agitator_001.PV
Agitator_001.Cmd
Inlet1_001.PV
Inlet1_001.Cmd
Inlet2_001.PV
Inlet2_001.Cmd
LIT_001.PV
Outlet_001.PV
Outlet_001.Cmd
Pump1_001.PV
Pump1_001.Cmd
Pump2_001.PV
Pump2_001.Cmd
TT_001.PV

12. Save the watch list.

See the next page for Detailed Lab Instructions

Wonderware Training

Lab 11 Mixer

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 the Mixer Template


1. Create a derived template of the $UserDefined object by right-clicking the template and
selecting New / Derived Template.
2. Use $ABMixer for the name of the template and move it to your template toolset.

Create the Mixers Contained Templates


Create the Mixers Valves Templates
3. Create a derived template of the $ABValve object by right-clicking the template and selecting
New / Derived Template.
4. Use $Inlet1 for the name of the template (Notice that you will not use your initials for this
object) and assign it to the $ABMixer template to contain it within the $ABMixer object.

Wonderware System Platform 3.0 Course - Part 1

3-71

3-72

Module 3 Application Objects

5. Create a derived template of the $ABValve object by right-clicking the template and selecting
New / Derived Template.

6. Use $Inlet2 for the name of the template (Notice that you will not use your initials for this
object) and assign it to the $ABMixer template to contain it within the $ABMixer object.

7. Create a derived template of the $ABValve object by right-clicking the template and selecting
New / Derived Template.

8. Use $Outlet for the name of the template (Notice that you will not use your initials for this
object) and assign it to the $ABMixer template to contain it within the $ABMixer object.

Wonderware Training

Lab 11 Mixer
Create the Mixers Pumps and Agitator templates
9. Create a derived template of the $ABPump object by right-clicking the template and selecting
New / Derived Template.

10. Use $Pump1 for the name of the template (Notice that you will not use your initials for this
object) and assign it to the $ABMixer template to contain it within the $ABMixer object.

11. Create a derived template of the $ABPump object by right-clicking the template and selecting
New / Derived Template.

12. Use $Pump2 for the name of the template (Notice that you will not use your initials for this
object) and assign it to the $ABMixer template to contain it within the $ABMixer object.

Wonderware System Platform 3.0 Course - Part 1

3-73

3-74

Module 3 Application Objects

13. Create a derived template of the $ABMotor object by right-clicking the template and selecting
New / Derived Template.

14. Use $Agitator for the name of the template (Notice that you will not use your initials for this
object) and assign it to the $ABMixer template to contain it within the $ABMixer object.

Create the Level and Temperature Meter Templates


15. Create a derived template of the $ABMeter object by right-clicking the template and selecting
New / Derived Template.

Wonderware Training

Lab 11 Mixer
16. Use $LIT for the name of the template (Notice that you will not use your initials for this object)
and assign it to the $ABMixer template to contain it within the $ABMixer object.

17. Double-click on the $ABMixer.LIT template to open its configuration editor.

Wonderware System Platform 3.0 Course - Part 1

3-75

3-76

Module 3 Application Objects


18. Configure the General tab as follows:
Engineering units:

Liters (locked)

EU value Minimum:

0.0 (locked)

EU value Maximum:

100.0 (locked)

EU range value Minimum:

-5.0 (locked)

EU range value Maximum:

105.0 (locked)

19. Click the Save and Close button and check in the object.

20. Create a derived template of the $ABMeter object by right-clicking the template and selecting
New / Derived Template.

Wonderware Training

Lab 11 Mixer
21. Use $TT for the name of the template (Notice that you will not use your initials for this object)
and assign it to the $ABMixer template to contain it within the $ABMixer object.

22. Double-click on the $ABMixer.TT template to open its configuration editor.

Wonderware System Platform 3.0 Course - Part 1

3-77

3-78

Module 3 Application Objects


23. Configure the General tab as follows:
Engineering units:

Celsius (locked)

EU value Minimum:

0.0 (locked)

EU value Maximum:

250.0 (locked)

EU range value Minimum:

-5.0 (locked)

EU range value Maximum:

255.0 (locked)

24. Click the Save and Close button and check in the object.

Wonderware Training

Lab 11 Mixer
Create a Mixer Instance
25. Using the Template Toolbox and the Model view, create an instance of the $ABMixer
template using the default name of ABMixer_001.
Assign the instance to the ABLine1 area.

Configure the Agitator


26. Double-click on the Agitator_001 instance to open its configuration editor.

27. Select the Inputs tab and configure the Input Source Reference as follows:
AuxContact: InControl.tagname.TXX0_AG_AuxContact
where XX is your student number.

Wonderware System Platform 3.0 Course - Part 1

3-79

3-80

Module 3 Application Objects


28. Select the Outputs tab and configure the Output Destination Reference as follows:
CmdStart: InControl.tagname.TXX0_AG_CmdStart
where XX is your student number.

29. Click the Save and Close button and check in the object.

Configure Inlet1
30. Double-click on the Inlet1_001 instance to open its configuration editor.
31. Select the Inputs tab and configure the Input Source Reference as follows:
CLS:

InControl.tagname.TXX0_IV1_CLS

OLS:

InControl.tagname.TXX0_IV1_OLS

where XX is your student number.

32. Select the Outputs tab and configure the Output Destination Reference as follows:
CmdOpen: InControl.tagname.TXX0_IV1_CmdOpen
where XX is your student number.

33. Click the Save and Close button and check in the object.

Wonderware Training

Lab 11 Mixer
Configure Inlet2
34. Double-click on the Inlet2_001 instance to open its configuration editor.
35. Select the Inputs tab and configure the Input Source Reference as follows:
CLS:

InControl.tagname.TXX0_IV2_CLS

OLS:

InControl.tagname.TXX0_IV2_OLS

where XX is your student number.

36. Select the Outputs tab and configure the Output Destination Reference as follows:
CmdOpen: InControl.tagname.TXX0_IV2_CmdOpen
where XX is your student number.

37. Click the Save and Close button and check in the object.

Configure the LIT


38. Double-click on the LIT_001 instance to open its configuration editor.
39. Select the I/O tab and configure the PV input source as InControl.tagname.TXX0_LT_PV.
where XX is your student number.

40. Click the Save and Close button and check in the object.

Wonderware System Platform 3.0 Course - Part 1

3-81

3-82

Module 3 Application Objects


Configure Outlet
41. Double-click on the Outlet_001 instance to open its configuration editor.

42. Select the Inputs tab and configure the Input Source Reference as follows:
CLS:

InControl.tagname.TXX0_OV_CLS

OLS:

InControl.tagname.TXX0_OV_OLS

where XX is your student number.

43. Select the Outputs tab and configure the Output Destination Reference as follows:
CmdOpen: InControl.tagname.TXX0_OV_CmdOpen
where XX is your student number.

44. Click the Save and Close button and check in the object.

Wonderware Training

Lab 11 Mixer
Configure Pump1
45. Double-click on the Pump1_001 instance to open its configuration editor.

46. Select the Inputs tab and configure the Input Source Reference as follows:
FlowSwitch: InControl.tagname.TXX0_TP1_FlowSwitch
where XX is your student number.

47. Select the Outputs tab and configure the Output Destination Reference as follows:
CmdStart: InControl.tagname.TXX0_TP1_CmdStart
where XX is your student number.

48. Click the Save and Close button and check in the object.

Configure Pump2
49. Double-click on the Pump2_001 instance to open its configuration editor.

Wonderware System Platform 3.0 Course - Part 1

3-83

3-84

Module 3 Application Objects


50. Select the Inputs tab and configure the Input Source Reference as follows:
FlowSwitch: InControl.tagname.TXX0_TP2_FlowSwitch
where XX is your student number.

51. Select the Outputs tab and configure the Output Destination Reference as follows:
CmdStart: InControl.tagname.TXX0_TP2_CmdStart
where XX is your student number.

52. Click the Save and Close button and check in the object.

Configure the TT
53. Double-click on the TT_001 instance to open its configuration editor.

54. Select the I/O tab and configure the PV input source as InControl.tagname.TXX0_TT_PV.
where XX is your student number.

55. Click the Save and Close button and check in the object.

Wonderware Training

Lab 11 Mixer
Deploy the Object
56. Select the Deployment view, right-click the ABMixer_001 instance and select Deploy.

57. The Deploy dialog box displays. By default the system will do a Cascade Deploy of all 9
objects in the containment relationship and set all instances On Scan as soon as the objects
are deployed. Leave the default settings and click OK.

58. A second Deploy dialog box displays indicating the progress on deploying all 9 objects. As
soon as the process is complete, the Close button will be enabled. Click Close.

Wonderware System Platform 3.0 Course - Part 1

3-85

3-86

Module 3 Application Objects


View the Mixer Data in Runtime
59. Open Object Viewer by right-clicking the ABMixer_001 instance and selecting View in
Object Viewer. If you closed Object Viewer before, you can use File / Load Watch List to
open the file you saved earlier.

60. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch
Window to add a new tab to the watch list.

61. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the watch list to Mixer.

Wonderware Training

Lab 11 Mixer
62. Using the Object List (left section of Object Viewer) and the Attribute List (right section of
Object Viewer), locate and add the following attributes to the selected watch list by rightclicking on each attribute and selecting Add to Watch:
For Agitator_001

PV
Cmd

For Inlet1_001

PV
Cmd

For Inlet2_001

PV
Cmd

For LIT_001

PV

For Outlet_001

PV
Cmd

For Pump1_001

PV
Cmd

For Pump2_001

PV
Cmd

For TT_001

PV

63. Right-click in the Watch List (bottom section of Object Viewer) and select Save to save the
watch list to disk.

Wonderware System Platform 3.0 Course - Part 1

3-87

3-88

Module 3 Application Objects

Intentionally left blank

Wonderware Training

Module 4

Extending the Objects


Section 1 UDAs

4-3

Section 2 Extensions

4-7

Lab 12 Motor Speed


Section 3 Introduction to QuickScript .NET

4-11
4-19

Lab 13 DDESuiteLinkClient Auto Reconnect

4-51

Lab 14 Automatic Reference Configuration

4-57

4-2

Module 4 Extending the Objects

Module Objectives


Be able to work with extending the objects and configuring them for additional
functionality.

Wonderware Training

Section 1 UDAs

Section 1 UDAs
Section Objective
This section introduces and explains UDAs and how they are configured and used.
This section introduces and explains UDAs and how they are configured and used.

User Defined Attributes (UDAs)


UDAs (User Defined Attributes) are part of the ApplicationObject script environment. They allow
users to not only add logic to an existing ApplicationObject but also to expose new behavior via
added (user defined) attributes. More specifically, they allow users to:


Add a new attribute to an object.

Configure its data type.

Specify the attribute category.

Set initial values and locks on the new attribute.

Set whether the new attribute is an array and how many elements comprise it.

Set alarms and historization for the new attribute (done on the Extensions page).

Define security and references to other objects (done on the Extensions page).

Note: After you add an attribute to an instance, it appears in the Attribute Browser list for use with
the scripting and attribute extension functions.
Put to the extreme, scripts and UDAs can be used to create a completely new type of
ApplicationObject starting from an empty container object that has no behavior / logic itself.
You can add UDAs to a template or an instance. When you add a UDA to a template, the UDA, its
data type, and category are automatically locked in the child instances.
If UDA parameters such as initial values and security classifications are locked in the template,
they cannot be changed in child instances. If these parameters are unlocked in the template, the
initial value and security are editable and lockable in derived templates. When unlocked in either
the base or derived template, the value is editable in instances.
After you add an attribute to an instance, it appears in the Attribute Browser list for use with the
scripting and attribute extension functions.

Wonderware System Platform 3.0 Course - Part 1

4-3

4-4

Module 4 Extending the Objects


The UDAs page is comprised of three main functional areas and a set of function buttons. These
are described below.

The main areas of the UDAs page include:



UDAs list: Lists all UDAs currently associated with the object. Click the Add button to add
a new UDA.

Inherited UDAs list: Lists all UDAs associated with the object's parent. The object
automatically includes these UDAs. They can only be edited by modifying the parent
template.

Data type list: Shows the data type options for configuring the selected UDA.
Select from the data types Boolean, Integer, Float, Double, String, Time, ElapsedTime or
InternationalizedString.
Allowed categories are Calculated, Calculated retentive, Object writable and User writeable.
You can lock writable attributes. If you select Calculated for an attribute, only scripts running on the
same object can write to the attribute.

Wonderware Training

Section 1 UDAs
You can create an array for each data type except InternationalizedString. Select This is an
array and specify the array's length in the Number of elements box.
The Value parameter specifies the initial setting for the attribute when the object is deployed. Enter
value data for each data type. In the case of a non-arrayed Boolean, select the True/False check
box to use a True value. Clear the check box to use a False value. For an arrayed Boolean, select
the desired element and provide a default value by typing either true or false.
When using UDAs in scripting, note the following:

When using Calculated and Calculated Retentive UDAs as counters, they must be
manually initialized. For instance, if you use me.UDA=me.UDA+1 as a counter in a script,
you must also initialize the UDA with something like me.UDA=1 or me.UDA=<some attribute
value>.

Calculated UDAs can be initialized in OnScan and Execute scripts (that is, scripts with
those types of Execution Type triggers), but not Startup scripts.


Calculated Retentive UDAs must be initialized in Startup scripts, and can be initialized in
OnScan and Execute scripts. The main purpose of a Calculated Retentive UDA is to
retain the attribute's current value after a computer reboot, redundancy-related failover, or
similar occurrence in which valid checkpoint data is present. Therefore, your Startup script
should contain a statement testing the Boolean value of the attribute,
StartingFromCheckpoint, on the object's AppEngine. If the value is TRUE, you should not
initialize the UDA; if the value is FALSE, you should initialize the UDA.

Wonderware System Platform 3.0 Course - Part 1

4-5

4-6

Module 4 Extending the Objects

Intentionally left blank

Wonderware Training

Section 2 Extensions

Section 2 Extensions
Section Objective
This section describes the Output Functionality for Application Objects in the Extensions
environment.
This section provides describes the Output Functionality for Application Objects in the Extensions
environment.

Extensions
The Extensions page is comprised of five main functional areas. These are described below.

The main functional areas of the Extensions page include:




Extendable Attributes List: Lists all attributes currently associated with the object. The
list can include those added through the UDA object extension function. Select the Show
Extension Attributes check box to include attributes added on the UDA page.
InputOutput Extension Group: Use to configure an attribute so that its value is both read
from an external-reference source and written to an external-reference destination (the
source and destination may or may not be the same). The extension reads the Source
attribute's value and quality, and updates the extended attribute's value and quality every
scan. Changes read from the source are not written back to the Destination attribute.

Wonderware System Platform 3.0 Course - Part 1

4-7

4-8

Module 4 Extending the Objects




Input Extension Group: Use to configure an attribute to be a reference source for


another object. In other words, the extended attribute acquires the update value of the
Source attribute.

Output Extension Group: Use to configure an attribute to be writeable to an external


object's attribute. In other words, when the value or quality (from Bad or Initializing to
Good or Uncertain) of the extended attribute is modified, the value of the Destination
attribute is updated.
Alarm Extension Group: Use to create an alarm condition when a Boolean attribute's
value is set to TRUE.
History Extension Group: Use to historize the value of an attribute that does not already
have history capabilities.
Boolean Label Extension: Specify custom text strings for the False state and the True
state. These custom text strings appear in the Active alarm state list in the Alarm
extension area for you to select. If you are using the InTouch HMI, you can see these
custom text strings in InTouch.

To create and associate an extension with an object


1. On the Extensions page of the object's editor, select an attribute in the Extendable Attributes
List. The four extension groups dynamically change according to allowed extension rules for
the selected attribute type.
2. Select the check box of the kind of extension you want to apply to the selected attribute. The
associated parameters for each kind of extension are then made available.
3. For InputOutput Extension, enter a Source attribute by either typing in the reference string or
clicking the attribute browser button at right. Use the Attribute Browser dialog box to search for
the desired reference string in an object. Then if Destination is different from Source, click
Output Destination Differs from Input Source, and enter a Destination attribute by either
typing in the reference string or clicking the attribute browser button. An X is placed in the
InputOutput column of the selected attribute.
Caution! If you clear the Output Destination Differs from Input Source check box, the
content of the Destination box automatically becomes "---". In the run-time environment, "---"
is interpreted as the same reference as the Source value entered during configuration time. In
the run-time, you can change the Source reference. Therefore, during configuration, do not
lock the Destination parameter if you clear the Output Destination Differs from Input
Source check box.
4. For Input Extension, enter a Source attribute by either typing in the reference string or
clicking the attribute browser button at right. Use the Attribute Browser dialog box to search for
the desired reference string in an object. An X is placed in the Input column of the selected
attribute.
5. For Output Extension, enter a Destination attribute by either typing in the reference string or
clicking the attribute browser button at right. Use the Attribute Browser dialog box to search for
the desired reference string in an object. Select the Output Every Scan check box if you
want the extended attribute to write to the Destination attribute every scan period of the
object (otherwise, the write executes only when the value is modified or when quality changes
from Bad or Initializing to Good or Uncertain). An X is placed in the Output column of the
selected attribute.
6. For Alarm Extension, select a Category from the list: Discrete, Value LoLo, Value Lo,
Value Hi, Value HiHi, DeviationMinor, DeviationMajor, ROC Lo, ROC Hi, SPC, Process,
System, Batch or Software. Type a Priority level for the alarm (default is 500). Also, choose
between Use Object Description for Alarm Message or typing in another alarm message in
the Message box. An X is placed in the Alarm column of the selected attribute.

Wonderware Training

Section 2 Extensions
7. For History Extension, enter values for the remaining parameters: Force Storage Period,
Engineering Units, Value Deadband, Trend High and Trend Low, if available (depends on
the data type of the selected attribute). An X is placed in the History column of the selected
attribute.
8. Lock the value if desired. The lock symbol is available only when you are extending a
template. Otherwise, it indicates the lock condition of the value in the parent object.
9. Set the security classification for the attribute if available. See "Security Icons" in "Working
with Object Editors" for more information.
10. Save and close the object editor to include the new attribute extensions in the configured
object.

Output Functionality
The following information applies to the functionality of InputOutput and Output extensions as well as
the output function of the Field Reference, Switch and Analog Device objects.
If a single set request is made to a destination attribute during a single scan cycle, that value is
sent to the destination. During a single scan cycle, though, more than one set request to the same
destination is possible. In that case, folding occurs and the last value is sent to the destination.
The following occurs during a single scan cycle: Only the last value requested during a scan cycle
will be sent to its destination when the object executes. Its status is marked as Pending as it waits
for write confirmation from the destination object. All other set requests during that scan cycle are
marked as successfully completed.
If one or more new sets are requested during the next scan cycle, then the second scan cycle's
value is determined in the same way as described above. It is then sent to the destination when
the object executes again and the value sent to the destination during the previous scan cycle is
marked with successful completion status even if write confirmation had not been received.
In other words, within a single scan cycle, data is folded and only the last set requested is sent to
the destination. For instance, an {11,24,35,35,22,36,40} sequence of set requests will result in a
value of 40 being sent to the destination object. All other values result in successful completion
status.
The exception to the above-described functionality is for Boolean data types used in User sets
(sets from InTouch or FactorySuite Gateway). This functionality accounts for an unknown user
input rate (for instance, repeated button pushes) with a consistent object scan rate for outputs, and
therefore creates reproducible results. In this case, a combination of folding as described above
plus maintenance of a queue of one element deep in order to better meet the expectation of users.
To begin with, the first value set after the object is deployed (the default True or False) is always
written to its destination.
Subsequently, the following occurs during a single scan cycle: A two-tiered caching scheme of a
Value to be Sent and a Next Value to be Sent is implemented. The Value to be Sent is based on
data change as compared to the last value sent to the destination object. The Next Value to be
Sent is based on data change as compared to the Value to be Sent value. When the first data
change occurs, the new value is cached in the Value to be Sent queue. Folding occurs if the same
value is requested again. If another value change occurs, this second value is cached in the Next
Value to be Sent queue. Again, folding occurs if the same value is requested again.
The Value to be Sent value is sent during the next scan cycle, and the Next Value to be Sent value
is sent during the following scan cycle.

Wonderware System Platform 3.0 Course - Part 1

4-9

4-10

Module 4 Extending the Objects

In other words, for Boolean data types and User sets, the following examples apply:
Previous Scan Cycle
Value Sent

Scan Cycle Set


Requests

Value to be Sent

Next Value to be Sent

1,0,0,1,1

none

1,0,0,1,1

1,1,0,0

1,1,0,0

none

Note: In the case of Boolean data types used in Supervisory sets (sets between
ApplicationObjects and ArchestrA) or a mixture of Supervisory and User sets during a single scan
cycle, the behavior is the same as the other data types.
Important! When the same attribute is extended with an Input extension and an Output extension,
writes to the Output extension's Destination occur every scan regardless of whether the extended
attribute has changed. This behavior occurs even when the Output Every Scan check box is
cleared, increasing the potential for additional network traffic. The behavior described in this note
does not apply to an InputOutput extension.

Wonderware Training

Lab 12 Motor Speed

Lab 12 Motor Speed


Introduction
In Lab 2, you identified that the motors, such as the agitator in the mixer, have a signal that
indicates the speed of the motor when it is running, and that this speed has a setpoint associated
with it to specify the desired speed for the process.
When you created the $ABMotor template in Lab 10 using the $DiscreteDevice, it was explained
that this object does not include, by default, attributes that can be used to indicate the speed of the
motor.
In this lab the $Motor template is modified by adding the attributes and functionality necessary to
include the speed data (and its setpoint) as identified in Lab 2.

Objectives
Upon completion of this lab you should be able to:


Add and configure UDAs to your objects

Extend attributes with input and output functionality

Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.

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 and Extend the UDAs


1. Add to the $ABMotor template two Float UDAs: one Object writeable named Speed, and
another one User writeable named SpeedSP.

2. Extend the Speed attribute with an Input extension and configure its Source as ---.---.

3. Extend the SpeedSP attribute with an InputOutput extension and configure its Source
as ---.---. Leave Output destination differs from input source unchecked and lock it.

Configure the Agitator Instance


4. Configure the newly added UDAs in the Agitator_001 object as follows:
Speed.InputSource:

InControl.tagname.TXX0_AG_Speed

SpeedSP.InputSource:

InControl.tagname.TXX0_AG_SpeedSP

Wonderware System Platform 3.0 Course - Part 1

4-11

4-12

Module 4 Extending the Objects


View the Agitator Speed Data in Runtime
5. Deploy the object and open Object Viewer from within the ArchestrA IDE.

6. Using the watch list created in Lab 5, add a new watch window called Extensions and add the
following attribute references:

Agitator_001.PV


Agitator_001.Cmd

Agitator_001.Speed

Agitator_001.SpeedSP

7. With the Agitator Running, set the SpeedSP attribute to any valid float value to test it.

8. Save the watch list.

See the next page for Detailed Lab Instructions

Wonderware Training

Lab 12 Motor Speed

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).

Add and Extend the UDAs


1. Double-click the $ABMotor template to open its configuration editor.
Select the UDAs tab.

2. Click the plus icon button


configure it as follows:
Data type:

Float

Category:

Object writeable

3. Click the plus icon button


configure it as follows:
Data type:

Float

Category:

User writeable

to add a UDA to the object. Name the UDA Speed and

to add a UDA to the object. Name the UDA SpeedSP and

Wonderware System Platform 3.0 Course - Part 1

4-13

4-14

Module 4 Extending the Objects


4. Select the Extensions tab.

5. Select the Speed attribute and configure its extensions as follows:


Input extension:

checked

Source:

---.---

Wonderware Training

Lab 12 Motor Speed


6. Select the SpeedSP attribute and configure its extensions as follows:
InputOutput extension:

checked

Source:

---.---

Output destination differs


from input source:

unchecked (locked)

7. Click the Save and Close button and check in the object.

Wonderware System Platform 3.0 Course - Part 1

4-15

4-16

Module 4 Extending the Objects


Configure the Agitator Instance
8. Double-click on the Agitator_001 instance to open its configuration editor.
Select the Extensions tab.

9. Select the Speed attribute and configure its Input extension as follows:
Source: InControl.tagname.TXX0_AG_Speed
where XX is the student number.

Wonderware Training

Lab 12 Motor Speed


10. Select the SpeedSP attribute and configure its InputOutput extension as follows:
Source: InControl.tagname.TXX0_AG_SpeedSP
where XX is the student number.

11. Click the Save and Close button and check in the object.

Wonderware System Platform 3.0 Course - Part 1

4-17

4-18

Module 4 Extending the Objects


View the Agitator Speed Data in Runtime
12. Deploy the Agitator_001 object.

13. Open Object Viewer by right-clicking the Agitator_001 instance and selecting View in Object
Viewer. If you closed Object Viewer before, you can use File / Load Watch List to open the file
you saved earlier.

14. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch
Window to add a new tab to the watch list.

15. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the watch list to Extensions.

16. Add the following Agitator_001 attributes to the watch list:




PV

Cmd

Speed

SpeedSP

17. With the Agitator Running, set the SpeedSP attribute to any valid float value (e.g. 50).

18. Save the watch list.

Wonderware Training

Section 3 Introduction to QuickScript .NET

Section 3 Introduction to QuickScript .NET


Section Objective
This section introduces and explains the scripting environment and the various scripting
configuration attributes of the ApplicationObject.
This section introduces and explains the scripting environment and the various scripting
configuration attributes of the ApplicationObject

UDAs and Scripting


When using UDAs in scripting, keep the following list in mind.


If you use Calculated and Calculated retentive UDAs as counters, they must be
manually initialized. For example, if you use me.UDA=me.UDA+1 as a counter in a script,
you must also initialize the UDA with something like me.UDA=1 or me.UDA=<some
attribute value>.
Calculated UDAs can be initialized in scripts with Execution type triggers of On Scan and
Execute, but not initialized in Startup scripts.
You must initialize Calculated retentive UDAs in Startup scripts and you can initialize
these UDAs in On Scan and Execute scripts. A Calculated retentive UDA retains the
attributes current value after a computer restart, redundancy-related failover, or similar
situation in which valid checkpoint data is present. Your Startup script should contain a
statement testing the Boolean value of the StartingFromCheckpoint attribute on the
objects AppEngine. If the value is TRUE, do not initialize the UDA. If the value is FALSE,
initialize the UDA.

The ApplicationObject Script


An ApplicationObject script is developed for the purpose of adding behavior to a specific
ApplicationObject. It will execute only when a deployed object containing the script is on scan.
The script isnt directly callable from other scripts (although changing the value of an object
attribute may allow the scripts execution trigger conditions to command script execution). A script
doesnt have the concept of returning a specific value upon execution completion.
An ApplicationObject script is added to an ApplicationObject (template or instance) using the
ArchestrA IDE. The script related information is edited via the script editor. The editor exposes five
script types:

If the user selects an Execute type script, the script editor exposes one edit field for an expression
and another edit field for the script code.
The script expression acts as a filter for the invocation of Execute script execution. The expression
is evaluated every time the object that the script is attached to is executed. Dependent on the
evaluation the actual script is triggered or not.

Wonderware System Platform 3.0 Course - Part 1

4-19

4-20

Module 4 Extending the Objects


This model is fine for simple scripts that just do some simple calculations. However, as soon as it is
necessary to instantiate external objects and keep them alive across multiple executions of the
script, the simple model falls apart. In order to support those more complex scenarios the script
writer can fill in script code for the Startup() and Shutdown() methods. External objects would be
instantiated in the Startup() method and destroyed in the Shutdown() method. If finer granularity is
needed the OnScan() and OffScan() methods can be used respectively. OnScan() and OffScan()
are invoked whenever the scan state of the object changes to OnScan and OffScan, respectively.
In order to support the just described scenarios the script offers a way to mimic static variables
(e.g., variables holding an instance of an object alive across different execution cycles). This is
accomplished by using a Dim statement in the upper Declarations section of the script editor.
Variables so dimensioned stay alive for the lifetime of the object.
In contrast, Variables dimensioned in the script section are destroyed between calls to the Objects
script. In either case, dimensioned variables are only accessible from within the script. Other
scripts cannot access those variables. Also, there is no means to expose those variables as
attributes of the associated object (e.g., for debugging purposes). To expose these member
variables, they can be set to a UDA.
Due to this tight link between scripts and UDAs, a script has more open access to UDAs (of the
object that the script is attached to) than to any other attribute on the object. It could be said that
UDAs are owned by a script
A script can also leverage UDAs to persist values across different script runs. Therefore, UDAs
allow users that do not want to get exposed to the complexity of script member variables to still
mimic static variables for data types that fit into Application Server attributes.

Reference Strings
Reference strings refer to an object or to data within an object's attributes. A reference string
consists of an object's reference string plus an attribute's reference string.
AutomationObject Reference + Attribute Reference

A reference string is the object name plus the attribute name: ObjectName.AttributeName.
In TIC101.PV
TIC101 is the AutomationObject reference and PV is the attribute reference.
The AttributeName can be omitted in a reference string, PV being assumed in such cases.
Note: Some objects have a PV attribute, while others do not.
Reference strings are concatenated substrings, each no more than 32 characters separated by
periods. A substring cannot contain a period. Mathematical operator characters are not allowed. At
least one character in each substring must be non-numeric.
Note: The Galaxy resolves reference strings. If the GR is not available, resolution is done on a
peer-to-peer level. After initial resolution, an object is provided an alias that handles references to
its location across your network. If an object is relocated or renamed, the reference string
resolution is repeated and a new alias provided.

Wonderware Training

Section 3 Introduction to QuickScript .NET


Relative References
References that go up the hierarchy to parent objects are called relative references.
Relative references, such as Me, are valid reference strings. A valid reference string must always
contain at least a relative reference or one substring.
The following are valid relative references that refer to the current object:


Me

MyContainer

MyPlatform

MyEngine

MyArea

Relative references are especially useful in templates because absolute references typically do
not apply or make sense.
When you use relative references, like MyContainer, you can refer to contained objects within that
container. For example, a reference to MyContainer.InletValve.PV is equivalent to
Tank1.InletValve.PV in the following hierarchy:
Tank1

Cannot reference at this level because this is not contained

Inlet Valve (InletValve

Can reference at this level because this object is contained

Outlet Valve (OutletValve)

Can reference at this level because this object is contained

Wonderware System Platform 3.0 Course - Part 1

4-21

4-22

Module 4 Extending the Objects


Scripts Page
The Scripts page has six areas.

Wonderware Training

Section 3 Introduction to QuickScript .NET


The main areas of the Scripts page include:

Scripts list: Shows all scripts currently associated with the object. The columns indicate
which kind of trigger the script uses: Startup, On Scan, Execute, Off Scan and Shutdown.
Click the Add button to add a new script.

Inherited scripts name list: Shows all scripts associated with the object's parent. The
columns indicate which kind of trigger the script uses: Startup, On Scan, Execute, Off
Scan and Shutdown.

Aliases area: Lets you create and modify aliases that apply to the script you are working
on. Aliases are logically descriptive names for typically long ArchestrA reference strings
that you can use in the script to make the script more readable.

Declarations area: Provides a place to add variable declaration statements, such as DIM
MyArray[1] as FLOAT;. These declared variables live from the startup to the shutdown of the
object and can be used to hold values that persist from one execution of the script to
the next. They apply only to the script in which they are declared.

Basics area: Provides a location in which you set the expression, triggering conditions,
and other settings that run the script in the run-time environment. This area includes:
Configure Execution Order: Sets the execution order of multiple scripts (inherited and
local) associated with this object.

Historize Script State: Select to send the state of the script to a Wonderware Historian
Server historian, the ArchestrA historian.
Script Creation box: Shows the script you are writing.

Wonderware System Platform 3.0 Course - Part 1

4-23

4-24

Module 4 Extending the Objects


Script Development Environment
Attribute Browser
From within the Script Editor the user can leverage the Attribute-Picker tool to browse through the
attribute namespace of the hosting object and other objects to pick a certain attribute to be
included in the script code. The tool does not distinguish between attributes of on-engine and offengine objects.
Script Function Browser
Like the InTouch script editor, the name of the selected script function and its calling syntax will be
added to the script text when the user picks it in the script function browser. In addition to being
able to insert the function call, the user can also enter a type declaration statement for object
names. In addition, the browser provides the user the ability to distinguish between properties and
methods.
Browsing for COM Objects
Similar to browsing for script functions, the user can also browse for COM objects that have been
imported using the ArchestrA IDE.
Language Syntax Validation
Script language syntax validation is performed by selecting the red check mark above the script
window.
This operation will identify and inform/warn the script developer of any syntax errors in the script. A
script with syntax errors can be saved. However, an object leveraging such a script cannot be
deployed.
Support Script Code Comments
The user can insert comments to document the script code (compare with InTouch QuickScript
comments {your comment here}).

Specifying Attributes within a Script


The following sections describe how internal attributes (attributes of the object that the script is
attached to) as well as external attributes (attributes on other objects) can be referenced from
within a script.
References to both internal as well as external attributes have in common that typically the part
specifying the property is omitted meaning that the value property is meant. In this case only the
value property and the associated quality can be accessed via this attribute reference.

Specifying Internal Attributes


For internal attributes the syntax: me. + <fully qualified local part of the attribute reference> needs
to be specified.
Example:
If me.PV==Open Then
{Do something}
Endif;

Script Examples
The following script examples may be used for reference.

Wonderware Training

Section 3 Introduction to QuickScript .NET

Note: Many additional script examples may be located in the ArchestrA IDE Help files under
Enhancing an Objects Functionality/QuickScript .NET Scripting Language/Sample Scripts.
Load an XML Document from Disk and Do Look-ups on It
dim doc as System.Xml.XmlDocument;
dim node as System.Xml.XmlNode;
doc = new System.Xml.XmlDocument;
doc.Load("c:\catalog.xml");
' find the title of the book whose isbn is 044023722X
node = doc.SelectSingleNode("/catalog/book[@isbn='044023722X']/title");
LogMessage(node.InnerText);
' find all titles written by Grisham
for each node in doc.SelectNodes("/catalog/book[author/lastName='Grisham']/
title")
LogMessage(node.InnerText);
next;

Query a SQL Server Database


dim connection as System.Data.SqlClient.SqlConnection;
dim command as System.Data.SqlClient.SqlCommand;
dim reader as System.Data.SqlClient.SqlDataReader;
connection = new
System.Data.SqlClient.SqlConnection("server=(local);uid=sa;database=northwin
d");
connection.Open();
command = new System.Data.SqlClient.SqlCommand("select * from customers",
connection);
reader = command.ExecuteReader();
while reader.Read()
LogMessage(reader("CompanyName"));
endwhile;
reader.Close();
connection.Close();

Create a Look-up Table, Then Do a Look-up on It


dim zipcodes as System.Collections.Hashtable;
zipcodes = new System.Collections.Hashtable;
zipcodes["Irvine"] = 92618;
zipcodes["Mission Viejo"] = 92692;
LogMessage(zipcodes["Irvine"]);

Use DDE to Access an Excel Spreadsheet


WWPoke("excel", "sheet1", "r1c1", "Hello");
WRequest("excel", "sheet1", "r1c1", me.Greeting);
' Note: use "" to embed double quotes in strings
WWExecute("excel", "sheet1",
"[SELECT(""R1C1"")][FONT.PROPERTIES(,""Bold"")]");

Specifying External Attributes


The script developer can specify external attributes in two distinct ways:

Wonderware System Platform 3.0 Course - Part 1

4-25

4-26

Module 4 Extending the Objects


Inline Specification
Specifying external attributes inline in the script code is equivalent to how internal attributes are
used. The only difference is that in the case of external attributes the fully qualified name
including the global part (i.e. the object name) is required. Relative (e.g., MyContainer.PV) and
hierarchical names (e.g., Tank1.Inlet.Cmd) are also supported in addition to the native name
(e.g., Valve101.PV).
There are cases when the attribute name cannot be specified within the script code without
clashing with the existing script syntax. This case often applies when attributes of a Device object
referring to a data point in an actual physical device need to be referenced. Those attributes
typically use a native item syntax which often makes use of special characters (!, :, ;, etc.) that can
collide with the syntax rules of the scripting language.
To account for those cases QuickScript .NET supports the specification of an attribute reference in
the form:
Attribute(<attribute name>)
The following script snippet demonstrates its usage:
If Attribute(PLC5.Fast.N10:5) == True Then
{Do something}
Endif;

While inline specification of external attributes is very convenient (you just type in the name or pick
the right name using the attribute browser), it imposes restrictions when used in scripts attached to
templates.
Consider the following script snippet:
Valve101.ControlMode=Auto;
Valve101.Cmd=Open;
Valve101.ControlMode=Cascade;

If this script is attached to a template and the script code (script text) is locked in the template, then
any instance of this template can only meaningfully work if there is a Valve101 obviously a bad
design of the script.
The script environment offers two solutions for this problem:
1.

Usage of relative names in the script code (e.g., MyContainer.ControlMode=Auto). While this
approach works perfectly in scripts which are locked in a template, it severely constrains the
number of attributes that can be accessed this way.

2. Using aliases in the script code that link to a reference table. This option is discussed in more
detail in the next section.

Inline Attributes Shown with Unique TypeFace


Inline attributes, as interpreted by the script validator, will be shown with a unique Bold typeface so
that the script developer is aware of all references in the script. This will reduce programming
errors and typographical errors that are not intended to be interpreted as attributes but will be if no
other syntax match is found.

Alias Pointing to an Alias Table


Accessing external attributes via an alias into an external attribute reference table is the most
versatile approach when using script code in templates. However, it forces the user to deal with an
indirection.

Wonderware Training

Section 3 Introduction to QuickScript .NET


First the user has to specify an alias for an external reference (e.g., PVofInletValve) in the Alias
Reference table (see below). Then the alias can be used directly in the script code:
If PVofInletValve==Open Then
{Do something}
Endif;

This script can be locked in the template without locking down which attribute on what object is
actually used in an instance derived from this template.
The actual mapping to an attribute is done via the Alias Reference table exposed by the script
editor. The table exposes the following fields:
Alias

Reference

PVofInletValve

Valve101.PV

The Alias field is filled in automatically as the script text is parsed.


Note: Aliases do not need to specify the default property Value. Correspondingly the specified
reference does not need to include the property field.

Accessing Properties Other than Value


So far you mainly focused on the typical case when access to the Value property of an attribute is
needed; i.e., the property part of a reference can be omitted. In the rare case when the script
developer needs to access properties other than the value property, a dedicated reference is
needed for every property.
Example: Lets assume you need to read the Value property and the UpperBoundDimension1
property of the external attribute Valve101.PV. Lets further assume that you want to use inline
references. The corresponding code snippet is:
A = Valve101.PV; {reads the Value property}
B = Valve101.PV;.UpperBoundDimension1
{reads the UpperBoundDimension1 property}

The two references Valve101.PV and Valve101.PV.UpperBoundDimension1 are treated as


two completely different references.
Note: Even though the two references Valve101.PV and Valve101.PV.Value (explicitly
specifying the Value property) refer to the same property, they too are treated as two separate
references. Therefore the user should avoid mixing both ways of referring to the Value property in
a given script.

Accessing Array References


Arrays can be accessed either by referencing an individual element of an array or by referencing
the entire array. The individual element is specified by specifying the element within the square
brackets as follows:
Tag.ArrayAttribute[3]
To get an entire array, either of the following syntaxes works:
Tag.ArrayAttribute[-1]
Or

Wonderware System Platform 3.0 Course - Part 1

4-27

4-28

Module 4 Extending the Objects


Tag.ArrayAttribute

Script Execution Configuration


Each script editor enables configuration of a scripts execution settings. These settings include,
where applicable, execution trigger conditions, execution mode, and execution ordering.

Execution Trigger Conditions


Each script will have a set of execution trigger conditions associated with it. The script type will
determine a set of valid condition types.

Triggers for ApplicationObject Type Scripts


These scripts are constrained to the discrete intervals provided by the Application Engine scan
period. In effect, all event style trigger conditions specified for these scripts are logical AND with
the scan periods. In other words, the script cannot trigger any faster than the scan period of the
Application Engine.

Script Trigger - Periodically


The script will be executed based on a time interval specified by the user. Although this cannot
be determined at configuration time, at run-time, when going on-scan, the execution period will
be rounded up to the nearest multiple of the Application Engine scan period.
A time interval of zero means that the script is executed during every scan.
Note: There is no condition (or expression) specified for periodic script execution. It is
executed at the interval specified, unconditionally.

Script Trigger - While True


While a user configured expression evaluates TRUE.
A time interval is also specified. If non-zero, then at the time interval specified, the configured
expression is evaluated to determine if the script is to be executed. A time interval of zero
renders the time interval unused and causes the expression to be evaluated at the AppEngine
scan period.

Script Trigger - On True


On FALSE to TRUE transition of a user configured expression.

Script Trigger - On False


On TRUE to FALSE transition of a user configured expression.

Script Trigger - On Data Change


The script is triggered whenever the value of a user configured expression changes. The
expression evaluates to a single (not an array) analog type (integer, real, or double). Also, with
OnDataChange the Deadband is now available.

Wonderware Training

Section 3 Introduction to QuickScript .NET


Script Trigger While False
While a user configured expression evaluates FALSE.
A time interval is also specified. If non-zero, then at the time interval specified, the configured
expression is evaluated to determine if the script is to be executed. A time interval of zero
renders the time interval unused and causes the expression to be evaluated at the AppEngine
scan period.

Execution Mode
OnExecute() mode scripts can be configured to execute in one of two execution modes,
synchronous or asynchronous. All other script types are always synchronous and cannot be
configured otherwise.

Synchronous Execution
The synchronous mode is the default choice and represents serial script execution by the
ApplicationEngine in the course of calling the Execute method of all ApplicationObjects that are
on-scan in the ApplicationEngine. For satisfactory determinism, this mode requires that all scripts
execute deterministically and quickly enough to prevent an ApplicationEngine over-scan condition.

Asynchronous Execution
The asynchronous mode is used for the class of scripts that perform operations that dont meet the
above speed and determinism criteria. These scripts will be executed on a worker pool of
separate, lower priority threads than the Application Engines primary thread. No support will be
provided to establish prioritization of execution among Asynchronous mode scripts; they will all
receive the same priority.
An asynchronous script running in a separate thread can access ArchestrA attributes via normal
get/set calls. The call is marshaled over to the main engine thread and processed. The calling thread
waits for call return until main thread can process get/set request. This is OK since asynchronous
thread is usually slower and background in nature.

Asynchronous Scripts Only Apply to Execute()


Only script code written for the Execute() method of an object can be declared asynchronous.

Asynchronous Script Trigger Condition Evaluation


If an asynchronous script is currently executing, then the condition for next execution is not
evaluated and it is not executed again. Condition evaluation is always done in main thread of
engine. Therefore, only one copy of a given asynchronous script in an object can be executing at
one time.

Asynchronous Script Execution Ordering with an Object


Specification of execution order for asynchronous scripts within an object is allowed. However, this
ordering just impacts condition evaluation, not execution ordering since asynchronous scripts are
run in separate threads from each other.

Asynchronous Script Worker Threads


The hosting engine creates a pool of worker threads at startup time. These threads are used for
processing asynchronous scripts simultaneously when they are due and their trigger condition is

Wonderware System Platform 3.0 Course - Part 1

4-29

4-30

Module 4 Extending the Objects


true. Only one script can execute on one thread at a time. If an asynchronous script comes due
and no worker thread is available, it is immediately queued for execution and awaits a free worker
thread. As soon as the worker thread is free from its previous script, it executes the newly queue
script.
A default number of worker threads is to be provided. This is a configurable attribute of the Engine.

Taking an Object w/ Asynchronous Scripts OffScan


If an object is taken OffScan, either directly, or indirectly because its Engine is taken OffScan, all
in-progress asynchronous scripts for that object are immediately terminated.

Asynchronous Scripts Diagnostics and Attributes


Asynchronous scripts require some additional attributes within the script to provide the following
behavior:


Kill attribute - terminates the asynchronous script when written to.

Shutdown attribute simply a Boolean flag that requests the asynchronous script to shut
down on its own. A well-written script will check this command before and after timeconsuming operations.

Running indicator attribute indicates whether the asynchronous script is currently


executing.

Elapsed time attribute indicates the amount of time the asynchronous script has been
executing (if RunningFlag is true).

Asynchronous scripts also have the following diagnostic attribute within the engine:
Count of asynchronous scripts running indicates the number of asynchronous scripts
currently executing.

Count of asynchronous scripts waiting indicates the number of asynchronous scripts


currently queued to execute.

Watchdog Timeout
The execution time of both synchronous as well as asynchronous mode scripts is monitored
against a timeout period. All synchronous scripts on an AppEngine share the same timeout period
which is exposed as a configurable attribute of the AppEngine.
In the case of asynchronous scripts a timeout period that is shared for all asynchronous scripts does
not make sense since the needed execution time can vary by orders of magnitude between different
asynchronous scripts. In order to account for this, the timeout period can be separately configured
for each asynchronous script. It is exposed as an attribute of the script.

Attribute Access Support


In order to understand the philosophy of attribute access from within a script it is important to look
at the context that an ApplicationObject Script runs in: All objects running on an AppEngine can be
thought of as a big PLC program. At the beginning of a new scan cycle of the AppEngine all
external input values (values coming from other engines) are read in one block. Then all objects
including any associated scripts are executed. Outputs to objects on other engines are queued up
and are written out once at the end of the AppEngines scan cycle.
Following this philosophy scripts need to have direct read / write access to all attributes exposed
by objects on the same AppEngine that the script is running on. Lets use the following script
snippet to further clarify the behavior:
PID.Mode=Auto

Wonderware Training

Section 3 Introduction to QuickScript .NET


PID.SetPoint=50
PID.Mode=Cascade

This script will work independent of whether the PID object resides on the same AppEngine that
the script is executing on (on-engine) or not (off-engine). Each set operation is immediately
executed. If the PID object is on-engine then the set operation changes the value of the
corresponding attribute right away.
If the PID object is off-engine then all set operations are queued up in exactly the order they were
issued and are executed at the end of the scan cycle of the AppEngine (asynchronous set).
Get operations work accordingly. Lets consider the following script code snippet:
{For this example you assume that PID.SetPoint==30 at the start of the script}
If PID.SetPoint==30 then
PID.Mode=Auto
PID.SetPoint=50
PID.Mode=Cascade
Endif;
If PID.SetPoint==50 then
{Do something else}
Endif;

If the PID object exists and its SetPoint can be set to 50 then the second if statement will always
evaluate to true if the PID object is on-engine. However, in the off-engine case both if statements
will never evaluate to true in the same execution cycle of the script.
In other words, when a script performs an attribute set (write) operation followed, at a later point in
the script, by a read of the same attribute, the value written will not be read back if the attribute is
off-engine, rather the attribute value existing when the script commenced execution is returned
instead. In this case, the value written to the attribute will not be returned by a get (read) operation
until succeeding execution scans of the script.
Notes:


As described above a script performing read / write operations on the same attribute will
behave differently depending on whether the attribute is on-engine or off-engine. If
necessary, the script developer can avoid this situation by using a local script variable to
manage the attributes value in the course of the scripts execution. At the end of the
script, the value of the local variable is then written to the attribute.
Scripts attached to an ApplicationObject are part of the supervisory control logic. I.e., read
and write operations performed by the script are treated as SupervisoryGets / Sets.

On-Engine Attribute Access


Accesses to attributes of other AutomationObjects in the same engine will be performed in a
blocking (synchronous) fashion and any access errors will be immediately reflected in either the
quality value for a read, or the WriteStatus field for a write, before the next script statement is
executed. The script developer can check the appropriate indicator to determine that an access
operation succeeded before proceeding in the scripts execution.

Off-Engine Attribute Access


When a script accesses an off-engine AutomationObject attribute, the Local Message Exchange/
Network Message Exchange (LMX/NMX) sub-system is the provider of the attribute data. In this
case, LMX/NMX establishes a subscription for the attributes value and maintains the most
recently published value in an on-engine read-only cache. When a script reads an off-engine
AutomationObject attribute, the LMX caches most recently published value is provided to the
script. This value will not change during the execution scan of the script.

Wonderware System Platform 3.0 Course - Part 1

4-31

4-32

Module 4 Extending the Objects


When a script performs a write to an off-engine AutomationObject attribute, LMX/NMX performs
the operation asynchronously to the scripts operation. If a script reads the same attribute that it
wrote to at a previous point in the script, the script will not see the value previously written until a
succeeding script execution scan cycle. Any errors encountered by LMX/NMX during the
asynchronous write operation are not available to the script during the same execution scan but
will be reported in the attributes WriteStatus field upon status receipt from LMX/NMX. Until this
status is received from LMX/NMX, the WriteStatus field will report a pending status.

Access to Hosting Objects Attributes


Access to attributes of the ApplicationObject that hosts the script is a special case of the on-engine
scenario. The scripting environment distinguishes between two categories of attributes of the
hosting object: Regular attributes (i.e. non UDAs) and UDAs (UDA = User Defined Attribute).

Accessing Regular Attributes (non-UDAs)


In order to maintain the integrity of an object, access to regular attributes from within a script is
limited to whatever access other AutomationObjects have. This constitutes what the object has
been designed for and it must be absolutely avoided that a script could interfere and potentially
break the objects logic.
I.e., access to regular attributes is treated in the same way as access to attributes of other objects
from within the script.

Accessing UDAs
The precautions taken for regular attributes do not apply for UDAs. UDAs are added to an object
for the main purpose of having one or more scripts on this object drive them.
As a result script access to UDAs is treated exactly like the internal runtime access of a primitive to
its attributes. In particular, a script can set the quality property of a UDA on the hosting object.
However, the quality of a UDA is defaulted to GOOD.
On the other hand propagation of quality in calculations is handled in the following manner: In the
expression a = b + c, if b is bad (or initializing), the value of a is not updated and its quality is set to
BAD or (initializing). If the quality of b is uncertain then the calculation is performed, the value of a
is updated and as quality is set to uncertain.

Prevent Accessing Attributes during OnStartup(), OnShutdown()


It is NOT possible for a script to get (read) and set (write) attributes within the
AutomationObject to which the script is attached. This is explicitly prevented and the script
will not validate successfully if the user attempts to place references of any sort in the
OnStartup() or OnShutdown() methods.

Supported Data Types


For referenced attributes, all Application Server attribute types are supported. The attributes are
exposed as objects that expose a value, a quality field, and a WriteStatus field. Therefore, strictly
speaking, Application Server attributes do not constitute a data type. Instead the data type of the
value of attributes is of interest.

Wonderware Training

Section 3 Introduction to QuickScript .NET


Data Quality Handling
Two approaches to handling data quality during script execution are employed in the Application
Server script environment. The first approach, Data Quality Controlled Execution (DQCE), is used
by all script expressions and permits expression evaluation only when attributes being read by the
expression have acceptable qualities. The other approach, Data Quality Propagation (DQP), is
used by the script body and propagates the quality of attributes read by the script through the
scripts data as execution occurs.

Quality Handling in Script Expressions


Script expressions are one liners and as such it does not make sense to only execute the part of an
expression that deals with attributes of acceptable quality. I.e., the expression is either
evaluated as a whole or not at all.
If any of the input variables to the expression change to an initializing or bad quality state, the
result value reported will have a quality of initializing or bad (if there exists at least one input with
initializing and another input with bad quality, bad will have precedence over initializing quality and
be reported as the expression results quality). The result value itself is set to the default value for
the given data type (e.g., a result value of type float is set to NaN not a number) when the quality
turns unacceptable.
If the script expression is used as the trigger for the execution of a script and the quality of at least
one referenced attribute is unacceptable (i.e., initializing or bad), then the script is not triggered at
all.

Data Quality Propagation (DQP)


DQP seeks to streamline the script development task when writing scripts that robustly handle
data quality. One of the main differences between DQCE and DQP is that in the latter case the
execution of the script still happens even though some of the referenced attributes might expose
unacceptable quality. In typical cases portions of a given complex script are not affected by the
bad quality of a given attribute and therefore will be executed. As a result the script developer
needs the ability to evaluate the quality of attributes within the script and to react accordingly (e.g., by
branching into a code segment that causes the system to go into a fail safe mode.)
When using the Application Server scripting language, the script developer should understand the
following rules and behavior:

Only Referenced Attributes Expose Quality


Only referenced attributes expose quality. Local variables do not have a quality assigned. I.e.,
when assigning the value of an attribute to a local variable the quality information is lost.
Example: The following code snippet assumes that A and B are local variables of appropriate data
type.
A = Valve101.PV
{The value of A is now the value of Valve101.PV.Value. The actual name of the
Value property is spelled out for clarity purposes. The variable A just holds
the value, not the quality.}
B = Valve101.PV.Quality
{Another variable can be used to hold the quality information but no local
variable is able to hold the value and the quality information.}

Wonderware System Platform 3.0 Course - Part 1

4-33

4-34

Module 4 Extending the Objects


Attributes of Bad Quality are set to Default Value
For all attribute references used by a script, the script environment controls the reading of the
actual referenced property values and the associated quality. If the quality is bad then the value is
set to the default value based on the given data type. Particularly, the value of a variable of type
float is set to NaN (Not a Number). The rest of the scripting environment (including Script
Functions) must be capable of dealing with NaN (e.g., NaN + 4 = NaN, NaN * 5 = NaN, etc.).

Script Functions do not Leverage Quality Information


For Script Functions the in and out parameters as well as a potential return value have no
associated quality information. E.g., a Script Function for calculating the square root of a float
value might have a signature like this:
float Sqrt(float InValue)
If an attribute reference is passed in as the InValue then the quality information is stripped off and
only the value of the referenced property (typically the Value property) is passed in.
Note: A function is invoked independent of whether the quality of the referenced attribute is
acceptable or not. It is the responsibility of the script developer to ensure that the method is
invoked appropriately.

Quality Check From Within a Script


The script developer has the ability to control the execution of script blocks by evaluating the
quality of a set of leveraged attributes. It is possible to either test each attributes quality
individually
If (Valve101.PV.Quality == 192) Or
Valve101.PV.Quality == 0) Then

Or to use the quality check functions as follows:


If IsGood(Valve101.PV) Or
IsBad(Valve101.PV)) Then

Positive Script Logic


Script languages adhering to DQP encourage users to apply positive logic in the script. I.e., any
expression that is used in a control statement (examples are: IF, REPEAT, WHILE) to produce a
Boolean result will equate to a false value if the expression leverages at least one attribute that has
bad or initializing quality. I.e., condition statements are automatically evaluated as False if at
least one attribute with unacceptable quality is used in the condition statement.
Example:
If (Valve101.PV == Closed) And
(Valve102.PV == Closed) Then
Set Valve103.Cmd = Open
Else
Set Valve103.Cmd = Close
{This should be the fail safe mode}
Endif;

If the quality of Valve101.PV and Valve102.PV is acceptable then the if and else branches are
executed purely based on the value of those two attributes.
However, if at least one of the PV values has an unacceptable quality (bad or initializing) then
automatically the else branch is executed. I.e., if statements should be written in a way that the
else branch always constitutes the fail safe mode.

Wonderware Training

Section 3 Introduction to QuickScript .NET


Adhering to this standard allows script writers to take quality into account without ever explicitly
evaluating the quality of referenced attributes.
Condition statements are the only instance where a DQP enabled script language takes quality
implicitly into account. In all other cases the script execution system ignores the quality if the script
developer does not choose to test the quality explicitly. This also means that the assignment
PID1.SP = PID2.SP

is executed independent of whether the quality associated with PID2.SP is Bad or


Initializing. That might be surprising at first. However, it leads to a more consistent behavior of the
script environment. Consider the following very similar script lines:
PID1.SP = PID2.SP + 10
PID3.SP = Sqrt(Tank101.Level)
PID4.SP = PID2.SP + A
{A is a local variable}

As soon as the right side is not just a single attribute reference but involves additional statements,
the script execution system has to ignore the quality. From a users perspective it is easier if all the
listed cases are treated equally; i.e., the quality is ignored in all cases.

Numerical Comparisons and NaNs (>, <=, >, >=)


If either double or float operand is IEEE representation of not-a-number NaN in a numerical
comparison, then the result is false. This follows the IEEE 754 standard. Also, positive zero and
negative zero are considered equal.

Script Execution Error Handling


When the script execution engine experiences a script execution error the scripts current
execution scan is aborted. Script execution will be reattempted on the next engine scan after the
script has encountered an execution error. The script properties will indicate the cause of the error
in a dedicated attribute and enter an active alarm state (Script Error alarm). The alarm condition
will remain until the script subsequently completes a successful execution cycle.
Notes:


When a script execution abort occurs, the script just stops. Sometimes it might be necessary
to set the quality of some UDAs that are controlled by the aborted script to bad. The user can
accomplish this by exercising a second script that monitors the abortion of
the first script.

Failed writes constitute a normal behavior that does not constitute an alarm.
Example: A script constantly tunes the parameters of a PID loop which is typically in
control mode. However, every time when a shift changes, the PID object is set to manual
mode for a short period of time. Now the writes fail but the script just keeps going and
eventually a script run will again successfully be able to set the PID parameters.

Of course it is also possible to check the WriteStatus from within the script and react accordingly.

Alarm Type Errors


Watchdog Timeout Error
To prevent the possibility that a script can cause an overrun of the ApplicationEngine scan cycle
(e.g., by running in an infinite loop), a script is aborted after the timeout period for the script has
elapsed. The script execution infrastructure will clean up after the aborted script as best as
possible. E.g., the script infrastructure must attempt to release external objects or data base

Wonderware System Platform 3.0 Course - Part 1

4-35

4-36

Module 4 Extending the Objects


connections that were created by the script. However, it can never be guaranteed that an aborted
script has no negative side effects. E.g., the script could have started to manipulate data base
entries and could leave some table entries in an inconsistent state.
All synchronous mode scripts will be subject to the same timeout period, which is exposed as an
attribute on the AppEngine.
The script developer will be required to configure the timeout period for each Asynchronous mode
script in order to provide flexibility in accommodating the potentially time consuming operations
that these scripts are intended for.

Overflow Error
A script experiences an overflow condition. Overflow conditions not only apply to analog data
types (integer float) but also other data types (e.g., string length overflow).

Division by Zero
The division by zero error is raised only for integer operations. In the case of float values the
scripting is able to deal with + and - and also NaN (Not a Number).

Net Call Execution Errors


If a script encounters an exception during call of a .NET function call, the error will be caught and
an error message (in red) will be logged to the logger. In addition, the execution alarm Boolean
condition is raised in this case.

Pre-Installed Binary Libraries


As part of the scripting environment a single binary library is shipped. This library provides
functionality to support both generic scripting tasks and tasks requiring access to specialized
portions of Application Server

Math functions: Includes functions like Abs, Sin, Sqrt, etc.


String functions: StringLen, etc.

System functions: LogMessage, etc.

Importing Additional Binary Libraries


Script Library Packages can be added to the system and made available to the user like preinstalled script libraries.
Note: Script libraries developed with the InTouch 32-bit Extensibility toolkit can be imported and
converted to Script function Libraries.

Exporting Binary Libraries


Once imported, script functions exposed in the imported libraries can be used in any scripts. When
objects using those scripts are exported from the Galaxy (say Galaxy A) and imported into another
Galaxy (Galaxy B) the libraries once imported into Galaxy A are not automatically exported with
the object. I.e., in order to run the exported object in Galaxy B, the script libraries that the object
depends upon need to be manually copied to Galaxy B.

Wonderware Training

Section 3 Introduction to QuickScript .NET


Script Locking
Locking Scripts in Templates
From an implementation point of view it is much easier to lock both the expression controlling the
execution of an ApplicationObject script and the actual script at the same time; i.e., treat both as
one entity. This allows the system to compile both the expression and the script into only one dll
which makes deployment easier and decreases the overhead carried in each dll.
Typically an expression uses attribute references. If the user wants to lock the expression and the
associated script expression in a template then it is crucial that aliases are used in both the
expression and the script. This allows the user to specify the attributes that the aliases point to on
a per instance basis while the code is locked.
Rules on Locking of Scripts:


Script text can be locked/unlocked in a Template.

When a Script is locked in a Template, the Alias names are automatically locked also. The
Alias References are never locked. Locking of Aliases is not specified separately (it is only
done when the script itself is locked/unlocked).

The Script expression, trigger type and trigger period are group locked and can be locked
separately from the script text.

When a Script is added to a Template, all properties of the Script are editable.
When a Script is added to an Instance, all properties of the Script are editable except for
the Lock property (since lock is never editable in an Instance).

For a Script added in an Instance, all properties of the Aliases can be edited except the
Lock (since locks are never editable for Instances).

Support for .NET Constructs


QuickScript .NET is built on top of .NET and supports the following .NET constructions in its
syntax:

Declaring variables of .NET types.


Calling public constructors (with and without parameters) of .NET types.

Calling public instance methods (with and without parameters) of .NET types.

Calling public static methods (with and without parameters) of .NET types.

Calling public indexers (with one or more parameters) of .NET types.

Using .NET enumerations.

Language Definition
QSII Case Sensitivity
All QuickScript .NET keywords and variable name identifiers are not case sensitive. However, the
case is preserved throughout editor sessions.

QSII Comments
Both single line and multi-line comments are supported. Single line comments start at a in a
source code line that has no matching ending in the line. Multi-line comments start with a { and
end with a } and can span multiple lines as the name suggests.

Wonderware System Platform 3.0 Course - Part 1

4-37

4-38

Module 4 Extending the Objects


Examples:
Dim A; This is a single line comment
Dim B; {This is an example of a multiline comment}

QSII White Space


Spaces and indentation can be used as desired to improve readability, except that at least one space
must appear between adjacent identifiers, and spaces and line breaks cannot appear within
identifiers and numbers. Individual statements are distinguished by a semicolon that marks the
end of a statement.
QSII Operations that Require 1 Operand
Operation

Description

Complement

Negation

NOT

Logical NOT

QSII Operations that Require 2 Operands


Operation

Description

Multiplication

Division

Addition and Concatenation

Subtraction

Assignment

MOD

Modulo

SHL

Left Shift

SHR

Right Shift

&

Bitwise AND

Exclusive OR

Inclusive OR

**

Power

<

Less than

>

Greater than

<=

Less than or Equal to

>=

Greater than or Equal to

==

Equivalency ("is equivalent to")

<>

Not Equal to

AND

Logical AND

OR

Logical OR

QSII Precedence of Operators


The following list shows the order of precedence for evaluation of operators. The first operator in
the list is evaluated first, the second operator is evaluated second, and so on. Operators in the
same line in the list have equivalent precedence. Operators are listed from highest precedence to
lowest precedence.

Wonderware Training

Section 3 Introduction to QuickScript .NET


Precedence

Operator

1 (highest)

(, )

- (negation), NOT, ~

**

* , /, MOD

+, -

SHL, SHR

<, >, <=, > =

==, <>

&

10

11

12

13

AND

14 (lowest)

OR

QSII Variables
Variables must be declared before any other code. Local variables or attributes can be used
interchangeably within the same script. However, local variables go out of scope at the end of the
script function they are used in. However, variables declared in the general section of the script
exist and keep their value throughout the lifetime of the object that the script is associated with.
Thus this kind of variable turns into a member variable of the script class. Other scripts attached
to the same object cannot access this variable.
Variables can be used on both the left and right hand side of statements and expressions.

QSII Syntax for Variable Declaration


Each variable must be declared within the script by a separate DIM statement followed by a
semicolon The DIM statement syntax is as follows:
DIM <variable_name> [ ( <upper_bound> [, <upper_bound >[, < upper_bound >]] )
] [ AS <data_type> ];

where
variable_name ::= <letter> { <letter> | <digit> | <special_character> }
letter ::= A-Z | a-z
digit ::= 0-9
special_character ::= _
upper_bound ::= 1-2,147,483,647
data_type ::= Boolean | Discrete | Integer | Float | Real | Double | String |
Message | Time | Object

The variable name is limited to 255 Unicode characters. Note that, in contrast to attribute names,
variable names must not contain dots. Variable names and the data type identifiers are not case
sensitive. If there is a naming conflict between a declared variable and another named entity in the
script (attribute name, alias, name of an object leveraged by the script), the variable name takes
precedence over the other named entities.
For example, lets assume that your script accesses the hosting objects PV attribute in the script text
and you declare DIM PV AS Integer;. Within the declaring script, expressions using PV in a

Wonderware System Platform 3.0 Course - Part 1

4-39

4-40

Module 4 Extending the Objects


statement will refer to the value associated with the local variable PV rather than the attribute
PV.
Note: The naming convention for QuickScript.NET variables is more restrictive than in
QuickScript. In QuickScript additional special characters are allowed:
QuickScript_special_character :- _!@-?#$%\&
In contrast to QuickScript arrays with up to three dimensions are supported. Only the upper bound
of each dimension can be specified and is fixed after the declaration; i.e., a statement analogous
to VBs ReDim statement is not supported. The lower index of each array dimension is always 1.
The data type declaration (AS <data_type>) is optional. If omitted, the data type of the variable is
Integer (as in QuickScript).
The following table shows how the QuickScript .NET data types map to C++ data types. The
default value column defines which value the variable takes on when it is defined (before another
value is assigned).
Data Type
(as specified in
AS <data_type>)

Default
Value

Corresponding
C++ data type

Boolean, Discrete

False

VARIANT_BOOL

Discrete and Boolean are synonymous.


Discrete is still supported for migration
from InTouch.
True=1, False=0

Integer

long (4 bytes)

Signed
2147483648 to 2147483647

Float, Real

NaN

float (4 bytes)

Float and Real are synonymous. Real is


still supported for migration from InTouch.
For range information please refer to
Appendix

Double

NaN

Double (8 bytes)

For range information please refer to


Appendix

String, Message

(empty
string)

BSTR

Maximum length defined by BSTR


(2147483647)

Time

Based on .NETs
System.DateTime
(8 bytes)

Resolution is 100 nanoseconds, used to


reflect an absolute date / time the content
reflects the number of 100-nanosecond
intervals since 00:00 January 1, 0001.

ElapsedTime

Based on .NETs
System.TimeSpan
structure (8 bytes)

100 nanosecond ticks represents a time


span.

Object

Nothing

IDispatch pointer

Leveraged for accessing OLE


Automation servers.

Comment

Mapping of Application Server Attribute Data Types to QuickScript .NET


Data Types
Application Server data types are mapped to QuickScript .NET variable data types according to
the following table.

Wonderware Training

Section 3 Introduction to QuickScript .NET

Application Server Data Type

QuickScript
.NET Data
Type

Comments

MxBoolean

Boolean or
Discrete

True=1, False=0

MxInteger

Integer

MxFloat

Float or Real

MxDouble

Double

MxString

String or
Message

In Application Server, there is no fixed upper limit


on string length.

MxInternationalizedString

String or
Message

These strings are read-only at runtime. If script


tries to write at runtime the write will fail at
runtime with appropriate status.

MxTime

Time

The filetime content of MxTime is mapped to


Time.DateTime of the QuickScript .NET data
type. The Application Server internal
representation is based on 1601, whereas the
Script internal representation is based on 0001
(consistent with .NET system).
The time zone offset of MxTime is mapped to
Time.TimeZoneOffset.
Time.DateTime is a .NET DateTime.
Time.TimeZoneOffset is an integer.

MxElapsedTime

ElapsedTime

Same definition

MxReferenceType

String

Only the string content of the attribute is used.


The potentially pre-bound IDs are thrown away.

MxStatusType

Integer

One of the integer values listed in section. Note,


that only the status category is exposed. The
status detail is not accessible form within a script.

MxDataTypeEnum

Integer

One of the integer values listed in section.

MxSecurityClassificationEnum

Integer

One of the integer values listed in section.

MxDataQualityType

Integer

One of the integer values listed in the OPC Spec.


Data Access Custom Interface Standard. The
user can also write this (but only my attributes,
not external attributes). For example, to set the
quality of MyAttr to Good
Object.MyAttr.Quality=192. Note that access to
Quality is purely an OPC quality operation.
To access Application Servers 4 basic quality
states (Good, Bad, Uncertain, Initializing), the
user can use functions IsGood(), IsBad(),
IsUncertain(), IsInitializing(). This will allow tests
like
if (IsGood(Obj.Attr.Qstring)
Additionally, the user can set the quality using
functions SetGood(), SetBad(), SetUncertain(),
SetInitializing(); for example:
SetBad(TIC101.PV).

Wonderware System Platform 3.0 Course - Part 1

4-41

4-42

Module 4 Extending the Objects

Application Server Data Type

QuickScript
.NET Data
Type

Comments

MxQualifiedEnum

Integer or
String

Attributes of type mxQualifiedEnum can be read /


set as an integer or a string.
Example:
Dim intV1_PV as Integer;
Dim strV1_PV as String;
intV1_PV = Valve101.PV;
{ Now intV1_PV holds the ordinal value of the
qualified enumeration }
strV1_PV = Valve101.PV;
{ Now strV1_PV holds the string value of the
qualified enumeration }

MxQualifiedStruct

N/A

The data type MxQualifiedStruct is not directly


mapped to a QuickScript .NET variable data
type. Instead, functions are provided that allow
the script developer to map parts of the qualified
struct to native script data types.
Example (the actual name and signature might
change):
ToInteger(<QualifiedStruct>, StartByte)
which expects an attribute of data type
mxQualifiedStruct and a number of the first byte
that makes up a 4 byte integer. It returns a
regular integer.

QSII Numbers and String


This section describes the allowed format for specifying integer and float numbers as well as
strings in the script text.

Integers in decimal format


Integers constants in decimal defined as
IntegerConst ::=
[sign] <non-zero_digit> <digit>*
|

sign ::= + | non-zero_digit ::= 1-9


digit ::= 0-9
I.e., an integer constant is a zero or consists of an optional sign followed by one or more digits.
Leading zeros are not allowed.
Integer constants outside the range 2147483648 to 2147483647 cause an overflow error.

Integers in hexadecimal format


Prepending either 0x or 0X causes a literal integer constant to be interpreted as being in
hexadecimal notation. In this case the sign is not supported.

Wonderware Training

Section 3 Introduction to QuickScript .NET


IntegerHexConst ::=
<0><x | X> <hexdigit>*
hexdigit ::= 0-9, A-F, a-f
When entering a hexadecimal number, only 8 hexdigits (32-bits) are allowed.

Floats
Float constants are applicable as values for variables of type float / real or double. I.e., float
constants do not take the number of bytes into account. It is up the validation step of the script
(lexer / parser) to detect an overflow when too big a float constant is assigned to either a variable
of type float / real or double.
FloatConst ::=
[<sign>] <digit>* .<digit>+ [<exponent>]
|

[<sign>] <digit>+ [.<digit>* [<exponent>]]

sign ::= + | digit ::= 0 - 9


exponent ::= exponent_character [sign] <digits>+
exponent_character ::= e | E
Sign is either plus (+) or minus (); and digits are one or more decimal digits. If no digits appear
before the radix character (.), at least one must appear after the radix character. The decimal digits
can be followed by an exponent, which consists of an introductory letter (e or E) and an optionally
signed integer. If neither an exponent part nor a radix character appears, a radix character is
assumed to follow the last digit in the string.
Please note that the allowed range depends on the data type (4 byte float / real versus 8 byte
double) of the variable that the value is assigned to.

String Literals
String literals need to be surrounded by double quotes. They are referred to as quoted strings.
Within the quoted string the character \ can be used as an escape character. The following
escape characters are supported:
Escape Sequence

Description

\n

New line

\r

Carriage return

\t

Horizontal tab

\'

Single quotation mark. Single quotes can


also directly be used in a string without
using the escape sequence.

\"

Double quotation mark

\\

Backslash

\uxxxx

Represents single Unicode character


formed by the hexadecimal number xxxx.
E.g. \u0066 is the letter f. 4 digits are
required.

Wonderware System Platform 3.0 Course - Part 1

4-43

4-44

Module 4 Extending the Objects


Escape Sequence

Description

\Uxxxxxxxx

Represents single Unicode character


formed by the hexadecimal number
xxxxxxxx. E.g. \u00000066 is the letter f.
8 digits are required.

QSII Control Structures


QuickScript .NET provides four primary control structures in the scripting environment:


IF ... THEN ... ELSEIF ... ELSE ... ENDIF

FOR ... TO ... STEP ... NEXT Loop

FOR EACH ... IN ... NEXT

WHILE Loop

IF THEN ELSEIF ELSE ENDIF


The IF-THEN-ELSE-ENDIF statement is used to conditionally execute various instructions based on
the state of an expression. The syntax is as follows:
IF <boolean_expression> THEN
[statements]
[ { ELSEIF
[statements] } ]
[ ELSE
[statements] ]
ENDIF;
Where


boolean_expression is an expression that can be evaluated as a Boolean. Dependent on


the data type returned by the expression the expression is evaluated to constitute a True
or False state according to the following table:

Data Type

Mapping

Boolean, Discrete

Directly used (no mapping needed)

Integer

Value = 0 evaluated as False


Value != 0 evaluated as True

Float, Real

Value = 0 evaluated as False


Value != 0 evaluated as True

Double

Value = 0 evaluated as False


Value != 0 evaluated as True

String, Message

Cannot be mapped. Using an expression


that results in a string type as the
boolean_expression results in a script
validation error.

Time

Cannot be mapped. Using an expression


that results in a time type as the
boolean_expression results in a script
validation error.

Wonderware Training

Section 3 Introduction to QuickScript .NET


Data Type

Mapping

Object

Cannot be mapped. Using an expression


that results in an object type as the
boolean_expression results in a script
validation error.

The first block of statements is executed if boolean_expression evaluates to True. Optionally a


second block of statements can be defined after the keyword ELSE. This block is executed if the
boolean_expression evaluates to False. In order to facilitate deciding between multiple
alternatives an optional ELSEIF clause can be used as often as needed. The ELSEIF clause
allows for easy mimicking of switch statements offered by some other programming languages.
Example:
If value = 0 Then
Message = Value is zero;
ElseIf value > 0 Then
Message = Value is positive;
ElseIf value < 0 then
Message = Value is negative;
Else
{Default. Should never occur in this example}
EndIf

For consistency with InTouch Scripting, the following syntax is also supported:
IF <boolean_expression> THEN
[statements]
[ { ELSE IF
[statements] } ]
[

ELSE
[statements] ]
ENDIF;

ENDIF;
This approach basically nests a brand new IF compound statement within a previous one and
requires an additional ENDIF.

FOR TO STEP NEXT Loop


A FOR-NEXT loop is used to perform a function (or set of functions) within a script several times
during a single execution of a script. The general format of the FOR-NEXT loop is as follows:
FOR <analog_var> = <start_expression> TO <end_expression> [STEP
<change_expression>]
[statements]
[EXIT FOR;]
[statements]
NEXT;

Wonderware System Platform 3.0 Course - Part 1

4-45

4-46

Module 4 Extending the Objects


Where:


analog_var is a variable of type Integer, Float, Real, or Double.

start_expression is a valid expression, to initialize analog_var to a value for execution of


the loop.

end_expression is a valid expression. If analog_var is greater than end_expression,


execution of the script jumps to the statement immediately following the NEXT statement.

(This holds true if loop is incrementing up, otherwise, if loop is decrementing, loop
termination will occur if analog_var is less than end_expression.)
change_expression is an expression, to define the increment or decrement value of
analog_var after execution of the NEXT statement. The change_expression can be either
positive or negative. If change_expression is positive, start_expression must be less than
or equal to end_expression or the statements in the loop will not execute. If
change_expression is negative, start_expression must be greater than or equal to
end_expression for the body of the loop to be executed. If STEP is not set, then
change_expression defaults to 1.

It is possible to exit the loop from within the body of the loop via the EXIT FOR statement.
The FOR loop is executed as follows:
1. analog_var is set equal to start_expression.
2. The system tests to see if analog_var is greater than end_expression. If so, the loop exits. (If
change_expression is negative, the system tests to see if analog_var is less than
end_expression.)
3. The statements in the body of the loop are executed. Here the loop can potentially be exited
via the EXIT FOR statement.
4. analog_var is incremented by 1 - or by change_expression if it is specified.
5. Steps 2 through 4 are repeated.
Note: FOR-NEXT loops may be nested. The number of levels of nesting possible depends on the
memory and resource availability.

FOR EACH IN NEXT


The FOR EACH loop can only be used with collections exposed by OLE Automation servers .A
FOR-NEXT loop is used to perform a function (or set of functions) within a script several times
during a single execution of a script. The general format of the FOR-NEXT loop is as follows:
FOR EACH <object_variable> IN <collection_object >
[statements]
[EXIT FOR;]
[statements]
NEXT;
Where:


object_variable is a variable of type <some COM interface>

collection_object is a variable holding a collection object.

As in the case of the FOR TO loop it is again possible to exit the execution of the loop via the
statement EXIT FOR; from within the loop.

Wonderware Training

Section 3 Introduction to QuickScript .NET

Note: Collections are frequently leveraged by VB and VBA / JScript. Microsofts office suite is built
around the concept of collections. Furthermore Microsoft started to expose more and more of the
Windows system via collections.
Example:
Dim
Dim
Dim
Dim
Dim

fso As IFileSystem;
folder As IFolder;
fileCollection As IFileCollection;
file As IFile;
fileName as String;

fso = new FileSystemObject;


folder = fso.GetFolder(C:\Temp);
fileCollection = folder.Files;
For Each file In fileCollection
fileName = file.name;
Next;

FOR EACH will allow for looping through arrays.

WHILE Loop
A WHILE loop is used to perform a function (or set of functions) within a script several times during
a single execution of a script while a condition is true. The general format of the WHILE loop is as
follows:
WHILE <boolean_expression>
[statements]
[EXIT WHILE;]
[statements]
ENDWHILE;
Where:


boolean_expression is an expression that can be evaluated as a Boolean as defined


above in the description of IFTHEN statements.

It is possible to exit the loop from within the body of the loop via the EXIT WHILE statement.
The WHILE loop is executed as follows:
1. The system tests to see if boolean_expression is true. If not, the loop exists.
2. The statements in the body of the loop are executed. Here the loop can potentially be exited
via the EXIT WHILE statement.
3. Steps 1 through 2 are repeated.
Note: WHILE loops may be nested. The number of levels of nesting possible depends on the
memory and resource availability.

Support for Script Functions


In order to follow the naming syntax of InTouch QuickScript, binary shared functions are referred to
as script functions. Functions written in QuickScript are named QuickFunctions.

Wonderware System Platform 3.0 Course - Part 1

4-47

4-48

Module 4 Extending the Objects


Accessing Script Functions
Script functions can be directly accessed from within the script code. The syntax is exactly like in
QuickScript.
Example:
PumpState = StringRight("The Pump is On", 2);

Where StringRight is a binary script function as described in the Scripting DFS. After executing the
script snippet PumpState holds the value On.
Any of the script functions provided by The Application Server can be invoked this way.
Syntax:
ScriptFunction ::= <FunctionName> ( {<Paramater>} { , <Paramater>} );

OLE Automation Support


Over the last couple of years Microsoft used many different terms when talking about OLE
Automation. In order to reduce confusion the following part attempts to establish the terms used
throughout this document:

ActiveX Server:
Other names for ActiveX Server are COM Server, ActiveX component, ActiveX EXE, ActiveX DLL.

Support for OLE Automation Compatible ActiveX Servers


Support for COM Servers:


Support for Get/Set Property

Support for method invocation on COM server

Creating objects outside of the context of scripts does not work. In many cases an object can only
be created in a programmatic manner based on another already created object.
VBS example:
Dim xlApp
Dim xlBook
Dim xlSheet
' Assign object references to the variables. Use
' Add methods to create new workbook and worksheet
' objects. Note that xlBook and xlSheet can only be
' created after the objects xlApp and xlBook got
' created.
Set xlApp = WScript.CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets.Add

Once created, the methods exposed by a COM object can be accessed as if they would be script
functions.
There are at least two different approaches:

Allow Creation of COM Servers from within a Script


Scripts can create COM servers using one of two techniques. The New technique is the
preferred technique since it allows early-binding of methods which offers the advantage of early
validation of method calling syntax and better runtime performance.

Wonderware Training

Section 3 Introduction to QuickScript .NET


1. New keyword this keyword instructs the script to create a new .NET object. ActiveX
components that have been imported into the Galaxy Repository explicitly end up with .NET
wrappers that allow them to be created using this technique. In the example below, earlybound methods on
Dim app as Excel.Application;
App = new Excel.Application;
2. CreateObject method this method instructs the script to specifically create a named COM
object that is installed on the system upon which the script is to be deployed. These are latebound objects. Late-bound methods on app can be called after the object is created.
dim app as object;
app = CreateObject("Excel.Application");

Scripting Key Words and Reserved Words


This section identifies key words and reserved words that are used in scripting.

Keywords
and

exit

null

as

false

object

attribute

float

or

boolean

for

real

din

if

shl

discrete

in

shr

double

indirect

step

each

integer

string

elapsedtime

message

then

else

mod

time

elseif

new

to

endif

next

true

endwhile

not

while

Wonderware System Platform 3.0 Course - Part 1

4-49

4-50

Module 4 Extending the Objects


Indirect Keyword
The Indirect keyword supports dynamically binding a variable to an arbitrary reference string for
get/set usage.
The syntax for this keyword, including the use of the method, BindTo(s), is
show in the example below:
dim x as indirect;
...
x.BindTo(s); ' where s is any expression that returns a string
x = 1234;
if WriteStatus(x) == MxStatusOk then
' ... do something
endif;

Note: The Attribute() keyword does not accept values as a parameter. If you need to use dynamic
references to an attribute value, use Indirect instead.

QuickScript .NET also reserves for future use the following words:
Reserved Words
abstract

event

MyContainer

static

base

explicit

MyEngine

sub

begin

extern

MyHost

switch

break

finally

MyPlatform

system

call

function

namespace

this

case

goto

nothing

throw

catch

implicit

on

triger

class

import

out

try

continue

imports

private

typeof

default

include

protected

until

delegate

inherits

public

using

do

interface

raiseevent

virtual

end

internal

readonly

void

endsub

is

ref

when

endswitch

like

return

with

enum

Me

select

error

MyArea

sizeof

Wonderware Training

Lab 13 DDESuiteLinkClient Auto Reconnect

Lab 13 DDESuiteLinkClient Auto Reconnect


Introduction
Since the $DDESuiteLinkClient object lacks the capability to automatically reconnect to the data
source if the connection is lost, you are to extend the object with UDAs and scripts to add such
functionality.
Note: Your instructor will demonstrate the script.

Objectives
Upon completion of this lab you should be able to:
Use the QuickScript.NET scripting engine to extend your objects with extra functionality


Use attributes, including UDAs, within scripts

Create scripts with different execution types

Reconnect whenever the InControl object gets disconnected

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 the auto-reconnect functionality


1. Add a script called Reconnect (locked) to the $ABDDESuiteLinkClient with an Execute
execution type configured as follows:
Expression:

Me.ConnectionStatus <> 2

Trigger type:

WhileTrue

Trigger period:

00:00:05.0000000

Script body:
Me.Reconnect = True;

2. Add a Calculated Integer UDA named DisconnectCnt.

Wonderware System Platform 3.0 Course - Part 1

4-51

4-52

Module 4 Extending the Objects


3. Add a script called DisconnectMonitor (locked) with an Execute execution type configured as
follows:
Expression:

Me.ConnectionStatus <> 2

Trigger type:

OnTrue

Script body:
Me.DisconnectCnt = Me.DisconnectCnt + 1;

and an OnScan execution type configured as follows:


Script body:
Me.DisconnectCnt = 0;

4. Deploy the InControl object.

See the next page for Detailed Lab Instructions

Wonderware Training

Lab 13 DDESuiteLinkClient Auto Reconnect

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).

Add the Auto-reconnect Functionality


1. Double-click the $ABDDESuiteLinkClient template to open its configuration editor.
Select the Scripts tab.

2. Click the plus icon button


and configure it as follows:

to add a new script to the object. Name the script Reconnect

Aliases section:

(locked)

Declarations section:

(locked)

Scripts section:
Execution type:

Execute (locked)

Basics section:

(locked)

Expression:

Me.ConnectionStatus <> 2

Trigger type:

WhileTrue

Trigger period:

00:00:05.0000000

Script body section:


Me.Reconnect = True;

3. Select the UDAs tab.

Wonderware System Platform 3.0 Course - Part 1

4-53

4-54

Module 4 Extending the Objects

4. Click the plus icon button


and configure it as follows:
Data type:

Integer

Category:

Calculated

to add a UDA to the object. Name the UDA DisconnectCnt

5. Select the Scripts tab.


6.

Click the plus icon button


to add a new script to the object. Name the script
DisconnectMonitor and configure it as follows:
Aliases section:

(locked)

Declarations section:

(locked)

Scripts section:
Execution type:

Execute (locked)

Basics section:

(locked)

Expression:

Me.ConnectionStatus <> 2

Trigger type:

OnTrue

Script body section:


Me.DisconnectCnt = Me.DisconnectCnt + 1;

Wonderware Training

Lab 13 DDESuiteLinkClient Auto Reconnect


7. With the DisconnectMonitor script selected, specify an Execution type of OnScan to add a
second section to the script. Configure it as follows:
Script body section:
Me.DisconnectCnt = 0;

8. Click the Save and Close button and check in the object.

9. Deploy the InControl instance.


Note: Your instructor will demonstrate new attributes in Object Viewer.

Wonderware System Platform 3.0 Course - Part 1

4-55

4-56

Module 4 Extending the Objects

Intentionally left blank

Wonderware Training

Lab 14 Automatic Reference Configuration

Lab 14 Automatic Reference Configuration


Introduction
This lab illustrates how to add to the mixer objects the capability of automatically configuring the
input and output references within the objects based on the naming conventions established for
your galaxy.
To successfully provide this functionality, a compromise regarding the naming of the objects has to
be arranged. In this example, it is required that every instance derived from the $ABMixer template
is named with the valid three-digit mixer identification number at the end as identified in Lab 2.

Objectives
Upon completion of this lab you should be able to:


Use the QuickScript.NET scripting engine to automatically configure on runtime the input
and output references of instances

Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.

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 the auto-configuration functionality


1. Add a Boolean User writeable UDA to the $ABMixer template, name it AssignIOCmd and
set its initial value to True.

2. Add a script called AssignIO (locked) with an Execute execution type configured as follows:
Expression:

Me.AssignIOCmd

Trigger type:

WhileTrue

Trigger period:

00:00:00.0000000

Script body:
(provided as a text file as part of the training material)

Wonderware System Platform 3.0 Course - Part 1

4-57

4-58

Module 4 Extending the Objects


Create and deploy a Mixer instance
3. Create a new instance of the $ABMixer template, name it ABMixer_XXY and assign it to the
ABLine2 area.

4. Deploy both, the new mixer instance and ABMixer_001.

See the next page for Detailed Lab Instructions

Wonderware Training

Lab 14 Automatic Reference Configuration

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).

Add the Auto-configuration Functionality


1. Double-click the $ABMixer template to open its configuration editor.
Select the UDAs tab.

2. Click the plus icon button


and configure it as follows:

to add a UDA to the object. Name the UDA AssignIOCmd

Data type:

Boolean

Category:

User writeable

True/False:

checked

3. Select the Scripts tab.

Wonderware System Platform 3.0 Course - Part 1

4-59

4-60

Module 4 Extending the Objects

4. Click the plus icon button


and configure it as follows:

to add a new script to the object. Name the script AssignIO

Aliases section:

(locked)

Declarations section:

(locked)

Scripts section:
Execution type:

Execute (locked)

Basics section:

(locked)

Expression:

Me.AssignIOCmd

Trigger type:

WhileTrue

Trigger period:

00:00:00.0000000

Script body section:


'Get the common part for the references.
Dim dataSource As String;
dataSource = "InControl.tagname.T" + StringRight(Me.Tagname, 3);
'Configure inlet valve 1.
Me.Inlet1.CLS.InputSource = dataSource + "_IV1_CLS";
Me.Inlet1.OLS.InputSource = dataSource + "_IV1_OLS";
Me.Inlet1.CmdOpen.OutputDest = dataSource + "_IV1_CmdOpen";
'Configure inlet valve 2.
Me.Inlet2.CLS.InputSource = dataSource + "_IV2_CLS";
Me.Inlet2.OLS.InputSource = dataSource + "_IV2_OLS";
Me.Inlet2.CmdOpen.OutputDest = dataSource + "_IV2_CmdOpen";
'Configure outlet valve.
Me.Outlet.CLS.InputSource = dataSource + "_OV_CLS";
Me.Outlet.OLS.InputSource = dataSource + "_OV_OLS";
Me.Outlet.CmdOpen.OutputDest = dataSource + "_OV_CmdOpen";
'Configure transfer pump 1.
Me.Pump1.FlowSwitch.InputSource = dataSource + "_TP1_FlowSwitch";
Me.Pump1.CmdStart.OutputDest = dataSource + "_TP1_CmdStart";
'Configure transfer pump 2.
Me.Pump2.FlowSwitch.InputSource = dataSource + "_TP2_FlowSwitch";
Me.Pump2.CmdStart.OutputDest = dataSource + "_TP2_CmdStart";
'Configure level meter.
Me.LIT.PV.Input.InputSource = dataSource + "_LT_PV";
'Configure temperature transmitter.
Me.TT.PV.Input.InputSource = dataSource + "_TT_PV";
'Configure agitator.
Me.Agitator.AuxContact.InputSource = dataSource + "_AG_AuxContact";
Me.Agitator.CmdStart.OutputDest = dataSource + "_AG_CmdStart";
Me.Agitator.Speed.InputSource = dataSource + "_AG_Speed";
Me.Agitator.SpeedSP.InputSource = dataSource + "_AG_SpeedSP";
'Reset trigger.
Me.AssignIOCmd = False;

Wonderware Training

Lab 14 Automatic Reference Configuration

5. Click the Save and Close button and check in the object.

Wonderware System Platform 3.0 Course - Part 1

4-61

4-62

Module 4 Extending the Objects


Create and Deploy a Mixer Instance
6. Using the Template Toolbox and the Model view, create an instance of the $ABMixer
template and name it ABMixer_XXY.
Assign the instance to the ABLine2 area.
Note: When the mixer instance is renamed, a dialog box with a warning is displayed.
Click the Yes button.

Note: The new instance of the $ABMixer template will display the warning icon on all
contained objects. This is OK. These warnings can be cleared by setting the default
references from ---.--- to ---.
Important! If there is a warning icon on the mixer instance itself, notify your instructor.

7. Deploy the newly created instance.


8. Deploy the ABMixer_001 instance.
9. Use Object Viewer to verify that both mixers, and their contained objects, are working.

Wonderware Training

Module 5

Alarms and History


Section 1 Alarms
Lab 15 Configuring Alarms
Section 2 Historization
Lab 16 Configuring History

5-3
5-9
5-25
5-29

5-2

Module 5 Alarms and History

Module Objective


Obtain an overview and understanding of the concepts of Alarms, Events and


Historization and how ArchestrA handles each.

Wonderware Training

Section 1 Alarms

Section 1 Alarms
Section Objectives


Familiarize you with the concept of alarms and events, and

Enable you to understand how ArchestrA handles alarms and events.

This section provides familiarization of the concept of alarms and events and how ArchestrA
handles them.

What is an Alarm/Event
The alarm and event capabilities in the system provide for users to automate the detection,
notification, historization and viewing of either application (process) alarms and events or system/
software alarms events. Alarms and events are things that occur in the runtime system. Events
and alarms are different and the system distinguishes between the two. An event is simply an
occurrence of a condition at a certain point in time. The system can detect events, store them
historically and report them to various clients. Alarms, on the other hand, represent the
occurrence of a condition that is considered abnormal (generally bad) in nature and requiring
immediate attention from a user. Alarms are a special type of event that indicate something
abnormal has happened. The system handles the real-time reporting of alarms in a special
manner and provides special clients for their viewing.
Examples of alarms include:

A process measurement has exceeded a predefined limit, such as a high temperature
alarm.


A process device is not in the desired state, such as a pump that should be running has
stopped.

The system hardware is not operating within desired limits, for example the CPU utilization
on a Platform exceeds a certain percentage for an extended time.

Examples of events include:



A plant process has started; for example, a new batch or campaign starts.


The operator has changed a plant operator parameter; for example, a setpoint on a
temperature controller.

The system engineer has changed the runtime system configuration; for example,
deployment of a new AutomationObject.

The system engineer has started or stopped a system component; for example, stopping
an engine.
A platform has come back online after it had a failure or shutdown.

A user has logged into the system.

Detection of a severe software problem; such as a failed Application Object component.

The following items are not considered alarms or events:




Configuration actions within the Galaxy Repository; for example import or check-out.

Installation of Bootstrap on a PC.

A message sent to the system logger (SMCLogger). Note, sometimes certain software
events may log a message in addition to generating an event, but this is ancillary. Logger
messages are not events.

Viewing a window in the View Engine.

Wonderware System Platform 3.0 Course - Part 1

5-3

5-4

Module 5 Alarms and History


How does ArchestrA handle alarms?
The Platform as an Alarm Provider
A Platform can act as a single Alarm Provider that provides alarms to the InTouch Distributed
Alarm subsystem. A boolean checkbox is provided in the Platform AutomationObject indicating
whether it subscribed to Areas or not for alarm and event reporting. The Platform, when deployed,
only initiates subscription to those Areas that are only deployed to that Platform.
The platform is responsible for routing all alarms and events for all Areas subscribed to by that
Platform to InTouchs distributed alarming infrastructure. The Platform acts as a router between all
Alarm/Event Notification Distributors that are running in the subscribed Areas throughout the
Galaxy (inside every Area, Platform, Engine, DI Device, etc.) and the distributed alarming
infrastructure. The Platform also routes alarm acknowledgements, enables and disables received
from distributed alarming back to the appropriate AutomationObject. Alarm acknowledgements,
enables, and disables carry along the User information for security purposes. An alarm generated
by Application Server contains fields that are generated by the alarm functions inside the
AutomationObject. Those fields are mapped to fields in InTouch as follows:

Alarms:
ArchestrA field

InTouch Dist Alarms Mapping

Type = alarm state change

N/a

Timestamp of alarm event

Time

Tagname

Name

Common message text string.

Comment

Area

Alarm group

Common name for alarm primitive


(e.g. PV.HiAlarm)

Alarm Type (string)

New alarm state (ack, rtn, etc.)

State

Priority = 1-999

Priority

Value (mxValue)

Value

Limit (mxValue)

Limit

Value MxReference

N/a

Limit MxReference

N/a

Units MxReference

N/a

Category

Class

Category

SubClass

InTouch as an Alarm Consumer


The InTouch Alarm Client can be configured to subscribe to alarms and events generated by
Alarm Providers. The Alarm Provider is specified by providing the node name and provider name
of the provider. For ArchestrA, only one provider exists per Platform (node). In addition, the
InTouch Alarm client can be configured to subscribe to only selected Alarm Areas for the provider
based on its query filters. Alarm Group names in InTouch map to Areas names and pseudo-Area
names (Platforms, Engines, etc.) in ArchestrA.

Alarm Acknowledgement from Distributed Alarming


The InTouch Alarm Client can acknowledge unacknowledged alarms that are reported by the
Platform. The Platform receives the acknowledge request and forwards it to the target

Wonderware Training

Section 1 Alarms
AutomationObjects acknowledge attribute for the alarm. Security is used as part of this set (it is a
UserSetAttribute). An optional comment can be entered when the acknowledge is requested.
An acknowledge of an alarm is reported as an alarm state change back to the distributed alarming.
The optional operator comment is included in the event message sent back.
Distributed Alarming has no support for passing a rejected acknowledge failure feedback.
Therefore, if an acknowledge is requested from a client but does not succeed, the only feedback
on the InTouch client will be no change in acknowledge status on the client.

Alarm Enable/Disable
The InTouch Alarm Client can enable/disable alarming on any AutomationObject. The platform
receives the enable request and forwards it to the target AutomationObjects AlarmMode attribute.
Security is used as part of this set (it is a UserSetAttribute).

How does ArchestrA handle Events?


A Platform is an Event Provider that provides events to the InTouch Distributed Alarm subsystem.
This provider routes all events that are generated by AutomationObjects hosted by that Platform to
Application Server. The provider does not need to deal with subscriptions to Areas. The provider
acts as a router between the NotificationDistributor (inside every Area, Platform, Engine, etc) and
the InTouch Distributed Alarm subsystem.
Several types of events can be generated by AutomationObjects The following tables define how
the fields in those events are mapped to fields in the Distributed Alarm subsystem.

System Events:
ArchestrA field

Distributed Alarm subsystem


Mapping

Type (or Category) = System

Type = SYS

Timestamp

Time

Tagname

Name

Tag description

Comment

Area

Alarm group

System event description


(started, stopped)

Event Type if string, or use


Comment field

N/a

State = none (preferred) or


UNACK_RTN

N/a

Priority = 1

N/A

Provider = Galaxy

N/A

Event Class = EVENT

Security Audit (includes User Data Change) Events:


ArchestrA field

Distributed Alarm subsystem


Mapping

Type = Operator Change

Type = OPR

Timestamp

Time

Tag.primitive.attribute

Name

Tag description

Comment

Area

Alarm group

View engine name

Wonderware System Platform 3.0 Course - Part 1

5-5

5-6

Module 5 Alarms and History


Security Audit (includes User Data Change) Events: (continued)
ArchestrA field

Distributed Alarm subsystem


Mapping

Operator 1 name

RequestingEngineName +
Operator name

Operator 2 name

N/a

Old value

Limit

New value

value

N/a

State = none (preferred) or


UNACK_RTN

N/a

Priority = 999

N/A

Provider = Galaxy

N/A

Event Class = EVENT

Application Data Change Events:


ArchestrA field

Distributed Alarm subsystem


Mapping

Type = Data Change

Type = LGC

Timestamp

Time

Tag.primitive.attribute

Name? Or name+comment?

Tag description

Comment

Area

Alarm group

View engine name

Platform (the PCs node name)

Old value

Limit

New value

Value

N/a

State = none (preferred) or


UNACK_RTN

N/a

Priority = 999

N/A

Provider = Galaxy

Wonderware Training

Section 1 Alarms
Alarm Queries
Alarm queries provide alarm information and event reports coming from the galaxy.
Use the following syntax for querying alarms from a Galaxy. This syntax gets alarms from a
specific attribute of an object in a specific area on a specific computer.
\\NodeName\Galaxy!Area.Object.Attribute

The following syntax gets all alarms from a specific area:


\\Galaxy!Area

The following syntax gets alarms from two areas:


\\Galaxy!Area1 \\Galaxy!Area2

The following syntax gets all alarms from the Platform on computer node (by default):
\\NodeName\Galaxy

You can also use a wildcard. The following syntax gets all alarms from Area1, Area2, Area3, and so
on:
\\Galaxy!Area*

The following syntax gets all alarms from all objects starting with the characters "Tank" in the area
"Area":
\\Galaxy!Area.Tank*

Displaying alarms/events in InTouch


The Current Alarm Display is an ActiveX Control delivered with InTouch. The primary purpose of
the control is to allow an InTouch Operator to view and acknowledge active alarms at runtime that
are generated by alarm providers. Alarm providers can include local providers and providers on
the network. Application Server (ArchestrA) is a key alarm provider. Key functions include:


Configuration at design time for subscription to specific alarm providers on the network for
alarm reports. One or more Application Server platforms can be an alarm providers (and
can be local or remote).

Configuration at design time for subscription to specific alarm groups (or areas) in a
provider. Groups (or areas) can be hierarchical, meaning sub-groups are automatically
subscribed to.

Display of key alarm information.

Acknowledgment of selected alarms with a comment.

Suppression of alarms (local filter only).

Wonderware System Platform 3.0 Course - Part 1

5-7

5-8

Module 5 Alarms and History


Event History Display in InTouch
The InTouch AlarmDBView ActiveX is used to display historical alarm and event information that
has been logged by the InTouch Alarm Logger. The InTouch Alarm Logger can be configured to
log alarms from any provider, including Application Server.

Wonderware Training

Lab 15 Configuring Alarms

Lab 15 Configuring Alarms


Introduction
This lab illustrates how to configure your galaxy to provide alarms to external alarm subscribers such
as an operators visualization interface or an alarm database logger. As an example of alarm
functionality, a typical high level alarm is added to the mixer, as well as a malfunction alarm from
the mixers agitator generated from a field device such as a PLC.
As part of the configuration necessary to accomplish this functionality, it is necessary to update the
auto-configuration script created in the previous lab to accommodate a new input signal
associated with the malfunction alarm.
The Wonderware Alarm DB Logger Manager is used to store real-time alarms in a centralized
database.

Objectives
Upon completion of this lab you should be able to:

Configure the $WinPlatform object as an alarm provider for the galaxy


Configure alarms within objects including using the Alarm Extension

Configure and use the Alarm DB Logger Manager

Use alarm queries to request real-time alarms from alarm providers

Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.

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 the WinPlatform object as an Alarm Provider


1. Configure the ABGRPlatform instance to be an InTouch alarm provider for all areas in the
galaxy.

Configure the $ABMixer.LIT template for alarms


2. Configure the $ABMixer.LIT template with a Hi level alarm, with a limit of 80.0, a priority of
500 and Mixer Hi Level alarm as the alarm message.
3. Lock all level alarms attributes but the Hi Limit.

Wonderware System Platform 3.0 Course - Part 1

5-9

5-10

Module 5 Alarms and History


Configure the Alarm extension
4. Add a Boolean Object writeable UDA to the $ABMixer.Agitator template named
Malfunction.

5. Extend the Malfunction attribute with an Input extension and configure its Source as ---.---.

6. Extend the Malfunction attribute with an Alarm extension and lock it. Configure its category as
Process and leave the default values on the rest of the attributes.

Update auto-configuration script on $ABMixer


7. Modify the AssignIO script of the $ABMixer template by adding the following line of code to
the Configure agitator section of the code:
Me.Agitator.Malfunction.InputSource = dataSource = _AG_Malfunction;

View the alarm data on Runtime


8. Deploy the ABGRPlatform object on cascade.

9. Using the watch list created in Lab 5, add a new watch window called Alarms and add the
following attribute references:


LIT_001.PV

LIT_001.InAlarm

LIT_001.Hi.InAlarm

LIT_001.Hi.Limit

LIT_001.Hi.TimeAlarmOn

LIT_001.Hi.TimeAlarmOff

Agitator_001.InAlarm

Agitator_001.Malfunction

Agitator_001.Malfunction.InAlarm

Agitator_001.Malfunction.TimeAlarmOn

Agitator_001.Malfunction.TimeAlarmOff
ABLine1.AlarmOnCnt

10. Save the watch list.

Wonderware Training

Lab 15 Configuring Alarms


Configure and Start the Alarm DB Logger Manager
11. Use the Alarm DB Logger Manager to create a a database named WWALMDB on your local
computer. Use the following user information:
User Name:

sa

Password:

[Check with your instructor for the correct password]

12. Configure the Alarm DB Logger Manager to query all priorities from the following alarm
query:
\Galaxy!ABControlSystem
\Galaxy!ABDischarge
\Galaxy!ABIntake
\Galaxy!ABProduction

13. Leave the defaults advanced settings and start Alarm DB Logger Manager.

View the Alarm History data


14. Use SQL Server Management Studio to query all data from the v_AlarmHistory view.

See the next page for Detailed Lab Instructions

Wonderware System Platform 3.0 Course - Part 1

5-11

5-12

Module 5 Alarms and History

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 the WinPlatform Object as an Alarm Provider


1. Double-click the ABGRPlatform instance to open its configuration editor.
2. Check the InTouch alarm provider attribute and leave the Alarm areas attribute empty.

The Alarm areas field is used to specify a


space-separated list of areas to subscribe to.
It is used to filter alarms on the network. For
example, "Area1 Area2 Area3". If blank, the
platform will subscribe to all areas in the
Galaxy and act as an InTouch alarm provider
for the whole Galaxy.

3. Click the Save and Close button and check in the object.

Wonderware Training

Lab 15 Configuring Alarms


Configure the $ABMixer.LIT Template for Alarms
4. Double-click the $ABMixer.LIT template to open its configuration editor.
5. Select the Alarms tab and configure the object as follows:
Detect PV level(limit) alarms:

checked (locked)

Level alarms:

(locked)

Hi:

checked (locked)

Hi Limit:

80.0 (unlocked)

Hi Priority:

500 (locked)

Hi Alarm Message:

Mixer Hi Level alarm (locked)

6. Click the Save and Close button and check in the object.

Wonderware System Platform 3.0 Course - Part 1

5-13

5-14

Module 5 Alarms and History


Configure the Alarm Extension
7. Double-click the $ABMixer.Agitator template to open its configuration editor.
8. Select the UDAs tab, add a UDA named Malfunction and configure it as follows:
Data type:

Boolean

Category:

Object writeable

9. Select the Extensions tab.


10. Select the Malfunction attribute and configure its extensions as follows:
Input extension:
Source:
Alarm extension:

checked
--checked (locked)

Category:

Process

Priority:

500

Alarm message:

me.ShortDesc

Active alarm state:

True

Wonderware Training

Lab 15 Configuring Alarms


11. Click the Save and Close button and check in the object.

Update Auto-configuration Script on $ABMixer


12. Double-click the $ABMixer template to open its configuration editor.
Select the Scripts tab.

13. Select the AssignIO tab and add the following line of code to the Configure agitator section of
the code:
Me.Agitator.Malfunction.InputSource = dataSource = _AG_Malfunction;

14. Click the Save and Close button and check in the object.

Wonderware System Platform 3.0 Course - Part 1

5-15

5-16

Module 5 Alarms and History


View the Alarm Data in Runtime
15. Deploy the ABGRPlatform object on cascade.

16. Open Object Viewer by right-clicking the LIT_001 instance and selecting View in Object
Viewer. If you closed Object Viewer before, you can use File / Load Watch List to open the
file you saved earlier.
Note: If you had Object Viewer opened, you will need to switch to it first and click the OK
button to close before trying to re-opened again from the ArchestrA IDE.

17. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch
Window to add a new tab to the watch list.

18. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the watch list to Alarms.

Wonderware Training

Lab 15 Configuring Alarms


19. Add the following attributes to the watch list:
For the LIT_001 object:
PV
InAlarm
Hi.InAlarm
Hi.Limit
Hi.TimeAlarmOn
Hi.TimeAlarmOff
For the Agitator_001 object:
InAlarm
Malfunction
Malfunction.InAlarm
Malfunction.TimeAlarmOn
Malfunction.TimeAlarmOff
For the ABLine1 object:
AlarmOnCnt

20. Save the watch list.

Wonderware System Platform 3.0 Course - Part 1

5-17

5-18

Module 5 Alarms and History


Configure and Start the Alarm DB Logger Manager.
21. Launch the Alarm DB Logger Manager by selecting Start / All Programs / Wonderware /
InTouch / Alarm DB Logger Manager.
22. In the Alarm DB Logger Manager window, click the Settings button.

23. Configure the Alarm DB Logger Manager Configuration dialog box as follows and then
click the Create button:
Server Name:

(local)

Database:

WWALMDB

User Info:
User Name:

sa

Password:

[Check with your instructor for the correct password]

Logging Mode:

Wonderware Training

Detailed

Lab 15 Configuring Alarms


24. The Success dialog box is displays indicating that the tables were created. Click the OK
button to continue.

Note: If the following Warning dialog is displayed, click the Yes button to delete the existing
database and create a new one.

25. Back at the Alarm DB Logger Manager Configuration dialog box click the Next button to
continue.

Wonderware System Platform 3.0 Course - Part 1

5-19

5-20

Module 5 Alarms and History


26. Configure the Alarm DB Logger Manager Query Selection dialog box as follows and then
click the Next button to continue:
From Priority:

To Priority:

999

Alarm Query:

\Galaxy!ABControlSystem
\Galaxy!ABDischarge
\Galaxy!ABIntake
\Galaxy!ABProductio

Wonderware Training

Lab 15 Configuring Alarms


27. At the Alarm DB Logger Manager Advanced Settings dialog box, leave the default
settings and click the Finish button to accept the changes.

28. Back at the Alarm DB Logger Manager window, click the Start button to start the Alarm
Database Logger.

Wonderware System Platform 3.0 Course - Part 1

5-21

5-22

Module 5 Alarms and History


View the Alarm History Data
29. Launch the SQL Server Management Studio by selecting Start / All Programs / Microsoft
SQL Server 2005 / SQL Server Management Studio.

30. Configure the Connect to Server dialog box as follows and then click the Connect button to
continue:
Server type:

Database Engine

Server name:

localhost

Authentication:

Wonderware Training

Windows Authentication

Lab 15 Configuring Alarms


31. In the Object Explorer (left pane) navigate to localhost / Databases / WWALMDB / Views to
get a list of all the databases Views in the Object Explorer Details (right pane).

32. On the Views list (right pane), right-click on the v_AlarmHistory view and select Open View
to display the current list of alarms logged in the database.

Wonderware System Platform 3.0 Course - Part 1

5-23

5-24

Module 5 Alarms and History

Intentionally left blank

Wonderware Training

Section 2 Historization

Section 2 Historization
Section Objectives


Familiarize you with the background concept of historization, and

Enable you to understand details of historizable configuration.

This section provides familiarization with the background concept of historization and the details of
historizable configuration.

Historization Background
The history system supports historization of process data in distributed history architecture.
One or more Historian products can be installed on the same network as the Application Server
Galaxy. The Galaxy can be configured to store history data into one or more of those Historians.
Since the Engines use push technology to historize, the Historian box does not have any
ArchestrA software requirements.
Each Engine in the Galaxy is configured with the location of the Historian storage node to which its
history data is to be sent. This configuration is stored in an attribute within the Engine.
Wonderware Historian requires a Historian tag to be configured in its database for each attribute to
be historized by an AutomationObject. Thus, there is a one-to-one relationship between a
historized object and a tag in Wonderware Historian.
When an AutomationObject starts up it registers its configuration data with Historian using a
Historian supplied interface. If the Historian tag already exists, it means this object has been
previously registered. If the Historian tag does not exist, it is created automatically. In either case,
the object receives back a unique identifier (handle) for that tag. This is a push-style configuration
model, meaning the configuration data for each historized property of an object is dynamically, and
automatically, pushed to Historian. The user does not need to run Historian configure and import
tags from Application Server (as done with InTouch today).
For storage, the story is similar. When an object decides to store a new VTQ to Historian, it
pushes that storage update message, with the new VTQ, to Historian using a Historian supplied
interface. The Historian must exist on a different node from the AutomationObject. The history
primitive uses the previously-returned unique identifier for the Historian tag that corresponds to the
historized property to identify the tag being stored.
Note: Alarms are stored at the Platform, history is stored at the Engine.

History Configuration
Historizable Data Types for Attributes
Attributes of the following data types support historization:
Float (numerical)
Double (numerical)
Integer (numerical)
Boolean (non-numerical)

Wonderware System Platform 3.0 Course - Part 1

5-25

5-26

Module 5 Alarms and History


String Unicode (non-numerical)
CustomEnum (non-numerical)
maps to Historian Integer
ElapsedTime (numerical)
Maps to Historian Float, converted to seconds.
Entire arrays or portions of arrays are not supported.
All numerical attributes are sent to the Historian in the engineering units form exposed by the
attribute, and Historian does not scale the value. Additionally, the historized object does all
change detection and value deadbanding. All update packets sent to the Historian are stored to
disk.

Configuration of a non-numerical Attribute for Historization


For an object that has non-numerical historizable attributes, the ArchestrA IDE user can enable
history for each attribute. No other configuration data is provided by the user since these
attributes are historized upon change of value. Also, a change in data Quality, regardless of
whether the Value changed too, always causes a new record to be historized/stored.

Configuration of a numerical Attribute for Historization


For an object that has numerical historizable attributes, the ArchestrA IDE user can enable history
for each attribute. Once enabled, certain configuration settings can be specified. These settings
determine how often data is historized.
The following configuration settings can then be specified:


Value Deadband the threshold value (measured in engineering units) that the absolute
value of the difference between the new and last-stored values must differ before storing
the new value to history. A value of 0 is valid and is the default and means that some
change is required prior to storing the value. A change in Quality always causes a new
record to be stored, regardless of whether the Value has changed.

Force Storage Period this is the time interval, in seconds (floating point), at which the value must
be stored regardless of the value deadband setting. In addition to the Value Deadband setting, the
value will be stored continuously at this interval. A value of 0 disables this feature.
Trend Hi specifies the initial maximum trend value for clients.
Trend Lo specifies the initial minimum trend value for clients.

Dynamic, Automatic Configuration of Wonderware Historian at Object Deploy Time


When an AutomationObject is deployed that has been historized, the object causes a dynamic
reconfiguration of the Historian product. Each historized property causes a new tag to be created
and configured automatically in Historian at deployment time. The Historian storage system to be
configured is configured in the engine object itself.
If the link to the Historian product is down at deploy time, the attempt to dynamically reconfigure
Historian is achieved at the time the Historian link is recovered. In other words, automatic retry is
built in.

Reconfiguration of Historian at Object Redeploy Time


When an AutomationObject that has been historized is redeployed, the object causes a
reconfiguration of any changes that were caused by the redeploy to be changed in the Historian

Wonderware Training

Section 2 Historization
product automatically. For example, if the engineering units string for the tag changes from Deg
F to Deg C upon a redeploy, the Historian configuration database must reflect this change.

Reconfiguration of Historian at Object Undeploy Time


When an AutomationObject is undeployed that has been historized, object does not cause any
dynamic reconfiguration of the Historian product. In other words, the Historian tag and all its
history is left in the Historian historian. This means the history data can still be examined in the
future even if the AutomationObject is no longer deployed.

Historian Installation and Deployment


Wonderware Historian is installed and deployed using its standard mechanism. Historian can be
deployed on any PC in the Galaxy, or on a PC outside the Galaxy but on the local network.
Historian requires a SQL Server Database for its configuration data. This SQL Server Database
can be the same or different one used by the Galaxy Repository. More than one Historian can be
utilized by a single Galaxy. However, a single engine sends its history to only one Historian.
A single Historian can receive historical data from a single Galaxy only.

Historian Value Mapping


The update packet to be sent to Historian contains a Value. This value may need to be converted
from the value received from Message Exchange if the received datatype is not one of the native
Historian datatypes as specified below:
Enum historize as Integer ordinal value
Strings Historian strings are limited to 512 characters, so truncation may occur. If so, Quality is
set to Uncertain.

NaN Handling
For Float and Double attributes, a potential value is the IEEE NaN encoding for the float or double
representation. NaN values can be generated for attributes that are to be historized. These NaNs
will be accompanied by a Bad OPC Data Quality. In any case, NaN is a valid value that can be
generated for floats and doubles. Unfortunately, Historian clients do not handle NaN properly.
Therefore, ArchestrA will convert the NaN value to a Null value representation just prior to sending
to Historian.

Historian Quality Mapping


The Application Server Data Quality is somewhat different than the Historian data quality. The
plan is for Historian to support the OPC Quality definition. Thus, the 16-bit value for the OPC Data
quality is sent to Historian. Within those 16-bits, the low order byte is the standard OPC part.
Wonderware reserves the high order byte. The Good, Bad, Initializing (which is a form of Bad) and
Uncertain states are in the low order byte per the OPC standard.
Any change in the OPC Quality, regardless of whether the Value component has changed, will
cause storage of a new record to Historian. This means that a point that has an identical value
over some period of time with varying qualities will have multiple records stored to Historian. The
quality stored in Historian is to be the actual quality of the attribute in Application Server with no
modification. However, Historian may insert artificial quality (e.g. 24) and null value in the
database when certain situations such as disconnects occur. It does this in cooperation with the
ActiveFactory clients to project the right information on the client.

Wonderware System Platform 3.0 Course - Part 1

5-27

5-28

Module 5 Alarms and History


Historian Timestamp mapping
The timestamp to be sent to Historian for each attribute value/quality update is sent by the object
in the VTQ packet. Both Application Server and Historian use UTC time.

Application Server History Storage Performance


The link from the Application Server to Historian may fail or be down for any of a number of
reasons:

The network connection to Historian goes down unexpectedly.


The Historian storage node goes down or fails unexpectedly.

The Galaxy Platform and its Engines which are generating history startup prior to Historian
node startup in a recovery situation.

History data must be preserved in these cases by having it stored locally until the link to
Historian has recovered or Historian has started. This is called store/forward. This
capability is limited by the hard disk capacity of the system where data is stored before
forwarding. The maximum data storage size to be consumed by store/forward must be
configurable in the Platform. Also, whether store/forward is enabled/disabled can be
configured.

When store/forward capacity is consumed, the oldest data is discarded in preference to


newer data.

Wonderware Training

Lab 16 Configuring History

Lab 16 Configuring History


Introduction
In this lab you are to configure your galaxy for historization to your local Wonderware Historian
software. As an example, the mixers level and state of the Inlet Valve 1 is configured, as well as
the speed of the mixers agitator.
Even when it is not part of the current class, ActiveFactory Trend can be used to quickly retrieve
history data from the history database.

Objectives
Upon completion of this lab you should be able to:


Configure the $AppEngine object to store history data to a Wonderware Historian

Configure attributes within objects for historization including the History Extension

Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.

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 the WinPlatform object


1. Configure the ABGRPlatform instance to use C:\S&F as the Store & Forward folder.

Configure the AppEngine object for History


2. Enable the ABAppEngine instance for storage to the historian in your local computer.

Configure the $ABMixer.LIT template for History


3. Configure the $ABMixer.LIT template to historize the PV attribute using the default values for
the history attributes.
4. Lock all history-related attributes.

Wonderware System Platform 3.0 Course - Part 1

5-29

5-30

Module 5 Alarms and History


Configure the $ABMixer.Inlet1 template for History
5. Configure the $ABMixer.Inlet1 template to historize the PV attribute using the default values
for the history attributes.
6. Lock all history-related attributes for the PV attribute.

Configure the History extension


7. Extend the Speed attribute of the $ABMixer.Agitator template for historization using RPM as
the engineering units.
8. Lock the history extension.

View the History data with ActiveFactory Trend


9. Deploy the ABGRPlatform object on cascade.
10. Use ActiveFactory Trend to connect to the local Wonderware Historian using Integrated
security.
11. Visualize the trend for the following tags:


Agitator_001.Speed

Inlet1.PV

LIT_001.PV

See the next page for Detailed Lab Instructions

Wonderware Training

Lab 16 Configuring History

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 the WinPlatform Object


1. Double-click the ABGRPlatform instance to open its configuration editor.
2. Configure the object as follows:
History storeforward directory:

C:\S&F

3. Click the Save and Close button and check in the object.

Configure the AppEngine Object for History


4. Double-click the ABAppEngine instance to open its configuration editor.
5. Configure the History section as follows:
Enable storage to historian:

checked

Historian:

[Name of the local computer]

Leave the default values for the rest of the attributes.

6. Click the Save and Close button and check in the object.

Wonderware System Platform 3.0 Course - Part 1

5-31

5-32

Module 5 Alarms and History


Configure the $ABMixer.LIT Template for History
7. Double-click the $ABMixer.LIT template to open its configuration editor.

8. Select the History tab and check the PV box to historize the PV attribute. Leave the default
values and lock all attributes by clicking the lock on Historize.

9. Click the Save and Close button and check in the object.

Configure the $ABMixer.Inlet1 Template for History


10. Double-click the $ABMixer.Inlet1 template to open its configuration editor.

11. On the General tab, PV section, configure the object as follows:


Historize PV:

checked (locked)

Force storage period:

0 (locked)

12. Click the Save and Close button and check in the object.

Wonderware Training

Lab 16 Configuring History


Configure the History extension
13. Double-click the $ABMixer.Agitator template to open its configuration editor.
Select the Extensions tab.

14. Select the Speed attribute, check and lock the History extension and configure it as follows:
Engineering units:

RPM

Leave the default values for the rest of the attributes.

15. Click the Save and Close button and check in the object.

Wonderware System Platform 3.0 Course - Part 1

5-33

5-34

Module 5 Alarms and History


View the History Data with ActiveFactory Trend
16. Deploy the ABGRPlatform object on cascade.

17. Launch ActiveFactory Trend by selecting Start / All Programs / Wonderware /


ActiveFactory / Trend.

18. Configure the Server List Configuration as follows and click the Add button:
Server:

LOCALHOST

Authentication information:
Use Integrated security:

Wonderware Training

checked

Lab 16 Configuring History


19. After the server has being added to the Server list click the Close button.

20. With LOCALHOST selected on the Servers pane (top-left pane), you will see the attribute
references configured for historization in the Tags pane (bottom-left pane).

Wonderware System Platform 3.0 Course - Part 1

5-35

5-36

Module 5 Alarms and History


21. On the Tags pane (Bottom-left pane) double-click the following tags to add them to the trend:

Agitator_001.Speed


Inlet1_001.PV

LIT_001.PV

22. Click on the Live Mode icon

Wonderware Training

to configure the Trend to update automatically.

Module 6

Security
Section 1 Security Overview
Lab 17 Security

6-3
6-13

6-2

Module 6 Security

Module Objective
Configure, deploy, and test security with Application Server.

Wonderware Training

Section 1 Security Overview

Section 1 Security Overview


Section Objective
Introduce Security with Wonderware Application Server.
This section provides an understanding of Security as it relates to Application Server.
ArchestrA security is designed to prevent users from performing unauthorized activities. This
includes users of:



The ArchestrA IDE when configuring and deploying objects.


The System Management Console (SMC) when performing maintenance and system
administration functions.

View (or other GUI client applications) when performing runtime operations including
monitoring, control and data entry functions.

Other future ArchestrA utilities.

The system is not designed to stop malicious access to the system. The security system is
designed to support the normal operating parameters of an automation system. Passwords are
encrypted but they are stored in a database that is accessible. So, the system is not designed to
stop determined programmers from accessing the system.
If your application requires a higher level of security, this can be achieved by typical IT
departments using tools provided by Microsoft. To facilitate a higher level of security, the security
model can be configured to support operating system authentication. In that case, the
configuration and runtime permissions can be mapped to the external operating system account.
Some options include password timeout and electronic signature authentication.

The ArchestrA Security Model


See the image below for a visual hierarchical overview of the ArchestrA security model. This
shows the relationships of the objects in the Security Model to each other and to the rest of the
ArchestrA System.

Wonderware System Platform 3.0 Course - Part 1

6-3

6-4

Module 6 Security

Each attribute of an AutomationObject is given a security classification. This provides the ability to
define who can write to attributes of an object.
For example, a certain attribute of the DiscreteDevice may be set by the operator to change its
status while a different attribute may be set by a technician. These attributes are meant for
different people, Operator (operate) and Technician (tuning). Configuring access to all users for all
AutomationObjects on individual bases would be a time-consuming and repetitive effort. Thus,
configured Roles and Security Groups can be applied to Users to enable easier configuration of
the Security Model.
Security Groups are simply the grouping of objects that you want to behave in the same way with
respect to security. Every AutomationObject belongs to exactly one Security Group. By default all
new objects belong to the Default Security Group, which cannot be removed. Roles generalize
Users function, such as Intake Operator or Dispatcher. Roles are granted permissions onto a
number of Security Groups. If, for instance, a Role is granted Tuning access to a Security Group,
then that role has write permissions to all object attributes with a security classification of Tuning
(but none other). Roles are also granted utility functions-based permissions, such as Deploy or
Can Edit.
For example, a Role of Software Engineer is created. This Role has full permissions to modify the
objects in the ArchestrA IDE, and has permissions to deploy as well. To undeploy an object,
though, the system requires that the object is offscan. Control of offscan/onscan is controlled by
Operation permissions -- not granted to the Software Engineer, so he cannot undeploy any objects
in Onscan mode. Only an operator (with Operation permissions) can do so.
Permissions are required to perform most ArchestrA activities. Usually only one permission is
required to perform a given activity, but occasionally, two or more permissions may be required for
operation-critical actions.

Wonderware Training

Section 1 Security Overview


The final aspect of the Security Model is the User. This describes the access to the system allowed
by a User. The User can be granted as many Roles as needed to perform their job.
ArchestrAs security system is configured in the Edit Security dialog box by:
1. Enabling Security
2. Defining your Security Model
3. Mapping Users to the Security Model
4. Mapping AutomationObjects to the Security Model
If the Security is not enabled then Authentication mode is disabled.

Authentication Mode

Wonderware System Platform 3.0 Course - Part 1

6-5

6-6

Module 6 Security
On the Authentication Mode page, choose the mode of Galaxy security:

None: The default setting for new Galaxies, this mode is considered Open Security. It
leaves all functions open to all users. No authentication is provided for any operations in
the ArchestrA configuration or runtime environment. No login dialog boxes are displayed
for operating Application Server utilities or runtime processes.

Galaxy: This mode uses local galaxy configuration to authenticate the user. Use this
setting to create a user security system controlled by the Galaxy database.

OS User Based: This mode enables the Authorization of individual OS users. Use this
setting to take advantage of the operating system's (NT) user authentication system, on
an individual user basis.

OS Group Based: This mode enables the Authorization for users based on which OS
Groups they have been assigned to. Use this setting to take advantage of the operating
system's user authentication system, on a group basis. When you select OS Group
Based Authentication mode, the following Configurable Intervals options are displayed:


Login Time: This value (in milliseconds) is the timeout period during which the
system validates the user's membership against the OS groups selected as ArchestrA
Roles. After this timeout period, the login operation defaults to the local cache. The
result of a successful login for a value other than 0 (zero) is that local cache is stored/
updated. If the login operation times out and the user has performed a previous
ArchestrA login on the computer, local cache is used; if the user has never performed
an ArchestrA login on the computer, the ArchestrA login fails. Minimum allowed value
is 0 (zero); maximum is 9,999,999. Default value is 0 (zero), which switches off this
feature (the operation does not time out). The Login Time option should be used
primarily for intermittent or slow network scenarios. The value you should use in this
option is determined by the speed of your network and by the number of groups
configured in ArchestrA. In other words, the slower the network or the higher the
number of groups, the greater the value should be for Login Time.

Role Update: This value (in milliseconds) is the time between each validation attempt
per OS group for the user's membership when a login is attempted. The user
membership update is done one role per Role Update interval to minimize network
usage. Minimum allowed value is 0 (zero); maximum is 9,999,999. Default value is 0
(zero), which switches off this feature (the operation does not pause between
validating user membership and groups). This option should be used primarily for
intermittent or slow network scenarios. This option operates independently of the
Login Time option. In other words, even if Login Time times out, the role update
operation continues in the background and eventually updates user-to-role
relationships for this user in the local cache.

Note: When you select Authentication Modes, note the messages relevant to your ArchestrA
installation that are displayed in the Note box.

Wonderware Training

Section 1 Security Overview


Authentication Mode selections provide the following general results:

Open security gives all users the Defaultuser credentials. No login dialog boxes are
presented to users during configuration, administration or runtime operations. Login dialog
boxes are presented for all other Authentication Modes.


If you have previously configured security under one Authentication Mode and then you
switch authentication modes, only those users created while configuring the new mode
are enabled. Other users are not deleted, just disabled in the new mode.
When you close the Configure Security dialog box after selecting any Authentication
Mode other than None, you must login. This action ensures that the new security model
can be enforced. If you select Cancel on the login dialog box, the ArchestrA IDE closes.

When you switch to None from another Authentication Mode and click OK, the
ArchestrA IDE is shut down.

When Galaxy authentication is selected, each user must provide a user name and
password in a login dialog box. The security system authenticates the user's credentials
against Galaxy user data. Access to all operations in the ArchestrA IDE and anywhere in
the ArchestrA environment are granted based on the logged in user's associated roles
and permissions. The ArchestrA IDE customizes the user interface to the user's previous
preferences (for instance, which Application Views are shown). The logged in user's name
is shown in the status bar of the ArchestrA IDE.

When OS User Based authentication is selected, each user must provide a domain, user
name and password in a login dialog box. The security system ensures that the OS user is
authorized to use the ArchestrA IDE.

When OS Group Based authentication is selected, each user must provide a domain, user
name and password in a login dialog box. The security system first ensures that the user
is authorized to use the ArchestrA IDE. Then the system authorizes the user's credentials
against operating system groups mapped to security roles in the Galaxy.

Note: In both OS-based authentication modes, a user is not presented with a log in dialog box
if that user has authorization to use that ArchestrA utility.


A user can have multiple accounts within the security system. For instance, a user may
have an account that provides permissions for working with instances but not templates.
The same person may have another supervisory account for working with templates and
managing users in the ArchestrA environment. To switch between levels of authority, the
person must login as the new user. To do this, click Change User on the Galaxy menu.

If the Security is not enabled then Authentication mode is disabled.

Wonderware System Platform 3.0 Course - Part 1

6-7

6-8

Module 6 Security

OS Group Based Security

If you use OS Group Based Authentication Mode, you should first familiarize yourself indepth with
the functions of the Windows operating system, particularly its user permissions, groups and
security features. ArchestrA OS Group Based security leverages those Windows features.
Take note of the following behaviors that are unique to OS Group Based Authentication Mode:
A newly-added user working on a computer that has no access to the Galaxy node cannot
write to an attribute on a remote node if that user has never logged on to the remote node.
This is true even if the user has been given sufficient runtime operational permissions to do
writes. To enable remote writing capabilities, log on to the remote node at least once.

If you log in to ArchestrA on a workstation that belongs to Domain A and Domain


Controller A fails, locally cached login data is used on subsequent logins. When the
domain controller returns to operation, your login will fail during the time period that trusts
are being reestablished by the controller. If during the controller outage, your username/
password data was changed, you may be able to use the old login data if you intend to
work locally. If you want to perform remote operations, you should attempt to log in with

Wonderware Training

Section 1 Security Overview


the new login data. If that fails, the trusts are being reestablished by the controller, and you
should retry at a later time.


If you attempt to log in to ArchestrA on a workstation running Windows 2000, login will fail
until you properly set the TCB privilege in Local Security Policies. Do this as follows: On a
Windows 2000 Server computer - on the Start menu, point to Programs and then
Administrative Tools, and then click Local Security Policies (On a Windows 2000
Professional computer - on the Start menu, point to Settings and then click Control
Panel. In the Control Panel, double-click Administrative Tools. In the Administrative
Tools utility, double-click Local Security Settings.). In the left pane of the Local Security
Settings dialog box, expand the Local Policies folder and click the User Rights
Assignment folder. In the right pane, double-click Act as a part of operating system. In
the Local Security Policy Setting dialog box, add the user (the user logged in to the
computer) by selecting the Local Policy Setting check box, and then click OK. Log off
and log in to the computer again to implement the new TCB privilege. You must be an
administrator to set TCB privilege.
The list of domains and user groups appears differently in the group browser depending
on whether you have configured your domain as a Mixed or Native domain. Your unique
appearance should map to the list of domains and user groups you see when you use the
Windows tool for managing your domain. A domain group that is configured as
"Distribution" rather than "Security" cannot be used for security purposes.
The user's full name is not available to any client (for instance, an InTouch window) if the
domain controller is disconnected from the network when the user logs in to ArchestrA for
the first time. If the user previously logged in to ArchestrA when the domain controller was
connected, the user's full name will still be available to the client from data stored in cache
even if the domain controller is disconnected when the user subsequently logs in to
ArchestrA.

User Authentication
Client utilities like ArchestrA IDE, SMC, and View require their users to be authenticated so that
the appropriate permissions can be confirmed. An authenticated user is granted the sum of all
Permissions within their assumed Roles.

Supported Operating System User Configurations


The following is the list of supported Operating System (OS) user configurations that are
supported within the security system:


Login using an OS user who has been authorized and whose password has expired. The
user will get the message Login Failure: The specified account password has expired.
The user will then be able to change the password.
If the OS user is a new user and the account has been configured to require the password
to be changed on the first logon, on attempting the login they will receive the message
Login Failure: The password for the specified account must be change before first logon.

Supported Operating System Security Configurations


The following list of OS security configurations will be supported:


Machines and users participating in a domain.

Users being drawn from multiple domains.

Wonderware System Platform 3.0 Course - Part 1

6-9

6-10

Module 6 Security


Machines and users defined within a Workgroup. Note the users/groups have been
defined on each machine and imported into the Galaxy Repository (GR) and defined as
Local Host.

Minimal Operating System Permissions Required for Launching OS User


The OS user account must not be required to have any special privileges to enable it to utilize the
client utilities. Specifically it must not require the user to be an Administrator on the host machine.
The user will be able to change their own OS password from within the ArchestrA utility.

Logon Dialog
If security is enabled within the Galaxy, a client utility Logon dialog will be displayed. Application
Server provides a standard login dialog.
The login appears:


The user explicitly chooses a Log On option from within the UI. It is not necessary to
explicitly Log Off before logging on using a different User Profile. The previous user will
be implicitly logged off.

Username and Password are entered onto this dialog.


If OS Authorization is being used then the user will also be required to select from a list of
accessible domain name for the user being logged in.

Logon Object
A Logon COM object is provided for use by any OS client utilities that need to log on to Application
Server. This COM object either provides a Log-on Dialog or is driven silently by an automation
interface. OS authentication and log on dialogs may be leveraged.

Wonderware Training

Section 1 Security Overview

InTouch Access Level within Roles


The role will contain an additional Access Level that is required for legacy InTouch applications.
This will be utilized by InTouch to manage its internal access. When InTouch asks for its Access
Level, then the greatest Access Level for the roles assigned to the logged in user will be returned.

Attribute Security Classifications


Operators interact with AutomationObjects by accessing their Attributes. For example, a Valve is
opened by setting its objects Command Attribute to OPEN.
Attribute SecurityClassifications classify Attributes of AutomationObjects (like the above
Command attribute) from a security perspective. They are:


FreeAccess Any User can write to these attributes to perform safety or time critical
tasks that could be hampered by an untimely logon request (e.g. halting a failing process).
This does not require the user to have any privileges.
Operate Operators write to these attributes during normal day-to-day operations. These
include Attributes such as Setpoint, Output and Control Mode for a PID Object, Command
for a Discrete Device Object, etc. This requires the user to be assigned to the Security
Group of this AutomationObject, to allow the write.
Secured Write Operators write to these attributes for normal interaction with a highly
secured object forces re-authentication. This requires the user to be assigned to the
Security Group of this AutomationObject, to allow the write. The AutomationObject will
reject the write requested via the return status and the user must re-enter the login details.
Verified Write Operators write to these attributes for normal interaction with a very
highly secured object. This is similar to Secured Write, however it also requires a second
user authentication. The second user must also be assigned to the Security Group of this
AutomationObject, to allow the write.
Tune Writing to these attributes is considered a tuning activity. Examples are attributes
that adjust alarm setpoints, PID sensitivity, etc. This requires the user to be assigned to
the Security Group of this AutomationObject, to allow the write.
Configure Writing to these attributes is considered a significant configuration change.
For example, a PLC register that defines a Discrete Device input. This requires the user to
be assigned to the Security Group of this AutomationObject, to allow the write. It also
requires that the Object is currently OffScan.
View-Only The attributes are never written to at runtime, regardless of the user's
permissions.

There are two other situations where an Attribute's Security Classifications are specified:


When a User-Defined Attribute is configured.

When an Engineer overrides the Attribute Security Classification within a Template editor.

Note: Overriding Security Classifications is not permitted within Instances.

Security Across Multiple Galaxies


The ability for user profiles to span multiple galaxies will be supported in future versions.

Wonderware System Platform 3.0 Course - Part 1

6-11

6-12

Module 6 Security

Intentionally left blank

Wonderware Training

Lab 17 Security

Lab 17 Security
Introduction
As you work with the security settings within the ArchestrA IDE you set up various Roles and
Users and configure them with different sets of permissions. You then observe the different
behaviors in the Object Viewer as you logon as various users.
In this lab you configure the security settings for your galaxy and test it with a sample automation
object that has been partially pre-configured for you.
Note: Importing objects will be discussed in detail, including the options in this dialog box, in the
following module.

Objectives
Upon completion of this lab you should be able to:


Configure the security classifications for individual attributes within automation objects

Configure the security settings for a galaxy

Record and view the security audit trail for a galaxy

Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying your
objects in a common galaxy later in the course.

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.

Import the SecurityTest Object


1. Import the object in the $SecurityTest.aaPKG file located in the C:\Wonderware Training
folder.
2. Rename the object $ABSecurityTest and assign it to your toolset.

Wonderware System Platform 3.0 Course - Part 1

6-13

6-14

Module 6 Security
Configure the SecurityTest Object
3. Configure the Security Classifications for each UDA in the object as follows:
Att1_FreeAccess:

Free Access

Att2_Operate:

Operate

Att3_SecuredWrite:

Secured Write

Att4_VerifiedWrite:

Verified Write

Att5_Tune:

Tune

Att6_Configure:

Configure

Att7_ReadOnly:

Read Only

Create and Deploy an Instance of SecurityTest


4. Create an instance of $ABSecurityTest named ABSecurityTest_001 and leave the default
name.

5. Assign the new instance to the ABDischarge area and deploy it.

Configure Security for the Galaxy


6. Configure the galaxys security Authentication Mode to Galaxy.

7. Add a security group named TestGroup and assign the ABSecurityTest_001 instance to it.

8. Configure the Default role with the following permissions:


On the General permissions section:
IDE Permissions:

unchecked

SMC Permissions:

unchecked

Can Write to GObject Attribute using ObjectViewer:

checked

On the Operational permissions section:


Default:

checked

TestGroup:

unchecked

Wonderware Training

Lab 17 Security
9. Add a new role named Operators with an access level of 500 and with the following
permissions:
No General permissions
No Operational permissions for the Default security group
Configure the Operational permissions section for the TestGroup security group as follows:
Can acknowledge Alarms:

checked

Can modify Configure attributes:

unchecked

Can modify Operate attributes:

checked

Can modify Tune attributes:

unchecked

10. Add a new role named Supervisors with an access level of 1000 and with the following
permissions:
No General permissions.
No Operational permissions for the Default security group.
Configure the Operational permissions section for the TestGroup security group as follows:
Can acknowledge Alarms:

unchecked

Can modify Configure attributes:

unchecked

Can modify Operate attributes:

unchecked

Can modify Tune attributes:

checked

11. Add a new role named Engineers with an access level of 2000 and with the following
permissions:
Configure the General permissions as follows:
IDE Permissions: checked (this will check every box within the node)
Framework Configuration:

unchecked

SMC Permissions: checked (this will check every box within the node)
Configure the Operational permissions for the TestGroup security group as follows:
Can acknowledge Alarms:

unchecked

Can modify Configure attributes:

checked

Can modify Operate attributes:

unchecked

Can modify Tune attributes:

unchecked

Wonderware System Platform 3.0 Course - Part 1

6-15

6-16

Module 6 Security
12. Configure the Administrator role with all Operational permissions.

13. Add a new user named HOper with a full name of Homer Operator and make it part of the
Operators role. Assign ww as the password.

14. Add a new user named JSup with a full name of Joe Supervisor and make it part of the
Operators and Supervisors role. Assign ww as the password.

15. Add a new user named WEng with a full name of William Engineer and make it part of the
Engineers role. Assign ww as the password.

Test General Permissions


16. Verify that the WEng user cannot modify the security configuration through the ArchestrA IDE.

Test Operational Permissions


17. Login as Administrator and deploy the ABSecurityTest_001 object.

18. Using the watch list created in Lab 5, add a new watch window called Security and add the
following attribute references:

ABSecurityTest_001.Att1_FreeAccess


ABSecurityTest_001.Att2_Operate

ABSecurityTest_001.Att3_SecuredWrite

ABSecurityTest_001.Att4_VerifiedWrite

ABSecurityTest_001.Att5_Tune

ABSecurityTest_001.Att6_Configure

ABSecurityTest_001.Att7_ReadOnly
ABSecurityTest_001.ScanState

ABSecurityTest_001.ScanStateCmd

19. Save the watch list.

20. Test the different security classifications and the security permissions by modifying the value
of the attributes under the different user accounts created before.

Wonderware Training

Lab 17 Security
View the Security Audit Trail
21. Use SQL Server Management Studio to query all data from the v_EventHistory view.

See the next page for Detailed Lab Instructions

Wonderware System Platform 3.0 Course - Part 1

6-17

6-18

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).

Import the SecurityTest Object


1. From the Galaxy menu, select Import / Object(s) to import an automation object.

2. On the Import Automation Object(s) dialog box, navigate to C:\Wonderware Training and
select the $SecurityTest.aaPKG file. Click the Open button.

Wonderware Training

Lab 17 Security
3. On the Import Preferences dialog box, leave the default options and click OK to continue.
Note: Importing objects will be discussed in detail, including the options in this dialog box, in
the following module.

You can find the imported object in the Application toolset.

Wonderware System Platform 3.0 Course - Part 1

6-19

6-20

Module 6 Security
4. Rename the object $ABSecurityTest and move it your toolset.

Configure the SecurityTest object


5. Double-click the $ABSecurityTest template to open its configuration editor.
Select the UDAs tab.

Wonderware Training

Lab 17 Security
6. Select the Att1_FreeAccess UDA and click the Shield icon to select the security
classification for the attribute. Select the Free Access security classification from the popup
menu.

7. Repeat step 6 to configure the security classifications for the following attributes:
Att2_Operate:

Operate

Att3_SecuredWrite:

Secured Write

Att4_VerifiedWrite:

Verified Write

Att5_Tune:

Tune

Att6_Configure:

Configure

Att7_ReadOnly:

Read Only

8. Click the Save and Close button and check in the object.

Wonderware System Platform 3.0 Course - Part 1

6-21

6-22

Module 6 Security
Create and deploy an instance of SecurityTest
9. Using the Template Toolbox and the Model view, create an instance of the $ABSecurityTest
template. Leave the default name and assign the instance to the ABDischarge area.

10. Deploy the newly created instance.

Configure Security for the Galaxy


11. From the Galaxy menu, select Configure / Security to enable and configure security for the
galaxy.

Wonderware Training

Lab 17 Security
12. Select Galaxy for the Authentication Mode.

Wonderware System Platform 3.0 Course - Part 1

6-23

6-24

Module 6 Security
13. Select the Security Groups tab.

Wonderware Training

Lab 17 Security

14. Click the plus icon button


TestGroup.

to add a new security group. Name the new security group

15. Select the Default security group and locate the ABSecurityTest_001 instance in the objects
list (right pane).

Wonderware System Platform 3.0 Course - Part 1

6-25

6-26

Module 6 Security
16. Drag-and-drop the ABSecurityTest_001 instance to the TestGroup in the security group list
(left pane).
Select the TestGroup security group.
Important!
template.

Wonderware Training

Make sure that you are moving the objects instance and NOT the objects

Lab 17 Security
17. Select the Roles tab.

Wonderware System Platform 3.0 Course - Part 1

6-27

6-28

Module 6 Security
18. From the Roles available list, select the Default role and configure the permissions as
follows:
On the General permissions section:
IDE Permissions:

unchecked (this will uncheck all boxes within the node)

SMC Permissions:

unchecked (this will uncheck all boxes within the node)

Can Write to GObject Attribute using ObjectViewer: checked


On the Operational permissions section:
Default:

checked

TestGroup:

unchecked

Wonderware Training

Lab 17 Security

19. Click the plus icon button

to add a new role and name it Operators.

Double-click on the Access level field and enter 500.


Configure the Operational permissions for the TestGroup security group as follows:
Can acknowledge Alarms:

checked

Can modify Configure attributes:

unchecked

Can modify Operate attributes:

checked

Can modify Tune attributes:

unchecked

Wonderware System Platform 3.0 Course - Part 1

6-29

6-30

Module 6 Security

20. Click the plus icon button

to add a new role and name it Supervisors.

Double-click on the Access level field and enter 1000.


Configure the Operational permissions for the TestGroup security group as follows:
Can acknowledge Alarms:

unchecked

Can modify Configure attributes:

unchecked

Can modify Operate attributes:

unchecked

Can modify Tune attributes:

checked

Wonderware Training

Lab 17 Security

21. Click the plus icon button

to add a new role and name it Engineers.

Double-click on the Access level field and enter 2000.


Configure the General permissions as follows:
IDE Permissions: checked (this will check every box within the node)
Framework Configuration:
SMC Permissions:

unchecked
checked (this will check every box within the node)

Configure the Operational permissions for the TestGroup security group as follows:
Can acknowledge Alarms:

unchecked

Can modify Configure attributes:

checked

Can modify Operate attributes:

unchecked

Can modify Tune attributes:

unchecked

Wonderware System Platform 3.0 Course - Part 1

6-31

6-32

Module 6 Security
22. Select the Administrator role and configure the Operational permissions for the TestGroup
security group as follows:
TestGroup: checked (this will check every box within the group)

Wonderware Training

Lab 17 Security
23. Select the Users tab.

Wonderware System Platform 3.0 Course - Part 1

6-33

6-34

Module 6 Security

24. Click the plus icon button

to add a new user and name it HOper.

Double-click on the Full name field and enter Homer Operator.


Assign the user to the Operators role.

Wonderware Training

Lab 17 Security
25. With HOper selected, click on the Change Password button, enter the following information
in the Change Password dialog box, and then click the OK button to continue.
Old Password:

[blank]

New Password:

ww

Confirm New Password:

ww

26. Click the plus icon button

to add a new user and name it JSup.

Double-click on the Full name field and enter Joe Supervisor.


Assign the user to the Operators and Supervisors roles.

Wonderware System Platform 3.0 Course - Part 1

6-35

6-36

Module 6 Security

27. With JSup selected, click on the Change Password button, enter the following information in
the Change Password dialog box, and then click the OK button to continue.
Old Password:

[blank]

New Password:

ww

Confirm New Password:

ww

28. Click the plus icon button

to add a new user and name it WEng.

Double-click on the Full name field and enter Will Engineer.


Assign the user to the Engineers role.

Wonderware Training

Lab 17 Security

29. With WEng selected, click on the Change Password button, enter the following information in
the Change Password dialog box, and then click the OK button to continue.
Old Password:

[blank]

New Password:

ww

Confirm New Password:

ww

30. Back on the Configure Security dialog box, click OK to accept the security configuration.

31. On the Change User dialog box, enter the following information and then click the OK button
to log in:
User name:

WEng

Password:

ww

Test General permissions


32. Logged in as WEng, from the Galaxy menu, select Configure / Security.
You will be presented with the following dialog box since WEng does not have permissions to
modify security configuration.
Click No to dismiss the dialog box.

Wonderware System Platform 3.0 Course - Part 1

6-37

6-38

Module 6 Security
33. From the Galaxy menu, select Change User to log in as the Administrator.

34. Enter Administrator for the User name and click the OK button to log in as the Administrator.
Note: By default the Administrator account DOES NOT have a password assigned.

Wonderware Training

Lab 17 Security
Test Operational permissions
35. Deploy the ABSecurityTest_001 object.

36. Open Object Viewer by right-clicking the ABSecurityTest_001 instance and selecting View
in Object Viewer. If you closed Object Viewer before, you can use File / Load Watch List to
open the file you saved earlier.

37. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch
Window to add a new tab to the watch list.

38. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the watch list to Security.

39. Add the following ABSecurityTest_001 attributes to the watch list:


Att1_FreeAccess
Att2_Operate
Att3_SecuredWrite
Att4_VerifiedWrite
Att5_Tune
Att6_Configure
Att7_ReadOnly
ScanState
ScanStateCmd

40. Save the watch list.

Wonderware System Platform 3.0 Course - Part 1

6-39

6-40

Module 6 Security
41. Test the different security classifications and the security permissions by modifying the value
of the attributes under the different user accounts created before.
To log in to Object Viewer with a different user account, select Change User from the
Options menu.

42. Enter the users credentials in the Change User dialog box and then click the OK button.

You can verify the current logged in user on the left side of the status bar.

Wonderware Training

Lab 17 Security
View the Security Audit Trail
Note: Make sure that the Alarm DB Logger Manager utility is started.
Tip: You can refer to Lab 15 Configuring Alarms to see how to run and start the Alarm DB
Logger Manager utility.

43. Launch the SQL Server Management Studio by selecting Start / All Programs / Microsoft
SQL Server 2005 / SQL Server Management Studio.

44. Configure the Connect to Server dialog box as follows and then click the Connect button to
continue:
Server type:

Database Engine

Server name:

localhost

Authentication:

Windows Authentication

Wonderware System Platform 3.0 Course - Part 1

6-41

6-42

Module 6 Security
45. In the Object Explorer (left pane) navigate to localhost / Databases / WWALMDB / Views to
get a list of all the databases Views in the Object Explorer Details (right pane).

46. On the Views list (right pane), right-click on the v_EventHistory view and select Open View
to display the current list of alarms logged in the database.

Wonderware Training

Module 7

Galaxy Maintenance
Section 1 Exporting and Importing Objects

7-3

Section 2 Configuring Instances Through a .CSV File

7-13

Section 3 System Management Console (SMC)

7-21

Section 4 Network Account Utility

7-33

7-2

Module 7 Galaxy Maintenance

Module Objectives
Obtain an overview and understanding of:


Exporting and Importing Objects

Configuring Instances Through a .csv File Using Galaxy Dump and Load

Using the System Management Console to manage platforms

Using the Network Account Utility

Wonderware Training

Section 1 Exporting and Importing Objects

Section 1 Exporting and Importing Objects


Section Objective


This section discusses some fundamental functions dealing with Galaxy Maintenance.
Specifically, it illustrates how to Export for future use and how to Import a galaxy created
previously.

This section provides an understanding of fundamental functions dealing with Galaxy


Maintenance. Specifically, it illustrates how to Export for future use and how to Import a galaxy
created previously.

Exporting Automation Objects


Use the ArchestrA IDEs export function to share objects with other users or to recreate them in
other Galaxies. The resulting file (.aaPKG extension) contains the selected objects, their
associated templates and the configuration state of those objects. The export file can later be
imported into the same or another Galaxy.
Subsequent exports retain the default folder as last used for the duration of the ArchestrA IDE
session. If the designated file already exists, you are prompted to confirm overwrite.
If any of the selected objects are currently checked out, only the checked in versions are exported.
Exporting an entire Galaxy is similar to using the Galaxy Database Manager utility to back up the
database. However the change logs for the objects are not exported while they are saved during
backup. Also, the backup process retains security model settings for objects while exporting them
does not.
When exporting an object instance, it will also include the parents of that object all the way back to
and including the base template.
Note: When exporting an object that uses a script function, the script function is not transferred
with it. You must ensure that the script function libraries are transferred separately.

Wonderware System Platform 3.0 Course - Part 1

7-3

7-4

Module 7 Galaxy Maintenance


To export an object
1. Select an object in the Template Toolbox or Application Views pane.
2. From the Galaxy menu, select Export/AutomationObject(s).

Note: You can export more than one object with this function by first multi-selecting objects
(Shift+Click or Ctrl+Click). If you want to export all of the objects in the Galaxy, point to
Export and then click All AutomationObjects.

Wonderware Training

Section 1 Exporting and Importing Objects


3. The Export Automation Object(s) dialog box appears.
In the Export Automation Object(s) dialog box, browse to the path and filename (.aaPKG
extension) of the export file and click Save. Click Cancel to terminate the export function. If
you click Save, a progress box is displayed.

Wonderware System Platform 3.0 Course - Part 1

7-5

7-6

Module 7 Galaxy Maintenance


4. When the export process is finished, click Close. The resulting .aaPKG file can be used to
import the chosen objects into another existing Galaxy.

Note: Export maintains containment relationships that were previously specified. Also, if an
object is currently checked out, the last checked in version of the object's configuration is
exported.

Exporting All Automation Objects


The Exporting All Automation Objects function is much like the Exporting Automation Objects
procedure. The key difference being that with the Export Automation Objects function only the
objects that are selected are exported into a .aaPKG file. With the Export All Automation Objects
function all of the objects and any derived templates are also exported.
The procedure is as follows:
Use the ArchestrA IDEs export function to share objects with other users or to recreate them in
other Galaxies. The resulting file (.aaPKG extension) contains the selected objects, their
associated templates and the configuration state of those objects. The export file can later be
imported into the same or another Galaxy.
Subsequent exports retain the default folder as last used for the duration of the ArchestrA IDE
session. If the designated file already exists, you are prompted to confirm overwrite.
If any of the selected objects are currently checked out, only the checked in versions are exported.
Exporting an entire Galaxy is similar to using the Galaxy Database Manager utility to back up the
database. However the change logs for the objects are not exported while they are saved during
backup. Also, the backup process retains security model settings for objects while exporting them
does not.
Note: When exporting an object that uses a script function, the script function is not transferred
with it. You must ensure that the script function libraries are transferred separately.

Wonderware Training

Section 1 Exporting and Importing Objects


To export all automation objects
1. From the Galaxy menu, select Export/All Object(s).

Wonderware System Platform 3.0 Course - Part 1

7-7

7-8

Module 7 Galaxy Maintenance


2. The Export All Automation Objects dialog box appears.
In the Export AutomationObject(s) dialog box, browse to the path and filename (.aaPKG
extension) of the export file and click Save. Click Cancel to terminate the export function. If
you click Save, a progress box is displayed.

Wonderware Training

Section 1 Exporting and Importing Objects


3. When the export process is finished, click Close. The resulting .aaPKG file can be used to
import the objects into another existing Galaxy.

One key factor to mention is that the security model settings for objects does NOT get exported
when using the Export function. In order to export those you would have to use the Backup
process in the Galaxy Database Manager in the System Management Console (SMC)
discussed in the next Section of this manual.

Importing Automation Objects


Objects can be reused from another Galaxy in your Galaxy. This saves time if the objects are
already set up in another Galaxy.
Importing instances previously exported from a Galaxy retains previous associations, when
possible, such as assignment, containment, derivation, and area.
Objects can be imported from exported .aaPKG files or from an .aaPDF file. An .aaPDF file
contains the configuration data and implementation code for one or more base templates. It is
created by a developer using the ArchestrA Object Toolkit.
Before starting, you cannot have two objects with the same name or more than one copy of the
same version of an object in the same Galaxy. When you import an object, these conflicts are
identified and you can manage them.

Wonderware System Platform 3.0 Course - Part 1

7-9

7-10

Module 7 Galaxy Maintenance


To import Automation objects
1. On the Galaxy menu, select Import/Object(s).

Wonderware Training

Section 1 Exporting and Importing Objects


2. The Import AutomationObject(s) dialog box appears.
Browse for the file with either a .aaPKG or a .aaPDF extension. You can select more than one
file. Click Open.

Wonderware System Platform 3.0 Course - Part 1

7-11

7-12

Module 7 Galaxy Maintenance


3. The Import Preferences dialog box appears.
In the Objects from same toolkit and vendor area, select one of the following:
Skip objects with same conflict or newer codebase leaves the existing object
unchanged.
Overwrite objects with name conflicts if their configuration version is higher
replaces the existing object with the object being imported if the codebases are the same
and the imported object has been edited more often than the existing object.
Migrate objects with a newer codebase also overwrites existing objects if the
codebases (versions) are the same. In addition, this option will migrate the state of
existing objects to the newly imported version if the object supports it. For more
information about migrating, see the Industrial Application Server Installation Guide.
In the Objects from different toolkits and/or vendor but with same tagname area, select
one of the following:
Skip does not import the object when a name match exists in the Galaxy.
Rename Object in Galaxy renames the existing object by appending to its current name
the string (up to four characters) you type in the Append to Object Name box. The default
value is _old but you can change it to any four- character string.
Rename Importing Object renames the object being imported by appending to its current
name the string (up to four characters) you type in the Append to Object Name box. The
default value is _new, but you can change it to any four-character string.
Note: Object name conflict resolution only applies to templates and instances derived from
different base templates.
Click OK to start the import process.

When the import process is complete, you can start using the objects you imported.

Wonderware Training

Section 2 Configuring Instances Through a .CSV File

Section 2 Configuring Instances Through a .CSV File


Section Objective


This section discusses some fundamental functions dealing with Galaxy Maintenance.
Specifically, it illustrates how to Export a galaxy for future use and how to Import a galaxy
created previously.

This section provides an understanding of fundamental functions dealing with Galaxy


Maintenance. Specifically, it illustrates how to Export for future use and how to Import a galaxy
created previously.

Galaxy Dump
Object instances and their configuration data can be exported to a comma-delimited format Galaxy
dump file (.csv extension).
Note: This function only dumps instances. Templates cannot be dumped. The .csv file contains
the configuration for the checked in versions of the selected objects as well as the checked-out
objects of the user who initiates the Galaxy dump. The file contains only those attributes that are
unlocked and configuration time-writeable, one column per attribute. Attributes that are locked,
calculated or runtime writeable only are not saved to the file. Attributes that are not text based (for
example, type QualifiedStruct) are not dumped. Object Help files are not dumped.
To export objects to a Galaxy dump file
1. Select an object in the Application Views pane. You can export more than one instance with
this function by first multi-selecting objects (Shift+Click). Also, you can dump all instances
derived from a template by selecting just the template.

Wonderware System Platform 3.0 Course - Part 1

7-13

7-14

Module 7 Galaxy Maintenance


2. Select Export on the Galaxy menu and then click Galaxy Dump.

The Galaxy Dump dialog box is displayed.

Wonderware Training

Section 2 Configuring Instances Through a .CSV File


3. Browse to the name and location of the .csv file to which you want to dump the selected
instances. Click Save to continue or Cancel to end the export function. The Galaxy Dump
progress box is displayed.

4. After the Galaxy dump process is finished, click Close. A .csv file has been created containing
the selected objects and configuration data.

Wonderware System Platform 3.0 Course - Part 1

7-15

7-16

Module 7 Galaxy Maintenance


The actual .csv file has been created.

Galaxy Dump File (.csv) Structure


Dumped objects are organized in the resulting .csv file based on the template from which each is
derived. A header row per template indicates the instances columns reference. Comments can
be added in the resulting .csv file by adding a line preceded by a semi-colon.
Note: Carriage returns in scripts associated with dumped objects are replaced with "\n" in the .csv
file. If you edit the dump file, do not delete the "\n" characters. If you edit scripts in the dump file,
use "\n" for a carriage return. This character set is interpreted as a carriage return when the dump
file is used in a Galaxy Load function. When editing a script in a dump file, use "\\n" if you want to
include the character "\" followed by the character "n" in a script. This character set is not
converted to a carriage return in a Galaxy Load function.

Wonderware Training

Section 2 Configuring Instances Through a .CSV File


Galaxy Load
Object instances and their configuration data in an existing Galaxy can be exported to a commadelimited format Galaxy dump file (.csv extension). A .csv file can be edited in most text editors
and spreadsheet programs. Using editing functions like copy and paste, you can create quantities
of already-configured objects ready to be imported into your Galaxy.
Note: The contents of the .csv file is determined by the original Galaxy dump. A load file contains
only instances. Templates cannot be dumped and loaded.
Important: The Dump contains only Object Instances. For the Load to succeed, the templates
from which those objects were derived must already exist in the Galaxy.
To import a .csv file
1. Select Import on the Galaxy menu and then click Galaxy Load.

The Galaxy Load dialog box is displayed.

Wonderware System Platform 3.0 Course - Part 1

7-17

7-18

Module 7 Galaxy Maintenance


2. In the Galaxy Load dialog box, browse to locate the .csv file that contains the objects and
configuration data you want to import.
Select the file and click Open to continue or Cancel to end the import function.

Wonderware Training

Section 2 Configuring Instances Through a .CSV File


The Galaxy Load Conflict Resolution dialog box is displayed. Use it to resolve conflicts that
occur if objects you want to load already exist in the Galaxy. The options are:

Replace entire instance if an instance of an object with the same name already
exists and you want to replace it entirely with the object in the import file.

Only update changed attributes if an instance with the same name already exists
and you want to replace only the attributes of the object where the values are
different.

Skip if an instance with the same name already exists and you want to keep the
version already in the Galaxy.

Stop Galaxy Load if an instance with the same name already exists and you want to
cancel the Galaxy Load.

3. Choose the preferred conflict resolution and click OK. A progress box is displayed during the
Galaxy load process. Click Cancel to terminate the Galaxy load process.

A Galaxy Load dialog box appears indicating that the Load was successful.
All objects that were changed or created during the Galaxy Load process are checked out to
the logged in user.
Note: A comment line in a .csv file created in Microsoft Excel may create an unintended
default-value object. To avoid this scenario, open the .csv file in Notepad to ensure the
comment line does not contain quote marks.

Wonderware System Platform 3.0 Course - Part 1

7-19

7-20

Module 7 Galaxy Maintenance

Intentionally left blank

Wonderware Training

Section 3 System Management Console (SMC)

Section 3 System Management Console (SMC)


Section Objectives


Understand the role of the System Management Console, and;

Have an understanding of how it can be configured.

This section provides an understanding of role of the System Management Console and how it can
be configured.

About System Management Console


The System Management Console (SMC) provides ArchestrA Application Server application
diagnostics by allowing you to view the run-time status of some system objects and to perform
actions upon those objects. Actions include setting platforms and engines in an executable or idle
mode and starting and stopping platforms and engines.
The System Management Console is used to assist system integrators and system administrators
in performing administrative tasks and diagnostics on an ArchestrA application. It provides
application infrastructure diagnostics by allowing the viewing of runtime status of some system
objects and the ability to perform actions upon those objects. Actions include setting Platforms
and Engines in an executable or idle mode and starting and stopping Platforms and Engines.
This tool is one in a series of administrative tools that can be used for diagnostic purposes on
ArchestrA applications. Another tool available for performing diagnostics on applications is the
Visual Local Message Exchange (VLMX) Test Tool, which allows viewing and modifying of
attributes of AutomationObjects. Because the Platform Manager is a Microsoft Management
Console (MMC) Snap-in, its interface is integrated into the MMC environment and it appears as a
single interface.

Features of the Platform Manager


Some of the key features of the Platform Manager are that it:

Runs with minimal ArchestrA and operating system requirements, equivalent to "Safe
mode"


Uses the local platform as the gateway to the ArchestrA application


Does not rely on the Galaxy Repository to exist

Allows viewing of the layout of the Galaxy Repository, Platforms, and Engines

Provides the ability to set Platforms and Engines OnScan or OffScan

Provides the ability to start and stop Platforms and Engines

Starting Platform Manager


Platform Manager is a common component of an Application Server application and it is available
from any PC node in the application that has a deployed platform; therefore, you do not need to
install it onto each node. This ensures that all nodes used within a galaxy have access to Platform
Manager.
When you use Platform Manager, you can access the platforms and engines deployed to the local
PC node and to any other PC node in the Galaxy. Platform Manager does not require the
GalaxyRepository to be installed on the PC node.

Wonderware System Platform 3.0 Course - Part 1

7-21

7-22

Module 7 Galaxy Maintenance


After highlighting a platform, you can use the Action menu to start or stop a platform, or set it
OnScan/OffScan. If the platform has security implemented, you must be logged on as a user
configured with the proper SMC permissions to start SMC, Start/Stop engines and platforms, or
write from the Object Viewer.

To Start Platform Manager


Ensure your Application Server application is running. Start Windows and click Start to start your
programs. Select Programs/Wonderware/System Management Console.

If Platform Manager has security enabled, the Platform Manager Login dialog box appears.

From the Platform Manager Login dialog box, enter your User Name and Password. If the
configured security is OS User Based, then select the domain from the Domain list box. Click OK.

Wonderware Training

Section 3 System Management Console (SMC)


After successfully logging in, or if no security is enabled for Platform Manager, the Platform
Manager appears under the ArchestrA System Management Console (SMC) root node.

Console Tree
The console tree has a Windows Explorer-type hierarchical structure layout, with the ArchestrA
System Management Console appearing as the root node and the SMC snap-ins appearing
below this node. Like Windows Explorer, the console tree can be expanded or collapsed by
clicking on the "+" or the "-" symbols that appear next to the snap-in.
The console tree shows the items that are available in the console. The snap-ins that appear
below the ArchestrA SMC node include the Platform Manager, the Log Viewer, the DAServer
Manager, and the Galaxy Database Manager.
The contents of the details pane changes as you select items in the console tree.

Details Pane
The details pane is comprised of two main elements:

Column headings: when Galaxy Database Manager is selected in the console tree, two
columns are displayed, Node and Galaxy. The Node column identifies which node a
galaxy resides on. The Galaxy column displays the galaxys name. Use this information
when backing up and restoring galaxies.


Data window: displays galaxy data.

The contents of the details pane changes as you select items in the console tree.

Wonderware System Platform 3.0 Course - Part 1

7-23

7-24

Module 7 Galaxy Maintenance


Security
For all ArchestrA administrative utilities, including Platform Manager, security is configured through
the ArchestrA IDE. By default, there is no security enabled for Platform Manager or any of the
other utilities.
There are four authentication modes for security that can be enabled for Platform Manager:


No authentication

Galaxy authentication mode

OS User Based authentication mode

OS Group authentication mode

When no security is enabled from the ArchestrA IDE, the user is automatically logged into Platform
Manager as "DefaultUser." Without security, the logon dialog box does not display when Platform
Manager is launched and the user is granted all permissions.
If the security configured from the ArchestrA IDE requires Galaxy authentication, OS User Based
authentication, or OS Group authentication, then some of the existing users and roles are not valid
and the user may not be able to perform some operations.

Galaxy Authentication
Galaxy authentication requires the user to log into Platform Manager every time the utility is
started.

OS User Based Authentication


OS User Based authentication allows users who have matching OS accounts to log in, while all
others are rejected.

OS Group Authentication
In OS Group authentication, the user defines roles that match OS Groups and at log in, the OS
Groups are matched with the roles.

Console Menu Commands


Upon opening the System Management Console there are a wide selection of options available
from the menu and icon bar:

The following commands are available from the Platform Manager Action menu when you select
a platform or engine in either the console tree or the details pane.

Wonderware Training

Section 3 System Management Console (SMC)

Command

Description

Configure

Allows configuration of the Log Viewer and Storage

Log Flags

Opens the Log Flag editor

Open Log File

Allows the opening of a Log File

Connect

Allows either local or remote connections configuration

Messages

Allows Messages to be exported, purged, or printed

Refresh

Refreshed the database

Help

Access to the System Management Console Help files

These commands are also available by right-clicking an item in either the console tree or the
details pane. The available commands are dependant on the current state of the object and your
security permissions. If you do not have permission to perform a particular command, then that
command is grayed out.
The following commands are available from the Platform Manager View menu when you select a
platform or engine in either the console tree or the details pane.

Command

Description

Filter

Allows filtering of Messages, Time Range, or Terminal Sessions

Find

Search capability on Process ID, Thread ID, Log Flag, Component, or


Message

Wonderware System Platform 3.0 Course - Part 1

7-25

7-26

Module 7 Galaxy Maintenance


Command

Description

Go To

Allows redirection to a Bookmarked location

Bookmarks

Allows Adding or removing of a Bookmark

Mark

Allows the entry of a Marker Message to the log

Choose Columns

Select specific columns to show or hide

Customize

Change the appearance of the view

Platform Manager Toolbar Buttons


The following toolbar buttons may appear on the console toolbar, but vary depending on the object
that you select in the console tree and its current state.

Button

Description
Back
Forward
Up one level
Show/Hide Console Tree/Favorites
Refresh
Help
Filter
Enable/Disable Message Filter
Find
Fast Mark
Export
Print
Print Preview

Wonderware Training

Section 3 System Management Console (SMC)


Log Viewer
The Logger 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.
The Log Viewer can:


Monitor messages on any machine in the system

Send a portion of the log to notepad or E-mail

Filter messages on a flag

Security for the log viewer is set at the galaxy level.


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.

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.


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 ArchestrA 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
1. Gather as much information first about the process that is malfunctioning. For instance, you
attempted to deploy an object in the ArchestrA IDE and a message was displayed stating the
deployment was not completed. Note the function you attempted and the message you
received.
2. 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

Wonderware System Platform 3.0 Course - Part 1

7-27

7-28

Module 7 Galaxy Maintenance


node the ArchestrA 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.
3. 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.
The following chart indicates the key differences in Log Viewer and WWLogger.

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 3 System Management Console (SMC)

6
LogFlag Editor
LogFlag Viewer

5
3
4

2
1

Using Bookmarks
Bookmarks are unique labels you can apply to individual messages for quick access. They differ
from marks in that bookmarks are associated with specific messages while marks are messages
added below the message that is currently last in the log.
You cannot enter duplicate bookmark names for more than one message, and a message can
have only one bookmark.
The message window can display a Bookmark column, which is initially hidden by default. To
show the Bookmark column, right-click on the column header of the message window and click
Show. In the Choose Columns dialog box, click Bookmarks in the Columns Hidden box, click the
Show button to move it to the Columns Shown box and click OK. The Bookmark column is added
at the far right of the column header. Click and drag it to another position if you want. When
the text of a bookmark in the Bookmark column is partially obscured, point to it to display the
entire bookmark like a tool tip.
You can set bookmarks in two ways: adding a regular bookmark that you can name and setting a
fast bookmark that is named for you.

To add a regular bookmark to a message


1. Right-click the message and click Add Bookmark on the Bookmark submenu.
2. In the Add Bookmark dialog box, either accept the default name (Bookmarkx where x is a
number in an ascending sequence) or overwrite it with something more descriptive. You can
change the bookmark name in the Bookmarks dialog box at a later time. See "To manage
bookmarks" below.
3. Click OK to set the bookmark or Cancel to terminate the process.

To set a fast bookmark on a message


1. Right-click the message and click Fast Bookmark on the Bookmark submenu. A default
naming sequence is applied to the message (Bookmarkx where x is a number in an ascending
sequence). Alternatively, you can set a fast bookmark by selecting the message and clicking
the Fast Bookmark icon on the toolbar.
2. Change the bookmark name to something more descriptive, if necessary, in the Bookmarks
dialog box at a later time. See "To manage bookmarks" below.

Wonderware System Platform 3.0 Course - Part 1

7-29

7-30

Module 7 Galaxy Maintenance


To go to a bookmarked message
1. On the View menu, click Go To.
2. In the Go To dialog box, enter the name of the messages bookmark by typing it in the box or
selecting from the list.
3. Click Go To. The Go To dialog box remains open.
4. Use the Previous and Next buttons to go to the nearest bookmarked message above and
below, respectively.
5. When you are done searching, click Close.
Note: You cannot go to bookmarked messages that are currently hidden by a filter. If you cannot
find the desired message, disable filtering and try again.

To manage bookmarks
1. On the View menu, click Bookmarks.
2. In the Bookmarks dialog box, you can manage current bookmarks and create new ones. The
bookmark list shows the current set of bookmark names and associated Message No. (the
same number as the No. column in the message window). The bookmark list provides several
functions.
3. For instance, to rename a bookmark, select it, press F2 and type the new name. Note that
each bookmark must have a unique name; so you cannot bookmark two messages with the
same name.
4. To go to a bookmarked message, double-click on it in the list or select it and click Go To.
5. To remove one or all bookmarks from your logged messages, select a message and click
Remove, or click Remove All.
6. To add a new bookmark, select the message you want to bookmark in the message window
and click Add. This function is comparable to a fast bookmark. Rename it by pressing F2.
7. When you are done, click Close.
Note: Bookmarks are not saved when you quit the Log Viewer application. To mark your message
log more permanently, use the Mark command on the View menu.

Galaxy Database Manager


Selecting the Galaxy Database Manager on the SMC Menu allows you to view all the galaxies in
the Galaxy Repository, as well as the nodes they reside on.
You must have Administrative privileges to use the Galaxy Database Manager.

DAServer Manager
The DAServer Manager allows local or remote configuration of the DA Server and its device
groups and items, and can monitor and perform diagnostics on DAServer communication with
PLCs and other devices.

Wonderware Training

Section 3 System Management Console (SMC)


Like the LogViewer and Platform Manager, the DAServer Manager is a Microsoft Management
Console (MMC) snap-in. Many high-level functions and user-interface elements of the DAServer
Manager are universal to all DAServers; to understand the DAServer Manager, it is critical to read
the documentation for both the MMC and the DAServer Manager.
To read the documentation about the MMC and DAServer Manager, click the Help topics on the
SMC Help menu. Both the MMC Help and the DAServer Manager Help are displayed.

Wonderware System Platform 3.0 Course - Part 1

7-31

7-32

Module 7 Galaxy Maintenance

Intentionally left blank

Wonderware Training

Section 4 Network Account Utility

Section 4 Network Account Utility


Section Objectives
This section discusses the role of changing the network account and how to use the Change
Network Account Utility to accomplish that task. After discussing this section you will be able to:


Understand the role of the Change Network Account Utility, and;

Have an understanding of how it can be configured.

This section discusses the role of changing the network account and how to use the Change
Network Account and how to configure it.

Change Network Account Utility


The Change Network Account utility is a tool you can use to manage credentials for node-tonode communications between ArchestrA components.
During the initial installation of an ArchestrA component, you are prompted either to create a new
user account or to use an already existing account, and provide a user name and password for
that account. The same account must be used on each computer that requires communication
with others in the ArchestrA environment. Use the Change Network Account utility to change this
data, if necessary, on any computer after installation of an ArchestrA component.
WARNING! If you change user account data with this utility, you could adversely affect
communications between the computer and others with installed ArchestrA components (including
existing Wonderware products that are ArchestrA enabled). All ArchestrA nodes that require
communication with others must use the same account, user name, and password. Use this utility
only to standardize user account data on all computers requiring communication. Do not delete
this account with operating system account management tools. If you do, the ArchestrA IDE will
stop functioning properly. If you delete the ArchestrA user account on an ArchestrA IDE node, you
must recreate it with the Change Network Account utility.

Node-to-Node Communications
All computers that have installed ArchestrA-enabled software must be able to communicate with
each other. This communication is enabled through an ArchestrA-specific user account set up
during the initial installation of an ArchestrA component on each computer.
Subsequent installations of ArchestrA components do not prompt for user account
information. They automatically use the account set up during the installation of the initial
component.
The user account described in this document only enables node-to-node communications
between ArchestrA components. It is not associated with ArchestrA security, which provides user
authentication for individual access points to the infrastructure.
Note: You must have Administrator privileges on the computer to make changes with the Change
Network Account utility.

To recreate an ArchestrA user account


1. Start the Change Network Account utility by selecting Start/Programs/Wonderware/
Common/Change Network Account.

Wonderware System Platform 3.0 Course - Part 1

7-33

7-34

Module 7 Galaxy Maintenance

The Change Network Account dialog box appears.

The data shown in this dialog box are those settings entered during the initial installation of an
ArchestrA component on the computer. The password options are shown blank for security
reasons.

Wonderware Training

Section 4 Network Account Utility


The Change Network Account utility allows you to change the current data shown in the
dialog box, including:


Changing the password of the current account.

Creating a new local user account.

Using an existing local machine or network domain account.

2. In a single-node ArchestrA system, create any account.


3.

In a multi-node ArchestrA system, recreate the same user account with the same user name
and password that was created on all other computers that have installed ArchestrA-enabled
software.

4. Once you have configured the account, click OK.

Note: After you recreate the user account in the Change Network Account dialog box, the
Microsoft Windows security component on your computer may take several minutes to update
this information on the ArchestrA Galaxy node. Until that occurs, your ArchestrA IDE may not
function properly. Rebooting the Galaxy node causes this update to occur immediately.
When you use the Change Network Account utility to create or use an account that is different
from the one originally set up during installation, the old account is maintained (not deleted).

Wonderware System Platform 3.0 Course - Part 1

7-35

7-36

Module 7 Galaxy Maintenance


WARNING! After you change any data shown in the Change Network Account dialog box,
ensure that all other computers that have installed ArchestrA-enabled software use the same type
of user account with the same user name and password.

Error Messages
When using the Change Network Account utility, you may encounter the following error messages.
Error Message

Action Required

Administrative privileges are


required to run this utility.

You must have Administrator privileges on the computer to run this


utility. Click OK, login as a user with Administrator rights, and start the
Change Network Account utility again.

The Password was not correctly


confirmed. Please ensure that the
Password and Confirmation
match exactly.

You mistyped either the password or confirmation password in the


dialog box. These two passwords must match to ensure the accuracy
of user account data. Click OK, retype both password and confirmation
password text, and then click OK again.

Password cannot be empty.


Please enter a valid password

You must type a password in the Change Network Account utility. Click
OK, type a password in the dialog box, type the same password in the
Confirm Password box, and then click OK again.

User account 'a' already exists.


Please enter another user name.

You chose to create a local account by selecting Create Local


Account in the Change Network Account utility. This account already
exists. Click OK, type a new user name in the Change Network
Account utility, and click OK.

Domain/Local Machine name


cannot be empty.

You must enter an existing local machine or network domain account.


Click OK, either type a valid network domain name or select the local
machine name from the list, and click OK. If you dont know the valid
network domain name, ask your network administrator.

User account 'a' does not exist.


Please enter another user name.

You chose to use a local machine or network domain account that does
not exist. Click OK. Ensure the user account you entered in the
Domain/Local Machine Name box is valid and the user name and
password you typed are valid for that user account, and then click OK.
If this message is displayed again, check with your network
administrator about the existence of the account.

The password policy for this


account allows the password to
expire and to be changed.
However the password must not
expire or should not be changed
for the ArchestrA products to
function properly. Do you want to
use this account?

You chose to use a local machine or network domain user account


whose password policy allows the password to be changed or to
expire. Click OK if you want to use this account or Cancel to return to
the Change Network Account utility. Then, you can choose to use or
create another user account.

Do you want to update user


account 'a' to use this new
password?

You chose to use a local machine user account, but the password you
typed does not match the account's password. Click OK if you want to
change the password for this user account or Cancel to revert to the
original settings. If you click OK, the password for the account is
changed. If you click Cancel, the Change Network Account utility is
displayed, allowing you to correct the password or type another user
name and password.

Invalid Domain name 'dom'.


Please enter a valid domain
name.

You typed an invalid network domain name in the Domain/Local


Machine Name box. Click OK, retype the domain name, and click OK.

Wonderware Training

Caution! It is recommend that you do not use a domain account whose


password expires periodically or can be changed. Using such an
account is allowed, but after the expiration date or the password is
changed, node-to-node communications end. You then must use the
Change Network Account utility on each computer to update the
account data to re-establish communications.

Section 4 Network Account Utility


Error Message

Action Required

Invalid Password for user account


'a'. Please enter the correct
password.

You chose to use a network domain user account, but the password
you typed does not match the account's password. Click OK, correct
the password, confirm the password, and click OK.

The system will now reboot.


Please close all your open
applications and press "OK" when
you are done.

You changed account information in the Change Network Account


utility. The computer must be restarted to implement those changes.
Close open applications, and click OK.

User name cannot contain these


characters: " / \\ [ ] : ; | , + * ? < >
Please enter a valid user name.

You used one or more invalid characters in the User Name box. Click
OK, type a valid user name and click OK.

A user name cannot consist solely


of periods [.] or spaces.

You must type a user name in the Change Network Account utility.
Click OK, type a user name in the dialog box, and then click OK again.

Multiple NIC Computers


Any node in your Galaxy that contains more than one network card must be configured according
to the following instructions to ensure communications with other ArchestrA nodes.
Note: If a multiple NIC computer in your Galaxy uses only one NIC, you should disable all cards
except the supervisory network.
For any multiple NIC ArchestrA node to communicate successfully with all other Galaxy nodes,
you must define the correct order of network connections in the network services of the computer.
Open the Network and Dial-up Connections dialog box (see image below) and rename each
card with a clearly identifiable function (for instance, "Supervisory Net" and "PLC net"). Different
operating systems provide unique access to the Network and Dial-up Connections dialog box
(in Windows 2000 Professional, click Start; point to Programs, Accessories and
Communications; and then click Network and Dial-up Connections).

Wonderware System Platform 3.0 Course - Part 1

7-37

7-38

Module 7 Galaxy Maintenance


Next, you must order the network cards properly. In the Network and Dial-up Connections
dialog box, click Advanced Settings on the Advanced menu. In the Advanced Settings dialog
box (see image below), use the up and down arrows to define the correct order of Connections and
click OK. The first connection in the list must be the supervisory network card. If a computer contains
more than two network cards (for instance, a supervisory connection, a PLC connection, and an
RMC connection for ArchestrA redundancy), the supervisory net must be listed first and the
others can be listed in any other position.

Several other parameters must be configured to ensure successful node-to-node communications


in the ArchestrA environment. You must configure the IP address and DNS settings as follows for
each network card to function properly.
Do the following for each network connection
1. In the Network and Dial-up Connections dialog box, right-click the network connection and
click Properties in the shortcut menu. The connection's Properties dialog box (see image
below) is displayed.

Wonderware Training

Section 4 Network Account Utility

2. Select Internet Protocol (TCP/IP) in the list of components used by this connection, and click
Properties. The Internet Protocol (TCP/IP) Properties dialog box (see image below) is
displayed.

Wonderware System Platform 3.0 Course - Part 1

7-39

7-40

Module 7 Galaxy Maintenance

3. For the supervisory network, select Obtain an IP address automatically. For the other
network connections, select Use the following IP address. Consult your network
administrator for the proper settings for the remainder of the parameters in this group.
4. Click Advanced. The Advanced TCP/IP Settings dialog box (see image below) is displayed.
Click the DNS tab.

Wonderware Training

Section 4 Network Account Utility

5. For the supervisory network, select Register this connection's addresses in DNS. For the
other network connections, clear this check box.
6. Click OK.

Wonderware System Platform 3.0 Course - Part 1

7-41

7-42

Module 7 Galaxy Maintenance

Intentionally left blank

Wonderware Training

Module 8

Device Integration Products


Section 1 Wonderware I/O Servers

8-3

Section 2 Data Access Servers

8-9

Section 3 Device Integration Objects

8-19

8-2

Module 8 Device Integration Products

Module Objectives
Obtain an overview and understanding of:


DAServers and DI Objects and how they relate to the connectivity of your application to
external data.

FactorySuite Gateway and how it can enhance the connectivity of your application.

Wonderware Training

Section 1 Wonderware I/O Servers

Section 1 Wonderware I/O Servers


Section Objective


Configure a Wonderware I/O Server (Modbus)

This section will describe the configuration of a Wonderware I/O Server (Modbus).

Introduction
Wonderware I/O Servers are Microsoft Windows application programs that enable other DDEaware Windows applications (such as InTouch or Excel) access to data in the real world (such as
PLCs or RTUs).
Wonderware servers are primarily intended for use with Wonderware's InTouch program; however,
they can be used by any Microsoft Windows program capable of acting as a DDE client.
In this section, we will examine the start-up, configuration and use of a Wonderware I/O Server.
Because Wonderware's I/O servers are Windows applications, they will all have the same basic
appearance and capabilities. Keep in mind that depending on server required, additional hardware
(network, and so on) may be necessary and the configuration screens may require additional
information.
The following information references the Modbus I/O Server as a point-to-point server using the
RS-232 serial port to PLCs provided at the Wonderware facility training environment. Your
instructor may have you configure the following screens differently.
Note: All I/O Server setup which follows is specific to the Wonderware facility training
environment. Your instructor will provide the proper configuration information. It accesses one
Koyo DirectLogic O5 PLC via its programming port.

Configuring I/O Servers


Once the I/O Server has been installed, some configuration is required. Configuring the server
automatically creates a configuration file named MODBUSDV.CFG. This file stores the
configuration information about communication ports and all of the topic definitions (described in
detail later).
The configuration file is automatically saved to the directory in which the I/O Server is installed
unless a different directory is specified via the Configure / I/O Server Settings command.
a. Select Start / Programs / Wonderware / IOServers / Modicon MODBUS.
The MODBUS dialog box appears:

b. Click Configure / Com Port Settings.

Wonderware System Platform 3.0 Course - Part 1

8-3

8-4

Module 8 Device Integration Products


The Communication Port Settings dialog box appears. This dialog is used to configure the
communication port that will be used to communicate with the PLC equipment.

Com Port: Select the communication port that is connected to the PLC equipment.
Reply Timeout: Enter the amount of time (in seconds) that all PLCs connected via this serial
communications port will be given to reply to commands from the I/O Server.
Note: This timeout is sustained only when the PLC fails to respond. When the PLC is
responding normally, there is no penalty. The default value of 3 second should be sufficient for
most configurations.
Protocol area: Select the protocol configured for the equipment attached to this
communication port. RTU is recommended.
Baud Rate area: Select the baud rate (serial bit rate) setting that matches the equipment
connected to this communication port.
Data Bits area: Select the option for the number of data bits that corresponds to the
configuration of the equipment on this communication port.
If ASCII is selected for the protocol, use 7. If RTU is selected, use 8.
Stop Bits area: Select the appropriate number of stop bits for the communication port. If the
baud rate is greater than 300, the stop bits should be set to 1.
Parity area: Select the setting that corresponds to the configuration of the equipment on this
communication port.
Note: All devices on a single communication port must be configured with the same Protocol,
Parity, Stop Bits, Data Bits and Baud Rate.

Wonderware Training

Section 1 Wonderware I/O Servers


For this training class, the following settings must be configured as shown.
c. Save your changes in the suggested directory and click Done to exit.

Note: Click Save to save the current settings entered for the selected communication port.
The Communication Port Settings dialog box remains displayed and another communication
port can be configured.

Wonderware System Platform 3.0 Course - Part 1

8-5

8-6

Module 8 Device Integration Products


Creating Topic Definitions
The Configure / Topic Definition command is used to create, modify, or delete topic definitions.
One or more topic definitions must exist for each PLC that the I/O Server will communicate with.
Each topic definition must contain a unique name for the PLC associated with it. This unique name
is then used as the topic name portion of the DDE Address for all DDE conversations to that PLC.
a. Click Configure / Topic Definition.
The Topic Definition dialog box appears:

Note: Once topics have been defined, their names will be listed in the Topics pane of this
dialog box.
b. Click New to add a new topic definition.
The MODBUS Topic Definition dialog box appears:

c. Topic Name: Enter a unique name (up to 32-characters long) for the PLC in the field.
Note: When communicating with InTouch, this exact name is used as the topic name in the
Access Name definition.
d. ComPort: Select the communications port to be associated with this topic.

Wonderware Training

Section 1 Wonderware I/O Servers


e. Slave ID: Enter the Slave ID of the PLC in the box.
f.

Slave Device Type: Drop-down list contains slave device types other than the default.

g. String Variable Style: The PLC will use this style to store ASCII strings in its registers.
h. Register Type: Select BINARY or BCD, based on hardware used.
i.

Block I/O Sizes: Coil Read: Enter the maximum number of consecutive coils to be read at
one time. In this example, the valid coil read values can be between 8 and 2000 and must be
an even multiple of 8.

j.

Coil Write: Enter the maximum number of consecutive coils that can be written to at one time.
In this example, the valid coil write values can be between 8 and 800 and must be an even
multiple of 8.

k. Register Read: Enter the maximum number of consecutive registers to be read at one time.
In this example, the valid register read values can be between 1 and 125.
l.

Register Write: Enter the maximum number of consecutive registers that can be written to at
one time. In this example, the valid register write values can be between 1 and 100.

m. Update Interval: Enter the frequency (in milliseconds) that the I/O Server will read (poll) the
items/points associated with this topic. Different items/points can be polled at different rates by
defining multiple topic names for the same PLC and setting different update rates for each
topic.
n. Click OK to accept the entries and close the dialog box.
The Topic Definition dialog box will open with the new topic listed:

o. Click the Done button to close this dialog box and return to the server's program window.
p. Click Modify to change an existing topic definition.
q. Click Delete to delete an existing topic definition.
Note: The previous information is provided for example only. Configuration steps for this class
are provided in the following lab.

Wonderware System Platform 3.0 Course - Part 1

8-7

8-8

Module 8 Device Integration Products

Intentionally left blank

Wonderware Training

Section 2 Data Access Servers

Section 2 Data Access Servers


Section Objective


Become familiar with DAServer and its use with Wonderware Application Server.

This section provides familiarization with DAServer and its use with Wonderware Application
Server.

Introduction
Wonderwares DAServer is designed to provide simultaneous connectivity between client
applications based on Wonderware SuiteLink, OPC and DDE protocols that run on Microsoft's
Windows 2000 and Windows XP operating systems and the data devices supported by the specific
protocol being translated.
Wonderware's DAServers also come with an exclusive new user interface called the DAServer
Manager, which is installed as a Microsoft Management Console snap-in. Its end-user benefits
include simple remote server activation, configuration and operation, and extensive protocol
diagnostic troubleshooting.
Several standard features are available with each DAServer, including:


Compliance with OPC version 2.05

Stand-alone operation mode

Support for hot configuration, device additions and device- and server-specific parameter
modifications

A wide range of DAServers support connectivity to numerous protocols and products.


Wonderware's current DAServers offering also includes support for:


Allen-Bradley's CIP protocol for ControlLogix

Allen-Bradley's TCP protocol

Allen-Bradley's DH Plus protocol

Siemens' Simatic Net S7

Modbus Serial protocol

Configuration
DAServers can be configured using the DAServer Manager utility. The DAServer Manager is an
MMC shell capable of displaying specific configuration pages for each configuration node. This
utility allows browsing and editing of servers on different nodes.
DAServers are hot configurable. In other words, they are configurable while the server is running
or even acquiring data. Certain restrictions imposed by the underlying network/protocol/hardware
might apply. For instance, if you uncheck System Items on the global parameters configuration
dialog of the DAServer Manager and select Apply, and then re-check System Items and Apply,
System Items data is valid only to newly connected clients.
The configuration data format for DAServers is XML. Any XML-enabled program (for example, IE
and XML Notepad) can read this format.

Wonderware System Platform 3.0 Course - Part 1

8-9

8-10

Module 8 Device Integration Products


Component Architecture
A DAServer is comprised of three physical parts:


Plug-in Component(s): (responsible for communicating with clients, used by all


DAServers). Plug-ins provide protocol translation functionality for device integration
clients.
Typical Plug-ins use DDE, SuiteLink or OPC protocol, and serve as interfaces between
their clients and the DAS Engine. A protocol can be disabled when customizing the
installation for your DAServer.

DAS Engine: common component used by all DAServers.


The DAS Engine is a middleware component that exposes two sets of unique interfaces,
one for communicating with Plug-ins and one for communicating with Device Protocol
Layer components. It encapsulates common tasks for the DAServer, like handling the item
database, distributing data to clients, propagating clients' requests to the protocol, and
providing diagnostics.

Device Protocol Layer: Server specific (responsible for communicating with hardware and
specific to the DAServer). The Device Protocol Layer provides translation between the
hardware- specific protocol such as ModBus and CIP and the DAS Engine interface:

Each physical part of a DAServer is comprised of a set of .EXE and/or .DLL modules. ArchestrA
provides the Plug-in and DAS Engine modules.

Wonderware Training

Section 2 Data Access Servers


You must create the Device Protocol Layer (server specific) modules with the DAServer, and all
three sets of modules are required for a fully functioning DAServer.

Plug-ins
Plug-ins provide protocol translation functionality for device integration clients. Typical Plug-ins
communicate in DDE, SuiteLink or OPC protocol, and serve as interfaces between their clients
and the DAS Engine. You can disable a protocol when customizing the installation for your
DAServer.

DAS Engine
The DAS Engine is a middleware component that exposes two sets of unique interfaces, one for
communicating with Plug-ins and one for communicating with Device Protocol Layer components.
It encapsulates common tasks for the DAServer, like handling the item database, distributing data
to clients, propagating clients' requests to the protocol, and providing diagnostics.

Device Protocol Layer


The Device Protocol Layer provides translation between the hardware specific protocol such as
Modbus and CIP and the DAS Engine interface.

DAServer Characteristics
Configuration
The DAServer Manager is capable of displaying specific configuration pages for all servers. This
utility allows browsing and editing of servers on different nodes.
Recall that DAServers are hot-configurable. In other words, they are configurable while the server
is running or even acquiring data. Certain restrictions imposed by the underlying network/protocol/
hardware might apply.
For instance, if you uncheck System Items on the global parameters configuration dialog of the
DAServer Manager and select Apply, and then re-check System Items and Apply, System Items
data is valid only to newly connected clients.
The configuration data format for DAServers is XML. Any XML-enabled program (for example, IE
and XML Notepad) can read this format.

Runtime
The DAS Engine is loaded by the DAServer as an in-process COM object.
It is not statically linked. In other words, a new DAS Engine (feature enhancement or bug fix)
would not require re-linking to the other components nor re-QA of those other components. It is
deployed to the system and attaches to all existing server components.
This is an important added value for the customer to be independent of ArchestrA release cycles,
especially for OEM customers with their own release schedule.
Newly deployed Plug-ins do not require re-linking nor re-QA of associated components. Even new
Plug-ins would not require any development effort for the other components. In fact, it is feasible to
implement new functionality (like Store-and-Forward) in a Plug-in to enhance the server without
involvement of the code of the other components.

Wonderware System Platform 3.0 Course - Part 1

8-11

8-12

Module 8 Device Integration Products


Diagnostics
The DAServer Manager diagnostic tool displays generic diagnostic objects common to all servers
as well as server-specific/server developer defined diagnostic data.

Hot Configuration
One of the big advantages provided by the DAServer is the ability to make your DAServer
configurable while the server is running - hot configuration.
The extent to which a specific DAServer is hot configurable varies from server to server. You can
choose from a variety of hot configuration responses, from not being hot configurable at all to
being configurable of each individual parameter while the server is running.
The DAServer handles most of the hot configuration work. In general, a user will run the DAServer
Manager and configure each hierarchy. Any changes she makes that add/delete/update a
hierarchy are sent immediately to the running DAServer.
Server-specific code may elect to react to the change. Some parameters cannot be changed while
the DAServer is running due to protocol-specific issues, and these can be ignored by the serverspecific code.
Here is a complete list of notifications to the server about changes in the configuration:


Add configuration hierarchy.

Delete configuration hierarchy.

Rename configuration hierarchy.

Update parameters of configuration hierarchy.

Add device group.




Delete device group.


Rename device group.

Update parameters of device group.

Clear the current configuration set.

Switch to a new configuration set.

Wonderware Training

Section 2 Data Access Servers


Integration to Third Party Applications
FactorySuite Gateway (FS Gateway) is a universal translator, capable of translating all major
protocols (MX, OPC, DDE, SuiteLink) to any protocol required by a network component.
Note: There is an Online Seminar available for the FactorySuite Gateway. To register, visit
www.wonderware.com/training or call 1-866-WW-TRAIN (1-866-998-7246) or email
Wonderware Training at training@wonderware.com.

A primary purpose of FS Gateway is to translate between ArchestrA MX protocol and other


protocols. For instance, a Wonderware Application Server, which uses MX, previously could not
be accessed by third-party clients except through InTouch. Excel, Visual Basic, and other thirdparty applications were unable to receive data from Wonderware products without using InTouch
tags. Using FS Gateway as a protocol translator allows direct connection to a Wonderware
Application Server. FS Gateway can replace OPCLink, which translates OPC to DDE or SuiteLink.

FS Gateway is also useful for legacy servers, controllers, and operating systems. Gateway can
translate older DDE to the newer SuiteLink protocol, enabling legacy products to connect to newer
systems.

Other Connectivity Tools


Wonderware Application Server can access device data by using client application objects. These
DI Objects ($DDESuiteLinkClient, $InTouch proxy, $OPCClient) enable the server to interface with
I/O devices that use DDE, SuiteLink, InTouch tags, or OPC protocol.
Other protocol connectivity tools include third-party OPC servers, the Archestra DAS Toolkit, the
Rapid Protocol Modeler Kit, the ActiveX SECS-II/GEM kits, and the InTouch Tag Creator.
I/O servers provide connectivity for devices using DDE, FastDDE, and SuiteLink protocols. I/O
servers can connect every Wonderware A2 component, as well as PLC, RTU, DCS, and ESD
systems.

Wonderware System Platform 3.0 Course - Part 1

8-13

8-14

Module 8 Device Integration Products


You can build I/O servers using Wonderware's Rapid Protocol Modeler (RPM) Kit. The RPM Kit
can handle both serial and TCP/IP communications with either ASCII or binary protocols to
connect Wonderware client applications to devices with non-standard protocols.
DAServers (Data Access Servers), provide simultaneous connectivity between plant floor devices
and DDE, SuiteLink and/or OPC-based client applications running under Microsoft Windows. The
DAS Toolkit allows you to create a DAServer specific to your needs. DAServer architecture is
modular, allowing for plug-ins for DDE/SL, OPC, and other protocols.
Wonderwares InControl software offers connectivity to third-party OPC servers and clients by
allowing you to create an OPC Server and/or OPC client. You can use the OPC set of interfaces to
collect and transfer data between software packages from any vendor. OPC uses the client-server
model and the Microsoft COM/DCOM protocols for vendor-independent data transfer. The
InControl OPC Server consists of these three primary types of objects: server, group(s), and
item(s). Each OPC item object represents a single data element in the data source and has a
name, value, time stamp, and quality. Items also have attributes and properties. OPC groups
manage the attributes of each item contained in them. The OPC server maintains the properties of
all OPC items. The InControl OPC server uses SuiteLink for communications.
In addition to its own database, SQL Server can act as a gateway to systems based on Oracle,

Sybase, Ingres and other databases. Once connected to SQL Server, external databases operate
as if they were part of the native SQL Server database. Data from multiple databases can be
combined in reports and queries.
Refer to the Wonderware support website, especially the Compatibility Matrix, for more
information on specific connectivity tools.

FactorySuite Gateway FAQs


1) What is FactorySuite Gateway?
FactorySuite (FS) Gateway is an integration server and protocol translator that can be used to
integrate classic Wonderware products with newer ArchestrA based products, as well as
exposing data sources as OPC Servers to third party applications and external systems. FS
Gateway therefore provides:


A Universal Protocol Converter for Wonderware Products


Exposes Wonderware A2 as an OPC Server

Integration for classic servers

2) How is FS Gateway Delivered?


FS Gateway behaves like a DAServer and is therefore installed from the Wonderware Device
Integration Products CD.

Wonderware Training

Section 2 Data Access Servers


3) How is FS Gateway Licensed?
FS Gateway is available for use with any Wonderware Product, at no additional charge. The
only stipulation is that it must be always used in conjunction with a Wonderware product, either
in a server or client connection capacity.

4) What product client protocols are supported?


DDE, FastDDE, Suitelink and OPC

5) What is the value provided by FS Gateway?


FS Gateway provides totally free OPC connectivity for Wonderware products as well as third
parties. This will allow a user to expose our classic IO servers as OPC servers and will allow
them to interface third party OPC client products to Wonderware products. Wonderware is one
of the few vendors who does not charge for OPC Server capability. It also breaths new life into
classic products, by adding OPC DA as a supported interface. This is especially important as
support for NetDDE is being phased out by Microsoft.

6) Why is FS Gateway needed?



To remove NetDDE dependency


To provide connectivity to earlier versions of InTouch

To provide NT support which will allow connections to classic products that have not been
migrated to later Operating Systems.

To provide OPC connectivity to FS products (e.g. InTouch and Wonderware Application


Server)

To replace the OPCLink product used when connecting InTouch to OPC Servers.

To provide Wonderware Application Server data for 3rd party clients

To provide a mechanism for the transport of IAS data between two different Galaxies.

7) Does FS Gateway provide Galaxy to Galaxy communications with ArchestrA and the
Wonderware Application Server?
FS Gateway does provide the means for data access from an ArchestrA Object Attribute in
Galaxy A to an ArchestrA Object Attribute in Galaxy B, in the same fashion that an Object
Attribute in Galaxy A could receive data from any OPC Server. The plan is that a future release
of the Wonderware Application Server will have built-in "Intergalactic Communications". FS
Gateway can still be used for this in the interim, but an even better solution is forth coming.

8) How is security controlled with FS Gateway?


When used with the Wonderware Application Server, Role-based security is employed. That
means that a User is defined on the node where the FS Gateway is installed. That User
account is linked to an ArchestrA Role, which is linked to a Security Group, which is linked to
individual Object Attributes. Therefore, the defined user can only access those attributes
which it is assigned within the Galaxy. This needs to be managed carefully as any program
that utilizes that user account on the FS Gateway node, either locally or remotely can access
the associated attributes, with no specific knowledge of which external application is
accessing the Galaxy.

Wonderware System Platform 3.0 Course - Part 1

8-15

8-16

Module 8 Device Integration Products

9) What are the common uses for FS Gateway?



Exposes InTouch as an OPC Server


Exposes Historian as an OPC Server (live data only)

Exposes IAS as an OPC Server

Basic Galaxy to Galaxy Data Access

Exposes classic IO Servers (DDE) as a OPC DA or SuiteLink Servers

Basic Read/Write Data Access from Classic InTouch (pre-7.11) to a Galaxy

Factory Suite Integration (DT analyst, SCADAlarm, InBatch) to a Galaxy

Replaces InTouch OPCLink

Acts as a Data Concentrator for a client wanting access to many different sources.

10) What capability is there to browse tag and attribute values for products using the FS Gateway?
FS Gateway can "browse" InTouch and OPC DA Servers Data Connections. This is
accomplished inside the SMC which is the centralized place for configuration and diagnostics. All
other data connection items are manually entered (or alternatively can be imported from a CSV
file) before the data can be browsed. This "browse" is the ability to navigate the actual native
information (either on InTouch or OPCServer). Once a group is created and the items created
inside the group then a client can browse this "configured" data.

For the Wonderware Application Server, it is necessary to manually enter the item names.
This can be done on the IAS platform first and then exported into a .csv file and then imported
into the FS Gateway. Once these items have been manually entered the OPC Client will be
able to browse the data. The user can still access data that has not been configured for
browsing but the item name must be known. SuiteLink inherently does not allow for browse
capabilities.

11) How is the FS gateway configured and managed?


The FS gateway is configured like any other DAServer, by using the ArchestrA System
Management Console or SMC.

12) What data is accessible in the Wonderware Application Server Galaxy via the FS Gateway?
The FS Gateway exposes 4 basic data types in a Galaxy. They are Boolean, String, Float and
Integer.

Wonderware Training

Section 2 Data Access Servers


13) What is FS Gateway compatible with?
Client Products


DDE Clients [including FASTDDE V2 (pre-FactorySuite2000) and FASTDDE V3


(FactorySuite2000 Plus)]

SuiteLink Clients

OPC Clients (DA v2.05)

Server Products


DDE Servers

InTouch Data Source

ArchestrA Galaxy Data source from Industrial Application 2.1

SuiteLink Data Source

OPC DA Servers (v2.05)

14) Can I run more then one instance of FS Gateway on a single computer?
No, only a single instance of the FS Gateway can be run on a single computer at the same
time. This is similar to our DAServers.

15) Can I have multiple galaxies as data sources connected to an instance of FS Gateway?
No, the FS Gateway must be on the same platform as the Application Server and only one
instance of Application Server can reside on a particular platform.

16) How many clients can I have connected to an instance of FS Gateway?


As many as you like!

17) How many Data Sources can I have connected to an instance of FS Gateway?
The FS Gateway can act as a data concentrator and can access as many sources as you
would like to connect to (with the limitation of only one can be an Application Server).

18) What OS Versions is FactorySuite Gateway 1.0 Compatible with?




Windows XP

Windows NT 4.0

Windows 2000

Windows 2003

For additional information or details on how to access and configure Factory Suite Gateway please
refer to the Wonderware FactorySuite Gateway Users Guide.

Wonderware System Platform 3.0 Course - Part 1

8-17

8-18

Module 8 Device Integration Products

Intentionally left blank

Wonderware Training

Section 3 Device Integration Objects

Section 3 Device Integration Objects


Section Objective


Become more familiar with DI Objects and their use with Wonderware Application Server.

This section provides familiarization with DI Objects and their use with Wonderware Application
Server.

Introduction
Device Integration (DI) Objects are designed for applications that connect to Application Server.
They represent the application's network and devices, and mirror the actual device hierarchy. In
Application Server, Device Integration (DI) Objects are a subset of Automation Objects available in
the Template Toolset of the Integrated Development Environment (IDE). As a subset of these
Automation Objects, Device Integration Objects consist of two parts:

DI Network Object, which represents the communications port and are thus associated
with DA Servers.

DI Device Object, which represents the physical devices that make up a network.
Examples of DI Device Objects are network bridge devices or PLCs. When the objects are
deployed, they represent the network hierarchy. Each level of this hierarchy can be
monitored for its individual status.

Device Integration objects are used to represent communications channels and field controllers.
As such, they are most often arranged in a hierarchy that models the physical hierarchy of the
network and devices on that network.
Device Integration objects are designed to make it very easy to integrate DAServers into the
ArchestrA environment.
Therefore, deploying a DI Network actually deploys the DAServer and its associated components
within the ArchestrA IDE/Galaxy. This facilitates the DAServer installation process for end-users.

DI Object Advantages
Device Integration Objects (DI Objects) represent communication with external devices. DI
Objects may be DINetwork Objects (for example, the Redundant DI Object) or DI Device Objects.
DI Objects (and their associated AppEngine) can reside on any I/O, DA, or Automation Object
Server node in the Galaxy. DI Objects allow connectivity to data sources such as DDE servers,
SuiteLink servers, OPC servers, and existing InTouch applications.
The advantages of using DI Objects are as follows:


When ArchestrA IDE software is installed on a Wonderware Application Server, DI objects


allow you to configure, deploy, and monitor DAServers from one centralized location.

DI Objects can be used to represent all devices and PLCs in a network, enabling
representation of an entire plant, including a hierarchical view of network connectivity.
DI objects are so closely tied to the DAServer that when an object is deployed across the
network, it remotely installs the DAServer (This means that you can install the DAServer
without going to the actual machine, and that the DAServer connects immediately.).

Wonderware System Platform 3.0 Course - Part 1

8-19

8-20

Module 8 Device Integration Products




DI objects are very closely tied to the DAServer they are assigned to, so that when an
object is deployed, it brings with it all code, including registry, scripting, attributes, and
parent.

Note that in a large project, this process may take some time. However, tremendous savings are
achieved when comparing centralized deployment with individual tasks should the Servers be
separately installed and configured on each node.

DI Objects in the ArchestrA IDE


DI objects are located in the Template Toolbox and can also be imported into the Galaxy in the
same way as Application Objects. They are imported directly into the Device Integration area of
the Template Toolbox:

The differences between the Application and DI Objects are listed below:


DI Objects are associated with a DAServer.

DI Objects include some extra primitives in addition to the common Primitive (also hidden
by default. A special dialog provides access to the attributes developers might need to
override.).

DI Objects include extra dependency files.


DI Network Objects are hosted by an AppEngine, not an Area.

This impacts the Deployment view within the ArchestrA IDE.

The Host must be deployed before the object can be deployed.

DI Objects can be hosted by each other or by DI Networks.




GUIDs tie the host and the hosted object together.

DI Devices and DI Network objects have extra tabs within their editors to configure
ScanGroups, BlockReads, and BlockWrites.

Wonderware Training

Module 9

Multi-Node Applications
Section 1 Application Redundancy
Lab 18 Configuring Application Redundancy
Section 2 DI Redundancy
Lab 19 Configuring the Redundant DI Object
Section 3 Multi Node Application
Lab 20 Convert to Network Environment

9-3
9-17
9-31
9-35
9-45
9-49

9-2

Module 9 Multi-Node Applications

Module Objectives
Obtain an overview and understanding of:


Migrating to a network environment;

Using exporting and importing to take objects that were created on one node and migrate
them to a single node, and:

How to deploy and undeploy objects on a galaxy located on a different node.

Wonderware Training

Section 1 Application Redundancy

Section 1 Application Redundancy


Section Objective


This section covers the concept of redundancy, how it can be configured and key points
to more effectively implement this feature.

Understand the concept and functionality of Redundant DI Objects

This section provides an understanding of the concept of redundancy, how it can be configured
and key points to more effectively implement this feature. It also provides an understanding of the
concept and functionality of Redundant DI Objects

Redundant Configuration
Redundancy is important in processes that rely on continuous availability of information. There are
two basic types or topologies of redundant configuration:

Redundant Application Engines


Redundant DI Objects

Redundant Application Engines


The purpose of Application Engine Redundancy is to ensure continuous operation by providing an
engine that remains active in the event of a single system component failure. It operates on the
principal that with redundant engines, one engine is in an Active Role while the other is in a
Standby Role waiting to take control.
The hardware topology required for Redundant Application Engines functionality is simple: two
computers with two network interface cards (NIC) each. (Additional network cards could be used
for other purposes.)
To configure redundancy, open the Application Engine Object Editor and check "Enable
Redundancy" on the Redundant tab.

Wonderware System Platform 3.0 Course - Part 1

9-3

9-4

Module 9 Multi-Node Applications

Wonderware Training

Section 1 Application Redundancy


The Application Engine that is enabled is considered the Primary engine of the redundant pair;
when you enable this engine, an additional (Backup) engine is automatically created.

Since an engine is required to run under a platform, the platform objects that sponsor the Primary
and Backup application engines need to be configured to use the dedicated NIC. This NIC
provides a high speed inter-connection link or Redundant Message Channel between the
platforms. The Message Channel is vital to keep both engines synchronized with alarms, history,
and checkpoint items from the engine that is in the Active Role. Each engine also uses this
Message Channel to provide its health, along with status information, to the other.

The sequence of deployment (cascade, Primary first, or Backup First) of the redundant pair of
Application engines determines which of these in the pair will take the Active Role. The first engine
deployed takes the Active role while the other one takes the Standby role. The engines maintain
their current roles until a failure occurs. (A failure might consist of computer hardware lost or failed,
or a network card failure.) If a failure occurs, the engine with the Standby role assumes the Active
role and the engine that was in the Active role is given the role of Standby - Not Ready. When the
cause of the failure has been remedied, this engine assumes the Standby - Ready role.

Terminology
Two sets of terms are critical to understanding the functions of redundant objects. These are
described below.

During Configuration
Primary object: The object intended as the main or central provider of the functionality in the
run-time. For AppEngines, it is the object you enable for redundancy. For data acquisition, it is
the DIObject you intend to use first as your data source in the run-time.
Backup object: The object that provides the functionality of the Primary object when it fails.
For AppEngines, it is the object created by the ArchestrA infrastructure when the Primary
object has been enabled for redundancy. For data acquisition, it is the DIObject you do not
intend to use first as your data source in the run-time.

During Run-Time
Active object: The object that is currently executing desired functions. For AppEngines, it is the
object that is hosting and executing ApplicationObjects. For data acquisition, it is the object
that is providing field device data through the RedundantDIObject.
Standby object: The passive object; that is, it is waiting for a failure in the Active object's
condition or for a force-failover. For AppEngines, it is the object that monitors the status of the
Active AppEngine. For data acquisition, it is the object that is not providing field device data
through the RedundantDIObject.
The Primary/Backup and Active/Standby objects form a redundancy pair. For AppEngine pairs,
only the Primary and its hierarchy of assigned ApplicationObjects must be created, configured and
deployed. The Backup is handled completely by the ArchestrA infrastructure (for instance, it is
deployed separately from the Primary). For data acquisition, the Primary/Backup DIObjects (the
data sources) must be separately created, configured and deployed. Also, you must create,
configure and deploy a RedundantDIObject to control failovers between the two data source
objects.

Wonderware System Platform 3.0 Course - Part 1

9-5

9-6

Module 9 Multi-Node Applications


In the AppEngine redundancy environment, the Active and Standby objects monitor each other's
status and switch when failure conditions occur. In the data acquisition environment, the
RedundantDIObject monitors the status of the two DIObject data sources, and handles the
switching from Active to Standby objects.
The relationship between the configuration time (Primary/Backup) and run-time (Active/Standby)
object pairs is not static. In the run-time, either the Primary or Backup object can be the Active
object at any particular time. Whenever one becomes the Active object, the other automatically
becomes the Standby.
Configuration values for Primary and Backup also can be changed after deployment of the objects.
Note: In the case of AppEngine redundancy, ArchestrA supports a one-to-one topology in which
the computers hosting the Primary and Backup object sets must be connected by crossover cable
and have fixed IP addresses.

Key Points
a. Before placing an engine with redundancy enabled under a platform in the Deployment view,
configure the platform Redundant Message Channel; otherwise the engine will show an error.
b. In the Application Views panes of the ArchestrA IDE, only in the Deployment view will the
Backup engine be visible.
c. The Backup Engine cannot be edited.
d. After editing an engine with redundancy enabled while it is deployed, when it is redeployed the
engine which has the Active role will perform this function. It will then update the engine that is
in the Standby role.
e. A Backup engine's deployment status can be different from that of the Primary Engine, but
operations such as renaming, importing and exporting, GRdump and GR load that are
performed on the Primary Engine are automatically performed on the Backup. These
operations cannot be performed on the Backup Engine alone.
f.

Platforms hosting primary and backup AppEngines should have identical configuration. For
instance, it is possible to configure the platform with the Primary to be the InTouch Alarm
provider and filter the areas you want to query in the Platform editor. For the Alarm
Management system to behave correctly, this same configuration should be implemented in
the platform with the Backup. It is recommended that you make the following parameters
common to both platforms:


IT Alarm provider-Areas

Store Forward directories

Common user-defined attributes (UDAs)

Common scripting.

Role Determination
The sequence of deployment (cascade, Primary first, or Backup First) of the redundant pair of
Application engines determines which of these in the pair will take the Active Role. The first engine
deployed takes the Active role while the other one takes the Standby role. The engines maintain

Wonderware Training

Section 1 Application Redundancy


their current roles until a failure occurs. If either engine is deployed by itself, it assumes the Active
Engine role.
If a failure occurs (computer hardware lost or failed, or a network card failure), the engine with the
Standby role assumes the Active role and the engine that was in the Active role is given the role of
Standby - Not Ready. When the cause of the failure has been remedied, this engine assumes the
Standby - Ready role.
If you edit an engine with redundancy enabled while it is deployed, when it is redeployed the
engine which has the Active role will perform this function. It will then update the engine that is in
the Standby role.

Dedicated and Shared Loads


There are two types of redundant engine configuration: Dedicated and Shared load.
Note: Depending on the order of deployment, the Primary or Backup engine may take the role of
Active Engine. If either engine is deployed by itself, it assumes the Active Engine role.
In a Dedicated redundant configuration, if the Active Engine fails or is shut down, or if a
communication failure occurs, the engine in the Standby Ready role assumes the Active role. In
this scenario, the platform with the engine in the Standby Ready role is essentially idling. See the
following illustration.

Wonderware System Platform 3.0 Course - Part 1

9-7

9-8

Module 9 Multi-Node Applications

Visualization Nodes

Supervisory Network
AutomationObject Server

AutomationObject Server

Redundancy Message Channel


AE_1
(Active)

Primary

Backup

AE_1
(Standby)
Platform 2

Platform 1

Control Network

In a Shared redundant configuration, two or more Redundant Engines reside on each of two
platforms. Each platform hosts a Primary and a Backup engine. See the illustration below. This
scenario operates similarly to the Dedicated configuration, but allows the application load to be
shared on two computers until a failure occurs. When a failure occurs, one platform hosts the load
of both application engines. The benefits of using this approach is that the time of failover is
shortened and that only part of an application process is affected during a failure.

Note: It is important to understand both the CPU and memory load requirements of each engine.
Each computer must be capable of supporting these needs when a failure occurs; otherwise,
throughput for the application can be compromised

Wonderware Training

Section 1 Application Redundancy

Visualization Nodes

Supervisory Network
AutomationObject Server

AutomationObject Server

Redundancy Message Channel

Primary

AE2
AE1 Bck
Platform 1

Backup

Backup

AE1
Bck AE2

Primary

Platform 2

Control Network

What Happens in Run-time


During initial deployment to its assigned WinPlatform, first code modules and other files for the
Primary AppEngine are deployed, followed by those files for its assigned ApplicationObjects. All of
these files are then deployed to the Standby AppEngine by the Active engines WinPlatform using
the redundancy message channel (RMC).
Note: If some or all of these files already exist on the Standby AppEngines WinPlatform (perhaps,
assigned to another AppEngine on that platform), only the delta files are deployed to the Standby
AppEngine.

Wonderware System Platform 3.0 Course - Part 1

9-9

9-10

Module 9 Multi-Node Applications


AutomationObjects are always assigned to the Primary AppEngine in the configuration
environment. But in the run-time, AutomationObjects are always deployed to the Active
AppEngine whether or not it was initially configured as the Primary object. All files are then
deployed by the Active AppEngines WinPlatform to the Backup AppEngine as described above.
In the run-time environment, the Active and Standby AppEngines first attempt to establish
communications across the RMC. This occurs when an AppEngine belonging to a redundant pair
first starts up. Therefore, if one AppEngine is relocated later to a different WinPlatform, this
communication between AppEngines can be reestablished.
During run-time, the Active and Standby engines communicate with each other and monitor each
other's status.
In the case of a hardware or software failure on one computer, the Standby AppEngine will
become the Active one. Then, if you want to move the new Standby AppEngine from its hosting
computer, undeploy this AppEngine by using the On failure mark as undeployed option on the
Undeploy dialog box, and then reassign and redeploy it to a WinPlatform that is configured for
redundancy on another computer.

AppEngine Redundancy States


Redundant pairs of AppEngines can have one of the following states at a time:

Active: The state of an AppEngine when it has communication with its partner object, its
partner is in Standby-Not Ready, Standby-Syncing with Active, or Standby-Ready state. A
Standby AppEngine transitions into this state when a failover condition has been detected.
In this state, an AppEngine schedules and executes deployed objects, sends checkpoint
data and sends subscriber list updates to the Standby AppEngine.


Active - Standby not Available: The state of an Active AppEngine when it determines it
cannot achieve communications with its partner object. This could mean that checkpoint,
subscription and alarm state changes have not been successfully transmitted to the
Standby object, a heartbeat ping has not been received from the Standby object, or
notification is received that the Standby AppEngine has shutdown or is not running. If an
AppEngine is in this state, it 1) continues normal execution of hosted objects, 2) cannot be
manually switched to Standby state, and 3) while continuing to attempt communicate with
the Standby, does not attempt to send data to the Standby object.
Determining Failover Status: The initial state of a redundancy-enabled AppEngine when
it is first started. It has not determined yet whether it is the Active or Standby AppEngine.
Communication between the two AppEngines is attempted first over the RMC and then
over the primary network to make this determination. If communication cannot be made
after a certain timeout period, an AppEngine assumes the Active role if it has all of the code
modules and checkpoint file data to do so. Continued attempts are made at communicating
with its partner.
Standby - Missed Heartbeats: The state of an AppEngine when 1) a heartbeat ping has
not been received from its Active partner within a configured timeout period, 2) the Active
AppEngine fails or hangs up, or 3) the Active AppEngine is shutdown on purpose. When in
this state, the Standby object attempts to determine whether or not the Active object has
failed. If a manual failover is initiated (by using the ForceFailoverCmd attribute), it will be
processed only if the heartbeats were missed over the primary network and not missed
over the RMC.
Standby - Not Ready: The state of an AppEngine when one of several conditions occurs:
1) its has lost communications with its partner object or it maintains communications with
its partner but has missed checkpoint updates or alarm state changes from the Active

Wonderware Training

Section 1 Application Redundancy

AppEngine, 2) new objects are deployed to the Active AppEngine and necessary files
have not been installed on the Standby AppEngine yet, or 3) the Standby AppEngine has
lost communications over the RMC before it could complete synchronizing data. Typically,
the AppEngines partner is in one of the following states: Active-Standby not Available,
Active, or Standby- Missed Heartbeats.
Standby - Ready: The state of an AppEngine when is has completed synchronizing code
modules and checkpoint data with the Active AppEngine. In this state, the AppEngine
monitors for Active AppEngine failure by verifying heartbeat pings received from the
Active engine, checks that all files required for execution are in sync with the Active
engine, and receives the following from the Active AppEngine: checkpoint change data,
subscription-related notifications, alarm state changes, and history blocks.
Standby - Sync'ng with Active: The state of an AppEngine when it is synchronizing code
modules with the Active object. If code modules exist on the Standby computer that do not
exist on the Active node, they are uninstalled, and likewise, any code modules that exist
on the Active node but not on the Standby node are installed. Once all code modules are
synchronized, the AppEngine transitions to Standby-Syncd Code state.
Standby - Sync'd Code: The state of a Standby AppEngine that has successfully
synchronized all code modules with the Active object.
Standby - Sync'd Data: The state of a Standby AppEngine when all object-related data,
including checkpoint and subscriber information, are synchronized with the Active object.
An object in this state typically transitions to Standby-Ready state.
Switching to Active: A temporary, transitional state when a Standby AppEngine is
commanded to become Active.
Switching to Standby: A temporary, transitional state when an Active AppEngine is
commanded to become Standby.
Unknown: The state of a redundant partner when a communication loss occurs between
AppEngines or when the partner AppEngine is not running.

Alarm Generation
When failover conditions occur, the ArchestrA system reports alarms to the Logger. These alarms
contain the following information:


The name of the AppEngine reporting the alarm.


The node name of the AppEngine reporting the alarm.

The state of the AppEngine.

The node name of the AppEngines partner object.

Note: Depending on the scenario that causes a failover, the Standby AppEngine may become the
Active in an offscan state and alarms may not be generated. If the Active AppEngine is shutdown
offscan, the checkpointer may transfer that state to the Standby, and when the latter becomes the
Active, it will startup offscan. When the AppEngine is put onscan, alarms then are generated.

Alarms reported are the following:

Wonderware System Platform 3.0 Course - Part 1

9-11

9-12

Module 9 Multi-Node Applications

Previous
State

Current
State

Alarm Raised
When

Alarm Cleared When

Alarm
Reported
By

Standby - Not
Ready 1

Active

Standby - Not
Ready

Standby - Not
Ready

Entering Standby Ready

ACtive
Engine

Standby - Not
Available

Active

Active Standby Not


Available

Active - Standby Not


Available

Entering Active

Active
Engine

Standby Becomes
Active

During the next scan


of the Active Engine

Active
Engine

Alarm

Failover
Occurred

Legend:
1

The Active AppEngine monitors the status of the Standby through the RMC to determine
when to raise this alarm. Also, if the Active AppEngine is in Active-Standby not Available state,
this alarm is not generated.

When a failover occurs, the Standby AppEngine that becomes active will not report alarms
outstanding from the old Active AppEngine. The state of those old alarms, though, is reflected on
the new Active AppEngine as follows:


Out of alarm

Unacknowledged

Unacknowledged-Return to normal

Acknowledged-Return to normal

Acknowledged

Timestamps are also preserved for alarms, including when:






The alarm was acknowledged


The alarm condition went true
The alarm condition went false

Finally, the following information is preserved for alarms:




An alarm was acknowledged

The message input by the operator when the alarm was acknowledged

Note: All alarm state information is collected and sent to the Standby AppEngine at the end of a
scan cycle and before being sent to alarm clients. Any alarms that occur between scan cycles,
therefore, may not be reported to the Standby object if the Active object fails. The sequence of
reporting alarms ensures that alarm clients do not report alarms in states that are different from
those reported by the Standby AppEngine if the Active one fails.

History Generation
All active objects (AppEngine and hosted objects) report history data as they normally do in the
run-time environment.
Historical data is reported to the historian only from the Active AppEngine.
Loss of connectivity with the historian does not cause a failover. The Active AppEngine then goes
into store-forward mode and caches data every 30 seconds. Store-forward data (when the
historian is unavailable) is synchronized with the Standby AppEngine.

Wonderware Training

Section 1 Application Redundancy


When failover conditions occur, no more than 30 seconds of history data should be lost in the
transition from Standby to Active status. This is done through a combination of store-forward
operations when the historian is unavailable and normal reporting operations when it is available.

Forced Failover
Failover can be forced to occur. Do this through the ForceFailoverCmd attribute of the AppEngine.
For instance, you can link multiple conditions in a script or use the Object Viewer utility to trigger a
forced failover.

Deployment
Primary and Backup AppEngines can be deployed together or individually. When they are
deployed together (no matter which object is actually selected for deployment), the Primary always
becomes the Active and the Backup becomes the Standby. When they are deployed individually,
the first one deployed becomes the Active.
Hosted ApplicationObjects are always deployed to the Active AppEngine. When deploying the first
of a redundant pair of AppEngines, you can cascade deploy all objects it hosts. This operation can
be paired with deploying both the Primary and Backup AppEngines at the same time.
Note: If you deploy the Backup AppEngine first and then deploy hosted objects to that
AppEngine, ensure that network communications to both target computers is good before
deploying the Primary AppEngine. Otherwise, errors may occur.
In the run-time environment, either the Primary or Backup AppEngine can become the Active or
Standby depending upon failure conditions on either computer.
Before deploying the Primary and Backup AppEngines, all configuration requirements must be
met. Each AppEngine must be assigned to a separate WinPlatform. A valid redundancy message
channel (RMC) must be configured for each WinPlatform. To deploy the Primary and Backup
together, select Include Redundant Partner in the Deploy dialog box. This option is not available
when doing the following operations:


Cascade deploy from the Galaxy

Multiple object selection deploy

Deployment of the WinPlatform that hosts the Primary or Backup AppEngine

Wonderware System Platform 3.0 Course - Part 1

9-13

9-14

Module 9 Multi-Node Applications


See the following table for a matrix of allowed operations based on specific conditions.
Deploy Both Primary
and Backup Objects

Cascade Deploy
Allowed

Backup AppEngine's host WinPlatform configured for


failover and deployed.

Yes

Yes

Backup AppEngine in error state.

Yes

Yes

Backup AppEngine's host WinPlatform not deployed.

No

Yes

Backup AppEngine's host WinPlatform not configured for


failover and deployed.

Yes

Yes

Deploy from Galaxy node.

No

Yes

Deploy from WinPlatform hosting Primary AppEngine.

No

Yes

Multiple object selection deploy.

No

No

Backup AppEngine's host WinPlatform not configured for


failover and not deployed.

No

Yes

Deploy from Backup AppEngine.

Yes

Yes

Deploy from Primary AppEngine.

Yes

Yes

Condition

Undeploying redundancy pairs of AppEngines is similar to any regular object undeployment. The
Active and Backup AppEngines can be undeployed separately. Also, they can be undeployed as a
pair by selecting one of the objects in an Application View, selecting the Undeploy command, and
selecting Include Redundant Partner in the Undeploy dialog box.
Note: Undeployment of any AutomationObjects, including redundant AppEngine pairs, does not
uninstall code modules for that object from the hosting computer. Code modules are uninstalled
only when the WinPlatform is undeployed.

Wonderware Training

Section 1 Application Redundancy


Errors and Warnings
Certain requirements (for instance, the order you configure an object pair for redundancy) are
validated by the system infrastructure. If a requirement is not met, you may see error messages
that describe the following:


You can configure an AppEngine for redundancy before its associated WinPlatform, but if
you do, you will get an error message that the Platform (specifically, the RMC) is not
configured yet.
If the RMC IP Address parameter is not configured in both hosting WinPlatforms, then the
configuration state of both Primary and Backup AppEngines changes to Error, with a
message indicating that the host WinPlatform is not configured with the network adapter
required for redundant communications. When the RMC IP Address is configured and the
WinPlatforms are checked in, the hosted AppEngines are automatically revalidated and
the Error state is resolved. If hosted AppEngines are checked out, they are not
revalidated.
If both Primary and Backup AppEngines are assigned to the same WinPlatform and an
attempt is made to deploy both engines, both the Primary and Backup will fail to deploy
with a message noting that the Primary and Backup objects must be hosted by different
WinPlatforms. Reassign the Backup object to another WinPlatform and deploy it
separately.
If both the Network Address and RMC IP Address parameters in the WinPlatform's
editor address the same network card, you will get a warning message when you save the
configuration. These two parameters must address different network cards.

Wonderware System Platform 3.0 Course - Part 1

9-15

9-16

Module 9 Multi-Node Applications

Intentionally left blank

Wonderware Training

Lab 18 Configuring Application Redundancy

Lab 18 Configuring Application


Redundancy
Introduction
This lab describes how to configure your galaxy for redundancy starting with the necessary
network configuration in Windows to properly handle a second network connection as the galaxys
redundant message channel.
Using the ArchestrA IDE, the galaxy is configured to become a two-node redundant system that
will failover between the two nodes when a failure occurs in the system.
Note: It is assumed that the required second network card is already installed in both computers.
Note: Because of the additional hardware and network requirements necessary, this lab is usually
executed as an Instructor demonstration only.

Objectives
Upon completion of this lab you should be able to:


Configure a second network connection in Windows as the redundant message channel

Configure the $WinPlatform and $AppEngine object for redundancy

Create a deployment model for redundant engines

Force a failover on a redundant system

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 Windows network connections


Note: The following configuration needs to be done on BOTH computers.
1.

Rename the network connections as follows:


Local Area Connection

to ArchestrA

Local Area Connection 2

to RMC

2. Use the network connections Advanced Settings to make sure that the ArchestrA
connection is access before the RMC connection.

Wonderware System Platform 3.0 Course - Part 1

9-17

9-18

Module 9 Multi-Node Applications


3. Assign an IP address to the RMC in a different subnet than the ArchestrA connection.
Important! The IP address for the RMC connection on both computers must be different but in
the same subnet.

4. On the Advanced setting for TCP/IP, configure the RMC connection to not Register this
connections addresses in DNS.

Configure the Galaxy for Redundancy


5. Undeploy the galaxy.

6. Configure the ABGRPlatform objects Redundancy message channel IP address with its
own RMC IP address.

7. Create a new instance of the $ABPlatform template using the default name and assign it to
the ABControlSystem area.

8. Configure the ABPlatform_001 object with the name of the second computer and its own
RMC IP address for the Redundancy message channel IP address.

9. Configure the ABAppEngine object for Redundancy and assign its backup to the
ABPlatform_001 object.

Test Redundancy
10. Deploy the galaxy.

11. Using the watch list created in Lab 5, add a new watch window called Redundancy and add
the following attribute references:

ABAppEngine.Host

ABAppEngine.Redundancy.Identity


ABAppEngine.Redundancy.Status

ABAppEngine.Redundancy.PartnerPlatform

ABAppEngine.Redundancy.PartnerStatus

ABAppEngine.Redundancy.FailoverOcurred

ABAppEngine.Redundancy.ForceFailoverCmd

12. Save the watch list.

Wonderware Training

Lab 18 Configuring Application Redundancy


13. Force a failover in the system and monitor the data using Object Viewer and the different
watch windows created during the class.

See the next page for Detailed Lab Instructions

Wonderware System Platform 3.0 Course - Part 1

9-19

9-20

Module 9 Multi-Node Applications

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 Windows network connections


Note: The following configuration needs to be done on BOTH computers.
1. Open Windows Network Connections by double-clicking on Start / Control Panel / Network
Connections.
The Network Connections window is displayed.

Wonderware Training

Lab 18 Configuring Application Redundancy


2. Rename network connections as follow:
Local Area Connection

to ArchestrA

Local Area Connection 2

to RMC

3. From the Advanced menu, select Advanced Settings.

Wonderware System Platform 3.0 Course - Part 1

9-21

9-22

Module 9 Multi-Node Applications


4. On the Advanced Settings dialog box, Adapters and Bindings tab, make sure that the
ArchestrA connection is access before the RMC connection and then click the OK button to
close the dialog box.

Tip: You can use the

Wonderware Training

and

buttons to arrange the access order.

Lab 18 Configuring Application Redundancy


5. Right-click on the RMC connection and select Properties.

6. At the RMC Properties dialog box, on the General tab, select the Internet Protocol (TCP/IP)
item and click the Properties button.

Wonderware System Platform 3.0 Course - Part 1

9-23

9-24

Module 9 Multi-Node Applications


7. At the Internet Protocol (TCP/IP) Properties dialog box select the Use the following IP
address option and assign an IP address in a different subnet than the ArchestrA connection.
Click the Advanced button to continue.
Important! The IP address for the RMC connection on both computers must be different but
in the same subnet.
Note: In this example the first computer will have an IP address of 192.168.1.1 and the
second one will have an IP address of 192.168.1.2. Both will be have a subnet mask of
255.255.255.0

Wonderware Training

Lab 18 Configuring Application Redundancy


8. On the Advanced TCP/IP Settings dialog box, select the DNS tab and uncheck the Register
this connections address in DNS box.

9. Click the OK button to close the Advanced TCP/IP Settings dialog box.
Click the OK button to close the Internet Protocol (TCP/IP) Properties dialog box.
Click the Close button to close the RMC Properties dialog box.

Wonderware System Platform 3.0 Course - Part 1

9-25

9-26

Module 9 Multi-Node Applications


Configure the Galaxy for Redundancy
10. Undeploy the ABGRPlatform object.

11. Double-click the ABGRPlatform instance to open its configuration editor.

12. Configure the object as follows:


On the Redundancy section:
Redundancy message channel IP address: 192.168.1.1 [IP address assign to the RMC
connection on the first computer]

13. Click the Save and Close button and check in the object.

14. Create a new instance of the $ABPlatform template.


Leave the default name and assign it to the ABControlSystem area.

Wonderware Training

Lab 18 Configuring Application Redundancy


15. Double-click the ABPlatform_001 instance to open its configuration editor.

16. Configure the object as follows:


Network address: [Name of the second computer]
On the Redundancy section:
Redundancy message channel IP address: 192.168.1.2 [IP address assign to the RMC
connection on the second computer]

17. Click the Save and Close button and check in the object.

18. Double-click the ABAppEngine instance to open its configuration editor.

Wonderware System Platform 3.0 Course - Part 1

9-27

9-28

Module 9 Multi-Node Applications


19. Select the Redundancy tab and configure the object as follows:
Enable redundancy: checked

20. Click the Save and Close button and check in the object.

21. On the Deployment view, assign the automatically created ABAppEngine (Backup) object to
the ABPlatform_001 instance.

Wonderware Training

Lab 18 Configuring Application Redundancy


Test Redundancy
22. Deploy the galaxy by right-clicking the name of the galaxy and selecting Deploy.

23. Open Object Viewer by right-clicking the ABAppEngine instance and selecting View in
Object Viewer. If you closed Object Viewer before, you can use File / Load Watch List to
open the file you saved earlier.

24. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch
Window to add a new tab to the watch list.

25. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the watch list to Redundancy.

26. Add the following attributes to the watch list:


Host
Redundancy.Identity
Redundancy.Status
Redundancy.PartnerPlatform
Redundancy.PartnerStatus
Redundancy.FailoverOccurred
Redundancy.ForceFailoverCmd

27. Save the watch list.

Wonderware System Platform 3.0 Course - Part 1

9-29

9-30

Module 9 Multi-Node Applications


28. Force a failover to the second computer by writing true to the ForceFailoverCmd attribute of
the AppEngine.
You can use the Mixer watch window to verify that the objects are running properly.

29. Failover the system doing any of the following on the second computer:


Unplug the power cable

Shut down Windows

Disconnect both network cables at the same time.

You can use the Mixer watch window to verify that the objects are running properly.

Wonderware Training

Section 2 DI Redundancy

Section 2 DI Redundancy
Section Objective


This section covers the concept of redundancy, how it can be configured and key points
to more effectively implement this feature.

Understand the concept and functionality of Redundant DI Objects

This section provides an understanding of the concept of redundancy, how it can be configured
and key points to more effectively implement this feature. It also provides an understanding of the
concept and functionality of Redundant DI Objects

Redundant DI Objects
Application Engines can host Redundant Device Integration Objects (DI Objects). The
RedundantDIObject monitors and controls the redundant DIObject data sources. Unlike redundant
AppEngines, individual DIObject data sources do not have redundancy-related states. For all
intents and purposes, they function as standalone objects.
Only one DIObject data source provides field device data through the RedundantDIObject at a
time. Both data sources must have commonly configured DAGroups which are reflected in and
channeled through the RedundantDIObject, which monitors the two DIObject data sources and
determines which one is Active at any given time. Both data sources must also have the same
item address space.
The Redundant DI Object is a DINetwork Object used to enable continuity of I/O information from
field devices. The Redundant DI Object provides the ability to configure a single object with
connections to two different data sources. If the primary data source fails, the Redundant DI
Object automatically switches to the backup data source for its information. There is a one-to-two
relationship between an instance of the Redundant DI Object and the running instances of the
source DI objects; that is, for each Redundant DI Object, a pair of source DI Objects is deployed.

Wonderware System Platform 3.0 Course - Part 1

9-31

9-32

Module 9 Multi-Node Applications

*
*
! !+,-

!" #
.

$' ( )
'

.
)*+

!
&

'!" #

$%&

Configuration RedundantDIObjects
Configure redundancy in data acquisition objects in the ArchestrA IDE through their editors. Data
acquisition redundancy objects (two DIObjects and the RedundantDIObject) do not have
redundancy-related deployment statuses.
In data acquisition redundancy, you must configure all three components: a Primary DIObject data
source, a Backup one, and a Redundant DIObject.
Because data acquisition redundant components are essentially standalone objects, all valid
operations that apply to any other ApplicationObjects apply to the three objects. All ArchestrA IDE
commands, Galaxy Dump and Load functions, and import and export operations are valid on the two
DIObject data sources and the RedundantDIObject.
The main focus of RedundantDIObject configuration is:

Setting the Primary DI Source and Backup DI Source on the General tab of the objects
editor.


Setting up the common scan groups, and block read and block write groups on the
respective tabs of the objects editor.

Wonderware Training

Section 2 DI Redundancy

Note: You must configure at least one scan group before you can deploy the RedundantDIObject.
Also, only scan, block read, and block write groups shared by the Primary and Backup DIObjects
should be configured in the RedundantDIObject.

Deployment
Deployment for data acquisition redundancy is the same as individually deploying unrelated
objects. No special conditions apply to each DIObject data source and the RedundantDIObject.

What Happens in Run-time


The three objects in the data acquisition redundancy scheme (RedundantDIObject and its two
DIObject data sources) function like any other ArchestrA object with respect to deployment,
alarming and historization. They have no special redundancy-related states or restrictions with
respect to deployment, undeployment and redeployment.
During run-time, the RedundantDIObject monitors the status of the DIObject data sources, and
handles the switching from Active to Standby object when failure conditions arise.

Wonderware System Platform 3.0 Course - Part 1

9-33

9-34

Module 9 Multi-Node Applications

Intentionally left blank

Wonderware Training

Lab 19 Configuring the Redundant DI Object

Lab 19 Configuring the Redundant DI


Object
Introduction
This lab describes the steps necessary to configure your galaxy for redundancy at the
communication level with the field by using two similar device integration objects connected to the
same field device, such a PLC.
Note: Because of the additional hardware and network requirements necessary, this lab is usually
executed as an Instructor demonstration only.

Objectives
Upon completion of this lab you should be able to:


Configure and use the $RedundantDIOObject

Create a deployment model for redundant DI object

Force a failover on a redundant DI system

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 the Redundant DI Object


1. Create two new instances of the $ABAppEngine template, name them ABAppEngineDI1
and ABAppEngineDI2 and assign them to the ABControlSystem area.

2. Host ABAppEngineDI1 on the ABGRPlatform platform and ABAppEngineDI2 on


ABPlatform_001 platform.

3. Rename the InControl instance as DIO1 and host it on the ABAppEngineDI1 engine.

4. Create a copy of the DIO1 object by repeating Lab 6 but naming the object DIO2. Assign the
new object to the ABControlSystem area and host it on the ABAppEngineDI2 engine.

5. Derived a new template from the $RedundantDIObject object, name it


$ABRedundantDIObject, and assign it to the AB Training template toolset.

Wonderware System Platform 3.0 Course - Part 1

9-35

9-36

Module 9 Multi-Node Applications


6. Create an instance of the $ABRedundantDIObject template and name it InControl.

7. On the General tab, configure the object as follows:


Primary DI source:

DIO1

Backup DI source:

DIO2

8. On the Scan Group tab, copy the common scan groups and attributes from the primary or
backup DI sources.

9. Host the InControl instance on the ABAppEngine object.

Test the Redundant DI Object


10. Deploy the ABAppEngineDI1, ABAppEngineDI2, DIO1, DIO2 and InControl objects.

11. Using the watch list created in Lab 5, add a new watch window called RDIO and add the
following attribute references:


InControl.DISourcePrimary

InControl.DISourceBackup

InControl.DISourceActive

InControl.DISourceStandby

InControl.StatusPrimaryDISource

InControl.StatusBackupDISource

InControl.ConnectionStatus

InControl.SwitchReason

InControl.ForceFailoverCmd

12. Save the watch list.

13. Force a failover in the system and monitor the objects using Object Viewer and the different
watch windows created during the class.

See the next page for Detailed Lab Instructions

Wonderware Training

Lab 19 Configuring the Redundant DI Object

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 the Redundancy DI Object


1. Create two new instances of the $ABAppEngine template.
Name them ABAppEngineDI1 and ABAppEngineDI2 and assign them to the
ABControlSystem area.

2. In the Deployment view, host ABAppEngineDI1 on the ABGRPlatform platform and


ABAppEngineDI2 on ABPlatform_001 platform.

3. Undeploy the InControl instance, rename it DIO1 and host it on the ABAppEngineDI1
engine.

Wonderware System Platform 3.0 Course - Part 1

9-37

9-38

Module 9 Multi-Node Applications

4. Use Lab 6 Connecting to the Field to create another device integration object, but name it
DIO2 instead of InControl. Assign it to the ABControlSystem area.
Note: You can export your object, rename the original, and then import the object to create a
copy of the object with all of the original objects configuration attributes.

5. In the Deployment view, host the DIO2 object on the ABAppEngineDI2 engine.

Wonderware Training

Lab 19 Configuring the Redundant DI Object


6. Create a derived template from the $RedundantDIObject template, name it
$ABRedundantDIObject and assign it to the AB Training template toolset.

7. Create an instance of the $ABRedundantDIObject template, name them InControl and


assign it to the ABControlSystem area.

8. Double-click the InControl instance to open its configuration editor.

Wonderware System Platform 3.0 Course - Part 1

9-39

9-40

Module 9 Multi-Node Applications


9. On the General tab, configure the object as follows:
Primary DI source:

DIO1

Backup DI source:

DIO2

10. Select the Scan Group tab and click on the Copy Common Scan Groups button.
On the Copy Common Scan Groups dialog box, click the OK button to accept tagname as
the scan group for the new InControl object.

Wonderware Training

Lab 19 Configuring the Redundant DI Object


11. Click on the Copy Attributes From Primary button.

12. Click the Save and Close button and check in the object.

Wonderware System Platform 3.0 Course - Part 1

9-41

9-42

Module 9 Multi-Node Applications


13. In the Deployment view, host the new InControl object on the ABAppEngine engine.

Test the Redundant DI Object


14. Deploy the ABAppEngineDI1 object on cascade.

15. Deploy the ABAppEngineDI2 object on cascade.

16. Deploy the InControl object.

17. Open Object Viewer by right-clicking the InControl instance and selecting View in Object
Viewer. If you closed Object Viewer before, you can use File / Load Watch List to open the
file you saved earlier.

18. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch
Window to add a new tab to the watch list.

19. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the watch list to RDIO.

Wonderware Training

Lab 19 Configuring the Redundant DI Object


20. Add the following attributes to the watch list:
DISourcePrimary
DISourceBackup
DISourceActive
DISourceStandby
StatusPrimaryDISource
StatusBackupDISource
ConnectionStatus
SwitchReason
ForceFailoverCmd

21. Save the watch list.

22. Force a failover to the second device integration object by writing true to the
ForceFailoverCmd attribute of the Redundant DI Object. You can use the Mixer watch
window to verify that the objects are running properly.

Wonderware System Platform 3.0 Course - Part 1

9-43

9-44

Module 9 Multi-Node Applications


23. Failover the system doing any of the following on the second computer:

Unplug the power cable


Shut down Windows

Put the DIO2 object off scan

You can use the Mixer watch window to verify that the objects are running properly.

Wonderware Training

Section 3 Multi Node Application

Section 3 Multi Node Application


Section Objective
This section deals with migrating from a standalone configuration to a network configuration. At
the conclusion of this section you will have an understanding of the steps necessary to migrate to
a network environment.

This section provides an understanding of how to migrate from a standalone configuration to a


network configuration. At the conclusion of this section you will have an understanding of the
steps necessary to migrate to a network environment.

Standalone to Network Configuration


Earlier we discussed the standalone configuration you have been using up to this point. At this
time you want to migrate over to a network configuration that will reflect four nodes accessing one
Galaxy Repository. This will allow us to utilize a networked configuration to convey more complex
concepts relating to connectivity, exporting objects and templates and other multi-node
environmental considerations.
Each of the nodes contains the Bootstrap, the ArchestrA IDE, and a Galaxy Repository. Once you
have reconfigured the environment there will be one machine (Node1) that will contain the Bootstrap,
the ArchestrA IDE, and a Galaxy Repository. Three other nodes will be connected to
the Galaxy on Node1. Those other three nodes will contain only the Bootstrap and the ArchestrA
IDE.
In the networked architecture a common Galaxy Repository will be shared between a set of PCs
allowing multiple users to simultaneously work on the same application.
The existing standalone environment is illustrated as follows:

Wonderware System Platform 3.0 Course - Part 1

9-45

9-46

Module 9 Multi-Node Applications

The networked environment that you are migrating to is illustrated as follows:

Wonderware Training

Section 3 Multi Node Application


Multi User Conversion Considerations
When migrating from a Stand Alone environmental configuration to a networked configuration
there are some factors that must be taken into consideration. One of the key ones being that
certain functions take place on the Galaxy Repository node BEFORE they take place from the
connecting nodes.
There a need for only one PLC so the one residing on the resulting Galaxy Repository node is the
one that is most likely the one desired for the network. Therefore, that is the one and only one that
is to be exported in preparation for the network environment.
The node that contains the Galaxy Repository must do several tasks before any other nodes can
connect. These include:


Create the Galaxy to which all other nodes will connect.

Create Platforms for other galaxy members.

Rename the node.

Name and deploy their own Platform as the first Platform deployed on the Galaxy
Repository node.

Failure to follow these key steps before others connect and start deploying objects can produce
less than desirable results.

Wonderware System Platform 3.0 Course - Part 1

9-47

9-48

Module 9 Multi-Node Applications

Intentionally left blank

Wonderware Training

Lab 20 Convert to Network Environment

Lab 20 Convert to Network Environment


Introduction
This lab describes the steps necessary to convert to a Networked Configuration. In this lab you
team up with your classmates to create a galaxy that spans across multiple nodes. In the
networked environment a common Galaxy Repository is shared between a set of PCs allowing
multiple users to simultaneously work on the same application.
To speed up the process, templates you created in the class are re-used.
Since there can only be one Galaxy Repository per galaxy, your team needs to designate one of
the team members computer to become the sole Galaxy Repository for the galaxy. This person/
computer is designated as the Galaxy Master. The Galaxy Master has specific extra steps to
perform.

Objectives
Upon completion of this lab you will be able to:


Configure a galaxy for a multi-node environment.

Summary Lab Instructions


Following is a summary of the general steps you will complete for this lab.
Note: For this lab there are no detailed steps on the following pages.

Preparation
Note: This section is to be performed by everyone except where noted.
1. Undeploy the galaxy.

2. Export all your templates to a file called MyTemplates.aaPKG.

3. Galaxy Master: Export the InControl instance to a file called InControl.aaPKG.


Note: If you did Lab 19, then export both the I/O 1 and I/O 2.

Wonderware System Platform 3.0 Course - Part 1

9-49

9-50

Module 9 Multi-Node Applications


Create a New Galaxy
Note: This section is only to be performed by the Galaxy Master.
4. Create a new galaxy named MultiNodeGalaxy.

5. Import the MyTemplates.aaPKG and InControl.aaPKG files.

6. Create an area instance named ControlSystem and assign the InControl object to it.

7. Create a platform instance named ABPlatform and assign it to the ControlSystem area.

8. Create an engine instance named AppEngineDI and assign it to the ControlSystem area.

9. On the Deployment view:


Host AppEngineDI on ABPlatform.
Host InControl on AppEngineDI.
Host ControlSystem on AppEngineDI.

10. Deploy the ABPlatform object on cascade.

11. Configure the galaxys security Authentication Mode to Galaxy.

12. Create a user account that belongs to the Administrator role for each member of the team.

Setup the Platforms


Note: This section is not to be performed by the Galaxy Master.
13. Use the ArchestrA IDE to connect to the MultiNodeGalaxy galaxy in the Galaxy Masters
computer using your designated user account.

14. Import the MyTemplates.aaPKG file.

15. Create a platform instance named ABPlatform and configure it with your local computers
name. Assign it to the ControlSystem area.

16. Deploy the ABPlatform object on cascade.

Wonderware Training

Lab 20 Convert to Network Environment

Test the Galaxy


Note: This section is to be performed by everyone.
17. Create an engine instance named ABAppEngine, assign it to the ControlSystem area and
host it on your ABPlatform object.

18. Create an area instance named ABLine and host it on your ABAppEngine object.

19. Create an instance of your mixer template and name it properly with the valid 3-digit mixer ID
at the end (ABMixer_XXY) as identified in Lab 2. Host it on your ABLine area.

20. Deploy your ABAppEngine object on cascade.

21. Use Object Viewer to verify that all objects are running properly and are getting data from the
field.

Note: Feel free to experiment and play around with the multi-node system to reinforce the
knowledge acquired during this class.

Wonderware System Platform 3.0 Course - Part 1

9-51

9-52

Module 9 Multi-Node Applications

Intentionally left blank

Wonderware Training

Module 10

ArchestrA Graphics
Introduction InTouch HMI and ArchestrA Integration
Section 1 Creating and Managing Symbols
Section 2 Using ArchestrA Symbols in WindowMaker
Lab 21 Symbol Creation
Section 3 Using Custom Properties

10-1
10-3
10-85
10-93
10-103

Lab 22 Defining Custom Properties

10-109

Section 4 Animating Graphic Elements

10-117

Lab 23 Animation

10-193

Lab 24 Referencing a Symbol

10-203

Section 5 Associating Scripts with Symbols


Lab 25 Scripting
Section 5 Quality & Status
Lab 26 Q u a l i t y & S t a t u s

10-209
10-221
10-224
10-234

3-2

Module 10 ArchestrA Graphics

Module Objectives


Select the appropriate communication protocol.

Use the appropriate tag strategies to solve a problem.

Use Dynamic Reference Addressing as a troubleshooting tool.

Monitor Value, Time and Quality.

Wonderware Training

Introduction InTouch HMI and ArchestrA Integration


Section Objectives


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:


Create and manage stand-alone InTouch applications.

Start WindowMaker to edit InTouch applications

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.

Wonderware System Platform 3.0 Course - Part 1

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:

See which InTouch applications are running on what node.


Use a central repository for InTouch applications.

Deploy changes to WindowViewer running on the remote nodes.

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:


Use ArchestrA IDE to deploy the InTouch applications.

Edit or add ArchestrA Symbols in the InTouch applications.

Wonderware Training

Section 2 InTouch HMI and ArchestrA Integration


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
Applications
Create Application

Application Manager

Managed InTouch
Applications
ArchestrA IDE

Published InTouch
Applications
Not possible

New application
Importing stand-alone
application
Importing SmartSymbols
Edit Application

WindowMaker started
from the Application
Manager

WindowMaker started from


within the IDE

WindowMaker started
from the Application
Manager

Delete Application

Delete folder and remove


from Application Manager

Delete InTouchViewApp
template

Delete folder and


remove from Application
Manager

Support of
ArchestrA Symbols

No

Yes for all operations

Yes, but only for viewing,


not for creating and
editing

Support of DB Dump
and DB Load

Yes, function within


Application Manager

Yes, function within the IDE

Yes, function within


Application Manager

Editing application in
original resolution
requires conversion

Yes

Yes

Yes

Management of
Distributed
Applications

Network Application
Development (NAD)

ArchestrA IDE

Network Application
Development (NAD)

Configuring how
new InTouch
application versions
are accepted

Configured in Application
Manager (Network
Application Development)

Configured in WindowMaker

Configured in
Application Manager
(Network Application
Development)

Use Fast-Switch to
test application

Yes

Yes

Yes

Use tag value and


tag parameter
retention

Yes

Yes, also requires


configuration of the local
working directory

Yes

Wonderware System Platform 3.0 Course - Part 1

1-19

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:


Export and import the InTouchViewApp object to exchange managed InTouch


applications across Galaxies.

Export and import tag dictionary data as .csv files.

Export and import windows between different types of InTouch applications.

Publish the managed InTouch application. The published InTouch application runs like a
stand-alone InTouch application but can contain ArchestrA Symbols.

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:



Creating a new InTouch application.


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


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.

Wonderware System Platform 3.0 Course - Part 1

1-21

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.


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.

For managed InTouch applications, you can import any windows from published, standalone, and other managed InTouch applications. Embedded ArchestrA Symbols are not
imported.

For published InTouch applications, you can import any windows from stand-alone
InTouch applications.

Embedded ArchestrA Symbols are not imported.

Wonderware Training

Section 2 InTouch HMI and ArchestrA Integration


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.

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.


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.
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.
If you close the IDE while testing an InTouch application with WindowViewer,
WindowViewer closes.

If you want to:



Change the association between the InTouchViewApp and the InTouch application,
create a new derived InTouchViewApp template instead.


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.

Wonderware System Platform 3.0 Course - Part 1

1-23

1-24

Module 1 Introduction

Managing InTouch Applications with the IDE


You can use the ArchestrA IDE to:


Create a new managed InTouch application.

Import an existing InTouch application to use as a managed InTouch application.

Start WindowMaker.

Submit the changes you make in WindowMaker to a managed InTouch application.

Export and import a managed InTouch application together with its InTouchViewApp
object.
Publish a managed InTouch application.

Delete a managed InTouch application.

Import and export tag data used in a managed InTouch application.

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:

On the File menu, click ArchestrA IDE.


Click the ArchestrA IDE icon on the toolbar.


The Connect to Galaxy dialog box opens.

Wonderware Training

Section 2 InTouch HMI and ArchestrA Integration


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:

Right-click the $InTouchViewApp base template, point to New, and then click Derived
Template. A new derived template appears with a default name.


Rename it, if needed.

Wonderware System Platform 3.0 Course - Part 1

1-25

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


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.

Click Yes to convert the InTouch application to the current system resolution and open it.

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 objects default editor and opens the InTouch application.
You are ready to edit the managed application.

Wonderware System Platform 3.0 Course - Part 1

1-27

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:



Click No to not open the template.


Click Yes to open the associated InTouchViewApp template in WindowMaker.

Note: If you select the Dont 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


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.

Wonderware System Platform 3.0 Course - Part 1

1-29

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:

Create an InTouchViewApp object to associate with the imported InTouch application.


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


e. Locate the InTouch application.
Do any of the following:

Click the ellipsis button to browse for the folder that contains the managed InTouch
application.

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.

Wonderware System Platform 3.0 Course - Part 1

1-31

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

Section 1 Creating and Managing Symbols

Section 1 Creating and Managing Symbols


Section Objectives


Create ArchestrA Symbols.

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:


Create a new symbol.

Open the symbol for editing with the ArchestrA Symbol Editor.

Organize symbols within the Graphic Toolbox.

Import and export symbols.

Delete a symbol.

Configure security for a symbol.

Open the symbol in read-only mode with the ArchestrA Symbol Editor.

Creating a New Symbol


You can create a new symbol in either:

The Graphic Toolbox for generic symbols that you are likely to frequently use in different
situations, for example a valve symbol.

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.


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.

Wonderware System Platform 3.0 Course - Part 1

3-3

3-4

Module 10 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

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:


Draw an element by selecting an element from the Tools panel, placing it on the canvas,
and then configuring its properties.

Select one or more elements on the canvas with the mouse or from the Element list.

Edit certain elements in a special way called inline editing.

Copy, cut, paste, and duplicate elements.

Move elements around on the canvas.

Align elements to each other.

Change the spacing between elements.

Resize elements.

Change the z-order of elements to change which elements appear on top of others when
they overlap.
Rotate elements.

Change the origin of elements to specify around which point the elements are rotated.

Flip elements on their horizontal or vertical axis.

Lock elements to stop them being moved or changed.

Undo and redo any number of changes made previously to the symbol.

Create groups of elements to bind them together.

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.

Wonderware System Platform 3.0 Course - Part 1

3-5

3-6

Module 10 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


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.

Wonderware System Platform 3.0 Course - Part 1

3-7

3-8

Module 10 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:


Press Enter to type a new line of text.


This new line is a new element.

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


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.

Wonderware System Platform 3.0 Course - Part 1

3-9

3-10

Module 10 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.


Read-only properties appear in grey.

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

Graphic

Element name or other describing


identifiers

Appearance

Element location, size, orientation,


offset, transparency and locked status

Fill Style

Any parameters related to the fill


appearance of the element

Line Style

Any parameters related to the line


appearance of the element

Text Style

Any parameters related to the text


appearance of the element

Runtime Behavior

Element visibility, tab order and any


other element behavior at run time

Custom Properties

Additional user-defined properties you


can associate with any element

Wonderware Training

Properties Editor

Section 1 Creating and Managing Symbols


Selecting Elements
You can select one or more elements by:


Clicking on them with the mouse.

Dragging the lasso around them with the mouse.

Selecting them with a menu option or with a shortcut key.

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
Primary Element

Description
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.

Wonderware System Platform 3.0 Course - Part 1

3-11

3-12

Module 10 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


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


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 systems 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:



Shift + click the selected element on the canvas.


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.

Wonderware System Platform 3.0 Course - Part 1

3-13

3-14

Module 10 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
Button, text, text box

Use inline editing to


Edit the text.

Polyline, polygon, curve, closed curve

Edit the control points.

2-point arc, 2-point pie, 2-point chord,


3-point arc, 3-point pie, 3-point chord

Edit the start and sweep angles.

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.


For buttons, text, and text boxes, the text is selected and you can type new text.

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.

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.

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

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:


A set of elements that are locked, the copy is not locked.

Grouped elements, the copy is still grouped.

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


Do any of the following:







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.
Ctrl + click an element.
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.

Wonderware System Platform 3.0 Course - Part 1

3-15

3-16

Module 10 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


Select one or more elements, and then do one of the following:




On the Edit menu, click Cut.

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:


Click Paste on the Edit menu.

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:



Click Delete on the Edit menu.


Press Delete on your keyboard.

Wonderware Training

Section 1 Creating and Managing Symbols


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:


Click Duplicate on the Edit menu.


The selected element is duplicated and appears offset to the original element.

Press Ctrl + D.
The selected element is duplicated and appears offset to the original element.

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.

Wonderware System Platform 3.0 Course - Part 1

3-17

3-18

Module 10 ArchestrA Graphics

Resizing Elements
You can resize selected elements by:


Dragging the handles of a single element to increase or decrease its horizontal or vertical
size.
Changing the Width and Height properties of one or more elements using the Properties
Editor.

Proportionally resizing multiple elements.

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


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.

Wonderware System Platform 3.0 Course - Part 1

3-19

3-20

Module 10 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:

Bring one or more elements to the very front.


Send one or more elements to the very back.

Bring one or more elements one level forward.

Send one or more elements one level backward.

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 Users Guide.

Wonderware Training

Section 1 Creating and Managing Symbols

Rotating Elements
You can rotate elements to any orientation (0 - 359 degrees):


Graphically with the rotation handle.

Numerically by typing the orientation angle in the Properties Editor.

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:


Freely in the range 0 to 359 in integer degrees.

In multiples of 15 degrees.

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.

Wonderware System Platform 3.0 Course - Part 1

3-21

3-22

Module 10 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


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:


With the mouse on the canvas.

By specifying the absolute origin in the Properties Editor.

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:


Type the absolute coordinates in the x, y format for the point of origin.

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.

Wonderware System Platform 3.0 Course - Part 1

3-23

3-24

Module 10 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:


Create a group from one or more elements.

Ungroup the elements without losing their original configuration information.




Add more elements to an existing group.


Remove elements from a group.

Edit the elements of a group without having to ungroup them.

Wonderware Training

Section 1 Creating and Managing Symbols


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:


In the Elements List, click the group name and click again.
The group name is in edit mode.

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


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.

Wonderware System Platform 3.0 Course - Part 1

3-25

3-26

Module 10 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:


Elements to groups.

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


Editing Components within a Group
You can edit components within a group without having to dissolve the group. Do this by:


Selecting the element in Elements List.

Using the Edit Group command on the shortcut menu.

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.

Wonderware System Platform 3.0 Course - Part 1

3-27

3-28

Module 10 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:



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.


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


Any shape with 2 open points can be joined

Joined shapes can be Filled, animated etc.

Path Tool:

Example create a shield:

Create using Path button

Break using Path Break button


(or Arrange | Path)

Path element can be animated as closed shape

Paths can be edited using Edit | Path menu

New elements can be added by drawing

Existing contained elements can be deleted

Wonderware System Platform 3.0 Course - Part 1

3-29

3-30

Module 10 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:

Edit the name of an element.



Edit the fill properties of an element.


Edit the line properties of an element.

Edit the text properties of an element.

Set the style.

Set the transparency level of an element.

Tweaking colors and style for an elements gradient style.

Enable and disable elements for run-time interaction.

Change the visibility of an element.

Change the tab order of an element.

Use the Format Painter to format elements.

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 elements 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 elements 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


Editing the Fill Properties of an Element
You can configure the following fill properties for an element:


Fill style as solid color, gradient, pattern or texture

Unfilled style

Fill orientation, relative to the element or to the screen

Fill behavior, which determines if the object is to be filled horizontally, vertically, or both

Horizontal fill direction

Vertical fill direction

Percent of horizontal fill

Percent of vertical fill

Setting Fill Style


You can configure the fill style of one or more elements. You can do this to:


Selected elements on the toolbar.

Style properties in the Properties Editor.

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:




Click No Fill to configure an empty element.

Click a predefined solid color in the display.

Click More Solid Colors to open the Style Selection dialog box and select a solid color.

Click Color Picker to select a color from the screen.

d. Configure the fill gradient, pattern, or texture. Do any of the following:




Click a predefined gradient.

Click More Gradients to open the Style Selection dialog box and configure a gradient.

Click Patterns to open the Style Selection dialog box and select a pattern.

Click Textures to open the Style Selection dialog box and select a texture.

Wonderware System Platform 3.0 Course - Part 1

3-31

3-32

Module 10 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 elements unfilled style. The unfilled style of an element determines the
elements 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 elements fill orientation in the Properties Editor. The fill orientation property
determines if the fill style is relative to the screen or element.


If relative to the screen, the gradient, pattern, or texture does not rotate with the element.

If relative to the element, the gradient, pattern, or texture rotates with the element.

To configure an elements 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


Setting Fill Behavior
You can set the fill behavior of an element. The fill can be:


Horizontal.

Vertical.

Both horizontal and vertical.

To set an elements 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:


Horizontal

Vertical

Both

Setting Horizontal Fill Direction and Percentage


An element can fill:


From left to right.

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 elements 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:


Right to fill from left to right.

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:


From bottom to top.

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 elements 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:


Top to fill from bottom to top.

Bottom to fill from top to bottom.

c. For the VerticalPercentFill property, type a percentage (0 - 100) in the value box.

Wonderware System Platform 3.0 Course - Part 1

3-33

3-34

Module 10 ArchestrA Graphics

Editing the Line Properties of an Element


You can set the line properties for any element that contains lines, such as:


Lines and polylines.

Rectangles, rounded rectangles, and ellipses.

Curves, closed curves, and polygons.

Arcs, pies, and chords.

Text boxes.

You can set the:




Start and end points for lines, arcs, and H/V lines.

Line weight, which is the thickness of a line.

Line pattern, which is the continuity of a line. For example, a continuous line, a dotted line,
a dashed line, or a combination.

Line style, which is the fill style of a line.

Shape and size of the end points of a line.

Note: You can also set the elements 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


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.

Wonderware System Platform 3.0 Course - Part 1

3-35

3-36

Module 10 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:


Click a predefined solid color in the display.

Click More Solid Colors to open the Style Selection dialog box and select a solid color.

Click Color Picker to select a color from the screen.

d. Configure the line gradient, pattern, or texture. Do any of the following:




Click a predefined gradient.

Click More Gradients to open the Style Selection dialog box and configure a gradient.

Click Patterns to open the Style Selection dialog box and select a pattern.

Click Textures to open the Style Selection dialog box and select a texture.

Note: You can also set the elements 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:


The text that appears

The format in which the text appears

The font of the text

The alignment of the text

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


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:


Text element and the button element in the same way as in the InTouch HMI or with the
TextFormat property in the Properties Editor.

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:


The Format menu.

The Font property in the Properties Editor.

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.

Wonderware System Platform 3.0 Course - Part 1

3-37

3-38

Module 10 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:




Click a predefined solid color in the display.

Click More Solid Colors to open the Style Selection dialog box and select a solid color.

Click Color Picker to select a color from the screen.

d. 4 Configure the text gradient, pattern, or texture. Do any of the following:




Click a predefined gradient.

Click More Gradients to open the Style Selection dialog box and configure a gradient.

Click Patterns to open the Style Selection dialog box and select a pattern.

Click Textures to open the Style Selection dialog box and select a texture.

Wonderware Training

Section 1 Creating and Managing Symbols


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.

Buttons

Text Boxes

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.


Text right alignments move additional text further over to the left.

Text left alignments move additional text to the right.

Changes in font size leave the point of alignment unchanged and modify the frame
accordingly.

Wonderware System Platform 3.0 Course - Part 1

3-39

3-40

Module 10 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:


Press Ctrl + L.

On the Special menu, click Substitute Strings.

The Substitute Strings dialog box appears.

Wonderware Training

Section 1 Creating and Managing Symbols


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:


Press Ctrl + E.

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:




To find specific strings in the list, type a string in the Find What box and click Find Next to
find the next string.
To replace a selected found string with another string, type a string in the Replace with
box and click Replace.
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:

f.

If you want the search to be case-sensitive, click Match Case.

To find only entire words that match your search string, click Match Whole Word Only.

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.

Click OK.

Wonderware System Platform 3.0 Course - Part 1

3-41

3-42

Module 10 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:


Standard palette.

Color disc and bar.

Value input boxes.

Color picker.

Custom palette.

You can also:




Add the new color to the custom palette.

Remove a color from the custom palette.

Save the custom palette.

Load a custom palette.

Wonderware Training

Section 1 Creating and Managing Symbols


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).

Wonderware System Platform 3.0 Course - Part 1

3-43

3-44

Module 10 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:


Red component (0-255).

Green component (0-255).

Blue component (0-255).

Hue (0-255).




Saturation (0-255).
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


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:


Select a solid color from the custom palette.

Select a solid color from the color disc and bar.

Type values for red, green, blue, hue, saturation, and luminance.

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.

Wonderware System Platform 3.0 Course - Part 1

3-45

3-46

Module 10 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

Setting a Gradient
You can configure gradients by the:


Number of colors - 1, 2 or 3.

Direction - horizontal, vertical, radial, point based, or customized.

Variant - depending on your selection for the number of colors and direction.

Color distribution shape - bell or triangular with options to configure the center and falloff.

Focus scales - width and height.

You set a gradient on the Gradient tab in the Style Selection dialog box.

Wonderware System Platform 3.0 Course - Part 1

3-47

3-48

Module 10 ArchestrA Graphics


Setting the Number of Colors for a Gradient
You can set the number of colors you want to use in a gradient.


If you use one color, the gradient is between this solid color and a specified shade of black
to white.

If you use two colors, the gradient is between these two colors.

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


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:


Horizontal - from side to side


Vertical - up and down

Radial - circular from the center outwards

Point based - from the inside outwards in linear fashion depending on the bounding points

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.

Wonderware System Platform 3.0 Course - Part 1

3-49

3-50

Module 10 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:




In the Horizontal and Vertical boxes, type values for the center location.

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:




In the Horizontal and Vertical text boxes, type values for the center location.

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


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:




In the Angle text box, type a value for the angle.

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.

Wonderware System Platform 3.0 Course - Part 1

3-51

3-52

Module 10 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.

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.

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.




The peak specifies the offset of the gradient if it has one or two colors.

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


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:


Use the Peak slider to specify the peak.

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:


Use the Falloff slider to specify the peak.

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:


Use the Center slider to specify the peak.

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

50

50

50

50

Appearance

You can also lock the width and the height.

Wonderware System Platform 3.0 Course - Part 1

3-53

3-54

Module 10 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:


Use the Width slider to specify the width.

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:


Use the Height slider to specify the height.

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


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.

Wonderware System Platform 3.0 Course - Part 1

3-55

3-56

Module 10 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:


Click Tile to create a pattern that repeats itself.

Click Stretch to enlarge (or shrink) the pattern across the selected element.

e. Click OK.

Wonderware Training

Section 1 Creating and Managing Symbols

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:




Drag the Transparency slider handle.

In the Transparency text box, type a percentage value.

The new style appears in the New color box.


c. Click OK.

Wonderware System Platform 3.0 Course - Part 1

3-57

3-58

Module 10 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 subproperties.

Wonderware Training

Section 1 Creating and Managing Symbols


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:


FillColor

LineColor

TextColor

UnFillColor

c. Click the + icon to expand the property. The Color1, Color2, Color3, and Transparency subproperties are shown.
d. Do one of the following:


Click the color box of one of the color sub-properties.

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:


User input.

Horizontal and vertical sliders.

Pushbuttons.

Action scripts.

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.

Wonderware System Platform 3.0 Course - Part 1

3-59

3-60

Module 10 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 zorder. 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 elements 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

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:

One time to other elements.


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):


Font family, size, and style

Text style, alignment, and word wrap settings

Line style, weight, pattern, and ends

Transparency

Fill style, orientation, behavior, horizontal percent fill, and vertical percent fill

Unfilled style

Horizontal and vertical direction properties

You cannot use the format painter for:




The status element.

An element that is part of a path.

Groups of elements.

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.

Wonderware System Platform 3.0 Course - Part 1

3-61

3-62

Module 10 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:


Add a meaningful description to your symbol.

Enable anti-aliasing, or smoothing, for your symbol to improve its appearance. The antialiasing filter essentially blurs the elements slightly at the edges.

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


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:


General properties of a symbol.

Radius of rounded rectangles.

Shape and end appearance of lines and H/V lines.

Auto-sizing and word-wrapping in text boxes.

Image-specific properties.

Button-specific properties.

Control points and tension in curves.

Angles in pies, chords, and arcs.

Status elements.

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:

Enlarge or reduce the radius of the rounded rectangle on the fly. The easiest way to do
this is with the keyboard.


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.

Wonderware System Platform 3.0 Course - Part 1

3-63

3-64

Module 10 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:

In the Line Start list, click a shape for the start of the line.

In the Line End list, click a shape for the end of the line.

Click OK.

Wonderware Training

Section 1 Creating and Managing Symbols


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.

For auto scaling, the text is resized to fit the text box.

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:


Set the display mode (ImageStyle).

Set the image alignment (ImageAlignment).

Set the transparency color (HasTransparentColor, TransparentColor properties).

Open the image in an image editing application.

Select a different image for the image element.

Wonderware System Platform 3.0 Course - Part 1

3-65

3-66

Module 10 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.


In normal mode, the image is not stretched or tiled. You can resize the image frame with
the resizing handles.

In stretch mode, the image is stretched so that it fills its frame.

In tile mode, the image is repeated so that a tiled pattern that fills its frame is created.

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


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:


Top left, top center, or top right

Middle left, center, or middle right

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.

Wonderware System Platform 3.0 Course - Part 1

3-67

3-68

Module 10 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:

Enable color transparency for images.


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


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.

Wonderware System Platform 3.0 Course - Part 1

3-69

3-70

Module 10 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:


Automatically scale the font size

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


Configuring Buttons with Images
You can use buttons with an image in ArchestrA Symbols.


The up image is the image that appears when the button is released at run time

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:


Edit Up Image

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:


Move individual control points.

Add or remove control points.

Wonderware System Platform 3.0 Course - Part 1

3-71

3-72

Module 10 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


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.

Wonderware System Platform 3.0 Course - Part 1

3-73

3-74

Module 10 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


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.

Wonderware System Platform 3.0 Course - Part 1

3-75

3-76

Module 10 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


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.

Wonderware System Platform 3.0 Course - Part 1

3-77

3-78

Module 10 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


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.

Wonderware System Platform 3.0 Course - Part 1

3-79

3-80

Module 10 ArchestrA Graphics


Opening Symbols for Editing
You can either start the ArchestrA Symbol Editor from a symbol:


Contained in the Graphic Toolbox.

Contained in an Automation object template or instance.

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


d. Now you can edit your symbol.
For specific information about using the drawing tools, see Creating and Managing ArchestrA
Graphics Users 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 Users 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:


contain embedded symbols from the Graphic Toolbox, these symbols are exported along
with the symbols associated with the Automation object.

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.

Wonderware System Platform 3.0 Course - Part 1

3-81

3-82

Module 10 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


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.


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.

You cannot delete symbols that someone else has open for editing or left checked out.

If you delete a symbol from an Automation Object, the symbol still appears to other users
until you check in the Automation Object.
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:


Open the Graphic Toolbox.

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.

Wonderware System Platform 3.0 Course - Part 1

3-83

3-84

Module 10 ArchestrA Graphics


Viewing a Symbol in Read-Only Mode
You can view a symbol in read-only mode if you dont 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

Section 2 Using ArchestrA Symbols in WindowMaker


Section Objectives
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
Automation
Object (Template)

IDE-Managed InTouch
Applications

Manages

Provide s
Archest rA
Symbol s

ArchestrA Symbol
Editor

InTouch WindowViewer

Test Application

Templates and
Instances
IDE-Managed InTouch
Applications

Provides
ArchestrA
Symbol Functionality

You can:



Insert ArchestrA symbols into an InTouch window.


Configure inserted ArchestrA symbols.

Start the ArchestrA IDE Symbol Editor.

Test the ArchestrA Symbols in WindowViewer.

Create a new Instance of the Automation object that is hosting the inserted ArchestrA
Symbol.

Wonderware System Platform 3.0 Course - Part 1

3-85

3-86

Module 10 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:


The Graphic Toolbox.

An ArchestrA object template.

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

Configuring ArchestrA Symbols in WindowMaker


You can configure inserted ArchestrA symbols in the following ways:

Standard editing, such as copying, cutting, pasting, duplicating, resizing, moving and
deleting.
Configuring WindowMaker animation links.

Connect an ArchestrA symbol with InTouch tagnames.

Selecting an alternate instance of the same parent.

Selecting an alternate symbol of the same instance.

Resizing the inserted ArchestrA symbol to its original size.

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:


Object size.

Object location.




Visibility.
Orientation.

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.

Wonderware System Platform 3.0 Course - Part 1

3-87

3-88

Module 10 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


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:

Leave the anchor points of its child symbols unchanged.


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:


Move the anchor points of its child symbols accordingly.

Leave the child symbol position unchanged.

Note: For more information about dynamic size propagation, see Creating and Managing
ArchestrA Graphics Users 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
status bar. The changes are then propagated to WindowMaker.

in the

Wonderware System Platform 3.0 Course - Part 1

3-89

3-90

Module 10 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 Users 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


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:


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

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:


Fast-switch to WindowMaker and then back to WindowViewer.

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.

Wonderware System Platform 3.0 Course - Part 1

3-91

3-92

Module 10 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:


Created an ArchestrA symbol in the Graphic Toolbox,


in an automation object template or automation object instance.

Created an IDE-managed InTouch application.

Inserted the ArchestrA symbol in the IDE-managed InTouch application.


Development and Testing Process of
ArchestrA Symbols
ArchestrA Symbol Editor
Modify
ArchestrA
Symbol and
Save

Create
ArchestrA
Symbol

WindowMaker
Insert
ArchestrA
Symbol into
InTouch
Window

Accept
Changes in
WindowMaker

WindowViewer

Fast Switch to
WindowViewer

Test ArchestrA
Symbol in
WindowViewer

Fast Switch to
WindowMaker

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:


Open then after a short while, a message appears in WindowViewer asking you to accept
the changes. Click Yes.

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 21 Symbol Creation

Lab 21 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:


Use the ArchestrA Symbol editor and the drawing tools

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:

f.

GatePipe

ValveAPipe

ValveBPipe

DrainPipe

Save the symbol.

g. Embed MainTank into an InTouch Window named NewReactor.

See the next page for Detailed Lab Instructions

Wonderware System Platform 3.0 Course - Part 1

3-93

3-94

Module 10 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 21 Symbol Creation

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:

Wonderware System Platform 3.0 Course - Part 1

3-95

3-96

Module 10 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 21 Symbol Creation


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.

Wonderware System Platform 3.0 Course - Part 1

3-97

3-98

Module 10 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 21 Symbol Creation


16. Duplicate the GatePipe group three (3) times for total of four sets of pipes.
17. Name the new groups:

ValveAPipe


ValveBPipe

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.

Wonderware System Platform 3.0 Course - Part 1

3-99

3-100

Module 10 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 21 Symbol Creation 3-101


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

Wonderware System Platform 3.0 Course - Part 1

3-102

Module 10 ArchestrA Graphics

Wonderware Training

Section 3 Using Custom Properties

Section 3 Using Custom Properties


Section Objective


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
- Elapsed Time

Default Value:
- Value
- Reference (Element or Attribute)
- Expression

CUSTOM PROPERTY 1
Description

SYMBOL

CUSTOM PROPERTY 2
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.

Wonderware System Platform 3.0 Course - Part 1

3-103

3-104

Module 10 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:




Add and delete custom properties.

Set the types and data types of custom properties.

Set the default values of custom properties.

Determine the visibility of each custom property.

Add a description for each custom property.

Validate and clear custom properties.

You can also:




Link custom properties to external sources.


Override custom properties with new values.

Revert custom property values to their default values.

Wonderware Training

Section 3 Using Custom Properties


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 Users 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.

Wonderware System Platform 3.0 Course - Part 1

3-105

3-106

Module 10 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
Boolean

Elapsed Time
Float

Integer

Wonderware Training

Symbol

Section 3 Using Custom Properties


Data Type
String

Symbol

Time

e. If you want to either:



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.


f.

Make the property read-only at run time and prevent its value being changed,
click the Lock icon.

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.


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

Select the label icon to indicate that the default value is a reference to a value.

h. In the Visibility box, select either:

i.

Public, so that the custom property is visible and can be used in a parent symbol if the
symbol is embedded or inserted.

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.

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.

Wonderware System Platform 3.0 Course - Part 1

3-107

3-108

Module 10 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:


Configuring Automation objects that point at external sources and then pointing the
custom property at the corresponding attribute reference.

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:

Embedded symbols within symbols in the ArchestrA Symbol Editor.


Inserted symbols in InTouch WindowMaker.

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

You can override the following custom property values:


Default value.

Visibility, but only from public to private, not private to public.

Description.

Locked state.

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 22 Defining Custom Properties 3-109

Lab 22 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:


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

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

Wonderware System Platform 3.0 Course - Part 1

3-110

Module 10 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 22 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.

Wonderware System Platform 3.0 Course - Part 1

3-112

Module 10 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 22 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.

Wonderware System Platform 3.0 Course - Part 1

3-114

Module 10 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 22 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.

Wonderware System Platform 3.0 Course - Part 1

3-116

Module 10 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

Section 4 Animating Graphic Elements


Section Objective


Configure and apply Animation to objects.

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:


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.

Interaction animations, such as disablement, user input, horizontal slider, vertical slider,
pushbutton, action script, show symbol or hide symbol.

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.

Wonderware System Platform 3.0 Course - Part 1

3-117

3-118

Module 10 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
The Edit Animations dialog box appears.

c. Click the Add icon.


The list of animations appears.

Wonderware Training

or double-click on the Element.

Section 4 Animating Graphic Elements


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


Select the element. The assigned animations appear in the Animation Editor.

Wonderware System Platform 3.0 Course - Part 1

3-119

3-120

Module 10 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


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




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


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:

Individual animations.


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).

Wonderware System Platform 3.0 Course - Part 1

3-121

3-122

Module 10 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


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:



Animation is disabled.


Syntax errors, such as data mismatches.

Required values not specified.

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:


ArchestrA attributes.

Element properties.

Custom properties.

InTouch tags.

Wonderware System Platform 3.0 Course - Part 1

3-123

3-124

Module 10 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


Connecting Animations with Custom Properties
You can connect the element behavior and appearance with a custom property of either:


The current symbol.

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:


Configuring a reference with the intouch:tagname syntax. The animation connects to the
InTouch tagname of the node the symbol is deployed to.

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.

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.

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.

Wonderware System Platform 3.0 Course - Part 1

3-125

3-126

Module 10 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:


Create an IDE-managed InTouch application by deriving an InTouchViewApp object and


configuring it in WindowMaker.
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


Managing Animations
You can easily manage animations in the Edit Animations dialog box. You can:


Change the way the list of animations appears.

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


In the Edit Animations dialog box, click the:




Alphabetic sort icon to sort alphabetically.

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




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.

Wonderware System Platform 3.0 Course - Part 1

3-127

3-128

Module 10 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:


Visualization animations, such as:




Visibility animations.

Fill style, line style or text style animations.

Blink animations.

Horizontal or vertical percent fill animations.

Horizontal or vertical location animations.

Width or height animations.

Orientation animations.

Value display animations.

Tooltip animations.

Interaction animations, such as:




Disablement animation.

User input animation.

Horizontal and vertical slider animations.

Pushbutton animations. 
Action script animations.

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


Configuring a Fill Style Animation
You can configure an element either with a:


Boolean fill style animation.

Truth table fill style animation.

The truth table fill style animation lets you:




Associate expressions of any data type supported by ArchestrA with a fill style.

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.

Wonderware System Platform 3.0 Course - Part 1

3-129

3-130

Module 10 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:



f.

Select the data type of the expression from the list.


Type a value, attribute reference or expression in the text box.

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


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:


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

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

Wonderware System Platform 3.0 Course - Part 1

3-131

3-132

Module 10 ArchestrA Graphics


Example:
The table below shows an analog fill color animation that describes the following behavior:


When the attribute TankLevel_001.PV is 0 then the fill style is solid black.

When the attribute TankLevel_001.PV is smaller than 20, then the fill style is solid red.

When the attribute TankLevel_001.PV is greater than the attribute Standards.TankMax


then the fill style is red with a diagonal pattern.

In all other cases, the fill style is solid blue.


Condition

Color

Operator

Expression

Solid Black

Solid Red

<

20

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:


Boolean line style animation.

Truth table line style animation.

The truth table line style animation lets you:




Associate expressions of any data type supported by ArchestrA with a line style.

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


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:


Line style.

Line thickness.

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.

Wonderware System Platform 3.0 Course - Part 1

3-133

3-134

Module 10 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:

f.

Select the data type of the expression from the list.

Type a value, attribute reference or expression in the text box.

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


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:


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

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

Wonderware System Platform 3.0 Course - Part 1

3-135

3-136

Module 10 ArchestrA Graphics


Configuring a Text Style Animation
You can configure an element either with a:


Boolean text style animation.

Truth table text style animation.

The truth table text style animation lets you:




Associate expressions of any data type supported by ArchestrA with a text style.

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


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.

Wonderware System Platform 3.0 Course - Part 1

3-137

3-138

Module 10 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:


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

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

Wonderware Training

Section 4 Animating Graphic Elements


Configuring a Blink Animation
You can configure an element with a blink animation. You can specify:


The blinking speed: slow, medium or fast.

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:

True, 1, On to enable blinking when the expression is true.


f.

False,0 ,Off to enable blinking when the expression is false.

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.

Wonderware System Platform 3.0 Course - Part 1

3-139

3-140

Module 10 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:

Fill Direction: from left to right or right to left.


Unfill Color: the style of the background when the element has 0% filling.

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


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:




j.

Fill Color box to select a style from the style selection dialog box.
This is the fill style of the element.
Unfilled Color box to select a style from the style selection dialog box.
This is the background fill style of the element.

In the Direction area, select either:



Right - to fill from left to right.


Left - to fill from right to left.

k. In the Orientation area, select either:



Relative to Graphic - so that the filling is in relation to the element and the filling rotates
with the element.

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.

Wonderware System Platform 3.0 Course - Part 1

3-141

3-142

Module 10 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:

Fill Direction: from bottom to top or top to bottom.


Unfill Color: the style of the background when the element has 0% filling.

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


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:




j.

Fill Color box to select a style from the style selection dialog box.
This is the fill style of the element.
Unfilled Color box to select a style from the style selection dialog box.
This is the background fill style of the element.

In the Direction area, select either:





Up - to fill from bottom to top.


Down - to fill from top to bottom.

k. In the Orientation area, select either:




l.

Relative to Graphic - so that the filling is in relation to the element and the filling rotates
with the element.
Relative to Screen - so that the filling is in relation to the screen and the filling does not
rotate with the element.

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.

Wonderware System Platform 3.0 Course - Part 1

3-143

3-144

Module 10 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


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.

Wonderware System Platform 3.0 Course - Part 1

3-145

3-146

Module 10 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.

j.

In the Anchor area, select either:




Left - to specify that the left side of the element is anchored.

Center - to specify that the horizontal center of the element is anchored.

Right - to specify that the right side of the element is anchored.

Origin - to specify that the origin of the element is anchored.

When you are done, click OK.

Wonderware Training

Section 4 Animating Graphic Elements


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.

j.

In the Anchor area, select either:




Top - to specify that the top side of the element is anchored.

Middle - to specify that the vertical center of the element is anchored.

Bottom - to specify that the bottom side of the element is anchored.

Origin - to specify that the origin of the element is anchored.

When you are done, click OK.

Wonderware System Platform 3.0 Course - Part 1

3-147

3-148

Module 10 ArchestrA Graphics


Configuring an Orientation Animation
You can configure an element with an orientation animation. You can also:


Specify a different orientation origin.

Ignore or accept the design-time orientation of the element on the canvas.

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


i.

In the Orientation Offset area, Select either:



Replace Current to ignore the design-time orientation of the element as it appears on the
canvas and to use absolute orientation.

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:

Replace Current Angle to ignore the design-time rotation setting of the element as it
appears on the canvas.

Apply Current Angle as Offset to rotate the element at run time in relation to its designtime 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.

Wonderware System Platform 3.0 Course - Part 1

3-149

3-150

Module 10 ArchestrA Graphics


Configuring a Value Display Animation
You can configure an element with a value display animation. You can either display:


A boolean value.

An analog value.

A string value.

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


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.

Wonderware System Platform 3.0 Course - Part 1

3-151

3-152

Module 10 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.

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

f.

hours

hh

hours in double digit display

minutes

mm

minutes in double digit display

seconds

ss

seconds in double digit display

day of month

dd

day of month in double digit display

ddd

day of week in short notation

dddd

ampm

day of week in long notation


12 hour display

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

When you are done, click OK.

Wonderware Training

Section 4 Animating Graphic Elements


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:


Tag Name shows Valve_001 at run time.

Hierarchical Name shows Pump_001.InletValve at runtime.

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:

f.

Tag Name to show the tag name of the hosting Automation object.

Hierarchical Name to show the hierarchical name of the hosting Automation object.

Contained Name to show the contained name of the hosting Automation object.

When you are done, click OK.

Wonderware System Platform 3.0 Course - Part 1

3-153

3-154

Module 10 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:




A static value and make sure the input mode icon is set to static.

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


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:


f.

True,1, On in which case the element is disabled at run time whenever the expression is
true.
False, 0, Off in which case the element is disabled at run time whenever the expression is
false.

When you are done, click OK.

Wonderware System Platform 3.0 Course - Part 1

3-155

3-156

Module 10 ArchestrA Graphics


Configuring a User Input Animation
You can configure an element with a user input animation for the following data types:


Boolean.

Analog (integer, float, double).

String.

Time.

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


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:

First selecting Restrict Values.


The Typing values, attribute references or expressions for the Minimum and Maximum
boxes.

Wonderware System Platform 3.0 Course - Part 1

3-157

3-158

Module 10 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


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:




Select Password.

Type in the replacement character in the adjacent box.

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.

Wonderware System Platform 3.0 Course - Part 1

3-159

3-160

Module 10 ArchestrA Graphics


j.

To use the current date and time as default, select Use Current Date/Time as Default.

k. Select either:


l.

Use Input Dialog to use the Time User Input dialog box at run time to type date and time
values in individual boxes.
Use Calendar to use the Time User Input dialog box at run time to select a date with the
calendar control.

If you selected Use Input Dialog to type the time value, you can either select:


Date and Time to type date and time.

Date to only type a date.

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

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:

l.

Show Days if you also want to input days.

Show Milliseconds if you also want to input milliseconds.

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.

Wonderware System Platform 3.0 Course - Part 1

3-161

3-162

Module 10 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.

j.

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:


Left to anchor the element at its left side.

Center to anchor the element at its center point.

Right to anchor the element at its right side.

Origin to anchor the element at its point of origin.

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


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:


Top to anchor the element at its top side.


Middle to anchor the element at its middle point.

Bottom to anchor the element at its bottom side.

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.

Wonderware System Platform 3.0 Course - Part 1

3-163

3-164

Module 10 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


h. From the Action list, select either:

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.

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.

Toggle so the value becomes true, if it is false and false if it is true when the element is
clicked.

Set so the value is set to true when the element is clicked.


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:

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.

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.

Wonderware System Platform 3.0 Course - Part 1

3-165

3-166

Module 10 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:




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.

Toggle so the value becomes Value1, if it is Value2 and Value2 if it is Value1 when the
element is clicked.
Set so the value is set to Value1 when the element is clicked.

Increment so the value is increased by Value1.

Decrement so the value is decreased by Value1.

Multiply so the value is multiplied with Value1.

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.

j.

You can configure the value to be written:




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.

Once by unselecting the Continuously while button is pressed.

This does not apply if you selected Toggle as action.

Wonderware Training

Section 4 Animating Graphic Elements


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:




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.
Toggle so the value becomes Value1, if it is Value2 and Value2 if it is Value1 when the
element is clicked
Set so the value is set to Value1 when the element is clicked.

Wonderware System Platform 3.0 Course - Part 1

3-167

3-168

Module 10 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:




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.
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


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:

On Primary Click/Key Down to activate the action script when the primary mouse button
or a specific key is pressed.

While Primary Click/Key Down to activate the action script when the primary mouse
button or a specific key is pressed and held.

On Primary Click/Key Up to activate the action script when the primary mouse button or
a specific key is released

On Primary Double Click to activate the action script when the primary mouse button is
double-clicked.

On Secondary Down to activate the action script when the secondary mouse button is
pressed.

While Secondary Down to activate the action script when the secondary mouse button is
pressed and held.

On Secondary Up to activate the action script when the secondary mouse button is
released.

On Secondary Double Click to activate the action script when the secondary mouse
button is double-clicked.

On Center Down to activate the action script when the center mouse button is pressed.

While Center Down to activate the action script when the center mouse button is pressed
and held.

On Center Up to activate the action script when the center mouse button is released.


On Center Double Click to activate the action script when the center mouse button is
double-clicked.
On Mouse Over to activate the action script when the mouse pointer is moved over the
element.
On Mouse Leave to activate the action script when the mouse pointer is moved out of the
element.
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.

Wonderware System Platform 3.0 Course - Part 1

3-169

3-170

Module 10 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


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:


Which symbol appears in the new window.

If the window has a title bar, and if so, if it has a caption.

If the window is modal or modeless.

If the window has a close button.

If the window can be resized.

The initial window position.

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.

Wonderware System Platform 3.0 Course - Part 1

3-171

3-172

Module 10 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:

Center Screen to position the symbol in the center of the screen.

Top Left Mouse Position to position the symbols top left corner at the position of the
mouse pointer.
Top Right Mouse Position to position the symbols top right corner at the position of the
mouse pointer.
Bottom Left Mouse Position to position the symbols bottom left corner at the position of
the mouse pointer.
Bottom Right Mouse Position to position the symbols bottom right corner at the position
of the mouse pointer.
Center Mouse Position to position the symbols center point on the mouse pointer.

Top Left X,Y Position to position the symbols top left corner at a specified position.

Center X,Y Position to position the symbols center point at a specified position.

Top of Screen to position the symbol at the top center of the screen.

Left Side of Screen to position the symbol at the left middle of the screen.

Right Side of Screen to position the symbol at the right middle of the screen.

Bottom of Screen to position the symbol at the bottom center of the screen.

Top Left Corner of Screen to position the symbol at the top left corner of the screen.

Top Right Corner of Screen to position the symbol at the top right corner of the screen.

Bottom Left Corner of Screen to position the symbol at the bottom left corner of the
screen.
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:


Symbol Size (1x) to make the window size the same as the size of the symbol.

Symbol Size plus 25% (1.25x) to make the window size 25% larger than the size of the
symbol.

Symbol Size plus 50% (1.5x) to make the window size 50% larger than the size of the
symbol.

Symbol Size plus 75% (1.75x) to make the window size 75% larger than the size of the
symbol.
Double Symbol Size (2x) to make the window size twice the size of the symbol.

Triple Symbol Size (3x) to make the window size three times the size of the symbol.

Quadruple Symbol Size (4x) to make the window size four times the size of the symbol.

25% Screen Size to make the window size cover 25% of the screen.

50% Screen Size to make the window size cover 50% of the screen.

75% Screen Size to make the window size cover 75% of the screen.

Full Screen Size to make the window size cover the entire screen.

Custom Width and Height to specify a width and height.

Wonderware Training

Section 4 Animating Graphic Elements


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.


A symbol that is shown by a specified element.

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:

Current Symbol, if you want to close the currently shown symbol or window.


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.

Wonderware System Platform 3.0 Course - Part 1

3-173

3-174

Module 10 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:

Status Graphic.


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:


ArchestrA attributes used in elements with animation.

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


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:


Static radio button group - uses static captions and values that you define in the
configuration panel.
Array radio button group - uses captions and values that are contained in an Automation
Object array.
Enum radio button group - uses captions and values that are contained in an enum data
type of an Automation Object.

Wonderware System Platform 3.0 Course - Part 1

3-175

3-176

Module 10 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:

Add an option, click the Add icon.


Delete an option, select it in the list and click the Remove icon.

Move an option up the list, select it in the list and click the Arrow up icon.

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


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:


None to show the items in the order they are in the enum attribute.

Ascending to show the items sorted in ascending order.

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.

Wonderware System Platform 3.0 Course - Part 1

3-177

3-178

Module 10 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:




None to show the items in the order they are in the enum attribute.

Ascending to show the items sorted in ascending order.

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


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.

Wonderware System Platform 3.0 Course - Part 1

3-179

3-180

Module 10 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:


Multiline to wrap the text in the edit box.

Read-Only to use the edit box to only show text and not allow text input.

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:


Static Combo Box - uses static captions and values that you define in the configuration
panel.
Array Combo Box - uses captions and values that are contained in an Automation object
array.
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


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:


Add an option, click the Add icon.

Delete an option, select it in the list and click the Remove icon.

Move an option up the list, select it in the list and click the Arrow up icon.

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:

i.

Simple - at run time you can type a value, but not select any.

DropDown - at run time you can either type a value, or select one from the list.

DropDownList - at run time you can only select a value from the list, but not type one.

When you are done, click OK.

Wonderware System Platform 3.0 Course - Part 1

3-181

3-182

Module 10 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:




None to show the items in the order they are in the enum attribute.

Ascending to show the items sorted in ascending order.

Descending to show the items sorted in descending order.

h. When you are done, click OK.

Wonderware Training

Section 4 Animating Graphic Elements


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:



None to show the items in the order they are in the enum attribute.


Ascending to show the items sorted in ascending order.

Descending to show the items sorted in descending order.

g. When you are done, click OK.

Wonderware System Platform 3.0 Course - Part 1

3-183

3-184

Module 10 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:


In the MinDate box, type a lower limit for the date.

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 todays 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:


Month Background.

Month Trailing Forecolor.

Title Background.

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


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:

Long to show the date and time in the dddd MMMM dd, yyyy format, for example:
Thursday, August 03 2006.

Short to show the date and time in the dd/MM/yyyy format, for example: 8/3/2006.


Time to show just the time in the hh:mm:ss format, for example: 3:46:09 PM.

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:


MinDate box - type a lower limit for the date.

MaxDate box - type an upper limit for date.

If you want to change the colors of the calendar control that drops down, click in the
Calendar Colors area the following color boxes:

Month Background.

Month Trailing Forecolor.

Title Background.

Title Foreground.

The style selection dialog box appears and you can select a solid color.

Wonderware System Platform 3.0 Course - Part 1

3-185

3-186

Module 10 ArchestrA Graphics


Configuring a List Box Animation
The List Box animation is only used by the List Box element.
You can either create a:




Static List Box - uses static captions and values you define in the configuration panel.
Array List Box - uses captions and values contained in an Automation object array.
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:

Add an option, click the Add icon.


Delete an option, select it in the list and click the Remove icon.

Move an option up the list, select it in the list and click the Arrow up icon.

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


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:

i.

None to show the items in the order they are in the enum attribute.

Ascending to show the items sorted in ascending order.

Descending to show the items sorted in descending order.

When you are done, click OK.

Wonderware System Platform 3.0 Course - Part 1

3-187

3-188

Module 10 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:




None to show the items in the order they are in the enum attribute.

Ascending to show the items sorted in ascending order.

Descending to show the items sorted in descending order.

g. When you are done, click OK.

Wonderware Training

Section 4 Animating Graphic Elements


Submitting the Value Changes
You can configure a Windows Common Control to write the data either:


Immediately when it is selected in the control at run time.

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).

Wonderware System Platform 3.0 Course - Part 1

3-189

3-190

Module 10 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
SYMBOL2

SYMBOL1

ELEMENT1

CustomProperty1
CustomProperty2
CustomProperty3

InTouch WindowMaker

EMBED ARCHESTRA SYMBOL

InTouch Tags
tag3
tag2

SYMBOL1

tag1
ELEMENT1

CustomProperty1
CustomProperty2
CustomProperty3
USES INTOUCH
TAG AS REFERENCE

Wonderware Training

Section 4 Animating Graphic Elements


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:



Type the name of the InTouch tagname.


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.

Wonderware System Platform 3.0 Course - Part 1

3-191

3-192

Module 10 ArchestrA Graphics

Wonderware Training

Lab 23 Animation 3-193

Lab 23 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:


Create and apply animation to an ArchestrA Symbol

Wonderware System Platform 3.0 Course - Part 1

3-194

Module 10 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:

i.

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

Test in Runtime.

See the next page for Detailed Lab Instructions

Wonderware Training

Lab 23 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.

Wonderware System Platform 3.0 Course - Part 1

3-196

Module 10 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 23 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.

Wonderware System Platform 3.0 Course - Part 1

3-198

Module 10 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 23 Animation 3-199

17. Select the State of Boolean and define the animation as shown below using:

Expression Or Reference: Agitator


Green for On

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.

Wonderware System Platform 3.0 Course - Part 1

3-200

Module 10 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 23 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.

Wonderware System Platform 3.0 Course - Part 1

3-202

Module 10 ArchestrA Graphics


26. Test your animations in Runtime.

Wonderware Training

Lab 24 Referencing a Symbol 3-203

Lab 24 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:


Call one symbol from within another

Wonderware System Platform 3.0 Course - Part 1

3-204

Module 10 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 IDEs Graphic Toolbox, in the Class Symbols Graphic Toolset, create a new symbol
named StatusPanel similar to the one shown below.

Element

ArchestrA Graphic Library


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 24 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 IDEs 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.

Element

ArchestrA Graphic Library


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

Wonderware System Platform 3.0 Course - Part 1

3-206

Module 10 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 24 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.

Wonderware System Platform 3.0 Course - Part 1

3-208

Module 10 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

Section 5 Associating Scripts with Symbols


Section Objective


Configure scripts and associate them with objects.

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:

Predefined.


Named.

Predefined scripts are similar to InTouch window scripts in that they are executed either:


Once when the symbol is shown or opened.

Periodically while the symbol is showing.

Once when the symbol is hidden or closed.

Any combination of the above.

Named scripts let you execute any number of scripts in run time that are triggered by values or
expressions:

Being true: While True.


Being false: While False.

Transitioning from false to true: On True.

Transitioning from true to false: On False.

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 Users Guide.
You can:


Configure the predefined scripts of a symbol.


Add named scripts to a symbol.

Edit existing named or predefined scripts in a symbol.

Rename named scripts in a symbol.

Remove named scripts from a symbol.

Substitute references in named or predefined scripts.

Use Element Methods in named or predefined scripts.

Wonderware System Platform 3.0 Course - Part 1

3-209

3-210

Module 10 ArchestrA Graphics


Configuring the Predefined Scripts of a Symbol
You can configure the predefined scripts of a symbol. The predefined scripts can consist of:


A script that is run once when the symbol opens.

A script that is run periodically as long as the symbol is open.

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:




On Show to configure a script that is executed once when the symbol is opened.

While Showing to configure a script that is executed every so often while the symbol is
open.
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:

Yes to save changes even if the script contains errors.


No to not save the changes and close the script dialog box.

Cancel to not save the changes and keep the script dialog box open.

Wonderware Training

Section 5 Associating Scripts with Symbols


Adding Named Scripts to a Symbol
You can add named scripts to a symbol. These can either be run:


Once when the specified values, data or expressions change.

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:

f.

Type an expression, value or reference.

Browse for a reference.

The expression acts as data source for the script trigger.

Wonderware System Platform 3.0 Course - Part 1

3-211

3-212

Module 10 ArchestrA Graphics


g. In the Trigger box, select either:

WhileTrue to trigger the script periodically when the expression is true.


WhileFalse to trigger the script periodically when the expression is false.

OnTrue to trigger the script once when the expression becomes true from false.

OnFalse to trigger the script once when the expression becomes false from true.

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:

Yes to save changes even if the script contains errors.


No to not save the changes and close the script dialog box.

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


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:

On Show if the action script you want to edit is executed once when the symbol is
opened.

While Showing if the action script you want to edit is executed every so often while the
symbol is open.

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.

Wonderware System Platform 3.0 Course - Part 1

3-213

3-214

Module 10 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:


On Show if the action script you want to remove is executed once when the symbol is
opened.
While Showing if the action script you want to remove is executed every so often while
the symbol is open.
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 691.

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:


Property of an element.

Custom property of the symbol.

Wonderware Training

Section 5 Associating Scripts with Symbols


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.

Wonderware System Platform 3.0 Course - Part 1

3-215

3-216

Module 10 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:



Edit Box control to save and load the text at run time to and from a file.


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:


Save the contained text at run time to a file.

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


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:

Add and inserting items into the list.


Delete individual or all items from the list.

Find an item in the list.

Get the item caption based on a specified index.

Associate the items with values.

Load items from and save items to a file.

Adding and Inserting Items into a List


You can add an individual item:


To the end of the list.

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.

Wonderware System Platform 3.0 Course - Part 1

3-217

3-218

Module 10 ArchestrA Graphics


Deleting Items from a List
You can delete:


An individual item from a list.

The selected item from a list.

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


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:



Set Item Data, which associates an item with a value.


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.

Wonderware System Platform 3.0 Course - Part 1

3-219

3-220

Module 10 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 25 Scripting 3-221

Lab 25 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:


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;

Wonderware System Platform 3.0 Course - Part 1

3-222

Module 10 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 25 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.

Wonderware System Platform 3.0 Course - Part 1

3-224

Module 10 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 25 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.

Wonderware System Platform 3.0 Course - Part 1

3-226

Module 10 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 25 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;

Wonderware System Platform 3.0 Course - Part 1

3-228

Module 10 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 25 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.

Wonderware System Platform 3.0 Course - Part 1

3-230

Module 10 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

Section 6 Quality and Status in ArchestrA

Section 6 Quality and Status in ArchestrA


Section Objective


Configure visual clues regarding the status of your data and/or plant operations.

Observe visual clues in Runtime.

Status Behavior and the Galaxy


The IDE can configure how we manage


Data Quality visualization

Status visualization

Enables an indication of status to be shown




Automatic once configured

Configured cross-Galaxy


All applications behave the same

Status feedback configured in IDE




Extremely flexible options

Access from IDE main menu

Wonderware System Platform 3.0 Course - Part 1

5-19

5-20

Module 10 ArchestrA Graphics


Control override of most aspects of graphics

Bad


Uncertain

Initializing

Communication Error

Configuration Error

Operational Error

Software Error

Security

Warning

Pending

Preview of settings

Wonderware Training

Section 6 Quality and Status in ArchestrA

Status Graphics
You can use a Status Graphic element to indicate the status or quality of:


One or more specified ArchestrA attributes.

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
A

Attribute
B

Attribute
C

Attribute
D

Attribute
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 indirectly from
ArchestrA attributes
via the elements

Status Graphic Element

Abnormal quality and status may be:



An error status due to communication, configuration, operational, security or software
error.


Bad, initializing, pending, uncertain or warning quality.

The Status Graphic element lets you assign:




One or more ArchestrA attributes, values or expressions.

One or more elements on the canvas that contain animations.

You can also:




Configure the appearance of the Status Graphic element for each quality and status state.

Show quality and status information directly with the elements.

Wonderware System Platform 3.0 Course - Part 1

5-21

5-22

Module 10 ArchestrA Graphics

Showing Quality and Status


You can do either of the following to show a specified status or quality at run time:

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.


Change the appearance of animated elements that are using the specified ArchestrA
attributes. This can be done either by:

Overriding the animation or changing the appearance of the element.


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:

Elements contained in groups.


Elements in symbols embedded in other symbols.

This does not apply to:




Elements that use the monitored attribute in scripts.

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 26 Implementing Quality & Status In ArchestrA Graphics

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:


Expose and configure Quality and Status indicators

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

Wonderware System Platform 3.0 Course - Part 1

5-23

5-24

Module 10 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).

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 26 Implementing Quality & Status In ArchestrA Graphics


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.

Wonderware System Platform 3.0 Course - Part 1

5-25

5-26

Module 10 ArchestrA Graphics


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 26 Implementing Quality & Status In ArchestrA Graphics


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.

Wonderware System Platform 3.0 Course - Part 1

5-27

5-28

Module 10 ArchestrA Graphics

Wonderware Training

Appendix A

Wonderware Application Server Glossary

A-2

Appendix A Wonderware Application Server Glossary

Intentionally left blank

Wonderware Training

Appendix A Wonderware Application Server Glossary


Application
A collection of objects within a Galaxy Repository that performs an automation task. Synonymous
with Galaxy. There may be one or more applications within a Galaxy Repository.
Application Engine (AppEngine)
A scan-based engine that hosts and executes the runtime logic contained within
AutomationObjects.
ApplicationObject
An AutomationObject that represents some element of your application. This may include things
such as (but not limited to) an automation process component (for instance, a thermocouple,
pump, motor, valve, reactor, or tank) or associated application component (for instance, function
block, PID loop, Sequential Function Chart, Ladder Logic program, batch phase, or SPC data
sheet).
Application Server
The supervisory control platform. Application Server uses existing Wonderware products such as
InTouch for visualization, the Wonderware Historian for data storage, and the device Integration
product line like a Data Access Server (DAServer) for device communications.
An Application Server can be distributed across multiple computers as part of a single Galaxy
Namespace.
Application Views
The Application Views pane displays the object-related contents of the Galaxy in different ways:
Model view, Deployment view, Derivation view and Operations view. The Model view is the default
display when the Integrated Development Environment (IDE) is first opened.
ArchestrA
The distributed architecture for supervisory control and manufacturing information systems. It is an
open and extensible technology based on a distributed, object-based design.
ArchestrA Object Toolkit
A programmers tool used to create new ApplicationObjects and Device Integration Object
Templates, including their configuration and run-time implementations. Includes a developer tool
used to build DI Objects and create unique Domain Objects that interact with DI Objects in the
ArchestrA environment.
Area
A logical grouping of AutomationObjects that represents an area or unit of a plant. It is used to
group related AutomationObjects for alarm, history, and security purposes. It is represented by an
Area AutomationObject.
Area Object
The System Object that represents an Area of your plant within a Galaxy. The Area Object acts as
an alarm concentrator, and is used to place other Automation Objects into proper context with
respect to the actual physical automation layout.
Assignment
The designation of a host for an AutomationObject. For example, an AppEngine AutomationObject
is assigned to a WinPlatform AutomationObject.
Attribute
An externally accessible data item of an AutomationObject.
Attribute Reference String
A text string that references an attribute of an AutomationObject.

Wonderware System Platform 3.0 Course - Part 1

A-3

A-4

Appendix A Wonderware Application Server Glossary


AutomationObject
A type of object that represents permanent things in your plant (such as Application Objects or
Device Integration Objects) as objects with user-defined, unique names within the Galaxy. It
provides a standard way to create, name, download, execute, and monitor the represented
component.
Automation Object Server (AOS)
A computer that hosts one or more application engines and associated automation objects. A
Wonderware Application Server Galaxy Namespace can contain several Automation Object
Servers, each which requires a Platform.
Backup Application Engine
The object created by the ArchestrA infrastructure when the Primary object has been enabled for
Redundancy. See Redundancy for further detail.
Base Template
A root template at the top of a derived hierarchy. Unlike other templates, a base template is not
derived from another template but developed with the Application Object Toolkit and imported into
a Galaxy. Base templates and derived templates always have a $ before their name in the IDE.
Block Read Group
A DAGroup that is triggered by the user or another object. It reads a block of data from the external
data source and indicates the completion status.
Block Write Group
A DAGroup that is triggered by the user or another object after all the required data items have
been set. The block of data is then sent to the external data device. When the block write is
complete, it indicates the completion status.
Bootstrap
The base ArchestrA service which is required on all ArchestrA computers. It provides the base
software environment to enable a platform and allows a computer to be included in the Galaxy
Namespace.
Change Log
The revision history that tracks the life cycle activities of ArchestrA Objects, such as object
creation, check-in/check-out, deployment, and import/export.
Change Propagation
The ability to create templates which will allow each component template to support changes such
that a change in one of the elements can be automatically propagated to all or select, related
instances.
Check-In
IDE operation for making a configured object available for other users to Check-Out and use.
Check-Out
IDE operation for the purpose of editing an object. It makes the item unavailable for other users to
Check-Out.
Checkpoint
The act of saving to disk the configuration, state, and all associated data necessary to support
automatic restart of a running AutomationObject. The restarted object has the same configuration,
state, and associated data as the last checkpoint image on disk.
Compound Object.
An Application Object that contains at least one other Application Object.

Wonderware Training

Appendix A Wonderware Application Server Glossary


Contained Name
An alternate naming convention that when combined with the tag name of the root container
object, results in the Hierarchical Name. For instance, for a given object, its Hierarchical Name =
Line1.Tank1.InletValve and its Contained Name= InletValve
Containment
A hierarchical grouping that allows one or more AutomationObjects to exist within the name space
of a parent AutomationObject and be treated like parts of the parent AutomationObject. This
functionality allows for relative referencing to be defined at the template and instance level.
DAGroup
A data access group associated with Device Integration Objects (DIObjects). It defines how
communications is achieved with external data sources. It can be a ScanGroup, Block Read or
Block Write groups.
DAServer Manager (DAS Manager)
The System Management Console (SMC) snap-in supplied by the DAServer that provides the
required user interface for activation, configuration, and diagnosis of the DAServer.
Data Access Server (DAServer)
The server executable that handles all communications between field devices and client
applications. Similar in function to I/O Servers but with more advanced capabilities.
Data Access Server Toolkit (DAS Toolkit)
A developer tool used to build Data Access Servers (DAServers).
Deployment
The operation which instantiates an automation object instance in the ArchestrA runtime. This
action involves installing all the necessary software and instantiating the object on the target
platform with the objects default attribute data from Galaxy Repository.
Deployment View
The part of the Applications View in the IDE that shows how objects are physically dispersed
across Platforms, Areas and Engines. This is a view of how the application is spread across
computing resources.
Derivation
The creation of a new Template based on an existing Template.
Derivation View
The part of the Applications View in the IDE that shows the parent-child relationship between base
templates, derived templates and derived instances. A view into the genealogy of the application.
Derived Template
Any template with a parent template.
Device Integration Object (DIObjects)
An AutomationObject that represents the communication with external devices or software.
DIObjects run on an Application Engine, and include DINetwork and DIDevice objects.
DIDevice Object
An object that represents the actual external device (for example, a PLC or RTU) that is
associated with a DINetwork Object. It provides the ability to diagnose and browse data registers
of the DAGroups for that device.
DINetwork Object
An object that represents the network interface port to the device via the Data Access Server or
the object that represents the communications path to another software application. It provides
diagnostics and configuration for that specific network card.

Wonderware System Platform 3.0 Course - Part 1

A-5

A-6

Appendix A Wonderware Application Server Glossary


Element
Basic shapes, such as rectangles, lines, and text elements, and controls you can use to create an
ArchestrA Symbol to your specifications.
Engine Object
An ArchestrA system enabled object that contains Local Message Exchange and provides a host
for Application objects, Device Integration objects and Area objects.
Event Record
The data that is transferred about the system and logged when a defined event changes state (for
instance, an analog crosses its high level limit, an acknowledgement is made, or an operator logs
in to the system).
Export
The act of generating a Package file (.aaPKG file extension) from persisted data in the Galaxy
Database. The resulting .aaPKG file can be imported into another Galaxy through the IDE import
mechanism.
FactorySuite Gateway
FactorySuite Gateway is a Microsoft Windows application program that acts as a communications
protocol converter. Built with the ArchestrA DAS Toolkit, FS Gateway can be used to link clients
and data sources that communicate using different data access protocols.
Galaxy
The entire application. The complete ArchestrA system consisting of a single logical name space
(defined by the Galaxy Database) and a collection of Platforms, Engines and objects. One or more
networked PCs that constitute an automation system. This is referred to as the Galaxy
Namespace.
Galaxy Database
The relational database containing all persistent configuration information like Templates,
Instances, Security, etc. in a Galaxy Repository.
Galaxy Database Manager
The Galaxy Database Manager is a utility you can use to manage your Galaxies. It can back up
and restore Galaxies should they become corrupted or to reproduce a Galaxy on another
computer. The Galaxy Database Manager is part of the System Management Console (SMC).
GalaxyObject
The object that represents a Galaxy.
Galaxy Repository
The software sub-system consisting of one or more Galaxy Databases.
Graphic Toolbox
The part of the IDE main window that shows a hierarchy of graphic toolsets, which contain
ArchestrA Symbols and client controls.
Hierarchical Name
The name of the object in the context of its container object. For instance, Tank1.OutletValve,
where an object called Tank1 contains the OutletValve object.
Historical Storage System (Historian)
The time series data storage system, used to compress and store high volumes of time series data
for latter retrieval. For the Wonderware Application Server, the standard Historian is IndustrialSQL
Server.
Host
The parent instance of a child instance in the deployment view. (Example: a Platform instance is a
Host for an AppEngine instance).

Wonderware Training

Appendix A Wonderware Application Server Glossary


Import
The act of reading a .aaPKG File and using it to create AutomationObject instances and Templates
in the Galaxy Repository.
Wonderware Application Server
Refers to the Wonderware A2 Supervisory Control Platform, commonly known as the Application
Server. The Wonderware Application Server is sized by (a) the number of Workstation / Server
Platforms, (b) by real I/O in the system, and (c) the number of Terminal Services sessions. The
Application Server license is per Galaxy. An Application Server can be distributed across multiple
computers as part of a single Galaxy Namespace. The Wonderware Application Server is
designed to leverage existing Wonderware products such as InTouch for visualization, Industrial
SQL as its historian, and the device Integration product line (I/O Servers) for device
communications. The Wonderware Application Server uses InTouch v8.0 or InTouch View v8.0 for
visualization with the addition of Platforms to the visualization node.
Instance
An object, which is a unique representation of a template that can exist in runtime.
Instantiation
The creation of a new object instance based on a corresponding Template.
Integrated Development Environment (IDE)
The Integrated Development Environment (IDE) is the user interface for the configuration side of
Application Server. It is used to manage templates, create object instances, deploy and un-deploy
objects and a host of other functions associated with the development and maintenance of the
system. It is only available as part of the Wonderware A2 Development License.
InTouch View
InTouch View Clients are InTouch Runtime Version 8.0 clients that solely use of the Wonderware
Application Server for its data source. In addition, standard InTouch v8.0 runtimes can leverage
the Wonderware Application Server with the addition of a Platform license.
I/O Count
Number of I/O points being accessed into the Galaxy. I/O points are real I/O and are not equivalent
to InTouch tags. I/O count is based on the number of I/O points that are configured through an
OPC Server, I/O Server, DA Server or InTouch Proxy Object, over the whole Application Server
Namespace, regardless of how many PCs are in the system.
Life Cycle Cost
The cost of a Supervisory Control System attributed to initial development, application changes
and on-going maintenance. The Wonderware Application Server reduces these costs through the
use of a component object-based development environment and automated change propagation
capabilities.
Live Mode
An action in ActiveFactory that enables the configuration of a Runtime application to be
refreshed at a designated interval.
Log Viewer
A Microsoft Management Console (MMC) snap-in that provides a user interface for viewing
messages reported to the LogViewer.
Message Exchange
The object to object communications protocol used by ArchestrA and the Wonderware Application
Server.
Model View
The part of the Applications View in the IDE that shows how objects are arranged to describe the
physical layout of the plant and supervisory process being controlled.

Wonderware System Platform 3.0 Course - Part 1

A-7

A-8

Appendix A Wonderware Application Server Glossary


Object
Any template or instance found in a Galaxy Database. A common characteristic of all objects is
they are stored as separate components in the Galaxy Repository.
Object Extensions
The capability to add additional functions to an Automation Object while not altering the objects
original behavior. Can be added to derived templates and object instances. They include Scripts,
User Defined Attributes (UDAs) and Attribute Extensions.
Object Viewer
A utility in which you can view the attribute values of the selected object in run-time. This utility is
only available when an object is deployed. Object Viewer provides the user with diagnostic
information on Application Objects for the purpose of detecting performance parameters, resource
consumption and reliability measurements. In addition to viewing an objects data value, data
quality and the communication status of the object, you can also modify some of its attributes for
diagnostic testing. Modifications can include adjusting timing parameters and setting objects in an
execution or idle mode.
OffScan
The state of an Object that indicates it is idle and not ready to execute its normal runtime
processing.
OnScan
The state of an Object in which it is performing its normal runtime processing based on a
configured schedule.
Package Definition File (.aaPDF)
The standard description file that contains the configuration data and implementation code for a
base template. File extension is .aaPDF.
Package File (.aaPKG)
The standard description file that contains the configuration data and implementation code for one
or more object instances or Templates. File extension is .aaPKG.
Platform Count
Number of PCs in the Galaxy. Each Workstation and/or Server communicating directly with the
Application Server requires a platform to be part of the Galaxy Namespace. This includes each
InTouch 9.0 or higher and InTouch View 8.0 or higher client. Each InTouch Terminal Services
Session needs IAS Terminal Services Session License. A Platform License includes a per seat
FSCAL2000 with Microsoft 2000 SQL Server CAL. Stand-alone computers that only host Historian
Servers or remote DA Servers do not need a platform license.
Platform Manager
The Platform Manager provides Galaxy application diagnostics by allowing you to view the runtime status of some system objects and to perform actions upon those objects. Actions include
setting platforms and engines in an executable or idle mode and starting and stopping platforms
and engines. This utility is an extension snap-in to the ArchestrA System Management Console
(SMC).
Platform Object
An object that represents a single computer in a Galaxy, consisting of a system wide message
exchange component and a set of basic services. This object hosts all Application Engines.
PLC
Programmable logic controller.
Primary Application Engine
The object created by the ArchestrA infrastructure when the Backup object has been created
through Redundancy. See Redundancy for further detail.

Wonderware Training

Appendix A Wonderware Application Server Glossary

Properties
Data common to all attributes of objects, such as name, value, quality, and data type.
Proxy Object
A Proxy Objects is an Automation Object that represents an actual product for the purpose of
device integration with the Wonderware Application Server or InTouch HMI. For example, there
is a Proxy Object that enables the Wonderware Application Server to access an OPC server.
Redundancy
During Configuration


Primary object: The object intended as the main or central provider of the functionality in
the run-time. For AppEngines, it is the object you enable for redundancy. For data
acquisition, it is the DIObject you intend to use first as your data source in the run-time.

Backup object: The object that provides the functionality of the Primary object when it fails.
For AppEngines, it is the object created by the ArchestrA infrastructure when the Primary
object has been enabled for redundancy. For data acquisition, it is the DIObject you do not
intend to use first as your data source in the run-time.

During Run-Time


Active object: The object that is currently executing desired functions. For AppEngines, it
is the object that is hosting and executing ApplicationObjects. For data acquisition, it is the
object that is providing field device data through the RedundantDIObject.
Standby object: The passive object; that is, it is waiting for a failure in the Active objects
condition or for a force-failover. For AppEngines, it is the object that monitors the status of
the Active AppEngine. For data acquisition, it is the object that is not providing field device
data through the RedundantDIObject.

Redundant DI Object
The RedundantDIObject monitors and controls the redundant DIObject data sources. Unlike
redundant AppEngines, individual DIObject data sources do not have redundancy-related states.
For all intents and purposes, they function as standalone objects.
Redundant Message Channel
The Redundant Message Channel (RMC) is a dedicated Ethernet connection which is required
between the platforms hosting redundant engines. The RMC is vital to keep both engines
synchronized with alarms, history, and checkpoint items from the engine that is in the Active Role.
Each engine also uses this Message Channel to provide its health and status information to the
other.
Reference
A string that refers to an object or to data within one of its attributes.
Relational Reference
A reference to an objects attributes that uses a keyword in place of an object's tagname. These
keywords allow a reference to be made by an object's relationship to the target attribute. Examples
of these keywords are "Me", "MyPlatform", and "MyContainer".
Remote Reference
The ability to redirect ArchestrA object references or references to remote InTouch tags. The new
script function used to redirect remote references at runtime is IOSetRemoteReferences.
Runtime
The InTouch (WindowViewer) function that provides the viewing of data from the configuration
of the application in InTouch development (WindowMaker).

Wonderware System Platform 3.0 Course - Part 1

A-9

A-10

Appendix A Wonderware Application Server Glossary


Scan Group
A DAGroup that requires only the update interval be defined and the data will be retrieved at the
requested rate.
Scan State
The Scan State of an object in run-time. This can be either off-scan or on-scan.
Security
Wonderware Application Server security is applied to the Integrated Development Environment
(IDE), the System Management Console (SMC), and the runtime data level. At the runtime data
level which centralizes the definition of all permissions to the ApplicationObjects. These
ApplicationObjects can be accessed by a variety of clients but the security is centrally defined
allowing ease of maintenance. The users that are allowed to modify these ApplicationObjects at
runtime are mapped to the objects by user defined roles. These roles can be mapped directly to
existing groups in a Microsoft Domain or workgroup.
SmartSymbols
SmartSymbols are objects that 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. They are created from a
graphic in an InTouch window that has been made into a cell and 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.
System Management Console (SMC)
The central runtime system administration/management user interface in which all required
runtime administration functions can be accomplished.
System Objects
Objects that represent an Area, Platform or Engine.
TagName
The unique name given to an object. For instance, for a given object, its TagName = V1101 and its
HierarchicalName = Line1.Tank1.InletValve.
Template
An object containing configuration information and software templates used to create new Derived
Templates and/or Instances.
Template Toolbox
The part of the IDE Main Window that hosts template toolsets, which contain object templates. The
Template Toolbox contains a tree view of template categories in the Galaxy.
Toolset
A named collection of Templates displayed together in the IDE Template ToolBox.
User Defined Attributes (UDA)
The purpose of a User Defined Attribute is to allow users to add new functionality to an object. An
attribute which is added to an object at configuration time
UserDefined object
An AutomationObject created from the $UserDefined template. This template does not have any
application-specific attributes or logic. Therefore, the user must define these attributes and
associated logic.
WinPlatform object
An object that represents a single computer in a Galaxy, consisting of a system-wide message
exchange component, a set of basic services, the operating system, and the physical hardware.
This object hosts all AppEngines.

Wonderware Training

Appendix B

Plant Model Planning Diagrams

B-2

Appendix B Plant Model Planning Diagrams

Intentionally left blank

Wonderware Training

B-3

The Plant Model Planning Diagrams are displayed on the following pages.

Wonderware System Platform 3.0 Course - Part 1

B-4

Appendix B Plant Model Planning Diagrams

Wonderware Training

B-5

Wonderware System Platform 3.0 Course - Part 1

B-6

Appendix B Plant Model Planning Diagrams

Wonderware Training

B-7

Wonderware System Platform 3.0 Course - Part 1

B-8

Appendix B Plant Model Planning Diagrams

Intentionally left blank

Wonderware Training

You might also like