SystemPlatformPart1RevB GOLD EntireManual
SystemPlatformPart1RevB GOLD EntireManual
Revision B
April 2009
Part Number 11-GT-10000
W O N D E R W A R E T R A I N I N G
System Platform - Part 1
Wonderware Application Server 3.1 and Device Integration Products
INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE.
2009 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 Invensys Systems, Inc. / Wonderware license.
These terms include provisions that limit your rights such as use restrictions, disclaimers of warranties and
limitations of Wonderware / Invensys liability. By installing or using the Invensys software, you agree to
accept all of the terms of the applicable Invensys Systems, Inc. / Wonderware license. 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 by calling 1.949.727.3200 or by sending an e-mail to [email protected].
Invensys, Wonderware, ArchestrA, Factelligence, IntelaTrac, InBatch, InControl, IndustrialSQL Server,
InSQL, InTouch, InTrack, QI Analyst, SCADAlarm, SuiteLink, SuiteVoyager, WindowMaker, WindowViewer
are trademarks and registered trademarks of Invensys plc, its subsidiaries and affiliated companies. All other
brands and product names may be the trademarks or service marks of their respective owners.
Table of Contents 3
System Platform - Part 1
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-39
Section 3 The ArchestrA IDE........................................................................ 1-45
Section 4 Automation Objects....................................................................... 1-67
Section 5 System Requirements, Licensing and Support............................. 1-79
Section 6 Application Planning..................................................................... 1-89
Lab 2 Identifying the Mixer ..................................................................... 1-95
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-13
Lab 4 Creating 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-3
Section 2 The $UserDefined Object ............................................................... 3-9
Lab 7 Modeling the Heat Exchanger...................................................... 3-11
Section 3 Change Control and Propagation................................................. 3-25
Lab 8 Configuring Change Control and Propagation ............................. 3-27
Section 4 The $AnalogDevice Object........................................................... 3-35
Lab 9 Modeling a Meter.......................................................................... 3-37
Section 5 The $DiscreteDevice Object......................................................... 3-41
Lab 10 Modeling a Valve, Pump, and Motor .......................................... 3-45
Section 6 Containment.................................................................................. 3-61
Lab 11 Creating the Mixer...................................................................... 3-67
Module 4 Extending the Objects ................................................................4-1
Section 1 UDAs............................................................................................... 4-3
Section 2 Extensions ...................................................................................... 4-7
Lab 12 Configuring the Motor Speed ..................................................... 4-11
Section 3 Introduction to QuickScript .NET................................................... 4-21
Lab 13 Adding Auto Reconnect to DDESuiteLinkClient......................... 4-43
Lab 14 Configuring Automatic Reference .............................................. 4-51
Module 5 Alarms and History .....................................................................5-1
Section 1 Alarms............................................................................................. 5-3
Lab 15 Configuring Alarms..................................................................... 5-13
Section 2 Historization.................................................................................. 5-31
Lab 16 Configuring History..................................................................... 5-37
Module 6 Security ........................................................................................6-1
Section 1 Security Overview........................................................................... 6-3
Lab 17 Security ...................................................................................... 6-13
4 System Platform - Part 1
Wonderware Training
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-35
Module 8 Device Integration Products...................................................... 8-1
Section 1 Wonderware I/O Servers.................................................................8-3
Section 2 Wonderware Data Access Servers .................................................8-9
Section 3 Device Integration Objects ............................................................8-13
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-47
Lab 20 Convert to Network Environment ...............................................9-51
Appendix A Wonderware Application Server Glossary ...............................A-1
Appendix B Plant Model Planning Diagrams................................................B-1
Module 1
Introduction
Section 1 Course Introduction 1-3
Section 2 Wonderware System Platform 1-17
Lab 1 Creating a Galaxy 1-39
Section 3 The ArchestrA IDE 1-45
Section 4 Automation Objects 1-67
Section 5 System Requirements, Licensing and Support 1-79
Section 6 Application Planning 1-89
Lab 2 Identifying the Mixer 1-95
1-2 Module 1 Introduction
Wonderware Training
Module Objective
Introduce the Wonderware System Platform and its architecture, environment, and
requirements for installation and licensing.
Section 1 Course Introduction 1-3
System Platform - Part 1
Section 1 Course Introduction
This section describes System Platform - Part 1 / Wonderware Application Server 3.1 and Device
Integration Products, the objective of the course, intended audience, prerequisites, and the course
agenda. It also includes a description of Wonderware Products.
Agenda
Module 1 Introduction
Section 1 Course Introduction
This section describes System Platform - Part 1 / Wonderware Application Server 3.1 and
Device Integration Products, 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 and how critical the
architecture of ArchestrA is to plant automation. An overview of the differences between
Object-oriented and traditional Tag based HMI and SCADA products is provided, as well as
how these differences apply to Wonderware System Platform applications. This section will
also provide a description 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
Wonderware 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
Section Objective
This section identifies the objectives and agenda for the System Platform - Part 1 as well as the
key basics of Wonderware Application Server.
1-4 Module 1 Introduction
Wonderware Training
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.
Lab 4 Creating 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 Modeling the 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 Configuring 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 Modeling a Meter
Section 5 The $DiscreteDevice Object
This section introduces you to the concept of the $DiscreteDevice object and its functionality.
Lab 10 Modeling a 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 Creating the Mixer
Module 4 Extending the Objects
Section 1 UDAs
This section introduces and explains UDAs and how they are configured and used.
Section 1 Course Introduction 1-5
System Platform - Part 1
Section 2 Extensions
This section provides describes the Output Functionality for Application Objects in the
Extensions environment.
Lab 12 Configuring the Motor Speed
Section 3 Introduction to QuickScript .NET
This section introduces and explains the scripting environment and the various scripting
configuration attributes of the ApplicationObject.
Lab 13 Adding Auto Reconnect to DDESuiteLinkClient
Lab 14 Configuring Automatic Reference
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
1-6 Module 1 Introduction
Wonderware Training
Section 1 Wonderware I/O Servers
This section will describe the configuration of a Wonderware I/O Server (Modbus).
Section 2 Wonderware Data Access Servers
This section provides familiarization with Wonderware Data Access Server and its use with
Application Server.
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
Section 1 Course Introduction 1-7
System Platform - Part 1
Wonderware software solutions
Wonderware is the leading supplier of real-time operations management industrial software
solutions for Manufacturing Execution Systems (MES), Performance Management, Enterprise
Manufacturing Intelligence (EMI), and integration with asset management, Supervisory HMI,
GeoSCADA, Production Management, supply and demand chain, and Enterprise Resource
Planning (ERP) applications.
Wonderware delivers significant cost reductions associated with designing, building, deploying
and maintaining secure and standardized applications for manufacturing and industrial operations.
Wonderware software solutions enable companies to synchronize their production operations with
business objectives, obtaining the speed and flexibility to attain sustained profitability.
Over one-third of the world's plants and facilities run Wonderware software solutions in dozens of
industries worldwide, such as:
Automotive
Chemical & Pharmaceutical
CPG (Food & Beverage)
Discrete Manufacturing
Electrical Power
Facilities Management
Mining and Metals
Oil and Gas
Process Manufacturing
Water and Wastewater
Wonderware software solutions deliver manufacturing and operational performance improvements
that help reduce the amount of project-specific work required to develop information and
automation applications that are integrated across entire operational enterprises. They can be
implemented in the context of existing systems, at a companys own pace and to the extent that
they choose.
1-8 Module 1 Introduction
Wonderware Training
These solutions leverage a powerful, layered software architecture that enables a variety of
features and capabilities, such as visualization, optimization and control of plant floor data
collection, and data storage and analysis.
Wonderware offers the following software solutions:
Manufacturing Execution Systems Manufacturing Execution Systems (MES)
solutions feature a complete set of functional capabilities for consistent and effective
execution of operational activities. Leveraging the ArchestrA software architecture (see
page 1-10), Wonderware MES solutions are completely scalable and configurable. This
enables a unique, incremental approach to operational improvements where low-risk
deployment of increased application functionality can be realized one step at a time.
Wonderware MES solutions help to substantially reduce lead time and manufacturing
costs, increase production throughput and product quality, and reduce efforts involved in
compliance and governance.
Enterprise Manufacturing Intelligence Enterprise Manufacturing Intelligence (EMI)
software solutions empower companies to analyze their overall operational performance
using simple yet powerful data analysis and reporting tools. Production, costs, process
capability, equipment downtime, and quality and variance data can be collected,
aggregated, and displayed using Wonderware EMI software solutions. A powerful yet
secure Web interface helps deliver this information to the full range of plant workers
tailored to their specific information requirements.
HMI/SCADA HMI/SCADA solutions often impose complex demands on software
architectures. Wonderware InTouch HMI visualization software, coupled with the award-
winning ArchestrA technology-based Wonderware System Platform is uniquely positioned
to meet these challenges. The HMI/SCADA software solutions are easy to use, implement
and configure, and offer simplified maintenance, high security and availability, and virtually
unlimited scalability.
Data Historian Wonderware Historian software leverages the state-of-the-art
Wonderware System Platform, industry leading historian technology, Web-based reporting
capabilities, and renowned open data source connectivity from Wonderware. The resulting
historian solution is unlike any other data archiving and reporting solution found in the
market today. With blazing speed, broad scalability, highly efficient data storage and
Section 1 Course Introduction 1-9
System Platform - Part 1
retrieval, high availability and simple one-click historization setup, the Wonderware
Historian software has an industry reputation for low total cost of ownership.
Preconfigured Web-based reports and data analysis capabilities drive immediate value
from data captured by the Wonderware Historian.
Batch Management Wonderware batch management solutions perform repeatable and
consistent execution of batching processes across all hybrid industries, whether it is
electronic batch records (EBR) systems in regulated industries, Paper-On-Glass
capabilities in paperless production environments, or automated recipe management for
supervisory systems. From simple batch processes, where only the formula changes for
different products, to the most complex batch processes requiring dynamic allocation of
shared equipment, Wonderware has a solution. Each of these solutions ensures reduced
lifecycle costs and investment protection by leveraging the ArchestrA architecture.
Product Quality Management and SPC Delivering products with high quality defined
as meeting specifications at the lowest possible cost is a top priority for manufacturers
and industrial operations, and Wonderware software applications meet these quality
needs. InTouch HMI offers real-time data monitoring and alarming; Wonderware Historian
stores voluminous process data for quality analysis; Wonderware QI Analyst software
provides enterprise-wide SPC; Wonderware ActiveFactory software trends data;
Operations & Performance software provides spec management, genealogy, BOM
enforcement, OEE and Downtime monitoring; the Wonderware System Platform monitors
data levels, and application templates can help deliver nearly any quality capability;
InBatch software collects information on batch quality and recipe settings; and the list
goes on.
Mobile Solutions Wonderware mobile solutions feature the industry's leading Mobile
Workforce & Decision Support System. Wonderware IntelaTrac enables the delivery of
Best Practices to field workers improving Asset Management for the leading refiners,
chemical manufacturers, and power generators globally.
For more information on Wonderware software solutions and products, visit the Wonderware Web
site at http://www.wonderware.com.
1-10 Module 1 Introduction
Wonderware Training
ArchestrA technology
ArchestrA technology, or architecture, helps reduce application engineering effort and deployment,
increase efficiency, provide optimization and standardization, and enable integration of distributed
automation systems and applications from virtually any vendor. Geographically dispersed
applications (from a few hundred to one million I/O, and from a single node to hundreds of
stations) can be rapidly and securely implemented.
The ArchestrA architecture leverages advanced software technologies to fill the gap between ERP
systems and control systems. This architecture provides the following:
Framework which supports common services and a core set of system objects
Domain Objects which are industry-specific objects
Object Development Toolkit which enables third parties to create new domain objects
customized for specific needs
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. The ArchestrA Framework supports core services that are required by most of
these different types of supervisory control and manufacturing information systems.
These core services include the following:
Integrated Development Environment (IDE)
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 architecture consists of the following:
Configuration and Deployment Related Components that are required for centralized
deployment of the runtime components. These components are installed just like any
other Windows application and include the following:
Centralized object repository (called Galaxy Repository)
Integrated Development Environment (IDE)
Object deployment services (called Bootstrap)
Runtime Components that are centrally deployed and administered. These components
include the following:
PCs with core infrastructure (called Platforms)
Key software applications (Engines)
Objects (Framework Objects) that expose framework related functionality
Section 1 Course Introduction 1-11
System Platform - Part 1
Wonderware individual software products
Wonderware software solutions offer 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. All the latest
Wonderware software offerings leverage the latest ArchestrA technology and offer increased
functionality and flexibility as well as extensive connectivity.
Wonderware System Platform
Wonderware System Platform provides a single platform for all the SCADA, Supervisory HMI,
MES, and EMI software solutions needs of industrial automation and information personnel. At the
center of the Wonderware System Platform is the plant model, which is the logical representation
of the physical equipment and processes being controlled and supervised. Within the System
Platform is a high-performance process historian with production history archiving, efficient data
compression, and auto-configuration of historical archiving that helps eliminate duplicate effort,
and an industrial Web information server that dramatically simplifies the organization and delivery
of operations information for use across all functions in an organization.
Wonderware InTouch HMI
Wonderware InTouch software is a human machine interface (HMI) for process visualization and
control. It takes operations management, control, and optimization to a whole new level. The
InTouch HMI reputation stands above all the rest. No other HMI can match InTouch software for
industry-leading innovation, architectural integrity, unequaled device integration and connectivity,
uninterrupted software version migration path, and truly legendary ease of use.
Wonderware HMI Reports
Wonderware HMI Reports is an easy-to-use and powerful reporting tool for creating and delivering
usable, visually appealing reports containing real-time process data or information extracted from
InTouch HMI, Wonderware Historian, third-party HMI applications and database systems, or
almost any data source that supports OPC, OLE DB, and ODBC standards. Reports can be
generated on-demand or automatically on-event or on a regular schedule. The reports can be
printed or generated as Microsoft Excel, Adobe Acrobat (PDF), and HTML formats and distributed
automatically by e-mail, stored on a network share, or shared over the Internet or intranet through
the HMI Reports Web portal.
Wonderware Historian
The Wonderware Historian component of the System Platform is a high-performance, real-time
database for historical information. It combines the power and flexibility of a relational database
with the speed and compression of a true process historian, integrating the office with the factory
floor or any industrial operation. The Wonderware Historian is designed to collect a wide variety of
plant data, at full resolution and very high data rates.
Wonderware ActiveFactory
The Wonderware ActiveFactory software provides data-trend analysis, sophisticated numerical-
data analysis using Microsoft Excel, comprehensive data reporting using Microsoft Word, and the
capability to publish real-time and historical plant information to the Web or company intranet site
using Wonderware Information Server. Plant knowledge workers using ActiveFactory information
can quickly troubleshoot problems, study potential process inefficiencies, and eliminate the time-
consuming process of locating the data.
1-12 Module 1 Introduction
Wonderware Training
Wonderware Information Server
The Wonderware Information Server offers an easy solution for aggregating and presenting plant
production and performance data over the Web or company intranet. Using Wonderware
Information Server, large amounts of process data can be aggregated into highly informative
production reports tailored to the information needs of plant personnel. Content from the
Wonderware Information Server can be incorporated into other Web portals, helping to make
existing corporate IT portals more informative and valuable.
Wonderware Operations Software
Wonderware Operations Software provides a scalable and configurable Manufacturing Execution
System (MES) designed to improve operational efficiency, manufacturing responsiveness, and
brand integrity. It provides an incremental, low-risk approach to building Manufacturing Execution
systems that can be implemented in steps, from basic MES functionality including bill of materials,
specifications, data collections, and traceability to enhanced capabilities such as inventory
management, certifications, labor, and production steps.
Wonderware Performance Software
Wonderware Performance Software provides a highly scalable and functionally rich solution for
collecting, tracking, and communicating real-time equipment performance information. It helps
deliver critical equipment downtime and efficiency information to operators and decision-makers
who can take immediate action to improve plant performance. The software is highly configurable
and leverages the Wonderware System Platform, which offers many benefits as a result of the
underlying ArchestrA technology.
Wonderware QI Analyst
Wonderware QI Analyst Statistical Process Control (SPC) software is an important part of any
quality management program. Performing both online and historical SPC, QI Analyst supports
real-time process monitoring and alarms, as well as historical reports to view process health over
any period of time. Real-time SPC, analysis, and reporting are equally easy. By storing process
data in the QI Analyst database and linking to external data sources, users can leverage
enterprise-wide SPC to reduce variation, reduce costs of manufacturing, and increase productivity.
Wonderware InBatch Software
Wonderware InBatch flexible batch management software optimizes the management of any
batch process. InBatch software automates recipe management using a graphical procedure
environment featuring Sequential Function Charts (SFC). Consistent with the ISA S88 flexible
batching standard, InBatch software offers comprehensive batch execution and equipment history,
material genealogy, stringent security, Web-based reporting, and the ability to facilitate the design
and implementation of systems that are compliant with FDA 21 CFR Part 11 regulations.
Wonderware Equipment Operations Module
Wonderware Equipment Operations Module helps manufacturers capture complete as-built
records for rapid response to unforeseen production events such as product recalls. Leveraging
the ISA-95 standard, it enables consistent execution of unit/line operations, improved reliability,
and repeatability of equipment setup.
Section 1 Course Introduction 1-13
System Platform - Part 1
Wonderware Manufacturing Execution Module
Wonderware Manufacturing Execution Module empowers Wonderware customers to define logical
manufacturing models in terms of routes, operations, resources, and bills of materials as well as
their relationship. It enables the operational execution of production plans with accurate tracking
and control of work-in-process (WIP) information related to inventories, resource utilization, and
conformance to specifications.
Wonderware SCADAlarm
SCADAlarm alarm and event-notification software provides a telecommunications link to industrial
automation software systems. It seamlessly integrates with the comprehensive Wonderware
product family and has built-in browsers to enable fast configuration of information from
Wonderware System Platform and InTouch HMI software.
Wonderware Toolkits
Wonderware Toolkits provide powerful extensibility to InTouch HMI and System Platform
applications by enabling developers to extend the capabilities of Wonderware products to meet
specific system integration needs. The Toolkits promote adherence to industry standards, provide
additional customization and intellectual property protection, and enhance the ability to interface
Wonderware products with other software and hardware.
Wonderware offers the following Toolkits:
Wonderware Device Integration Servers
Device Integration Objects (DI Objects) within the Wonderware System Platform provide seamless
connectivity to any data source, and the DAServer Toolkit allows developers to create custom
connectivity servers. In collaboration with more than 100 third-party interface developers,
Wonderware provides the largest selection of connectivity options to hundreds of control systems
and other hardware devices. Wonderware has also fully embraced the openness of OPC
technology, exposing data via OPC from Wonderware products as an OPC Client and also
providing the means to connect to any third party OPC Server.
Toolkit Enables developers to:
DAServer Toolkit Build custom device integration servers more easily
ArchestrA Object Toolkit Extend the ArchestrA architecture with objects that provide specific application or
device integration functionality
Historian Toolkit Create high-value industrial applications that integrate with data sources from the
System Platform and other data sources
Alarm Toolkit Produce custom distributed alarm providers and consumers
Wizard Toolkit Produce their own Wizards for inclusion in InTouch HMI
Script Toolkit Develop custom InTouch scripts
GRAccess Toolkit Create programmatic access to and interaction with System Platform Galaxy
configuration data
MXAccess Toolkit Create programmatic access to runtime data in a System Platform Galaxy
1-14 Module 1 Introduction
Wonderware Training
Wonderware Enterprise Integration Application
Wonderware offers powerful capabilities to complete the manufacturing supply chain by linking the
manufacturing system to business applications like ERP, PLM, SCM, and LIMS systems.
Wonderware Enterprise Integration Application provides a scalable and configurable solution
designed to accommodate even the most complex requirements for tightly aligning business and
manufacturing systems.
Wonderware IntelaTrac
Wonderware IntelaTrac is a suite of configurable software and ruggedized mobile hardware
products that provides workflow management, procedural and general task management
capabilities typically focused around plant operations, maintenance management, and production
tracking and compliance applications to mobile field workers.
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:
ArchestrA IDE
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), ArchestrA IDE and object deployment
Section 1 Course Introduction 1-15
System Platform - Part 1
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.
1-16 Module 1 Introduction
Wonderware Training
Intentionally left blank
Section 2 Wonderware System Platform 1-17
System Platform - Part 1
Section 2 Wonderware System Platform
This section provides an overview of the Wonderware System Platform and how critical the
architecture of ArchestrA is to plant automation. An overview of the differences between Object-
oriented and traditional Tag based HMI and SCADA products is provided, as well as how these
differences apply to Wonderware System Platform applications. This section will also provide a
description 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
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
1-18 Module 1 Introduction
Wonderware Training
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
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)
Section 2 Wonderware System Platform 1-19
System Platform - Part 1
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
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 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
1-20 Module 1 Introduction
Wonderware Training
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.
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
Section 2 Wonderware System Platform 1-21
System Platform - Part 1
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.
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
1-22 Module 1 Introduction
Wonderware Training
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.
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.
Section 2 Wonderware System Platform 1-23
System Platform - Part 1
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.
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 ever-
increasing speed making the ultimate goal of productivity improvement even more difficult to
achieve.
1-24 Module 1 Introduction
Wonderware Training
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.
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
Section 2 Wonderware System Platform 1-25
System Platform - Part 1
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.
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.
1-26 Module 1 Introduction
Wonderware Training
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.
Section 2 Wonderware System Platform 1-27
System Platform - Part 1
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
1-28 Module 1 Introduction
Wonderware Training
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.
Section 2 Wonderware System Platform 1-29
System Platform - Part 1
Manufacturing
Collaboration
Plant
Intelligence
Production
Supervisory
Plant Floor
Connectivity
1-30 Module 1 Introduction
Wonderware Training
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.
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.
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
Section 2 Wonderware System Platform 1-31
System Platform - Part 1
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
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.
1-32 Module 1 Introduction
Wonderware Training
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.
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 object-
oriented 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.
Section 2 Wonderware System Platform 1-33
System Platform - Part 1
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
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 tag-
based 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 re-
architected 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.
1-34 Module 1 Introduction
Wonderware Training
Object oriented Development Process- graphics are created last
Wonderware Application Server and the ArchestrA 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.
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.
Section 2 Wonderware System Platform 1-35
System Platform - Part 1
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.
1-36 Module 1 Introduction
Wonderware Training
What is a Galaxy?
Its important to understand what a Galaxy is before one is created. A Galaxy is the entire
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.
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.
Section 2 Wonderware System Platform 1-37
System Platform - Part 1
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). When
creating a new Galaxy, you must select the appropriate Galaxy type:
Default Galaxy: Creates a Galaxy that includes all objects needed for a System Platform
application. It also creates a backup file (.cab) at the end of the process and makes it available
to this list.
Base_Application_Server.cab: Same as Default Galaxy, but uses the backup file (.cab) to
create the galaxy. It does not creates a backup at the end, making the process faster.
Base_InTouch.cab: Creates a Galaxy that includes only the object needed for tag-based
Managed InTouch applications.
Reactor_Demo_Application_Server.cab: Creates a Galaxy with the Reactor Demo based
on a System Platform application.
Reactor_Demo_InTouch.cab: Creates a Galaxy with the Reactor Demo based on a tag-
based Managed InTouch application.
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.
1-38 Module 1 Introduction
Wonderware Training
Intentionally left blank
Lab 1 Creating a Galaxy 1-39
System Platform - Part 1
Lab 1 Creating a Galaxy
Introduction
This lab illustrates the steps necessary to create a Galaxy and connect to it with the ArchestrA
IDE. Throughout this class you will use this Galaxy to develop a sample application.
Objectives
Upon completion of this lab you will be able to:
Create a Galaxy
Use the ArchestrA IDE to connect to your Galaxy
1-40 Module 1 Introduction
Wonderware Training
Create and Connect to a new Galaxy (page 1-41)
a. Create a new Galaxy named TrainingGalaxy.
b. Connect to TrainingGalaxy.
See the next page for Detailed Lab Instructions
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.
Lab 1 Creating a Galaxy 1-41
System Platform - Part 1
Create a Galaxy
1. Start the ArchestrA IDE 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.
3. The New Galaxy dialog box is displayed.
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-42 Module 1 Introduction
Wonderware Training
4. Enter TrainingGalaxy in the Galaxy name field.
5. Verify Base_Application_Server.cab is selected in the Galaxy Type field.
6. Click the Create button to continue.
The Create Galaxy dialog box will display indicating the Galaxy creation progress.
When the galaxy creation process is complete the Close button will enable.
7. Click Close.
This must be the
node that contains
the Galaxy
Repository (the
name of the Host
computer).
Lab 1 Creating a Galaxy 1-43
System Platform - Part 1
At the Connect To Galaxy dialog box the name of the newly created Galaxy,
TrainingGalaxy, is displayed in the Galaxy name drop-down list.
8. Click the Connect button.
This closes the Connect To Galaxy dialog box and displays the ArchestrA IDE.
1-44 Module 1 Introduction
Wonderware Training
Intentionally left blank
Section 3 The ArchestrA IDE 1-45
System Platform - Part 1
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.
The ArchestrA IDE User Interface
The ArchestrA 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.
Section Objectives
Discuss ArchestrA IDE
Introduce the Template Toolbox and Application Views
Discuss the object Check-in/Check-out process.
1-46 Module 1 Introduction
Wonderware Training
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
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 (for example, 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
Section 3 The ArchestrA IDE 1-47
System Platform - Part 1
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
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.
1-48 Module 1 Introduction
Wonderware Training
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.
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.
Section 3 The ArchestrA IDE 1-49
System Platform - Part 1
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.
1-50 Module 1 Introduction
Wonderware Training
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.
Section 3 The ArchestrA IDE 1-51
System Platform - Part 1
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-53 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.
1-52 Module 1 Introduction
Wonderware Training
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.
Section 3 The ArchestrA IDE 1-53
System Platform - Part 1
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.
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.
1-54 Module 1 Introduction
Wonderware Training
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.
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.
Section 3 The ArchestrA IDE 1-55
System Platform - Part 1
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.
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.
1-56 Module 1 Introduction
Wonderware Training
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.
Section 3 The ArchestrA IDE 1-57
System Platform - Part 1
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.
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.
1-58 Module 1 Introduction
Wonderware Training
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 started. 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:
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.
Galaxy Name
Section 3 The ArchestrA IDE 1-59
System Platform - Part 1
Deployment View
Note: More detail of the Deployment View is discussed in Module 2, Section 2, The Deployment
Model, page 2-13.
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.
1-60 Module 1 Introduction
Wonderware Training
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.
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.
Section 3 The ArchestrA IDE 1-61
System Platform - Part 1
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.
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:
1-62 Module 1 Introduction
Wonderware Training
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:
Configuration status indicators include:
Redundancy status indicators include:
InTouch status indicator:
Icon Description
Undeployed (see AnalogDevice_001 and DDESuiteLinkClient_001 in example above)
(no indicator) Deployed (see AppEngine_002 in previous example)
Deployed with configuration changes (see AppEngine_001 in example above)
Deployed with software update required (see WinPlatform_001 in example above)
Icon Description
Configuration warning
Configuration error
(no indicator) Configuration good
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.
Icon Description
Applies to InTouchViewApp deployment when files are being transferred.
Section 3 The ArchestrA IDE 1-63
System Platform - Part 1
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.
1-64 Module 1 Introduction
Wonderware Training
To determine an objects status and history, open the Properties dialog box.
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
Section 3 The ArchestrA IDE 1-65
System Platform - Part 1
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).
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.
1-66 Module 1 Introduction
Wonderware Training
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.
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.
Section 4 Automation Objects 1-67
System Platform - Part 1
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.
Objects
Automation Objects
An automation object allows the encapsulation of all configuration elements of each piece of your
system, such as I/O definitions, logic (scripting), history configuration, alarm/event configuration,
security/access control and graphics. This self-contained approach dramatically reduces the
engineering time associated with the initial creation and maintenance of objects. By keeping all
object configuration tightly related and contained within the object itself, there is no need to use
multiple editors to make sure that the alarming, I/O definitions, scripting, history, and security are
consistent for an object.
There are Template objects, and Instance objects:
Template objects: these are high-level definitions of the objects: equipment, devices,
constructs or simply system parts of the Galaxy
Instance objects: these are the runtime objects and represent the specific items in the
environment, like processes, valves, holding tanks, and so on
There are Domain objects and System objects:
Domain objects:
Application objects: represent the physical equipment or logical constructs in the
Galaxy
Device Integration objects: represent the communication with the external devices
System objects: represent the parts of a Galaxy and not the domain they are monitoring
and/or controlling
Attributes and Attribute References
Every piece of configuration and data available within an object is called an attribute. Interaction
with objects, in configuration or runtime, is done through the attributes of the specific object.
Attribute references refer to data within an object's attributes; it consists of an object's reference
string plus an attribute's reference string, separated by a dot ("."):
Obj ect Name. At t r i but eName
An object reference cannot exceed 32 characters (including the $ character used in template
names) and must contain at least one non-numeric character.
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
1-68 Module 1 Introduction
Wonderware Training
You should avoid assigning objects and attributes the same names because this may result in an
attribute reference can refer to two different things. For example, if you have two objects, A1 and
B2, where A1 is the container of B2, and object A1 has an attribute named B2, the reference string
A1.B2 could either refer to the B2 attribute within A1, or the B2 object contained in A1.
Object Categories
Within the Template Toolbox there are three main categories of objects. These are:
Application objects
AnalogDevice
Boolean
DiscreteDevice
Double
FieldReference
Float
Integer
Sequencer
SQLData
String
Switch
UserDefined
Device Integration objects
DDESuiteLinkClient
InTouchProxy
OPCClient
RedundantDIObject
System objects
AppEngine
Area
InTouchViewApp
ViewEngine
WinPlatform
Section 4 Automation Objects 1-69
System Platform - Part 1
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. J ust 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 negative-
slope 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.
Supports minor and major deviation alarming when PV deviates from SP.
1-70 Module 1 Introduction
Wonderware Training
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 (for example 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).
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.
Section 4 Automation Objects 1-71
System Platform - Part 1
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 [email protected].
SQLData
The SQLData Object is an ArchestrA application object that can be used to store data to, and
retrieve data from a SQL Server database. The SQLData Object provides the means to map data
in a SQL database to attributes in a Galaxy.
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.
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
ArchestrA IDE documentation.
1-72 Module 1 Introduction
Wonderware Training
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 ( I nl et )
- - V102 ( Out l et )
- - 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:
i f me. i nl et == " Open" and me. out l et == " Open" t hen
me. st at eal ar m= t r ue;
el se
me. st at eal ar m= f al se;
endi f ;
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.
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
Section 4 Automation Objects 1-73
System Platform - Part 1
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.
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 for System Platform application. 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.
1-74 Module 1 Introduction
Wonderware Training
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
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, such as 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 of containment.
Templates exist only in the development environment.
Section 4 Automation Objects 1-75
System Platform - Part 1
Using the Diaphragm valve template, you can quickly create an Diaphragm valve instance when
you need another Diaphragm valve in your application.
Creating a Template
Right-click on the appropriate type of object, and select New / Derived Template. For example,
use the $UserDefined object to create a $Mixer template as a container for the mixers various
components (agitator, inlet valves, pumps, and so on).
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.
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.
1-76 Module 1 Introduction
Wonderware Training
There are two ways to create an instance of a template. This is indicated as follows:
Creating an Instance - Method 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.
Notice you are looking at
the Model View.
Section 4 Automation Objects 1-77
System Platform - Part 1
Once the instance has been created it displays as follows:
It can now be renamed using the naming convention as designated by your instructor.
Creating an Instance - Method 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.
1-78 Module 1 Introduction
Wonderware Training
Intentionally left blank
Section 5 System Requirements, Licensing and Support 1-79
System Platform - Part 1
Section 5 System Requirements, Licensing and Support
This section provides a detailed explanation of the system requirements necessary for
Wonderware System Platform, discusses Licensing details and covers Support services.
System Requirements for Wonderware Application Server/Galaxy
Repository
Minimum Hardware Requirements
The following list shows the minimum computer hardware requirements to host Application Server
version 3.1 components.
2 gigahertz (GHz) or faster dual core processor, or a 3 GHz or faster single core
processor. A dual core processor is strongly recommended for optimal performance
Minimum of 2 gigabytes (GB) RAM. For Galaxies with more than 500 objects, 4 GB
RAM is recommended in the GR node
30 GB of available disk space
Super VGA (1024 x 768) or higher resolution video adapter and monitor.
Network interface card
CD-ROM or DVD drive
Keyboard
Mouse or a compatible pointing device
Development and Application nodes
2 GHz or faster processor
Minimum 1 gigabyte (GB) RAM. For improved performance 4 GB RAM is strongly
recommended
30 GB of available disk space
Super VGA (1024 x 768) or higher resolution video adapter and monitor
Network interface card
CD-ROM or DVD drive
Keyboard
Mouse or compatible pointing device
The hardware requirements for using the Alarm Client and Trend Client at run time are the same
as for the InTouch HMI version 10.1 run time.
The Windows Vista operating system imposes hardware requirements that may exceed the
minimum requirements for Application Server version 3.1. If you intend to install Application Server
3.1 on a computer running Windows Vista, see the following Microsoft web site for hardware
requirements:
www.microsoft.com/windows/products/windowsvista/editions/systemrequirements.mspx
Section Objectives
Describe the necessary system requirements for a successful installation
Discuss Licensing requirements
Discuss Support services
1-80 Module 1 Introduction
Wonderware Training
Software Requirements
This section describes the operating system, database, and other software requirements to install
Application Server version 3.1.
Operating Systems
SQL Server Database Requirements
Other Software Requirements
Operating Systems
Windows Server 2003 Standard Edition SP2 is the recommended operating system
for computers running server components.
Windows XP SP3 is the supported XP version for this release.
Windows XP Professional SP3 is the recommended operating system for computers
running client components.
The following table lists the supported operating systems that can be installed on computers
running as Application Server development, application, and GR nodes. Development and
application nodes are considered to be clients of the server GR node.
Notes:
1. The Windows 2000 Professional, Windows 2000 Server, and Windows 2000 Advanced Server
operating systems are not supported for Application Server version 3.1. An error occurs if you
attempt to install or upgrade Application Server version 3.1 on a computer running any edition
of the Windows 2000 operating system.
2. The computer designated as the Galaxy Repository node can run on Windows XP Pro only as
a single-node configuration of Application Server. Windows Server 2003 is the recommended
operating system for the GR node.
3. You can run Application Server only on computers running a 32-bit operating system. You
cannot run Application Server on a computer running a 64-bit operating system.
4. The Bootstrap, IDE, and Galaxy Repository are supported by the following language versions
of Microsoft operating systems: English, J apanese, Chinese, German, and French. The
Galaxy Repository is also supported by the English, J apanese, Chinese, German, and French
versions of Microsoft SQL Server 2005.
Operating Systems Wonderware Application Server Components
ArchestrA IDE
(Development
Node)
ArchestrA Run
Time
(Application
Node)
Galaxy
Repository
(GR Node)
Windows Vista Business (See Vista Restrictions) x x x
Windows Vista Business SP1 (See Vista Restrictions) x x x
Windows Vista Enterprise (See Vista Restrictions) x x x
Windows Vista Enterprise SP1 (See Vista Restrictions) x x x
Windows Vista Ultimate (See Vista Restrictions) x x x
Windows Vista Ultimate SP1 (See Vista Restrictions) x x x
Windows Server 2003 Standard Edition SP2 x x x
Windows Server 2003 Enterprise Edition SP2 x x x
Windows Server 2003 Standard Edition R2 SP2 x x x
Windows Server 2003 Enterprise Edition R2 SP2 x x x
Windows XP Professional SP3. See Note 2. x x See Note 2
Windows XP Tablet x
Section 5 System Requirements, Licensing and Support 1-81
System Platform - Part 1
SQL Server Database Requirements
Microsoft SQL Server 2005 with SP2 is the only database supported by Application Server version
3.1. You must use the Standard or Enterprise editions of SQL Server 2005. Neither the Compact,
Express, nor the Workgroup editions of SQL Server 2005 can be used as the Galaxy Repository.
SQL Server 2005 SP2 must be installed on the computer designated as the ArchestrA
Galaxy Repository node prior to installing Application Server.
You also cannot install and use Application Server on a computer that has both Microsoft
SQL Server 2000 and Microsoft SQL Server 2005 installed.
The Galaxy Repository locks the SQL Server maximum memory usage to 65% of the
computer's physical memory.
TCP/IP must be enabled on the computer hosting a SQL Server 2005 database. The TCP/
IP protocol setting can be verified from the SQL Server 2005 Network Configuration under
SQL Server Configuration Manager.
The Microsoft SQL Server 2005 login for BUILTIN\Administrators group must be present
and enabled.
Other Software Requirements
The following list describes other third-party software required for Application Server version 3.1.
Microsoft .NET Framework 3.5
Microsoft .NET Framework 3.5 must be installed on every computer that hosts an
Application Server version 3.1 component. The Application Server installation program
halts if .NET Framework 3.5 is not installed on the target computer. A dialog box appears
requesting that you install .NET Framework 3.5. If you click Install Prerequisites, the
installation program automatically installs .NET Framework 3.5.
Microsoft Visual Studio 2005
Microsoft Visual Studio 2005 is required only by the MXAccess and GRAccess toolkits
distributed with Application Server.
Alarm Client and Trend Client Requirements
The software requirements for using the Alarm Client and Trend Client at run time are the same as
for the InTouch HMI version 10.1 run time. If you want to trend data from the Wonderware
Historian (formally known as IndustrialSQL Server), version 9.0 or later is required.
The Trend Client is compatible with the following Wonderware products:
InTouch 10.1
Wonderware Application Server 3.1
Wonderware Historian 9.0
ActiveFactory 9.2
QI Analyst 8.1
Using Application Server with Windows Vista
This section describes specific restrictions when using the Windows Vista operating system with
Application Server and how to configure multiple Network Information Cards on a computer
running Windows Vista.
1-82 Module 1 Introduction
Wonderware Training
Vista Restrictions
Application Server version 3.1 can run under Windows Vista SP1, Windows Vista
Enterprise SP1, Windows Vista Business SP1, or Windows Vista Ultimate SP1. The
Windows Vista Home Basic and Home Premium editions are not supported. The Windows
Vista Business Edition is recommended for use with Application Server.
You must log on as a Windows Vista administrator to run Application Server version 3.1.
You cannot run Application Server as a Windows Vista standard user or power user.
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 single-node configuration
that includes Wonderware Historian (formerly IndustrialSQL Server).
The Galaxy Repository is supported on Vista only for a single-node configuration of
Application Server. For multiple-node Galaxies, Windows Server 2003 is the
recommended operating system for the Galaxy Repository node.
If the computer that hosts the Galaxy Repository runs on Windows Vista, SP2 must be
applied to SQL Server 2005 installed on the same computer.
A computer running on Vista 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 Symbols that use the client layer
when accessing InTouch tags, and appear as a third-party client trying to access
WindowViewer as a data server. As a result, ArchestrA symbols cannot communicate with
InTouch tags. Windows Server 2003 and Windows XP Pro still support NetDDE.
Windows Vista security prevents started Windows services from interacting with desktop
objects. When Application Server 3.1 is installed on a computer running Vista, scripts do
not run correctly if they include the InTouch ActivateApp() and SendKeys() functions.
Windows Vista prevents these functions from interacting with desktop objects to start
Windows programs or send keystrokes to these programs.
Using Multiple Network Interface Cards with Windows 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 the 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 computer
startup, 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.
Section 5 System Requirements, Licensing and Support 1-83
System Platform - Part 1
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 side of the task bar and then click on one of the
networks that is shown. 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 restart of your computer, or even a restart of a computer
to which you are connected, can change your connection back to the Public profile. Once again
the firewall exceptions will not be effective. You'll have to change the connection back to the
Private profile after each restart or a restart 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 the
Wonderware product 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.
1-84 Module 1 Introduction
Wonderware Training
Wonderware System Platform Licensing
Licensing
To calculate the licenses needed to implement an application based on the Wonderware System
Platform, it is necessary that you understand and gather the following information:
Wonderware System Platform
The Wonderware System Platform is licensed as a single product that includes the following
individual features:
1 Application Server license sized by IO-count
1 Historian Server Standard Edition license sized by Tag-count
1 Information Server license
1 Information Server Advanced Client license
1 Device Integration Server license
n Application Server Platform licenses (where n is 2, 3 or 4) for the purpose of hosting:
an Application Object Server
the Historian Server
the Device Integration Server
the Information Server
Note: Note: An Application Server Platform for a dedicated Galaxy Repository node is not
included.
The Wonderware System Platform license is available in different sizes, each one offered as a
unique combination of the following:
Application Server IO-count
Historian Server Tag-count
the number of Application Server Platforms included
Application Server IO Count Number of I/O points accessed by the Galaxy.
Application Server Platform Count Number of dedicated Application Object Server nodes in the
application.
Historian Server Count Number of Historian Server nodes in the application.
Information Server and Clients Count Number of Information Server nodes in the application and
number of nodes that are going to access the servers
remotely.
Device Integration Server Count Number of Device Integration Server nodes in the
application.
InTouch for System Platform Count Number of visualization nodes required in the application.
ActiveFactory Count Number of dedicated ActiveFactory nodes in the application.
Development Studio Count Number of development workstations in the application.
Section 5 System Requirements, Licensing and Support 1-85
System Platform - Part 1
Wonderware System Platform Options licenses, listed below, are added to this license as
needed, depending on the size of the system and requirements:
additional Historian Servers with Platform available at different Tag-counts
additional Information Servers with Platform
additional Device Integration Servers
additional Application Server Platforms
Wonderware Clients
In addition to the Wonderware System Platform, one or more of the following Wonderware
Clients are usually required:
InTouch for System Platform (also available as Terminal Services Edition if needed)
Information Server Client
ActiveFactory
The InTouch for System Platform license includes an Application Server Platform and is
available in different flavors, as follows:
InTouch for System Platform with Trend/Analysis*
InTouch for System Platform without Trend/Analysis*
InTouch for System Platform Read-only with Trend/Analysis*
* Trend/Analysis refers to an ActiveFactory license.
The Information Server Client license is available in two different versions:
Information Server Advanced Client
Information Server Standard Client; which lacks InTouch Write Back, InBatch and QI
Analyst integration.
The ActiveFactory license supports Terminal Services Server applications (except with a Per
Device license).
Wonderware Development Studio
To develop applications for the Wonderware System Platform one or more Wonderware
Development Studio licenses are required. The Wonderware Development Studio license
includes a single-node license to run the following products:
ArchestrA Integrated Development Environment (IDE)
Application Server sized by IO-count
Application Server Platform for testing System Platform-based applications
InTouch Development and Runtime
Device Integration Products
Historian Server Standard Edition limited to 24 hour data retrieval and sized by Tag-
count
Microsoft SQL Server
1-86 Module 1 Introduction
Wonderware Training
An Unlimited version of the Wonderware Development Studio license includes all the above
products, plus:
Information Server
Information Server Client
ActiveFactory
InControl
The Wonderware Development Studio license is available in different sizes, each one offering a
unique combination of:
Application Server IO-count
InTouch Tag-count
Historian Server Tag-count
Section 5 System Requirements, Licensing and Support 1-87
System Platform - Part 1
Installation
For instructions on installing Wonderware Application Server, see the installation document
located in the root folder of the installation CD.
Additionally, refer to the Wonderware Software Installation series of online seminars where a
session corresponding to System Platform - Part 1 may be available.
Wonderware eLearning training options are located at http://www.wonderware.com/training.
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 Wonderware
Developer Network (WDN) Library, 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.
1-88 Module 1 Introduction
Wonderware Training
Intentionally left blank
Section 6 Application Planning 1-89
System Platform - Part 1
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.
Introduction
In order to successfully implement a project for the Wonderware System Platform 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
J ust as there are many different criteria for Wonderware A
2
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.
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.
Identify Field Devices and Functional Requirements
Define the Deployment Model
Define Naming Conventions
Define the Area Model
Plan Templates
Define the Security Model
1-90 Module 1 Introduction
Wonderware Training
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
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.
Section 6 Application Planning 1-91
System Platform - Part 1
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.
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.
LT
402
LC
401
FC
402
DRIVE
3
PT
401
FT
401
CT
401
FC
301
PT
301
TT
301
FT
302
CT
301
DRIVE
4
FV402
FV403
FV401
FV103
1-92 Module 1 Introduction
Wonderware Training
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:
HMIs
ndividual Tags
ArchestrA
Object
Object
Attributes
YY123XV456
YY123XV456\OLS
YY123XV456\CLS
YY123XV456\Out
YY123XV456\Auto
YY123XV456\Man
.OLS
.CLS
.Out
.Auto
.Man
For more
information refer
to the InTouch to
IAS Migration
document
Section 6 Application Planning 1-93
System Platform - Part 1
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 Discharge 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 plant-
related 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
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.
Planning 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-5.
1-94 Module 1 Introduction
Wonderware Training
The next two steps, defining the security model, and defining the deployment model, are done
once the initial Plant Model is in place. These are steps are detailed in subsequent modules in this
training course. Please refer to additional information which is available in the Wonderware A2
Deployment Guide.
Define Security Model: Each attribute of an AutomationObject is given a security classification.
This provides the ability to define who can write to attributes of an object.
Define Deployment Model: The Deployment Model view shows which objects instances reside
on which computers. In the ArchestrA environment, the physical location of object instances is not
required to approximate the real-world environment it models. The Deployment view does not
need to reflect your physical plant environment.
Lab 2 Identifying the Mixer 1-95
System Platform - Part 1
Lab 2 Identifying the Mixer
Introduction
This lab provides several detailed diagrams which identify components of a simulated factory
layout for this training scenario, as well as the main pieces of equipment that you will model and
develop during this course.
The following diagrams provided in this lab will be used as references:
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 familiarize you with the plant processes on which the remaining labs are based.
Objectives
Upon completion of this lab you will be able to:
Collect the proper information needed before proceeding to develop a Galaxy
Use the naming convention and device structure defined for this class in subsequent labs
1-96 Module 1 Introduction
Wonderware Training
This lab contains several intricate parts that are not easily summarized.
Please refer to the Detailed Lab Instructions on the next page.
See the next page for Detailed Lab Instructions
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.
Lab 2 Identifying the Mixer 1-97
System Platform - Part 1
Identify the Sample Application
This lab is an instructor-led group discussion and therefore does not have specific steps. In this lab
you will study and discuss the diagrams on the following pages with your instructor, and create the
IDs for the heat exchangers and mixers assigned to you.
Description of the Mixer System
The mixer system consists of the following devices and functionality:
3 valves:
Inlet 1: Inlet 1, opens to add the first material into the tank
Inlet 2: Inlet 2, opens to add the second material to the tank
Outlet: drains the tank
2 pumps:
Pump 1: Pump 1, pumps the first material into the tank
Pump 2: Pump 2, pumps the second material into the tank
1 motor:
Agitator: Mixes the materials in the tank
2 meters
LIT: Current level of the tank
TT: Current temperature of the tank
Description of the Process
In this class a simulated mixer system process continuously executes batches (runs) with the
following steps:
1. Add first material to the tank
2. Add second material to the tank
3. Mix the material in the tank
4. Drain the tank
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-98 Module 1 Introduction
Wonderware Training
Specifically, the devices of the mixer system are automatically operated by the simulation to
perform the steps indicated previously through the following sequence:
Throughout the execution of each batch, the LIT and TT devices will continuously indicate the
current level and temperature of the tank respectively. The temperature is in direct proportion with
the level of the tank: the higher the level, the higher the temperature, and vice versa; and it
fluctuates from 35% to 90%, within the actual range.
Note: The simulation uses randomization to ensure the LIT and TT meter values differ from batch
to batch.
Lab 2 Identifying the Mixer 1-99
System Platform - Part 1
1-100 Module 1 Introduction
Wonderware Training
Lab 2 Identifying the Mixer 1-101
System Platform - Part 1
1-102 Module 1 Introduction
Wonderware Training
Lab 2 Identifying the Mixer 1-103
System Platform - Part 1
Intentionally left blank
1-104 Module 1 Introduction
Wonderware Training
Module 2
Application Infrastructure
Section 1 The Plant Model 2-3
Lab 3 Creating the Plant Model 2-5
Section 2 The Deployment Model 2-13
Lab 4 Creating 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
2-2 Module 2 Application Infrastructure
Wonderware Training
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 ArchestrA IDE
Explain Plant Modeling as it relates to Objects and Object Instances
Section 1 The Plant Model 2-3
System Platform - Part 1
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.
Modeling of the Facility
With the Wonderware 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:
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.
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
Section Plant Production
Line
Area
Manufacturing
Cell
2-4 Module 2 Application Infrastructure
Wonderware Training
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:
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.
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
Lab 3 Creating the Plant Model 2-5
System Platform - Part 1
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. You will create an additional $Area instance
named ControlSystem to accommodate future system objects created throughout the rest of this
class.
To help organize the templates, you will develop a custom toolset named Training to hold the
templates created in the class.
Objectives
Upon completion of this lab you will be able to:
Create new template toolsets
Create derived templates
Create instances
Use the $Area object to create a plant model for the Galaxy
2-6 Module 2 Application Infrastructure
Wonderware Training
Create a Template Toolset (page 2-7)
a. Create a new Template Toolset named Training under the Galaxy.
Create the Plant Model (page 2-8)
b. Create a derived template from the $Area object named $tArea and assign it to the Training
template toolset.
c. Create the following instances out of the new $tArea template:
Discharge
Intake
Production
Line1
Line2
ControlSystem
d. Arrange the new $tArea instances to model the factory layout defined in Lab 2.
See the next page for Detailed Lab Instructions
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.
Lab 3 Creating the Plant Model 2-7
System Platform - Part 1
Create a Template Toolset
1. In the Template Toolbox, right-click on the Galaxy and select New Template Toolset.
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).
2-8 Module 2 Application Infrastructure
Wonderware Training
2. A new template toolset is created. Name the new template toolset Training.
Create the Plant Model
3. In the Template Toolbox, right-click the $Area template and select New / Derived Template.
Lab 3 Creating the Plant Model 2-9
System Platform - Part 1
4. A new template is created. Name the new template $tArea.
5. Move the $tArea object into the Training template toolset.
6. Ensure that the Model view is selected.
2-10 Module 2 Application Infrastructure
Wonderware Training
7. Create a new instance of the $tArea template by dragging and dropping the $tArea object
from the Template Toolbox to the Model view.
8. Name the new instance Discharge.
9. Repeat the previous 2 lab steps to create the following Areas:
ControlSystem
Intake
Line1
Line2
Production
The ControlSystem Area will be used in this example to accommodate future system objects
created throughout the rest of this class.
Lab 3 Creating the Plant Model 2-11
System Platform - Part 1
10. Drag-and-drop the newly created objects to assign areas Line1 and Line2 to the Production
area. The final plant model should look like the following illustration:
2-12 Module 2 Application Infrastructure
Wonderware Training
Intentionally left blank
Section 2 The Deployment Model 2-13
System Platform - Part 1
Section 2 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 run-
time data associated with your objects, use Object Viewer or InTouch.
Objects deploy from the configuration environment to the run-time environment as follows:
Section Objectives
Explain the concept of the Deployment Model.
Demonstrate the structure and organizational execution of the Deployment Model.
IDE Configuration Environment deploys to
Object Viewer,
Run-time environment
Galaxy database : [Does not exist in run-time environment]
Templates : [Does not exist in run-time environment]
Instance Objects : Instance objects [Run-time configuration and
behavior]
Security: General permissions : [Does not exist in run-time environment]
Security: Operational permissions : Run-time permissions to acknowledge alarms and
modify attributes
Scripts configuration : Scripts execution
Alarms configuration : Alarms generate and acknowledge
History configuration : History Logs
[Wonderware Historian]
2-14 Module 2 Application Infrastructure
Wonderware Training
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.
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:
Section 2 The Deployment Model 2-15
System Platform - Part 1
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.
2-16 Module 2 Application Infrastructure
Wonderware Training
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.
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
Lab 4 Creating the Deployment Model 2-17
System Platform - Part 1
Lab 4 Creating 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 will begin by organizing the system objects using
the plant model created in the previous lab. Then, after creating the deployment model, you will
send the complete Galaxy to the runtime environment by deploying all objects.
Objectives
Upon completion of this lab you will be able to:
Use the $WinPlatform, $AppEngine and $Area objects to create a deployment model for
the Galaxy
Deploy instances to the runtime environment
2-18 Module 2 Application Infrastructure
Wonderware Training
Create the WinPlatform Object (page 2-18)
a. Create a derived template from the $WinPlatform object named $tWinPlatform and assign it
to the Training template toolset.
b. Create an instance of the $tWinPlatform template named GRPlatform and assign it to the
ControlSystem area.
Create the AppEngine Object (page 2-18)
c. Create a derived template from the $AppEngine object named $tAppEngine and assign it to
the Training template toolset.
d. Create an instance of the $tAppEngine template named AppEngine and assign it to the
ControlSystem area.
Create the Deployment Model (page 2-18)
e. Using the Deployment view, host the AppEngine object on the GRPlatform object and all
areas on the AppEngine object.
Deploy the Objects (page 2-18)
f. Cascade deploy the GRPlatform.
See the next page for Detailed Lab Instructions
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.
Lab 4 Creating the Deployment Model 2-19
System Platform - Part 1
Create the WinPlatform Object
1. In the Template Toolbox, create a derived template of the $WinPlatform object by right-
clicking the $WinPlatform template and selecting New / Derived Template.
2. A new template is created. Name it $tWinPlatform.
3. Move the $tWinPlatform object to your Training template toolset.
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).
2-20 Module 2 Application Infrastructure
Wonderware Training
4. Using the Template Toolbox and the Model view, create a new instance of the
$tWinPlatform template by dragging the $tWinPlatform template to the Model view.
Note: Notice the color of the bottom right icon changes to yellow. This indicates the
object is the first Platform, and is therefore the GR Platform. By default, the first Instance of a
platform will be the GR platform and will use its Node name.
5. Name the new instance GRPlatform.
6. In the Model view, assign the GRPlatform instance to the ControlSystem area.
Lab 4 Creating the Deployment Model 2-21
System Platform - Part 1
Create the AppEngine Object
7. In the Template Toolbox, create a derived template of the $AppEngine object by right-
clicking the $AppEngine template and selecting New / Derived Template.
8. A new template is created. Name the new template $tAppEngine.
9. Move the $tAppEngine template to the Training template toolset.
10. Using the Template Toolbox and the Model view, create a new instance of the $tAppEngine
template.
2-22 Module 2 Application Infrastructure
Wonderware Training
11. Name the new instance AppEngine.
12. In the Model view, assign the AppEngine instance to the ControlSystem area.
Lab 4 Creating the Deployment Model 2-23
System Platform - Part 1
Create the Deployment Model
13. Select the Deployment view.
14. Assign the AppEngine instance to the GRPlatform.
2-24 Module 2 Application Infrastructure
Wonderware Training
15. Assign all remaining areas to the AppEngine instance.
Deploy the Objects
16. In Deployment view, right-click the GRPlatform instance and select Deploy.
The Deploy dialog box displays. 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.
Lab 4 Creating the Deployment Model 2-25
System Platform - Part 1
17. Leave the default settings.
18. Click OK. This will display a second Deploy dialog box indicating the deployment progress.
As soon as the process is complete, the Close button is enabled.
19. Click Close to return to the ArchestrA IDE.
The Deployment and Model views now display the instances in their deployed state:
2-26 Module 2 Application Infrastructure
Wonderware Training
Intentionally left blank
Section 3 The Runtime Environment 2-27
System Platform - Part 1
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.
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), and so on. 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 (for example 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, right-click the attribute from the Attribute Name
panel and select Add to Watch.
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.
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
2-28 Module 2 Application Infrastructure
Wonderware Training
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.
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
Deployed Objects section
Objects deployed on the Platform.
Attributes section
Individual attributes of the object.
Attribute Monitoring section Location
for monitoring attribute activity.
Section 3 The Runtime Environment 2-29
System Platform - Part 1
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. In the Object menu, click Upload Runtime Changes. The run-time attributes of the selected
objects are copied over those in the Galaxy database.
2-30 Module 2 Application Infrastructure
Wonderware Training
Intentionally left blank
Lab 5 Using Object Viewer 2-31
System Platform - Part 1
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 then saved in a single file for future use.
Objectives
Upon completion of this lab you will 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
2-32 Module 2 Application Infrastructure
Wonderware Training
Using ObjectViewer (page 2-33)
a. Open Object Viewer from within the ArchestrA IDE.
b. Rename the default watch window to Platform Info and add the following attribute references:
c. Create a new watch window called Engine Info and add the following attribute references:
d. Save the watch list to your training folder (C:\Wonderware Training) with the name My
Watch Windows.
See the next page for Detailed Lab Instructions
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.
Instance Attribute Name
GRPlatform CPULoad
GRPlatform DiskSpaceFree[1]
GRPlatform RAMAvailableAvg
Instance Attribute Name
AppEngine Scheduler.ScanPeriod
AppEngine ScanState
AppEngine ScanStateCmd
Lab 5 Using Object Viewer 2-33
System Platform - Part 1
Using ObjectViewer
1. In Model view, open Object Viewer by right-clicking the GRPlatform instance and selecting
View in Object Viewer.
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).
2-34 Module 2 Application Infrastructure
Wonderware Training
The Object Viewer application opens displaying the attributes of the selected object on the right
panel.
2. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the default Watch List 1 tab.
Deployed Objects section.
Objects deployed on the Platform.
Attributes section.
Individual attributes of the object.
Attribute Monitoring section.
Location for monitoring attribute
Lab 5 Using Object Viewer 2-35
System Platform - Part 1
3. The Rename Tab dialog box is displayed. Enter Platform Info for the Tab Name field.
4. Click OK.
5. The tab is now labeled Platform Info.
2-36 Module 2 Application Infrastructure
Wonderware Training
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.
Note: You can sort the Attribute Name column by clicking the Attribute Name column heading.
Lab 5 Using Object Viewer 2-37
System Platform - Part 1
7. Repeat the previous step for the following attributes:
DiskSpaceFree
When prompted, enter 1 as the array index which represents 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.
2-38 Module 2 Application Infrastructure
Wonderware Training
9. Right-click in the new Watch List 1 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.
11. On the Object List (left section of Object Viewer) select the AppEngine object to display its
attributes.
Lab 5 Using Object Viewer 2-39
System Platform - Part 1
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. You can also multiple-
select by holding the Ctrl key and clicking each one.
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.
2-40 Module 2 Application Infrastructure
Wonderware Training
The Save As dialog box displays.
14. Navigate to the C:\Wonderware Training folder and enter My Watch Windows in the File
name field.
15. Click Save to save the watch list to the selected location.
Section 4 Connecting to the Field 2-41
System Platform - Part 1
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.
Introduction
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.
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.
Note: NetDDE, an older protocol previously used for communication over the network to
Wonderware and non-Wonderware sources, is strongly discouraged and has been phased out by
Microsoft. SuiteLink is the recommended communication protocol for use with Wonderware
sources.
Section Objectives
Become familiar with Device Integration Objects, I/O Server and Data Access Server
Overview of DI Objects
2-42 Module 2 Application Infrastructure
Wonderware Training
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 three-
part 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.
Section 4 Connecting to the Field 2-43
System Platform - Part 1
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 LaserJ et, 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.
2-44 Module 2 Application Infrastructure
Wonderware Training
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 TCP 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
Section 4 Connecting to the Field 2-45
System Platform - Part 1
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 user-
defined 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:
<obj ect name>. <t opi cname>. <i t emname>
OR
<obj ect name>. <t opi cname>. <at t r i but ename>
The <obj ect name>is the name that you choose to give to the DDESuiteLinkClient object.
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
2-46 Module 2 Application Infrastructure
Wonderware Training
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:
<obj ect name>. <I nTouchTagName>
The <obj ect name>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.
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 TCP OPC Server and another one to talk to the CIP
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,
Section 4 Connecting to the Field 2-47
System Platform - Part 1
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).
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.
Time and Quality Propagation
When a dynamic attribute is poked, the time stamp is updated to the timestamp passed in with the
value if available, or the current time provided by the hosting AppEngine is used. If the data
provider passes in a Value, Time, Quality (VTQ) triplet of data in the callback, the time stamp is
associated with the value and quality used to update the attribute.
Scan Mode
The scanning mode for the scan group, either ActiveOnDemand, Active, or ActiveAll. For the
ActiveOnDemand mode, attributes that are not actively being referenced by any client or object
are not scanned. For the Active mode, an attribute is always in the active scanning state. When
the last reference to the attribute is unregistered (unadvised), the attribute is deleted. For ActiveAll,
an attribute is always in the active scanning state, but when the last reference to the attribute is
unregistered (unadvised), the attribute is not deleted.
To enable Advanced Communication Management, you must:
Select Advanced Communication Management for your Galaxy.
2-48 Module 2 Application Infrastructure
Wonderware Training
Set the scan mode for each scan group that belongs to your device integration objects
within the Galaxy.
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 CIP and TCP 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
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
Section 4 Connecting to the Field 2-49
System Platform - Part 1
ModbusSerial 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.
2-50 Module 2 Application Infrastructure
Wonderware Training
Intentionally left blank
Lab 6 Connecting to the Field 2-51
System Platform - Part 1
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 simulates the functionality 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
2-52 Module 2 Application Infrastructure
Wonderware Training
Create the Device Integration object (page 2-53)
a. Derived a new template from the $DDESuiteLinkClient object, name it
$tDDESuiteLinkClient, and assign it to the Training template toolset.
b. Create an instance of the $tDDESuiteLinkClient template and name it InControl.
c. Configure the General tab of the new instance as follows:
Server node: <ask your instructor>
Server name: RTEngine
Communication protocol: SuiteLink
d. On the Topic tab, add a topic called tagname and import the InControl Items List.csv file
from the C:\Wonderware Training folder.
e. In Model view, assign the InControl instance to the ControlSystem area.
Deploy the Object (page 2-58)
f. In Deployment view, assign the InControl instance to the AppEngine object and deploy the
object.
Verify the Connection in Runtime (page 2-61)
g. Open Object Viewer from within the ArchestrA IDE.
h. Using the watch list created in Lab 5, create a new watch window called InControl and add
the following attribute references from the InControl instance:
ConnectionStatus
Reconnect
ServerNode
ServerName
CommunicationProtocol
ScanGroupList (enter 1 as the array index)
i. Save the watch list.
See the next page for Detailed Lab Instructions
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.
Lab 6 Connecting to the Field 2-53
System Platform - Part 1
Create the Device Integration object
1. Expand the Device Integration toolset.
2. In the Template Toolbox, create a derived template of the $DDESuiteLinkClient object by
right-clicking the $DDESuiteLinkClient template and selecting New / Derived Template.
3. Name the new template $tDDESuiteLinkClient.
4. Move the $tDDESuiteLinkClient object to your Training toolset.
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).
2-54 Module 2 Application Infrastructure
Wonderware Training
5. Using the Template Toolbox and the Model view, create an instance of the
$tDDESuiteLinkClient template. Name the new instance InControl.
Configure the Instance
6. Double-click on the InControl instance to open its configuration editor.
7. In the General tab, configure the object as follows:
Server node: <ask your instructor>. The following figure uses TRAININGPC as an
example.
Server name: RTEngine
Communication protocol: SuiteLink
Lab 6 Connecting to the Field 2-55
System Platform - Part 1
8. Select the Topic tab.
9. In the Available topics section, click the Add button , type tagname as the Topic name
and press the Enter key.
10. With the topic tagname selected, click the Import button in the Associated attributes
for tagname section.
The Open dialog box displays.
2-56 Module 2 Application Infrastructure
Wonderware Training
11. Navigate to the C:\Wonderware Training folder, select the InControl Items List.csv file.
12. Click the Open button.
Lab 6 Connecting to the Field 2-57
System Platform - Part 1
13. The content of the CSV file is loaded within the InControl object.
14. Click the Save and Close button and check in the object.
2-58 Module 2 Application Infrastructure
Wonderware Training
15. The Check In dialog box appears. Enter Initial configuration and setup in the Comment
field.
16. Click the OK button.
17. In the Model view, assign the InControl instance to the ControlSystem area.
Deploy the Object
18. Select the Deployment view.
19. Assign the InControl instance to the AppEngine object.
Lab 6 Connecting to the Field 2-59
System Platform - Part 1
20. Right-click the InControl instance and select Deploy.
21. The Deploy dialog box is displayed. By default the system will set the instance On Scan as
soon as the object is deployed.
22. Leave the default settings and click the OK button.
This will display a second Deploy dialog box indicating the deployment progress.
2-60 Module 2 Application Infrastructure
Wonderware Training
As soon as the process is complete, the Close button will enable.
23. Click the Close button to return to the ArchestrA IDE. The different views now display the
instance in its deployed state.
Lab 6 Connecting to the Field 2-61
System Platform - Part 1
Verify Connection in Runtime
24. In Model view, open Object Viewer by right-clicking the InControl instance and selecting
View in Object Viewer.
Note: If Object Viewer is already open and you switch to it without selecting the context menu
item View in Object Viewer, new instances may not display. Always select View in Object Viewer
in the context menu to refresh and reload of instances in Object Viewer.
25. The Object Viewer application opens to display the attributes of the selected object in the
right panel.
26. If you closed Object Viewer, open your watch list by right-clicking the Watch List (bottom
section of Object Viewer) and select Open to open the My Watch Windows file.
27. Right-click in the Watch List and select Add Watch Window to add a new tab to the watch
list.
28. Right-click in the Watch List and select Rename Tab to rename the default Watch List 1 tab.
29. The Rename Tab dialog box is displayed. Name the new tab InControl.
2-62 Module 2 Application Infrastructure
Wonderware Training
30. Click OK.
31. In 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. You may also click and drag
each attribute to the InControl watch list.
ConnectionStatus
CommunicationProtocol
Reconnect
ServerName
ServerNode
ScanGroupList (enter 1 as the array index)
Verify that the InControl.ConnectionStatus Value is Connected.
32. Right-click in the Watch List (bottom section of Object Viewer) and select Save to save the
watch list.
Module 3
Application Objects
Section 1 Templates and Instances 3-3
Section 2 The $UserDefined Object 3-9
Lab 7 Modeling the Heat Exchanger 3-11
Section 3 Change Control and Propagation 3-25
Lab 8 Configuring Change Control and Propagation 3-27
Section 4 The $AnalogDevice Object 3-35
Lab 9 Modeling a Meter 3-37
Section 5 The $DiscreteDevice Object 3-41
Lab 10 Modeling a Valve, Pump, and Motor 3-45
Section 6 Containment 3-61
Lab 11 Creating the Mixer 3-67
3-2 Module 3 Application Objects
Wonderware Training
Module Objectives
Be able to
Identify and work with templates
Derive and configure templates
Section 1 Templates and Instances 3-3
System Platform - Part 1
Section 1 Templates and Instances
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.
Section Objectives
This section:
Introduces you to the concept of templates and explain how to derive a template.
3-4 Module 3 Application Objects
Wonderware Training
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,
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.
Section 1 Templates and Instances 3-5
System Platform - Part 1
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.
3-6 Module 3 Application Objects
Wonderware Training
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.
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.
Section 1 Templates and Instances 3-7
System Platform - Part 1
Leveraging of Template Instances
To derive a Template from another one, do the following:
a. Select the Template in the ArchestrA IDE the new Template is to be derived from.
b. 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.
c. 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.
3-8 Module 3 Application Objects
Wonderware Training
Intentionally left blank
Section 2 The $UserDefined Object 3-9
System Platform - Part 1
Section 2 The $UserDefined Object
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
Section Objectives
This section:
Introduces you to the $UserDefined object and its functionality.
3-10 Module 3 Application Objects
Wonderware Training
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 as a template, or as a container.
As a template
Use the UserDefined object 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:
I F me. XV100a == " Open" AND me. XV100b == " Open" THEN
me. Val ueOpenAl ar m= t r ue;
ELSE
me. Val ueOpenAl ar m= f al se;
ENDI F;
As a container
Use the UserDefined object 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.
Lab 7 Modeling the Heat Exchanger 3-11
System Platform - Part 1
Lab 7 Modeling the 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 will be able to:
Configure and use object templates to create instances that will inherit configurations
Use the Field Attributes functionality provided by the $UserDefined object
Use the Galaxy Browser to build references to instance attributes within the Galaxy
3-12 Module 3 Application Objects
Wonderware Training
Create the Heat Exchanger Template (page 3-13)
a. Derived a new template from the $UserDefined object, name it $HeatEx, and assign it to the
Training template toolset.
b. Add to the $HeatEx template four analog field attributes named T1, T2, T3 and T4. Configure
each field attribute as follows:
Create a Heat Exchanger Instance (page 3-17)
c. Create an instance of the $HeatEx template (leave the default name) and assign it to the
Intake area.
d. Configure the Input source of each one of the four field attribute references, where XX is your
student number:
Deploy the object (page 3-20)
e. Deploy the object.
View the Heat Exchanger Data in Runtime (page 3-23)
f. Open Object Viewer from within the ArchestrA IDE.
g. Using the watch list created in Lab 5, add a new watch window named HeatEx with the
following attributes from the HeatEx_001 instance:
T1
T2
T3
T4
h. Save the watch list.
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.
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
Field Attribute Instance Attribute Name
T1 InControl tagname.HE1XX_TC1
T2 InControl tagname.HE1XX_TC2
T3 InControl tagname.HE1XX_TC3
T4 InControl tagname.HE1XX_TC4
Lab 7 Modeling the Heat Exchanger 3-13
System Platform - Part 1
See the next page for Detailed Lab Instructions
Create the Heat Exchanger Template
1. In the Template Toolbox, locate the Application toolset.
2. Create a derived template of the $UserDefined object by right-clicking the $UserDefined
template and selecting New / Derived Template.
3. A new template is created. Name it $HeatEx.
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).
3-14 Module 3 Application Objects
Wonderware Training
4. Move the $HeatEx object to your Training template toolset.
5. Double-click on the $HeatEx template to open its configuration editor.
Lab 7 Modeling the Heat Exchanger 3-15
System Platform - Part 1
6. In the Field Attributes tab, click on the Add Analog button to add a new analog field
attribute.
7. 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
3-16 Module 3 Application Objects
Wonderware Training
8. Repeat steps 5 and 6 to add three more field attributes, using the same configuration as T1.
Name the attributes T2, T3 and T4.
9. Click the Save and Close button to check in the object.
10. The Check In dialog box appears. Enter Initial configuration and setup in the Comment
field.
11. Click OK.
12. Click the Close button.
Lab 7 Modeling the Heat Exchanger 3-17
System Platform - Part 1
Create a Heat Exchanger Instance
13. Using the Template Toolbox and the Model view, create an instance of the $HeatEx
template using the default name of HeatEx_001.
14. Assign the instance to the Intake area.
15. Double-click on the HeatEx_001 instance to open its configuration editor.
16. In the Inherited field attributes section, select the T1 attribute.
3-18 Module 3 Application Objects
Wonderware Training
17. In the I/O section, click on the Input source ellipsis button to assign a reference using the
Galaxy Browser.
18. The Galaxy Browser window appears.
19. In the Instances panel (left) select the InControl object.
20. In the InControl panel (right) select tagname.HE1XX_TC1 where XX is your student number.
In this example, the student number is 00.
Lab 7 Modeling the Heat Exchanger 3-19
System Platform - Part 1
21. Click OK.
The Input source attribute contains the selected reference:
22. Repeat steps 16 through 21 to configure the Input source for attributes T2, T3 and T4 using
the tagname.HE1XX_TC2, tagname.HE1XX_TC3 and tagname.HE1XX_TC4 attributes.
23. Click the Save and Close button .
24. The Check In dialog box appears. Enter Initial configuration and setup in the Comment
field.
25. Click OK.
3-20 Module 3 Application Objects
Wonderware Training
Deploy the Object
Notice that the HeatEx_001 instance icon includes a orange square. This indicates the object is
not deployed.
26. Select the Deployment view, right-click the HeatEx_001 instance and select Deploy.
Lab 7 Modeling the Heat Exchanger 3-21
System Platform - Part 1
The Deploy dialog box appears. By default the system will set the instance On Scan as soon as
the object is deployed.
27. Click OK to accept the default settings.
A second Deploy dialog box appears indicating the object deployment progress.
28. Click Close when the deployment is complete.
3-22 Module 3 Application Objects
Wonderware Training
Notice that the HeatEx_001 icon changes (the orange box is removed) to indicate its successful
deployment:
Lab 7 Modeling the Heat Exchanger 3-23
System Platform - Part 1
View the Heat Exchanger Data in Runtime
29. Right-click the HeatEx_001 instance and select View in Object Viewer to show the
HeatEx_001 object and its attributes in Object Viewer.
30. The Object Viewer application opens displaying the attributes of the selected object. If you
closed Object Viewer, click File / Load Watch List to open the watch list file you saved earlier.
31. 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.
32. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the default Watch List 1 tab.
The Rename Tab dialog box is displayed.
33. Enter HeatEx for the Tab Name field and click OK.
3-24 Module 3 Application Objects
Wonderware Training
34. In 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
You will observe the attribute values changing in real time. The Quality attribute should reflect
Good data.
35. Right-click in the Watch List (bottom section of Object Viewer) and select Save to save the
watch list.
Section 3 Change Control and Propagation 3-25
System Platform - Part 1
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.
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
Section Objectives
Introduce the concept of attribute locking, and
Explain how locking attributes can propagate to previously derived instances.
3-26 Module 3 Application Objects
Wonderware Training
To lock a Template attribute, do the following:
a. Select the desired Template in the ArchestrA IDE and start its editor.
b. Enter a value in an attribute field in the objects editor.
c. 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.
d. 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:
a. Select the desired Template in the ArchestrA IDE and start its editor.
b. 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.
c. 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.
Lab 8 Configuring Change Control and Propagation 3-27
System Platform - Part 1
Lab 8 Configuring 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 will 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
3-28 Module 3 Application Objects
Wonderware Training
Lock the Attributes (page 3-29)
a. In the $HeatEx template, modify the configuration of the four field attributes as follows:
Verify the Changes to the Existing Instance (page 3-31)
b. Open the configuration editor for the HeatEx_001 instance to verify the changes made in the
template.
Redeploy the Object (page 3-32)
c. Redeploy the object.
See the next page for Detailed Lab Instructions
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.
Engineering units: Celsius and locked
Scaling section: locked
Lab 8 Configuring Change Control and Propagation 3-29
System Platform - Part 1
Lock the Attributes
1. In the Training template toolset, double-click on the $HeatEx template to open its
configuration editor.
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).
3-30 Module 3 Application Objects
Wonderware Training
2. In the Field attributes section, select the T1 attribute and change the configuration as follows:
Engineering units: Celsius and locked
Scaling section: locked
Note: You may need to expand the Enable I/O scaling section. Click the button to expand the
section.
3. Repeat step 2 for field attributes T2, T3 and T4.
4. Click the Save and Close button and check in the object.
Lab 8 Configuring Change Control and Propagation 3-31
System Platform - Part 1
The icon in front of the existing HeatEX_001 instance indicates that a change has been made to
its configuration since it was last deployed.
Verify the Changes to the Existing Instance
5. Double-click the HeatEx_001 instance to open its configuration editor and verify the changes.
6. Select the T1 field attribute and expand the Enable I/O scaling section and verify the
changes.
3-32 Module 3 Application Objects
Wonderware Training
7. Save and Close the editor.
Redeploy the Object
Notice that the HeatEx_001 instance icon has changed; a square that is shaded with a black
triangular shape has been added to indicate the object configuration has changed in the deployed
object, but the change is not deployed.
8. Select the Deployment view, right-click the HeatEx_001 instance and select Deploy.
The Deploy dialog box appears. Notice by default Deploy Changes is selected, indicating only
the objects with changes will be deployed.
9. Leave the default settings and click OK.
Lab 8 Configuring Change Control and Propagation 3-33
System Platform - Part 1
A second Deploy dialog box appears indicating the progress on deploying the object. As soon as
the process is complete, the Close button will enable.
10. Click Close.
3-34 Module 3 Application Objects
Wonderware Training
Intentionally left blank
Section 4 The $AnalogDevice Object 3-35
System Platform - Part 1
Section 4 The $AnalogDevice Object
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.
Section Objectives
This section:
Introduces you to the concept of the $AnalogDevice object and its functionality.
3-36 Module 3 Application Objects
Wonderware Training
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.
Lab 9 Modeling a Meter 3-37
System Platform - Part 1
Lab 9 Modeling a 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 will be able to:
Configure an $AnalogDevice object
3-38 Module 3 Application Objects
Wonderware Training
Create the Meter Template (page 3-39)
a. Derived a new template from the $AnalogDevice object, name it $Meter, and assign it to the
Training template toolset.
b. Configure the object as follows:
See the next page for Detailed Lab Instructions
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.
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)
Lab 9 Modeling a Meter 3-39
System Platform - Part 1
Create the Meter Template
1. In the Application template toolset, right-click the $AnalogDevice template and select New /
Derived Template to create a derived template of the $AnalogDevice object.
2. Name the new template $Meter and move it to the Training template toolset.
3. Double-click the new $Meter template to open its configuration editor.
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).
3-40 Module 3 Application Objects
Wonderware Training
4. Configure the General tab as follows:
5. Click the Save and Close button and check in the object.
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)
Section 5 The $DiscreteDevice Object 3-41
System Platform - Part 1
Section 5 The $DiscreteDevice Object
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.
Section Objectives
This section:
Introduces you to the concept of the $DiscreteDevice object and its functionality.
3-42 Module 3 Application Objects
Wonderware Training
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
0 0 Transition
0 1 Closed
1 0 Opened
1 1 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.
Section 5 The $DiscreteDevice Object 3-43
System Platform - Part 1
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.
3-44 Module 3 Application Objects
Wonderware Training
Intentionally left blank
Lab 10 Modeling a Valve, Pump, and Motor 3-45
System Platform - Part 1
Lab 10 Modeling a 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 will be able to:
Configure a $DiscreteDevice object
3-46 Module 3 Application Objects
Wonderware Training
Create the Valve Template (page 3-49)
a. Derive a new template from the $DiscreteDevice object, name it $Valve, and assign it to the
Training template toolset.
b. Configure the objects General tab as follows:
c. Configure the objects States tab as follows:
d. Configure the objects Inputs tab as follows:
e. Configure the objects Outputs tab as follows:
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.
Enable inputs: Checked (locked)
Enable outputs: Checked (locked)
Enable second active state: Unchecked (locked)
Enable transition state: Checked (locked)
State names: (locked)
Passive state: Closed
First Active state: Open
Transition state: Traveling
Fault state: Fault
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: Open
1 0: Closed
1 1: Fault
PV override: (locked)
Number of outputs: 1 (locked)
Output Name: (locked)
Output 1 Output Name: CmdOpen
Closed: Unchecked (locked)
Open: Checked (locked)
Initial control mode: Manual (locked)
Control tracking: (locked)
Lab 10 Modeling a Valve, Pump, and Motor 3-47
System Platform - Part 1
Create the Pump Template (page 3-52)
f. Derived a new template from the $DiscreteDevice object, name it $Pump, and assign it to the
Training template toolset.
g. Configure the objects General tab as follows:
h. Configure the objects States tab as follows:
i. Configure the objects Inputs tab as follows:
j. Configure the objects Outputs tab as follows:
Enable inputs: Checked (locked)
Enable outputs: Checked (locked)
Enable second active state: Unchecked (locked)
Enable transition state: Unchecked (locked)
State names: (locked)
Passive state: Stopped
First Active state: Running
Fault state: Fault
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)
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)
3-48 Module 3 Application Objects
Wonderware Training
Create the Motor Template (page 3-57)
k. Derived a new template from the $DiscreteDevice object, name it $Motor, and assign it to the
Training template toolset.
l. Configure the objects General tab as follows:
m. Configure the objects States tab as follows:
n. Configure the objects Inputs tab as follows:
o. Configure the objects Outputs tab as follows:
See the next page for Detailed Lab Instructions
Enable inputs: Checked (locked)
Enable outputs: Checked (locked)
Enable second active state: Unchecked (locked)
Enable transition state: Unchecked (locked)
State names: (locked)
Passive state: Stopped
First Active state: Running
Fault state: Fault
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)
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)
Lab 10 Modeling a Valve, Pump, and Motor 3-49
System Platform - Part 1
Create the Valve Template
1. Locate the Application toolset in the Template Toolbox.
2. Right-click the $DiscreteDevice template and select New / Derived Template to create a
derived template of the $DiscreteDevice object.
3. Name the new template $Valve and move it to the Training template toolset.
4. Double-click the $Valve template to open its configuration editor.
5. Configure the General tab as follows:
Enable inputs: Checked (locked)
Enable outputs: Checked (locked)
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).
3-50 Module 3 Application Objects
Wonderware Training
6. 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: Open
Transition state: Traveling
Fault state: Fault
Lab 10 Modeling a Valve, Pump, and Motor 3-51
System Platform - Part 1
7. 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: Open
1 0: Closed
1 1: Fault
PV override: (locked)
3-52 Module 3 Application Objects
Wonderware Training
8. Configure the Outputs tab as follows:
9. Click the Save and Close button and check in the object.
Create the Pump Template
10. Right-click the $DiscreteDevice template in the Template Toolbox and select New / Derived
Template to create a derived template of the $DiscreteDevice object.
Number of outputs: 1 (locked)
Output Name: (locked)
Output 1 Output Name: CmdOpen
Closed: Unchecked (locked)
Open: Checked (locked)
Initial control mode: Manual (locked)
Control tracking: (locked)
Lab 10 Modeling a Valve, Pump, and Motor 3-53
System Platform - Part 1
11. Name the new template $Pump and move it to the Training template toolset.
12. Double-click on the $Pump template to open its configuration editor.
13. Configure the General tab as follows:
Enable inputs: Checked (locked)
Enable outputs: Checked (locked)
3-54 Module 3 Application Objects
Wonderware Training
14. 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
Lab 10 Modeling a Valve, Pump, and Motor 3-55
System Platform - Part 1
15. 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)
3-56 Module 3 Application Objects
Wonderware Training
16. Configure the Outputs tab as follows:
17. Click the Save and Close button and check in the object.
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)
Lab 10 Modeling a Valve, Pump, and Motor 3-57
System Platform - Part 1
Create the Motor Template
18. Right-click the $DiscreteDevice template in the Template Toolbox and select New / Derived
Template to create a derived template of the $DiscreteDevice object.
19. Name the new template $Motor and move it to the Training template toolset.
20. Double-click on the $Motor template to open its configuration editor.
21. Configure the General tab as follows:
Enable inputs: Checked (locked)
Enable outputs: Checked (locked)
3-58 Module 3 Application Objects
Wonderware Training
22. 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
Lab 10 Modeling a Valve, Pump, and Motor 3-59
System Platform - Part 1
23. 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)
3-60 Module 3 Application Objects
Wonderware Training
24. Configure the Outputs tab as follows:
25. Click the Save and Close button and check in the $Motor template.
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)
Section 6 Containment 3-61
System Platform - Part 1
Section 6 Containment
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
Section Objectives
This section illustrates the concept of containment and how it works with Application Objects and
Templates.
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".
3-62 Module 3 Application Objects
Wonderware Training
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.
Section 6 Containment 3-63
System Platform - Part 1
An example of a containment hierarchy is a tank that contains the following objects:
Inlet Valve
Agitator
Outlet Valve
Level
3-64 Module 3 Application Objects
Wonderware Training
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
Section 6 Containment 3-65
System Platform - Part 1
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.
3-66 Module 3 Application Objects
Wonderware Training
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.
Lab 11 Creating the Mixer 3-67
System Platform - Part 1
Lab 11 Creating the 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 will be able to:
Create and configure a containment relationship between objects.
3-68 Module 3 Application Objects
Wonderware Training
Create the Mixer Template (page 3-71)
a. Derived a new template from the $UserDefined object, name it $Mixer, and assign it to the
Training template toolset.
Create the Mixers Valves Templates (page 3-71)
b. Derived three new templates from the $Valve object, name them $Inlet1, $Inlet2 and $Outlet,
and assign them to the $Mixer template.
Create the Mixers Pumps and Agitator templates (page 3-77)
c. Derived two new templates from the $Pump object, name them $Pump1 and $Pump2, and
assign them to the $Mixer template.
d. Derived a new template from the $Motor object, name it $Agitator, and assign it to the
$Mixer template.
Create the Level and Temperature Meter Templates (page 3-73)
e. Derived a new template from the $Meter object, name it $LIT, and assign it to the $Mixer
template. Configure the object as follows:
f. Derived a new template from the $Meter object, name it $TT, and assign it to the $Mixer
template. Configure the object as follows:
Create a Mixer Instance (page 3-77)
g. Create an instance of the $Mixer template (leave the default name) and assign it to the Line1
area.
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.
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)
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)
Lab 11 Creating the Mixer 3-69
System Platform - Part 1
h. Configure the input and output references for the contained objects as follows
where XX is your student number.
:
i. Deploy the object.
For Agitator_001
AuxContact.InputSource: InControl. tagname.T1XX_AG_AuxContact
CmdStart.OutputDestination: InControl tagname.T1XX_AG_CmdStart
For Inlet1_001
CLS.InputSource: InControl tagname.T1XX_IV1_CLS
OLS.InputSource: InControl tagname.T1XX_IV1_OLS
CmdOpen.OutputDestination: InControl tagname.T1XX_IV1_CmdOpen
For Inlet2_001
CLS.InputSource: InControl tagname.T1XX_IV2_CLS
OLS.InputSource: InControl tagname.T1XX_IV2_OLS
CmdOpen.OutputDestination: InControl tagname.T1XX_IV2_CmdOpen
For LIT_001
PV.Input.InputSource: InControl tagname.T1XX_LT_PV
For Outlet_001
CLS.InputSource: InControl tagname.T1XX_OV_CLS
OLS.InputSource: InControl tagname.T1XX_OV_OLS
CmdOpen.OutputDestination: InControl tagname.T1XX_OV_CmdOpen
For Pump1_001
FlowSwitch.InputSource: InControl tagname.T1XX_TP1_FlowSwitch
CmdStart.OutputDestination: InControl tagname.T1XX_TP1_CmdStart
For Pump2_001
FlowSwitch.InputSource: InControl tagname.T1XX_TP2_FlowSwitch
CmdStart.OutputDestination: InControl tagname.T1XX_TP2_CmdStart
For TT_001
PV.Input.InputSource: InControl tagname.T1XX_TT_PV
3-70 Module 3 Application Objects
Wonderware Training
View the Mixer Data in Runtime (page 3-93)
j. Open Object Viewer from within the ArchestrA IDE and, using the watch list created
previously, add a new watch window called Mixer and add the following attribute references:
k. Save the watch list.
See the next page for Detailed Lab Instructions
Object Attribute
Agitator_001 Cmd
PV
Inlet1_001 Cmd
PV
Inlet2_001 Cmd
PV
LIT_001 PV
Outlet_001 Cmd
PV
Pump1_001 Cmd
PV
Pump2_001 Cmd
PV
TT_001 PV
Lab 11 Creating the Mixer 3-71
System Platform - Part 1
Create the Mixer Template
1. Locate the Application toolset in the Template Toolbox.
2. Right-click the $UserDefined object and select New / Derived Template to create a derived
template of the $UserDefined object.
3. Name the new template $Mixer and move it to the Training template toolset.
Create the Mixers Valves Templates
4. Right-click the $Valve object in the Training template toolset and select New / Derived
Template to create a derived template of the $Valve object.
5. Name the new template $Inlet1.
6. Move $Inlet1 to the $Mixer template to contain it within the $Mixer object.
Notice the $ in $Inlet1 is automatically removed, indicating it is a template contained within
another template.
7. Right-click the $Valve object in the Training template toolset and select New / Derived
Template to create a derived template of the $Valve 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).
3-72 Module 3 Application Objects
Wonderware Training
8. Name the new template $Inlet2.
9. Move $Inlet2 to the $Mixer template to contain it within the $Mixer object.
10. Create a new derived template of the $Valve object and name it $Outlet.
11. Move $Outlet to the $Mixer template to contain it within the $Mixer object.
The Training template toolbox should now look like the following:
Create the Mixers Pumps and Agitator templates
12. Derive the following templates from the $Pump object, containing them within the $Mixer
object:
Pump1
Pump2
The Training template toolbox should now look like the following:
13. Derive the following template from the $Motor object, containing it within the $Mixer object:
Agitator
Lab 11 Creating the Mixer 3-73
System Platform - Part 1
The Training template toolbox should now look like the following:
Create the Level and Temperature Meter Templates
14. Derive the following template from the $Meter object, containing it within the $Mixer object:
LIT
The Training template toolbox should now look like the following:
15. Double-click the $Mixer.LIT template to open its configuration editor.
3-74 Module 3 Application Objects
Wonderware Training
16. Configure the General tab as follows:
17. Click the Save and Close button and check in the object.
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)
Lab 11 Creating the Mixer 3-75
System Platform - Part 1
18. Derive the following template from the $Meter object, containing it within the $Mixer object:
TT
19. Double-click the $Mixer.TT template to open its configuration editor.
3-76 Module 3 Application Objects
Wonderware Training
20. Configure the General tab as follows:
21. Click the Save and Close button and check in the object.
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)
Lab 11 Creating the Mixer 3-77
System Platform - Part 1
Create a Mixer Instance
22. Using the Template Toolbox and the Model view, create an instance of the $Mixer template
using the default name of Mixer_001.
23. Assign the instance to the Line1 area.
3-78 Module 3 Application Objects
Wonderware Training
Configure the Agitator
24. Double-click the Agitator_001 instance.
The Agitator_001 configuration editor appears.
25. Select the Inputs tab.
26. Click the ellipses button after Input Source Reference.
Lab 11 Creating the Mixer 3-79
System Platform - Part 1
27. From the InControl Instance, select the tagname.T1XX_AG_AuxContact attribute, where
XX is your student number.
00 is used in the following examples.
28. Click OK.
29. Select the Outputs tab.
30. Click the ellipsis to configure the Output Destination Reference.
31. From the InControl Instance, select the tagname.T1XX_AG_CmdStart attribute, where XX is
your student number.
32. Click OK.
3-80 Module 3 Application Objects
Wonderware Training
The attribute reference appears in the Output Destination Reference:
33. Click the Save and Close button and check in the object.
Lab 11 Creating the Mixer 3-81
System Platform - Part 1
Configure Inlet1
34. Double-click the Inlet1_001 instance to open its configuration editor.
35. Select the Inputs tab and configure the Input Source Reference as follows, where XX is your
student number.
Input Name Instance Attribute
Input 2: CLS InControl tagname.T1XX_IV1_CLS
Input 1: OLS InControl tagname.T1XX_IV1_OLS
3-82 Module 3 Application Objects
Wonderware Training
36. Select the Outputs tab and configure the Output Destination Reference as follows, where
XX is your student number.
37. Click the Save and Close button and check in the object.
Output Name Instance Attribute
Output 1: CmdOpen InControl tagname.T1XX_IV1_CmdOpen
Lab 11 Creating the Mixer 3-83
System Platform - Part 1
Configure Inlet2
38. Double-click on the Inlet2_001 instance to open its configuration editor.
39. Select the Inputs tab and configure the Input Source Reference as follows, where XX is your
student number.
Input Name Instance Attribute
Input 2 : CLS InControl tagname.T1XX_IV2_CLS
Input 1: OLS InControl tagname.T1XX_IV2_OLS
3-84 Module 3 Application Objects
Wonderware Training
40. Select the Outputs tab and configure the Output Destination Reference as follows, where
XX is your student number.
41. Click the Save and Close button and check in the object.
Output Name Instance Attribute
Output 1: CmdOpen InControl tagname.T1XX_IV2_CmdOpen
Lab 11 Creating the Mixer 3-85
System Platform - Part 1
Configure LIT
42. Double-click the LIT_001 instance to open its configuration editor.
43. Select the I/O tab and configure the PV input source as follows, where XX is your student
number.
44. Click the Save and Close button and check in the object.
Instance Attribute
InControl tagname.T1XX_LT_PV
3-86 Module 3 Application Objects
Wonderware Training
Configure Outlet
45. Double-click on the Outlet_001 instance to open its configuration editor.
46. Select the Inputs tab and configure the Input Source Reference as follows, where XX is your
student number.
Input Name Instance Attribute
Input 2: CLS InControl tagname.T1XX_OV_CLS
Input 1: OLS InControl tagname.T1XX_OV_OLS
Lab 11 Creating the Mixer 3-87
System Platform - Part 1
47. Select the Outputs tab and configure the Output Destination Reference as follows, where
XX is your student number.
48. Click the Save and Close button and check in the object.
Output Name Instance Attribute
Output 1: CmdOpen InControl tagname.T1XX_OV_CmdOpen
3-88 Module 3 Application Objects
Wonderware Training
Configure Pump1
49. Double-click on the Pump1_001 instance to open its configuration editor.
50. Select the Inputs tab and configure the Input Source Reference as follows, where XX is your
student number.
Input Name Instance Attribute
Input 1: FlowSwitch InControl tagname.T1XX_TP1_FlowSwitch
Lab 11 Creating the Mixer 3-89
System Platform - Part 1
51. Select the Outputs tab and configure the Output Destination Reference as follows, where
XX is your student number.
52. Click the Save and Close button and check in the object.
Output Name Instance Attribute
Output 1: CmdStart InControl tagname.T1XX_TP1_CmdStart
3-90 Module 3 Application Objects
Wonderware Training
Configure Pump2
53. Double-click on the Pump2_001 instance to open its configuration editor.
54. Select the Inputs tab and configure the Input Source Reference as follows, where XX is your
student number.
Input Name Instance Attribute
Input 1: FlowSwitch InControl tagname.T1XX_TP2_FlowSwitch
Lab 11 Creating the Mixer 3-91
System Platform - Part 1
55. Select the Outputs tab and configure the Output Destination Reference as follows, where
XX is your student number.
56. Click the Save and Close button and check in the object.
Output Name Instance Attribute
Output 1: CmdStart InControl tagname.T1XX_TP2_CmdStart
3-92 Module 3 Application Objects
Wonderware Training
Configure TT
57. Double-click on the TT_001 instance to open its configuration editor.
58. Select the I/O tab and configure the PV input source as follows, where XX is your student
number.
59. Click the Save and Close button and check in the object.
Deploy the Object
60. Select the Deployment view, right-click the Mixer_001 instance and select Deploy.
The Deploy dialog box displays. By default the system will Cascade Deploy 9 objects in the
containment relationships and set all instances On Scan as soon as the objects are deployed.
61. Leave the default settings and click OK.
Instance Attribute
InControl tagname.T1XX_TT_PV
Lab 11 Creating the Mixer 3-93
System Platform - Part 1
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.
62. Click Close.
View the Mixer Data in Runtime
63. Right-click on the Mixer_001 instance and select View in Object Viewer. If you closed Object
Viewer before, you can use File / Load Watch List to open the file you saved earlier.
64. 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.
65. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the watch list to Mixer.
3-94 Module 3 Application Objects
Wonderware Training
66. 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 right-
clicking on each attribute and selecting Add to Watch:
Object List Attribute List
Agitator_001 Cmd
PV
Inlet1_001 Cmd
PV
Inlet2_001 Cmd
PV
LIT_001 PV
Outlet_001 Cmd
PV
Pump1_001 Cmd
PV
Pump2_001 Cmd
PV
TT_001 PV
Lab 11 Creating the Mixer 3-95
System Platform - Part 1
67. Right-click in the Watch List (bottom section of Object Viewer) and select Save to save the
watch list.
3-96 Module 3 Application Objects
Wonderware Training
Intentionally left blank
Module 4
Extending the Objects
Section 1 UDAs 4-3
Section 2 Extensions 4-7
Lab 12 Configuring the Motor Speed 4-11
Section 3 Introduction to QuickScript .NET 4-21
Lab 13 Adding Auto Reconnect to DDESuiteLinkClient 4-43
Lab 14 Configuring Automatic Reference 4-51
4-2 Module 4 Extending the Objects
Wonderware Training
Module Objectives
Be able to work with extending the objects and configuring them for additional
functionality.
Section 1 UDAs 4-3
System Platform - Part 1
Section 1 UDAs
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.
Section Objective
This section introduces and explains UDAs and how they are configured and used.
4-4 Module 4 Extending the Objects
Wonderware Training
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.
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.
Data Type Group
UDAs Name List
Inherited UDAs
Name List
Section 1 UDAs 4-5
System Platform - Part 1
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.
4-6 Module 4 Extending the Objects
Wonderware Training
Intentionally left blank
Section 2 Extensions 4-7
System Platform - Part 1
Section 2 Extensions
This section provides describes the Output Functionality for Application Objects in the Extensions
environment.
Extensions
The Extensions page is comprised of seven main functional areas, described next.
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
Section Objective
This section describes the Output Functionality for Application Objects in the Extensions
environment.
Extendable Attributes list
InputOutput
Extension Group
Input
Extension Group
Alarm
Extension Group
Output
Extension Group
Boolean Label
Extension Group
History
Extension Group
4-8 Module 4 Extending the Objects
Wonderware Training
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.
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,
Section 2 Extensions 4-9
System Platform - Part 1
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.
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. For Boolean Extensions,
9. 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.
10. Set the security classification for the attribute if available. See "Security Icons" in "Working
with Object Editors" for more information.
11. 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.
4-10 Module 4 Extending the Objects
Wonderware Training
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.
In other words, for Boolean data types and User sets, the following examples apply:
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.
Previous Scan Cycle
Value Sent
Scan Cycle Set
Requests
Value to be Sent Next Value to be Sent
0 1,0,0,1,1 1 none
1 1,0,0,1,1 0 1
0 1,1,0,0 1 0
1 1,1,0,0 0 none
Lab 12 Configuring the Motor Speed 4-11
System Platform - Part 1
Lab 12 Configuring the 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 $Motor 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 will be able to:
Add and configure UDAs to your objects
Extend attributes with input and output functionality
4-12 Module 4 Extending the Objects
Wonderware Training
Add and Extend the UDAs (page 4-13)
a. Add two Float UDAs to the $Motor template: one Object writeable named Speed, and
another one User writeable named SpeedSP.
b. Extend the Speed attribute with an Input extension and configure its Source as ---.---.
c. 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 (page 4-17)
d. Configure the newly added UDAs in the Agitator_001 object as follows:
Where XX is your student number.
View the Agitator Speed Data in Runtime (page 4-18)
e. Deploy the object and open Object Viewer from within the ArchestrA IDE.
f. Using the watch list created in Lab 5, add a new watch window named Extensions with the
following attributes from the Agitator_001 instance:
PV
Cmd
Speed
SpeedSP
g. Set the SpeedSP attribute to any valid float value to test it.
h. Save the watch list.
See the next page for Detailed Lab Instructions
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.
Extendable Attribute Instance Attribute
Speed.InputSource InControl tagname.T1XX_AG_Speed
SpeedSP.InputSource InControl tagname.T1XX_AG_SpeedSP
Lab 12 Configuring the Motor Speed 4-13
System Platform - Part 1
Add and Extend the UDAs
1. Double-click the $Motor template to open its configuration editor.
2. Select the UDAs tab.
3. Click the button to add a UDA to the object.
4. Name the UDA Speed and press Enter.
5. Configure the Speed UDA as follows:
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).
Data type: Float
Category: Object writeable
4-14 Module 4 Extending the Objects
Wonderware Training
6. Click the button to add another UDA named SpeedSP to the object and configure it as
follows:
7. Select the Extensions tab.
8. Select the Speed attribute.
Data type: Float
Category: User writeable
Lab 12 Configuring the Motor Speed 4-15
System Platform - Part 1
9. Configure the Speed Attribute Input extension as follows, where XX is your student number.
00 is used in the following examples.
Input extension: checked
Source: ---.---
Ensure the Speed Attribute is selected before
configuring Input extension.
4-16 Module 4 Extending the Objects
Wonderware Training
10. Select the SpeedSP attribute.
11. Configure the SpeedSP Attribute Input extension as follows, where XX is your student
number. 00 is used in the following examples.
12. Click the Save and Close button and check in the object.
InputOutput extension: checked
Source: ---.---
Output destination differs
from input source:
unchecked (locked)
Ensure the SpeedSP Attribute is selected before
configuring Input extension.
Lab 12 Configuring the Motor Speed 4-17
System Platform - Part 1
Configure the Agitator Instance
13. Double-click on the Agitator_001 instance to open its configuration editor.
14. Select the Extensions tab.
15. Select the Speed attribute.
16. Configure the Speed Attribute Input extension as follows, where XX is your student number.
00 is used in the following examples.
Instance Attribute
InControl tagname.T1XX_AG_Speed
Ensure the Speed Attribute is selected before
configuring Input extension.
4-18 Module 4 Extending the Objects
Wonderware Training
17. Select the SpeedSP attribute
18. Configure the InputOutput extension for the SpeedSP attribute as follows, where XX is your
student number.
19. Click the Save and Close button and check in the object.
View the Agitator Speed Data in Runtime
20. Deploy the Agitator_001 object, using the default settings in the Deploy window.
21. 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.
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.
Instance Attribute
InControl tagname.T1XX_AG_SpeedSP
Ensure the SpeedSP Attribute is selected before
configuring Input extension.
Lab 12 Configuring the Motor Speed 4-19
System Platform - Part 1
23. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the watch list to Extensions.
24. Add the following Agitator_001 attributes to the watch list:
Cmd
PV
Speed
SpeedSP
25. Double-click the SpeedSP attribute to open the Modify Numeric Value window.
26. Set the SpeedSP attribute to any valid float value. In this example, 50 is used.
27. Click OK.
When the Agitator_001 is running the Speed attribute will indicate the actual speed of the motor
around the SpeedSP (speed setpoint).
28. Save the watch list.
4-20 Module 4 Extending the Objects
Wonderware Training
Intentionally left blank
Section 3 Introduction to QuickScript .NET 4-21
System Platform - Part 1
Section 3 Introduction to QuickScript .NET
This section introduces and explains the scripting environment and the various scripting
configuration attributes of the ApplicationObject.
Section Objective
This section introduces and explains the scripting environment and the various scripting
configuration attributes of the ApplicationObject.
4-22 Module 4 Extending the Objects
Wonderware Training
Scripts Page
The Scripts page has six areas.
Section 3 Introduction to QuickScript .NET 4-23
System Platform - Part 1
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.
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.
Configure Execution Order: Sets the execution order of multiple scripts (inherited and
local) associated with this object.
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.
Scripts area: In this area you can write the body of the script and perform additional script
configuration.
Execution type: Select Startup, OnScan, OffScan, Shutdown, or Execute.
Basics area: Provides a location to set the expression, triggering conditions, and
other settings that run the script in the run-time environment. The Basics area shows
only when an Execution type of Execute is selected.
Script Editor box: Shows the script you are writing.
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 off-
engine 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.
Similar to browsing for script functions, the user can also browse for .NET / COM objects that have
been imported using the ArchestrA IDE.
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.
4-24 Module 4 Extending the Objects
Wonderware Training
Script Execution Types
A script is added to an Object (template or instance) using the ArchestrA IDE. The script related
information is edited via the script editor. The editor exposes five script types:
Startup
Called when the object is loaded into memory (deployment, platform or engine start). This script
method is intended to be used to instantiate COM objects and .NET objects. Depending on load
and other factors, it may be possible that sets to object attributes from this script method may fail.
Attributes that reside off-object are not available to this script method. Therefore it is not
recommended to use this script method for any scripting beyond its intended use.
OnScan
Called the first time an AppEngine calls this object to execute after the object scan state is
changed to OnScan. This script method is intended to be used to initiate local object attribute
values, or to provide more flexibility in the creation of .NET or COM objects. Attributes that are off-
engine are not available to this script method. It is not recommended to use this script method for
any scripting beyond its intended use.
Execute
Called every time the AppEngine performs a scan and the object is OnScan.
The execute script method is the workhorse of the scripting methods. This is the place that runtime
scripting should be done to ensure that all attributes and values are available to the script. This
script method in analogous to the InTouch scripts with the following conditional trigger types:
On True: Executes if the expression validates from a false on one scan to a true on the
next scan.
On False: Executes if the expression validates from a true on one scan to a false on the
next scan.
While True: Executes scan to scan as long as the expression validates as true at the
beginning of the scan.,
While False: Executes scan to scan as long as the expression validates as false at the
beginning of the scan. ,
Periodic: Executes whenever the elapsed time evaluates as true.
Data Change: Executes when there is a change in data from one scan to the next.
Data changes between each scan are not evaluated, only the value at the beginning of
each script is used for evaluation purposes, in other words if a boolean attribute were to
change from True to False to True again during 1 scan cycle, this change would not be
evaluated as a data change as the value is True at the beginning of each scan cycle.
Time-based script considerations (a trigger period of 0 means that the script execute
every scan).
Section 3 Introduction to QuickScript .NET 4-25
System Platform - Part 1
Time-based scripts, WhileTrue, WhileFalse, and Periodic are evaluated and executed
based on the elapsed time from a timestamp generated from the previous execution, not
on an elapsed time counter. Because of this it is possible that a change in the system
clock can result in the interval between execution of these script to be off.
For example, a periodic script is set to run every 60 minutes. The script executes at 11:13
am, therefore we would expect it to execute 60 minutes later at 12:13 PM. However, let's
assume that a time sync event has occurred and the node's time is adjusted from 11:33
am to 11:30 am. The script will still execute when the system time reaches 12:13 PM. But
because of the time change the actual (True) time period that has elapsed between
executions is 63 minutes.
Quality changes: When the DataChange Trigger type is selected, the Quality changes
checkbox enables. Select this box to trigger the script to run when the Quality of the
Expression value changes. In this configuration the script will run whether or not the
Expression value changes.
Deadband: When the DataChange Trigger type is selected, Deadband specifies the
amount the expression value must change before the script is executed.
OffScan
Called when the object is taken OffScan. Primarily used to clean up the object and account for any
needs that should be addressed as a result of the object no longer executing.
Shutdown
Called when the object is about to be taken out of memory, usually as a result of the AppEngine
stopping. Primarily used to destroy COM objects and .NET objects and clean up memory.
4-26 Module 4 Extending the Objects
Wonderware Training
Attribute References
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 MyCont ai ner . I nl et Val ve. PV is equivalent to
Tank1. I nl et Val ve. 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
Using Aliases
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.
First the user has to specify an alias for an external reference (for example, PVofInletValve) in the
Alias Reference table (see below). Then the alias can be used directly in the script code:
I f PVof I nl et Val ve==Open Then
{Do somet hi ng}
Endi f ;
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:
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.
Alias Reference
PVofInletValve Valve101.PV
Section 3 Introduction to QuickScript .NET 4-27
System Platform - Part 1
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 Dimension1 property of the
external attribute Valve101.PV. Lets further assume that you want to use inline references. The
corresponding code snippet is:
A = Val ve101. PV; {r eads t he Val ue pr oper t y}
B = Val ve101. PV. Di mensi on1; {r eads t he Di mensi on1 pr oper t y}
The two references Val ve101. PV and Val ve101. PV. Di mensi on1 are treated as two
completely different references.
Note: Even though the two references Val ve101. PV and Val ve101. PV. Val ue (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
Tag.ArrayAttribute
UDAs and Scripting
When using UDAs in scripting, keep the following list in mind.
If you use Calculated and Calculated retentive UDAs, 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 at t r i but e val ue>.
Calculated UDAs can be initialized in scripts with Execution type triggers of On Scan
and Execute, but not initialized in Startup scripts.
Calculated retentive UDAs can be initialized nearly anywhere, however the advantage of
initializing on Startup is the StartingFromCheckpoint attribute can be evaluated. For
example, 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.
4-28 Module 4 Extending the Objects
Wonderware Training
Language Definition
All QuickScript .NET keywords and variable name identifiers are not case sensitive. However, the
case is preserved throughout editor sessions.
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.
Examples:
Di mA; Thi s i s a si ngl e l i ne comment
Di mB; {Thi s i s an exampl e of a mul t i -
l i ne comment }
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.
QuickScript.NET Operations that Require 1 Operand
Operation Description
~ Complement
- Negation
NOT Logical NOT
QuickScript.NET 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
Section 3 Introduction to QuickScript .NET 4-29
System Platform - Part 1
QuickScript.NET 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.
QuickScript.NET Variables
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.
Each variable must be declared within the script by a separate DIM statement followed by a
semicolon The DIM statement syntax is as follows:
DI M <var i abl e_name> [ ( <upper _bound> [ , <upper _bound >[ , < upper _bound >] ] )
] [ AS <dat a_t ype> ] ;
where
var i abl e_name : : = <l et t er > { <l et t er > | <di gi t > | <speci al _char act er > }
l et t er : : = A- Z | a- z
di gi t : : = 0- 9
speci al _char act er : : = _
upper _bound : : = 1- 2, 147, 483, 647
dat a_t ype : : = Bool ean | Di scr et e | I nt eger | Fl oat | Real | Doubl e | St r i ng |
Message | Ti me | Obj ect
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.
Precedence Operator
1 (highest) (, )
2 - (negation), NOT, ~
3 **
4 * , /, MOD
5 +, -
6 SHL, SHR
7 <, >, <=, >=
8 ==, <>
9 &
10 ^
11 |
12 =
13 AND
14 (lowest) OR
4-30 Module 4 Extending the Objects
Wonderware Training
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
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).
Indirect Datatype
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:
di mx as i ndi r ect ;
. . .
x. Bi ndTo( s) ; ' wher e s i s any expr essi on t hat r et ur ns a st r i ng
x = 1234;
i f Wr i t eSt at us( x) == MxSt at usOk t hen
' . . . do somet hi ng
endi f ;
Data Type
(as specified in
AS <data_type>)
Default
Value
Comment
Boolean, Discrete False Discrete and Boolean are synonymous. Discrete is still
supported for migration from InTouch.
True=1, False=0
Integer 0 Signed
2147483648 to 2147483647
Float, Real NaN Float and Real are synonymous. Real is still supported for
migration from InTouch.
For range information please refer to Appendix
Double NaN For range information please refer to Appendix
String, Message
(empty
string)
Maximum length (2147483647)
Time 0 Resolution is 100 nanoseconds, used to reflect an absolute
date / time the content reflects the number of 100-nanosecond
intervals since 00:00 J anuary 1, 0001.
ElapsedTime 0 100 nanosecond ticks represents a time span.
Object Nothing Leveraged for accessing OLE Automation servers.
Section 3 Introduction to QuickScript .NET 4-31
System Platform - Part 1
QuickScript.NET 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:
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
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.
Object Cannot be mapped. Using an expression
that results in an object type as the
boolean_expression results in a script
validation error.
4-32 Module 4 Extending the Objects
Wonderware Training
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:
I f val ue = 0 Then
Message = Val ue i s zer o;
El seI f val ue > 0 Then
Message = Val ue i s posi t i ve;
El seI f val ue < 0 t hen
Message = Val ue i s negat i ve;
El se
{Def aul t . Shoul d never occur i n t hi s exampl e}
EndI f
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;
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.)
Section 3 Introduction to QuickScript .NET 4-33
System Platform - Part 1
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 .NET objects and 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.
Note: Collections are frequently leveraged by VB and VBA / J Script. Microsofts office suite is built
around the concept of collections. Furthermore Microsoft