Académique Documents
Professionnel Documents
Culture Documents
T R A I N I N G
Training Manual
Revision A
September 2007
Part Number 05-2090
Table of Contents
Table of Contents
Module 1
Introduction .................................................................................1-1
Section 1 Course Introduction......................................................................... 1-3
Section 2 Wonderware System Platform ...................................................... 1-17
Lab 1 Creating a Galaxy......................................................................... 1-35
Section 3 The ArchestrA IDE ........................................................................ 1-41
Section 4 Automation Objects....................................................................... 1-63
Section 5 System Requirements, Licensing and Support ............................. 1-77
Section 6 Application Planning ..................................................................... 1-85
Lab 2 Identifying the Mixer ..................................................................... 1-91
Module 2
Module 3
Module 4
Module 5
Module 6
Security ........................................................................................6-1
Section 1 Security Overview ........................................................................... 6-3
Lab 17 Security ...................................................................................... 6-13
Module 8
Module 9
Module 10
InTouchView..........................................................10-1
Section 1 Creating and Managing Symbols ....................................................103
Section 2 Using ArchestrA Symbols in WindowMaker..................................1085
Lab 21 Symbol Creation .........................................................................1093
Section 3 Using Custom Properties ............................................................10103
Lab 22 Defining Custom Properties .....................................................10109
Section 4 Animating Graphic Elements ......................................................10117
Lab 23 Animation ..................................................................................10193
Lab 24 Referencing a Symbol ...............................................................10203
Section 5 Associating Scripts with Symbols ...............................................10209
Lab 25 Scripting ....................................................................................10221
Section 6 Quality & Statusg ................................................10209
Wonderware Training
Module 1
Introduction
Section 1 Course Introduction
Section 2 Wonderware System Platform
Lab 1 Creating a Galaxy
1-3
1-17
1-35
1-41
1-63
1-77
1-85
1-91
1-2
Module 1 Introduction
Module Objective
Introduce the Wonderware System Platform and its architecture, environment, and
requirements for installation and licensing.
Wonderware Training
Course Description
The Wonderware System Platform 3.0 - Part 1 course is a four-day, instructor-led course designed
to provide a fundamental understanding of the basic principles of ArchestrA and supply the
knowledge necessary to develop and support applications for the Wonderware Application Server
3.0. The course utilizes a number of hands-on labs to reinforce concepts and features.
The focus of this course is to illustrate the use of ArchestrA tools and services in the System
Platform to develop a project utilizing connectivity to the field, data processing, scripts, alarms and
history, using features and functionality such as Automation Objects, templates, template
instances, ArchestrA Integrated Development Environment and QuickScript .NET.
This course also provides a fundamental understanding of how to utilize the InTouch Alarm DB
Logger for real-time alarm recording as well as the security settings available for securing the
applications.
Course Objectives
Upon completion of this course, you will be able to:
Create new projects using ArchestrA Integrated Development Environment
Audience
This training class is targeted to engineers, application developers, system integrators, and other
individuals whose jobs include creating and/or maintaining a Galaxy for use with the Wonderware
System Platform.
Prerequisites
The prerequisites for this course are:
Completion of Getting Started with Wonderware Application Sever web tutorial located at
http://www.wonderware.com/training/online_training/tutorials.asp
1-3
1-4
Module 1 Introduction
Agenda
Module 1 Introduction
Section 1 Course Introduction
This section describes the Wonderware System Platform 3.0 course - Part 1, (Wonderware
Application Server 3.0), the objective of the course, intended audience, prerequisites, and the
course agenda. It also includes a description of Wonderware Products.
Section 2 Wonderware System Platform
This section provides an overview of the Wonderware System Platform, the architecture of
ArchestrA and the importance of how it is critical to plant automation, and an overview of the
differences between Object-oriented and traditional Tag based HMI and SCADA products and
how it applies to Wonderware System Platform applications. It also provides an understanding
of what a Galaxy is, how it relates to the Galaxy Database and the Galaxy Repository and how
a Galaxy is created.
Lab 1 Creating a Galaxy
Section 3 The ArchestrA IDE
This section provides an overview of the ArchestrA IDE, the Template Toolbox and Application
Views and the object Check-in/Check-out process.
Section 4 Automation Objects
This section provides an explanation of the various types of objects utilized in the ArchestrA
IDE and an overview of when and how they are used. Additionally, it describes how to create
and configure instances of objects and the hosting and containment relationships of objects.
Section 5 System Requirements, Licensing and Support
This section provides a detailed explanation of the system requirements necessary for System
Platform, discusses Licensing details and covers Support services.
Section 6 Application Planning
This section provides an explanation of the need for adequately modeling your plant in order
to achieve an application implementation that will be optimal for efficiency.
Lab 2 Identifying the Mixer
Wonderware Training
1-5
1-6
Module 1 Introduction
This section introduces and explains the scripting environment and the various scripting
configuration attributes of the ApplicationObject
Lab 13 DDESuiteLinkClient Auto Reconnect
Lab 14 Automatic Reference Configuration
Module 6 Security
Section 1 Security Overview
This section provides an understanding of Security as it relates to Application Server.
Lab 17 Security
Wonderware Training
1-7
1-8
Module 1 Introduction
All Wonderware Software Solutionswhether in the areas of Supervisory HMI, Production and
Performance Management, or Geo-SCADAleverage the comprehensive ArchestrA industrial
automation and information software architecture.
Wonderware Training
Functional Capabilities
The Wonderware System Platform contains an integral core set of capabilities and services to
support sustainable production and operations performance improvements via a comprehensive
set of six capability areas:
Industrial domain services for industrial computing functions that are not provided by
commercial operating systems or products
Software and device connectivity services for easy communication to any plant or
business information source
Information and data management services for management of real-time and historical
information
Information-delivery and visualization services for functions that provide information to
the right user at the right time, and in the form in which they expect it
Application development services that provide easy and intuitive development of
modular industrial software solutions that are easily changed to meet future needs
System management and extensibility services that provide easy management,
expansion, and modification of the application or host computing architecture
3rd Party
Clients
Modular Industrial and Manufacturing Solutions
Wonderware Clients
Information Delivery
and Visualization
ArchestrA
Applications Architecture
Industrial Domain
Features
Application
Development
Information and
Data Management
Database and
Historian
Existing HMIs,
Historian, Lab Systems,
CMMs
1-9
1-10
Module 1 Introduction
System Platform Components
The Wonderware System Platform consists of a variety of software components.
Wonderware Clients
InTouch View
Functional
Modules
ActiveFactory
Reporting Client
(Information
(Information Server
Server CAL)
CAL)
Application Server
Server
Application
(IAS)
(IAS)
Historian
(InSQL)
Information Server
(SuiteVoyager)
Device Integration
3rd Party
Data Sources
HMI, LIMS
S/W
Applications
DB, MES
Field Devices
PLC, RTU
DCS
Wonderware Clients
Wonderware InTouch View human-machine interface (HMI) software as a visualization
client for the System Platform
ActiveFactory trending and analysis software
Wonderware Training
Integrate with your existing plant, IT and business systems, creating one effective system
for the entire organization
Leverage a single, open and scalable software architecture called the ArchestrA industrial
automation and information software architecture
Complete MES and flexible batching capabilities that can help you actively manage
production and collect data for analysis and reporting
Enable secure, wide-scale delivery of reports on KPIs, downtime, OEE, and SPC through
a powerful portal that delivers the information contextually
Improve data analysis and information sharing with advanced trending and reporting
capabilities
1-11
1-12
Module 1 Introduction
Product Offerings
The Wonderware Production and Performance Management Software Solutions consist of a
variety of products:
Wonderware System Platform providing a core set of service capabilities as a
foundation for application development, operations, and information delivery
InBatch flexible batch management software
Easily design, build, deploy and maintain the most flexible and secure supervisory
solutions with the lowest total life-cycle costs
Incorporate strong security at the data-element level and for every user in the system
Standardize on a common set of supervisory HMI tools at all levels of the plant with
rugged Wonderware Industrial Tablets and Touch Panel Computers, which are prebundled with powerful visualization software
Product Offerings
The Wonderware Supervisory HMI Software Solutions consist of a variety of products:
Wonderware System Platform providing a core set of service capabilities as a
foundation for application development, operations, and information delivery
InTouch human-machine interface (HMI) software for process visualization and control
InControl real-time control software
Wonderware Training
These solutions offer several unique features that can greatly benefit companies looking to
implement a new SCADA solution or upgrade an existing system.
The easiest and most efficient, open software solution for SCADA
Empowers users to design, build, deploy, and maintain standardized SCADA applications
Product Offerings
The Wonderware Geo-SCADA Software Solutions consist of a variety of products:
Wonderware System Platform providing a core set of service capabilities as a
foundation for application development, operations, and information delivery.
InTouch human-machine interface (HMI) software for process visualization and control
SCADAlarm event notification software for real-time alarm notification, data acquisition,
and remote control from telecommunication devices to industrial automation software
systems
1-13
1-14
Module 1 Introduction
Wonderware Individual Software Products
All the latest Wonderware software offerings leverage the latest ArchestrA technology and are
essential to the Wonderware Production and Performance Management, GEO-SCADA, and
Supervisory HMI Software Solutions.
The following Wonderware products offer increased functionality and flexibility as well as
extensive connectivity:
Wonderware Application Server (formerly known as Industrial Application Server) for
system-wide, real-time data acquisition, alarm and event management, centralized
security, data manipulation, remote deployment, and collaborative engineering
ArchestrA Object Toolkit for creating application objects for use within the
Wonderware Application Server
InTouch human-machine interface (HMI) software for process visualization and control
ActiveFactory trending and analysis software for accelerating and improving decisionmaking at all levels within an organization
QI Analyst statistical process and quality control software to predict process variations
and enable online adjustments for improved production
InControl real-time control software
SCADAlarm event notification software for real-time alarm notification, data acquisition,
and remote control from telecommunication devices to industrial automation software
systems
InTouch for Terminal Services software for remote hosting of InTouch applications
Wonderware software offers robust, best-of-breed software components that empower customers
to effectively develop and manage their automation and information applications in continuous,
discrete, process, hybrid, and batch manufacturing environments.
The Wonderware mission is to power intelligent plant decisions in real time.
Wonderware Training
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:
Version management
Internationalization
1-15
1-16
Module 1 Introduction
Wonderware Training
Introduce the concept of ArchestrA and how it relates to the manufacturing environment
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
This section provides an overview of the Wonderware System Platform, the architecture of
ArchestrA and the importance of how it is critical to plant automation, and an overview of the
differences between Object-oriented and traditional Tag based HMI and SCADA products and
how it applies to Wonderware System Platform applications. It also provides an understanding of
what a Galaxy is, how it relates to the Galaxy Database and the Galaxy Repository and how a
Galaxy is created.
System Platform
The Wonderware System Platform provides a single platform for all the SCADA, Supervisory
HMI, and Production and Performance Management needs of industrial automation and
information personnel. It provides a common and strategic industrial application services platform
on top of virtually any existing system, and is built upon the industry-standards based, ArchestrA
real-time SOA technology.
The Wonderware System Platform is designed to make it easier for manufacturers to adjust to the
ever-changing needs of customers and the overall market. Its diverse functionality extends
Wonderware customers software investments and encourages flexibility in application
development.
It supports consistent and reliable operations across industrial operations and manufacturing
facilities as well as promotes sustainable production and operational performance improvements.
The Wonderware System Platform contains an integral core set of capabilities and services to
support sustainable production and operations performance improvement via a comprehensive
set of six capability areas:
1-17
1-18
Module 1 Introduction
enables Wonderware customers to leverage lower-cost commercial PC hardware and operating
systems in industrial applications.
Application functions are quickly customized. Whether you have no knowledge of computer
programming or consider yourself an expert software engineer, the System Platform can empower
you to conveniently interact with process systems from any remote location. The result is a reduction
of personnel costs and improved response times because the software continuously monitors and
deploys messages, 24/7.
Industrial Domain Services provide:
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
Easy importing and migration of legacy systems and external system configurations
Connectors and communication servers for control devices, applications and systems
including:
Wonderware Training
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
Manual data
1-19
1-20
Module 1 Introduction
Capabilities
Multiple client interfaces [i.e., Thick, Terminal Services Edition (TSE) or Web Client]
Open SQL access, enabling simplified data queries with powerful retrieval modes
Wonderware Training
Advanced ArchestrA technology, which facilitates the assembly of applications that are
component-based and generated from standard templates
SharePoint services
Microsoft Office
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
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.
1-21
1-22
Module 1 Introduction
ArchestrA
ArchestrA is a comprehensive plant automation and information architecture designed from the
outset to extend the life of legacy systems by leveraging the latest software technologies.
Offerings built upon this architecture empower decision-makers to achieve their business goals,
without abandoning prior investments in automation systems, production processes or intellectual
property.
ArchestrA's complete approach to industrial architecture significantly reduces a plant's total cost of
ownership through easy installation, operation, modification, maintenance and replication of
automation applications.
In the ArchestrA environment, software applications can be rapidly assembled rather than
programmed. New applications also can be created simply through the reassembly of existing
applications.
The ArchestrA vision is to provide a unified and robust architecture that is the basis for
collaborative production systems in support of industrial enterprises. Its open-development
platform and tools uniquely enable Invensys and third parties such as OEMs, machine builders
and system integrators to build domain knowledge and add significant value to the solutions they
provide. End-users and suppliers will benefit from ArchestrA's unified platform, which enables the
instant integration of application information.
ArchestrA is the comprehensive industrial automation and information architecture that
orchestrates a new way to run or expand older plants more efficiently, and an optimal way to build
new plants.
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.
1-23
1-24
Module 1 Introduction
Manufacturing Goals
For approximately a decade, manufacturers have been revising business practices, organization
charts, and systems infrastructures to become more market-driven and customer-centric. Their
overall objectives have been straightforward and consistent:
Become more responsive to market shifts and the increased competition brought on by
globalization
Utilize existing assets more efficiently to increase production, without the need to expand
the plant or build new capacity
Ensure the greatest possible return on assets, and improve profitability, in the face of
continuing manpower reductions
To achieve these goals, managers know they can no longer simply "invest in technology" and
expect improvements to come about automatically. In fact, millions of dollars have already been
invested with only marginal returns. However, management cannot afford to stand still, because
there are significant rewards to be reaped by those who develop improved responsiveness,
greater agility, and a higher return on assets.
Compounding the problem, many of yesterdays automation and information systems are
beginning to show their age, failing to offer the agility or rapid response that todays producers
require. Acting as a massive anchor, they actually impede the organizations forward progress as
they increasingly require greater amounts of maintenance and the corresponding expansion of
infrastructure support. But the original investment in these systems was so extensive and so
visible to owners and investors that it is understandably difficult to broach the subject of
"bulldozing" and starting over with the latest generation of technology. Further, it means not only
eliminating extensive hardware infrastructure, but also destroying an asset that is even more
valuable the intellectual capital unique to the manufacturing mission.
Synchronization of Systems
Todays collaborative manufacturing environment requires that manufacturers synchronize
automation systems with business/information systems to accomplish total supply chain
management.
To facilitate this collaborative environment, many manufacturers are working toward a rational,
cost-effective solution that does not require enormous investment and allows for the preservation
of as much existing infrastructure as possible. They are preserving, to the maximum extent
feasible, existing investments in hardware and software, as well as in intellectual properties
contained in application-specific software. They are working to synchronize the various
informational elements within the manufacturing domain, namely automation systems, business
systems, and information systems, thereby fulfilling these systems original promise of improved
manufacturing efficiency. They are identifying optimal long-term strategies based on total cost of
ownership.
The pace of change has increased to a point at which it is difficult for manufacturers to execute a
new strategy before market conditions change once again. Todays manufacturer, however, must
have the ability to respond to challenges that are virtually unanticipated. Response times have
now become the cornerstones of manufacturing competitiveness, and will remain so for the
foreseeable future.
Wonderware Training
Move ahead into the future, confident of shorter project execution times, reduced total cost
of ownership, and a proven, long-term strategy that will remain in a leadership position for
the life of the plant.
ArchestrA Architecture
ArchestrA, developed by Invensys, is a software infrastructure designed to unify combinations of
Invensys, third-party, and customer internal applications, both current and emerging, into a
synchronized, plant-level application model, and to foster their ongoing adaptation and
improvement. It comprises a unique combination of new toolsets and new applications
infrastructure services, allowing the rapid generation of new applications, products, and services.
Because it enables easy upgrades via integration of existing systems with these new technologies,
it offers manufacturers the promise of extending the lifecycle of an entire plants information and
control system infrastructure.
ArchestrA facilitates the next logical extension of enabling software architecture designed to
accommodate emerging technologies and to ease the reuse of engineering from one project to
another. The objective of this unique technology is to dramatically reduce engineering and
maintenance time and expense when a manufacturer must modify or expand his companys
process. Incorporating ArchestrA will considerably reduce the cost and time involved in executing
strategic change.
1-25
1-26
Module 1 Introduction
ArchestrA enables manufacturers to synchronize the various informational elements within the
manufacturing domain and supply the information required by business systems in real time.
ArchestrA provides a number of key functions designed to free users from the complexities of
dealing with current underlying technologies. So users require only assembly skills, not
sophisticated programming knowledge, and are able to apply their time to functions in which they
have more expertise. By embedding common application services directly into a common
infrastructure, application engineers can design and reuse solutions that are instantly integrated.
The key elements of the software infrastructure are the following:
Common design and development environment
Wonderware Training
Manufacturing
Collaboration
Plant
Intelligence
Production
Supervisory
Plant Floor
Connectivity
1-27
1-28
Module 1 Introduction
Scalability
Wonderware Application Server provides a scalable and integrated architecture to meet the needs
of small, simple applications all the way up to highly challenging manufacturing information
management systems.
Wonderware Application Server resolves the problems associated with scaling automation
applications because there are no limitations on system size and performance issues are easily
addressed through the introduction of new nodes. New workstations and any data points defined
are automatically integrated into the initial application through the plant model. The common
distributed peer-to-peer Namespace means that all information is shared between the nodes
without the user having to perform any additional engineering or configuration.
Object Oriented
Tag Based
Structure
Hierarchical
Flat
Graphics Development
Done Last
Done Early
Background Process
Developed in Objects
Developed in Tags
Promotion of Standards
Strictly Enforced
Data Represented By
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.
Alarm Monitoring
Wonderware Training
Animation Scripts
Security Scripts
Supervisory Scripts
Event Detection
Device integration
In order to fully realize the benefit of an Object-oriented architecture, a SCADA System today
needs to depict all of these things, along with the graphics as objects.
Types of objects
In object-oriented SCADA, objects contain the aspects or parameters associated with the device
they represent. For example, a valve object can contain all the events, alarms, security,
communications and scripting associated with a device. Objects don't just represent plant
equipment. They can also model common calculations, database access methods, Key
Performance Indicators (KPIs), condition monitoring events, ERP data transfer operations and
many more things that you want the plant information system to do. Because these operations are
modular, it is easy to add them to any and all parts of the application. For example, let's say that
there is a standard way your organization calculates and initiates a maintenance work order for a
pump. By encapsulating this function as an object, it is possible to use it with any pump in the
application.
1-29
1-30
Module 1 Introduction
Using object-oriented tools in manufacturing applications
Manufacturing applications typically have a lot of common components. These include common
types of:
Plant devices and equipment
Operating procedures
Process measurements
Calculations
Graphics displays
This leads to a cookie cutter approach, where typically small software programs are developed as
objects/code modules that can be stamped out and joined together to form an application. Almost
all of the automation vendors have this capability today with their software. Where an objectoriented SCADA System is different, is that after the cookies are stamped out, you can change the
stamp, and all of the cookies you already made are automatically changed.
This is possible because when a SCADA package is truly object-oriented, it has the notion of a
parent-child relationship, where parent templates are developed and then "Child Objects" are
replicated or instantiated from the parent templates. Now all of the children are tied back to the
parent, so a change in the parent can be replicated to all of the children. This is an extremely
powerful development capability in that:
Application creation is optimized by using parent Templates and automated child object
replication
Project change orders are easily accommodated by making changes in the parent
template and having the child objects inherit the changes via change propagation
Ongoing system changes and expansions are easier and more cost effective because of
automated object replication and change propagation
Wonderware Training
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.
1-31
1-32
Module 1 Introduction
5. Device templates have attributes which represent real I/O available in the PLC or control
system. These attributes are then linked to the I/O through Device Integration Objects.
6. The application can then be assembled by using a simple drag and drop capability inside if the
ArchestrA IDE. As templates are dropped into their individual plant areas, an object instance is
created that is linked back to the template. This is the "Object-Oriented" nature of the
Application Server, which provides incredible power when it comes time to modify anything in
the system. The software does all the work as the user is simply configuring templates that
represent the equipment in the plant.
7. Objects are then assigned to security groups. This can be done on an individual basis or by
area of the plant. These security groups have common permissions. Roles are created to map
rights onto each security group. Users can be given one or more roles. This offers a great
amount of flexibility in changing user permissions and in managing the security model.
8. The model created in the ArchestrA IDE can now be deployed to the computers that will host
the application. Notice that absolutely no consideration needs to be given to how the
supervisory stations are going to be laid-out or which computer needs to have a specific part
of the system running on it. The Application Server is a fully distributed system, which can
reside on a single computer or on hundreds of computers. Standard system objects, such as
Platforms and Engines, represent specific computers that are used to host objects when they
are deployed.
9. Graphics are then configured using InTouch, the world's most popular HMI software
package. This can also be done using the Smart-Symbol functionality contained in InTouch
9.0 SP 2 which allows a graphic element to be created and linked to a template in the
ArchestrA IDE. That way the display graphics are also object-oriented and tightly coupled to
the plant model.
10. Once the application is developed, maintenance of the system is easy. Changes made to
Templates can be propagated to the "Child Objects" linked to the Templates. For example, if the
units associated with a level transmitter need to change from gallons to liters, this can be done
once in the template, and the changes can automatically propagate to all the operator
displays in the plant.
Wonderware Training
LIT
INLET 1
PUMP 1
TT
OUTLET
INLET 2
PUMP 2
What is a Galaxy?
Its important to understand what a Galaxy is before one is created. A Galaxy is your whole
application. The complete ArchestrA system consisting of a single logical name space and a
collection of WinPlatforms, AppEngines and objects. One or more networked PCs that constitute
an automation system. It defines the name space that all components and objects live in and
defines the common set of system level policies that all components and objects comply with.
A Galaxy Database is the relational database containing all persistent configuration information for all
objects in a Galaxy.
And a Galaxy Repository is the software sub-system consisting of one or more Galaxy Databases.
1-33
1-34
Module 1 Introduction
Creating a Galaxy
Each ArchestrA IDE session requires connection to a specified Galaxy. In other words, the
ArchestrA IDE cannot be started in a Galaxy-neutral state. When you attempt to start the
ArchestrA IDE, the Connect to Galaxy dialog box is displayed.
Galaxy Repository/Galaxy connect selections: This consists of the GR Node Name and
Galaxy Name boxes.
Action buttons: Connect, New Galaxy, Delete Galaxy, About and Cancel.
Licensing information
If the Galaxy Name box is empty, you have not yet created a Galaxy on the computer shown in the
GR Node Name box. Before you can start the ArchestrA IDE, you must either browse for a Galaxy
on another node or create a new Galaxy.
All new Galaxies are created with no security. They also have the following characteristics: two
users (DefaultUser and Administrator, both with full access to everything), two security roles
(Default and Administrator, both with full privileges) and one security group (Default).
If you previously created one Galaxy on the GR node shown, the Galaxys name is automatically
shown. Click Connect to start the ArchestrA IDE and to connect to that Galaxy. If you previously
created more than one Galaxy on the GR node shown, the most recently accessed Galaxy name
is shown. Choose the desired Galaxy from the Galaxy Name list and click Connect to start the
ArchestrA IDE and to connect to that Galaxy.
Wonderware Training
Objectives
Upon completion of this lab you should be able to:
Create a Galaxy
Note: To better facilitate the clarity of individual work in this training environment, because of the
Global Naming Space, ALWAYS preface the object name with your FIRST and LAST initial.
(e.g., if the user is Ann Brown, Valve would be ABValve)
Create a Galaxy
1. Create a new Galaxy named <your initials>Galaxy.
2. Connect to the new Galaxy and open the ArchestrA development environment.
1-35
1-36
Module 1 Introduction
Create a Galaxy
1. Launch the Integrated Development Environment by selecting Start / All Programs /
Wonderware / ArchestrA IDE. This will display the Connect To Galaxy dialog box.
The GR node name field will reflect the name of the local computer.
The Galaxy name drop-down list is initially empty since there are no Galaxies created in this
node.
2. Click the New Galaxy button to create a new Galaxy. The New Galaxy dialog box is
displayed.
Wonderware Training
1-37
1-38
Module 1 Introduction
5. As soon as the process is complete and the Close button is enabled, click Close.
6. At the Connect To Galaxy dialog box the name of the newly created Galaxy, ABGalaxy, is
displayed in the Galaxy name drop-down list.
Click the Connect button.
Wonderware Training
1-39
1-40
Module 1 Introduction
Wonderware Training
This section provides an overview of the ArchestrA IDE, the Template Toolbox and Application
Views and the object Check-in/Check-out process.
Destroy a Galaxy
Security Configuration
Object Configuration
Edit objects
Deploy/undeploy objects
1-41
1-42
Module 1 Introduction
Upload runtime changes to Galaxy database
IDE Configuration
As the main aspects of the ArchestrA IDE Main View (e.g., Menu options, Toolbars, Template
Toolbar and Application Views, etc.) are identified and discussed, they are elaborated on in
greater detail as to how these Key Functions can be used
The Main Window of the ArchestrA IDE is composed of the following components:
Title bar
Menu bar
Toolbar
Template Toolbox
Application Views
Operations View
Status bar
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:
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.
1-43
1-44
Module 1 Introduction
Close For terminating the object edit session in focus. This command is available only if
the editor for one or more objects is open. If the object has been modified, you are
prompted to save the new data to the Galaxy Repository. The same validation scenario
applies as described in the Save menu command.
Import For importing Automation Objects, Script Function Library, and Galaxy Loads.
Export For exporting Automation Objects, All Automation Objects, Script Function
Libraries, and a Galaxy Dump.
Save For saving the currently-opened objects configuration, which is persisted to the
Galaxy Repository. This command is available only if the editor for at least one object is
open and configuration data has been modified in at least one of them. Validation occurs on
the editor level; if errors or warnings are identified during validation, they are displayed
in a message box and the user is given the choice to continue saving or cancel the save.
Save All For saving ALL the currently-opened objects configuration, which is persisted
to the Galaxy Repository. This command is available only if the editor for at least one
object is open and configuration data has been modified in at least one of them. Validation
occurs on the editor level; if errors or warnings are identified during validation, they are
displayed in a message box and the user is given the choice to continue saving or cancel
the save.
Configure For configuring Security, the Time Master, or to Customize Toolsets.
Galaxy Status For viewing information relating to the Galaxy such as the total number
of instances, total number of templates and other related Galaxy information.
Properties For viewing the properties of the object in focus.
Change Galaxy For selecting a Galaxy repository that is different from the one to which
you are currently connected, this command opens the Select Galaxy dialog box.
Change User For changing the logged in user of this ArchestrA IDE, this command
opens the ArchestrA IDE Login dialog box.
Edit menu providing edit capabilities, the Edit menu includes the following commands:
Find For locating specific items of information based on a variety of configurable search
criteria.
User Information For viewing the Prompts, Initial Scan State, Scan State Defaults, and
User Defaults.
Wonderware Training
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.
1-45
1-46
Module 1 Introduction
Objects menu the Objects menu includes the following commands:
Check-Out For checking out an object from the Galaxy Repository so that you can
maintain sole authority to configure that object. Nobody else connected to the Galaxy can
affect the configuration of the object until you have checked it back in to the Galaxy.
Check-In For checking in to the Galaxy Repository an object which was previously
checked out. This command opens the Check-In Object dialog box.
Undo Check-Out For reversing a previous check-out without affecting the configuration
of the object in question. The result of this command is the object can be checked out by
anyone connected to the Galaxy.
Override Check Out Use this command to disable the checked out flag on the selected
object. This command typically requires special security permissions and should be used
only in those circumstances in which it is certain that object configuration is not being done
by the user who originally checked out the object. If the objects editor is currently open,
the override function fails.
Validate For checking allowable attribute value ranges, compiling its scripts, updating
and binding its references, validating its extensions, updating its status, and validating
other configuration parameters that may be unique to the object.
Note: See Validating Objects on page 1-49 for additional information regarding this feature.
View in Object Viewer For allowing the evaluation of attributes and conditions when the
objects are deployed. It provides a visual display of the actions being executed.
Deploy For deploying the object or objects currently in focus to the nodes their
configurations denote, this command opens the Deploy Object dialog box.
Undeploy For undeploying the object or objects currently in focus from the nodes that
currently host them, this command opens the Undeploy Object dialog box.
Assign To For assigning objects to a different platform.
Set As Default For setting a System Object, such as WinPlatform or AppEngine, as the
default for assigning appropriate objects.
Wonderware Training
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.
1-47
1-48
Module 1 Introduction
Validating an object checks its configuration; that includes checking allowable attribute value
ranges, compiling its scripts, updating and binding its references, validating its extensions,
updating its status, and validating other configuration parameters that may be unique to the object.
Note: A primary use of validation is to validate objects that were configured prior to the importing
of relevant script libraries. Such objects would have a status of Bad. Validating these Bad objects
corrects references to the script libraries and updates their status to Good.
To display the Operations pane, either
Right-click on an object (multi-select is allowed) and click Validate on the shortcut menu.
Wonderware Training
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.
1-49
1-50
Module 1 Introduction
Toolbar
The ArchestrA IDE Toolbar consists of icons for quick access to frequently used commands. It is
shown below, and each icon, from left to right, is described afterwards. The description titles
associated with each below are based on the tool tip that appears when you hover over each
Toolbar icon.
Change Galaxy For selecting a Galaxy repository that is different from the one to
which you are currently connected, this command opens the Select Galaxy dialog box.
Import Automation Object For importing a template definition file (.aapdf). This
command opens the standard Microsoft Open dialog box with the default file extension
(.aapdf). One or more files can be selected at a time. Validation is done with regard to the
selected file(s) being a valid template definition file. A progress indicator then provides a visual
view of the importing process. After the file(s) is imported, one or more new objects is added to
Galaxy Repository and the Template Toolbox displays the new object(s).
Open For opening the editor of the object in focus. The editor appears in the Object
Editor Client Area of the Main Window.
Save For saving the currently-opened objects configuration, which is persisted to the
Galaxy Repository. This command is available only if the editor for at least one object is open
and configuration data has been modified in at least one of them. Validation occurs on the
editor level; if errors or warnings are identified during validation, they are displayed in a
message box and the user is given the choice to continue saving or cancel the save.
Find For locating specific objects based on a variety of configurable search criteria.
Check-Out For checking out an object from the Galaxy Repository so that you can
maintain sole authority to configure that object. Nobody else connected to the Galaxy can
affect the configuration of the object until you have checked it back in to the Galaxy.
Check-In For checking in to the Galaxy Repository an object which was previously
checked out. This command opens the Check-In Object dialog box.
Undo Check-Out For changing an objects status from checked out to checked in.
Afterwards, any user can check out and configure the object. Undo Check Out places a
notation in the objects change log. Changes you made to the object when it was checked out
are backed out. An error message is displayed when the objects configuration editor is open.
Properties For accessing the properties of the object in focus.
Wonderware Training
Deploy For deploying the object or objects currently in focus to the nodes their
configurations denote, this command opens the Deploy Object dialog box.
Undeploy For undeploying the object or objects currently in focus from the nodes that
currently host them, this command opens the Undeploy Object dialog box.
Delete For deleting the object in focus.
Customize Toolsets For maintaining the toolset categories displayed in the Template
Toolbox, this command opens the Customize Toolsets dialog box.
User Information For configuring global user preferences for the ArchestrA IDE.
Using this command opens the Configure User Information dialog box.
Galaxy Status For accessing the status of the current Galaxy.
Model View For displaying the Model view in the Main Window.
Deployment View For displaying the Deployment view in the Main Window.
Derivation View For displaying the Derivation view in the Main Window.
Template Toolbox For displaying the Template Toolbox in the Main Window.
Graphic Toolbox For displaying the Graphic Toolbox in the Main Window.
Operations View For displaying the Operations View in the Main Window.
IDE Help Standard Help command, used for opening the IDEs HTML Help
documentation system.
The availability of the previously described icons is dynamic depending on which part of the
ArchestrA IDEs Main Window is in focus, whether a particular action is allowed, or whether
something has been changed in the configuration environment. Depending on these conditions,
some icons may be unavailable.
Template Toolbox
This part of the Main Window hosts object template toolsets, which contain object Templates, from
which instances are created or other object templates are derived. The Template Toolbox contains
separate toolset bars for each toolset in the Galaxy Repository. Click the toolset bar to open that
toolset and display the object templates contained in the chosen toolset.
1-51
1-52
Module 1 Introduction
When you first log in, the default toolset with default object templates is opened. Once a user has
logged in to the Galaxy Repository, the Template Toolbox is loaded with the toolset that was
displayed during the last login session.
An example of a Template Toolbox view is as follows:
The items with $ prefixes are templates or templates which were derived from other templates.
Wonderware Training
Application Views
The Application Views pane displays the galaxy configuration based on how an object is related to
other objects:
Model View - This defines the Object relationship to the automation scheme layout. The
Objects are organized into Areas to represent the physical plant layout.
Deployment View - This view defines the Object instance relationship to the PC that the
Object code is running on.
Derivation View - This view displays what the derivation path is from Base Template to
Instance. All templates and instances are displayed in this view.
The Model view is the default display when the ArchestrA IDE is first launched. Subsequent
ArchestrA IDE sessions retain the users last setting.
Model View
The Model view presents objects in terms of their physical or containment relationships, and allows
you to organize them through a folder structure. This view most accurately represents an
application perspective of the processes that users are emulating: for instance, specific process
areas, tanks, valves, pumps and their relationships based on containment.
An example of a Model view is as follows:
Galaxy Name
This view is used to display the assignment of Object Instances to their area. All Object instances
belong to one and only one area.
Areas can be hierarchical. This means that an area can contain an area and the parent area
collects the statistics for all its Objects and its sub-areas.
The above diagram represents the tree view that is displayed within the model view. This
represents the area based relationships of each of the objects. The diagram is read left to right and
top to bottom, so an Area can host Application objects, DeviceIntegrationObjects,.and Objects that
contain Objects
If the instance does not have a defined host then the instance will be displayed under the
"Unassigned Area" root of the tree.
The top of the tree is the GalaxyObject, This is displayed using the name that was given to the
Galaxy when it was created.
To assign one object to another, drag-and-drop it. To unassign an object currently assigned to
another object, drag-and-drop it to the Unassigned Area folder.
1-53
1-54
Module 1 Introduction
Deployment View
Note: More detail of the Deployment View is discussed in Module 2, Section 2, The Deployment
Model, page 2-11.
The deployment view is used to display the assignment of the automation scheme to physical
machines and process engines. This view describes where the objects are running. This view
does not represent your physical plant environment.
An example of a Deployment view is as follows:
This diagram represents the tree view that is displayed within the deployment view. This
represents the topology view based on which PC and Engines the objects run on. The diagram is
read left to right and top to bottom, so a Platform can host an AppEngine. Also, an AppEngine can
host an Area.
If the instance does not have a defined host then the instance will be displayed under the
"Unassigned Host" root of the tree.
To assign an object to another, drag-and-drop it onto the host object. An inappropriate assignment
match is not allowed. Conversely, to unassign an object, drag-and-drop it to the Unassigned
folder.
Derivation View
The Derivation view presents objects and templates in terms of their genealogy relationships. The
derivation view is the only tree view that shows both templates and instances. The purpose of this
view is to display to the user from which templates and derived templates an instance inherits its
properties.
Wonderware Training
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.
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.
1-55
1-56
Module 1 Introduction
An example of a Graphic Toolbox is as follows:
Object Icons
When viewing the objects, there are several states that are reflected in the way the icons for that
particular object are represented.
For instance, notice the different types of icons in the following example:
Wonderware Training
Description
Undeployed (see AnalogDevice_001 and
DDESuiteLinkClient_001 in example above)
(no indicator)
1-57
1-58
Module 1 Introduction
Configuration status indicators include:
Icon
Description
Configuration warning
Configuration error
(no indicator)
Configuration good
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.
Description
Applies to InTouchViewApp deployment when
files are being transferred.
Wonderware Training
Or, right-click on the object and select Check Out. Optionally, an object is automatically checked
out to you when you open its configuration editor. If the object is already checked out, you can
open its editor only in read-only mode.
To determine an objects status and history, open the Properties dialog box.
1-59
1-60
Module 1 Introduction
The user responsible for an operation at a specific date and time is listed on the Change Log
page. Comments typed by a user in the Check In dialog box (see image later) are listed under the
Comment heading.
Or, right-click on the object and select Check In. The Check In dialog box is displayed.
Note: If the object was originally checked out to you when you opened its configuration editor,
the check in function can be combined with the save and close functions of the editor. If you
close the editor without making any changes to the objects configuration, a check in operation
effectively does an undo check out (no change log recorded).
Wonderware Training
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.
1-61
1-62
Module 1 Introduction
Object Viewer
Note: The Object Viewer is explained in more detail when the Runtime Environment is discussed
in Module 2, Section 3, The Runtime Environment,, page 2-27
The Object Viewer monitors the status of the objects and their attributes and can be used to
modify an attribute value for testing purposes.
To add an object to the Object Viewer Watch list, you can manually type the object and attribute
names into the Attribute Reference box in the menu bar and select Go. When prompted to enter
the Attribute Type, press the OK key.
You can save a list of items being monitored. Once you have a list of attributes in the Watch
Window, you can select all or some of them and save them to an XML file. Right-click on the
Watch window to save the selection or load an existing one. You can also add a second Watch
window that shows as a separate tab in the bottom of the Viewer.
Refer to the Platform and Engine documentation for information about attributes that may indicate
system health. These attributes provide alarm and statistics on how much load a platform or
engine may have when executing application objects or communicating with I/O servers and other
platforms.
Wonderware Training
This section provides an explanation of the various types of objects utilized in the ArchestrA IDE
and an overview of when and how they are used. Additionally, it describes how to create and
configure instances of objects and the hosting and containment relationships of objects.
Objects
Within the Template Toolbox there are three main categories of objects. These are:
Application objects
AnalogDevice
Boolean
DiscreteDevice
Double
FieldReference
Float
Integer
Sequencer
String
Switch
UserDefined
DDESuiteLinkClient
InTouchProxy
OPCClient
RedundantDIObject
System objects
AppEngine
Area
InTouchViewApp
ViewEngine
WinPlatform
1-63
1-64
Module 1 Introduction
Application Objects
Application Objects are used to create devices in your Galaxy. These devices represent real
objects in your environment.
AnalogDevice Object
This object can act as either an Analog Input (with optional Output) or as an AnalogRegulator that
provides an external representation of a PID controller that exists elsewhere (typically a PLC or
DCS).
The AnalogDevice can be configured to have a personality of one of the two basic types:
When configured as Analog, this Template is very similar in functionality to the Analog Tag within
InTouch today. Just as the InTouch Analog can be configured for Read or ReadWrite, the
Archestra AnalogDevice configured as type Analog can be configured as an analog input (with no
output capability) or as an analog output (with output capability). The Analog supports the basic
alarming capabilities of level alarms, ROC alarms and deviation alarms from a SP target value. In
addition, the Analog in ArchestrA provides additional functionality such as PV override enable, PV
mode (auto, manual), bad PV alarming, and separate output reference capability.
When configured as an AnalogRegulator, this Template provides both PV and SP monitoring of an
external PID controller. It provides SP output capability with an optional separate feedback
address for the SP. Other controller-oriented features include controller mode (manual vs.
cascade). All the alarm capabilities of the more basic AnalogDevice object are included, with the
difference that the SP value for deviation alarms is based on the SP value read from the controller.
Some of the common features of the AnalogDevice regardless of type (Analog or
AnalogRegulator) are:
Supports optional scaling of input and output, both linear and square root conversions.
Supports HiHi, Hi, Lo, and LoLo level alarms on PV with both value and time
deadbanding.
Supports Rate of Change (ROC) alarming on PV for both positive-slope and negativeslope ROC.
PV Override when true, allows the PV to be written by a user if the PV mode is set to
Manual.
Adds SP read and write capability with optional separate read-back address. For data
integrity, the value of SP always represents the value read from the external controller, not
the requested SP that is output to the external controller.
Wonderware Training
Supports minor and major deviation alarming when PV deviates from SP.
Initial Control Mode When in Cascade, the SP can only be written by other objects.
When in Manual, a user can write the SP. When None, anything can write to it.
Control Tracking optional capability to read a Boolean control track flag from an external
device or object. When tracking is on, the SP is pure read-only and cannot be changed.
Boolean Object
The Boolean object is derived from the FieldReference object and is used for evaluations that
result in either of the truth values of true of false, often coded 1 and 0 respectively.
DiscreteDevice Object
A Discrete Device is a general purpose Object that is used to represent a large class of physical
equipment common in manufacturing such as pumps, valves, motors, and conveyors. These
devices have two or more physical states (e.g. Open, Closed, Moving), and are optionally
controlled using a combination of discrete outputs. Their actual state is monitored via a
combination of discrete inputs.
The meaning of the states depends on the kind of Discrete Device. In the case of a pump, the
states might be configured as Off and On, while for a valve they might be configured as Open,
Closed, or Moving. Note that a control valve has a continuous position represented by 0 to
100% and is not typically represented with a Discrete Device, since its state is represented by a
continuous signal rather than discrete signal.
When a Discrete Device is commanded to a new state, it sets an appropriate combination of
discrete outputs for that state. When its monitored discrete inputs change, the Discrete Device
determines the new actual state of the equipment and sets the PV (process variable)
appropriately.
Through the use of the Discrete Device the operator is guaranteed that a value displayed on the
screen is a good and reliable value. This object will automatically display the state as Bad if the
quality of any of the inputs is bad or the inputs are in an invalid combination determined at
configuration time by the application developer.
Some of the features of the Discrete Device object are as follows:
Input and Output states of the DiscreteDevice object are totally independent of each other
and can be configured as required by the users application.
Input and Output can be linked by alarms, which allow the object to detect
CommandTimeout and UncommandedChange alarms, when devices unexpectedly
change, or fail to change when commanded.
Supports devices with two to three commandable states (Passive, Active1, and
Active2) plus two additional states Fault and InTransition which cannot be commanded. All
those states with the exception of InTransition and 'Passive' can trigger a state alarm.
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).
1-65
1-66
Module 1 Introduction
Double Object
The Double object is derived from the FieldReference object.
FieldReference Object
The FieldReference object is the generic object for accessing data from an external device. This
object can act as both the field input and a field output.
The FieldReference Object can be configured into three basic access modes:
WriteOnly Output
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:
Note: There is an Online Seminar available for the ArchestrA Sequencer Object. To register,
visit www.wonderware.com/training or call 1-866-WW-TRAIN (1-866-998-7246) or email
Wonderware Training at training@wonderware.com.
String Object
The String object is derived from the FieldReference object.
Switch Object
The Switch object is the object for accessing data from a simple discrete (0/1) device. This object
can act as both a discrete input and a discrete output.
Wonderware Training
WriteOnly Output
The PV value can be historized, logged as an event, and alarmed when abnormal.
UserDefined Object
The UserDefined object is an empty object that you can use to create customized objects. You can
use the UserDefined object in the following ways:
As a "container" for other objects. An object relationship in which one object is comprised
of other objects is called containment. Containment allows you to group various objects
together to make complex objects. For detailed information on object containment, see the
Integrated Development Environment (IDE) documentation.
To use the UserDefined object as a container object, you simply create an instance of the object,
and add ApplicationObjects to it while in the Model View. The only indication of this containment
structure is in the tree structure in the Template Toolbox or Model View. The UserDefined object
editor does not provide any indication of this containment relationship. To edit the configuration of
any contained objects, you must open the individual editors of those objects.
Note: A UserDefined object can only contain ApplicationObjects.
As a base object to extend through user-defined attributes (UDAs), scripting, and attribute
extensions. For detailed information how to customize an object using these features, see
the common editor documentation.
For example, you might create a UserDefined object called "Tank" and use it to contain
ApplicationObjects that represent aspects of the tank, such as pumps, valves, and levels. You
could create two DiscreteDevice object instances called "Inlet" and "Outlet" and configure them as
valves, and create an AnalogDevice object instance called "Level" and configure an alarm to be
triggered when it overflows. The containment hierarchy would be as follows:
--Tank
--V101 (Inlet)
--V102 (Outlet)
--LT103 (Level)
The Tank object derived from the UserDefined object can be customized to raise an alarm when
both the Inlet and Outlet valves are open. For example, you could add a Boolean UDA called
"StateAlarm," extend it with an alarm extension, and add the following script:
if me.inlet == "Open" and me.outlet == "Open" then
me.statealarm = true;
else
me.statealarm = false;
endif;
You would now have a UserDefined object that forms the complex Tank object, which uses
containment and has been extended to raise a specific process alarm.
1-67
1-68
Module 1 Introduction
Device Integration Objects
System Objects
AppEngine Object
The AppEngine Object must have a Platform on which to run. The key functionality of this object
includes:
hosting application objects, device integration objects and areas
containing the logic to setup and initialize objects, when theyre deployed.
containing the logic to remove objects from the engine, when theyre undeployed.
determines the scan time within which all objects within that particular engine will execute.
In general the AppEngine contains no added value other then to support the creation, deletion,
startup, and shutdown of objects.
Wonderware Training
InTouchViewApp Object
The InTouchViewApp object represents an InTouch application in the Industrial Application server
environment. The InTouchVewApp object manages the check-in, check-out, and deployment of an
InTouch application.
When you create an InTouchViewApp for a new InTouch application, WindowMaker is started by the
ArchestrA IDE. You then create the application the same way you would if WindowMaker had
been started from the InTouch Application Manager.
ViewEngine Object
The ViewEngine object is used to host InTouchViewApp objects. The ViewEngine object supports
common engine features such as deployment, undeployment, startup and shutdown. One
ViewEngine object can handle several InTouchViewApp objects.
WinPlatform Object
The WinPlatform platform object is a key base object. The key functionality of this object includes:
Calculating various statistics related to the node its deployed to. These statistics are
published in attributes.
Monitoring various statistics related to the node its deployed to. These monitored
attributes can be alarmed as well has historized.
Starting and stopping engines, based on the engines startup type, which are deployed to
it.
Monitoring the running state of engines deployed to it. If the platform detects an engine
has failed it can (optionally based on the value of the engines restart attribute) restart the
engine.
There is a special instance of the platform object called the galaxy platform. This platform
instance:
1-69
1-70
Module 1 Introduction
Wonderware Training
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,
1-71
1-72
Module 1 Introduction
holding tanks, and sensors. Instances can get information from sensors on the real-world device
or from application logic in Wonderware Application Server. Instances exist during run time.
In your environment, you may have a few instances or several thousand. Many of these instances
may be similar or identical, such as valves or holding tanks. Creating a new valve object from
scratch when you have several thousand identical valves is time-consuming. That's where templates
come in.
Creating an Instance - 1
Drag and drop the template object from the Template Toolbox to the Application View. To delete an
instance of the Platform object highlight it and click on the Delete icon in the menu icon bar
, or, right-click on it and select Delete.
Wonderware Training
It can now be renamed using the naming convention as designated by your instructor.
1-73
1-74
Module 1 Introduction
Creating an Instance - 2
Highlight the object in the Template Toolbox for which you desire an instance. Then from the
Galaxy menu, select Galaxy/New/Instance or use the short cut which is Ctrl+N.
Component Names
ArchestrA AutomationObject Toolkit This is the toolkit for developing core ApplicationObjects,
in a C++ environment, which will be imported into the Galaxy via the IDE.
Area AutomationObject the AutomationObject that represents an Area of a plant within an
Application Server Galaxy. The area object acts as an alarm concentrator and is used to put other
AutomationObjects into the context of the actual physical automation layout.
ApplicationEngine (AppEngine) a real-time Engine that hosts and executes
AutomationObjects.
ApplicationObject An AutomationObject that represents some element of a user application.
This may include things such as (but not limited to) an automation process component (e.g.
thermocouple, pump, motor, valve, reactor, tank, etc.) or associated application component (e.g.
function block, PID loop, Sequential Function Chart, Ladder Logic program, batch phase, SPC
data sheet, etc.).
AutomationObject A type of object that represents permanent things in your plant (such as
Application Objects or Device Integration Objects) as objects with user-defined, unique names
within the Galaxy. It provides a standard way to create, name, download, execute, and monitor the
represented component.
Wonderware Training
1-75
1-76
Module 1 Introduction
WinPlatform a single computer in an Application Server galaxy consisting of Network Message
Exchange, a set of basic services, the operating system and the physical hardware; hosts
Application Server Engines and is a type of Platform Object.
Product Names
ArchestrAObject Toolkit a programmers tool used to create new Application and Device
Integration Object Templates, including their configuration and run-time implementations along
with their corresponding IDE editors.
Wonderware Application Server This is the product name given to the Wonderware A2
Application Server, which will run the objects as a blind node, allowing a product to be loaded on top
of existing systems to extend value. This product has an execution engine (AppEngine) which
hosts the application objects performing the functionality, and then stores this into a history
storage system, which is also included in the product.
DAServer Toolkit This is the toolkit for building Data Access Servers, which are the next
generation of I/O servers, and are I/O server executable. These are OPC servers, and this toolkit
is to be a product which enables Wonderware and third parties to develop powerful OPC servers
which can connect to third party clients and Application Server clients.
Data Access Server (DAServer) Refers to the Server executable that interfaces to the device
serving data to the DINetwork Object and DIDevice Object, via standard client protocols OPC, or
to any third party client. These replace our current I/O Servers.
Client Plug-ins: These are the components which are added to a DAS server to enable
communication with clients. Examples are: OPC 2.03, DDE/Suitelink, etc.
DAS Engine: This is the .DLL which contains all the common logic to drive data access
(this used to be called Core toolkit).
Device Protocol: This is custom code set up by the user to define the communication
with a particular device.
DAS Control Client: This is the MMC snap-in supplied with the DAServer that provides
the necessary UI for activation and configuration.
DAS Diagnostic: This is part of the DAS Control Client MMC snap-in-that provides a
set of diagnostic information for DAServers within the system
DAS Configuration: This is part of the DAS Control Client MMC snap-in which
enables configuration of the DAServer either locally or remotely.
DAS Activation: This is part of the DAS Control Client MMC snap-in which enables
the user to start and stop the DAServer.
DAS AppWizard: This is the C++ Wizard that generates the framework of the DAServer
Generic State Engines: These are engines which enable the device protocol developer
to build the particular functions:
Device Engine
Serial Engine
TCP/IP Engine
Wonderware Training
This section provides a detailed explanation of the system requirements necessary for System
Platform, discusses Licensing details and covers Support services.
Hardware Requirements
The following list shows the recommended hardware requirements to install Application Server
version 3.0.
Galaxy Repository Platform:
Dual core PC with 2 gigahertz (GHz) or faster processor clock speed, or single core PC
with 3 gigahertz (GHz) or faster processor clock speed
Super VGA (1024 x 768) or higher resolution video adapter and monitor
Keyboard
The Windows Vista operating system imposes hardware requirements that may exceed the
minimum requirements for Application Server version 3.0. If you intend to run Application Server
3.0 with Windows Vista, see the following Microsoft web site for hardware requirements:
www.microsoft.com/windows/products/windowsvista/editions/systemrequirements.mspx
1-77
1-78
Module 1 Introduction
Software Requirements
This section describes the operating system and other software requirements to install Application
Server version 3.0.
Operating System
The following table lists the supported operating systems that can be installed on computers
running server, client, and run-time components.
Application Server Components
ArchestrA IDE
ArchestrA Run
Time
Galaxy
Repository
Operating Systems
Notes:
Windows 2000 Professional, Windows 2000 Server, and Windows 2000 Advanced Server
are not supported operating systems for Application Server version 3.0. If you attempt to
install or upgrade Application Server on a computer running one of these operating
systems, an error message appears.
Windows Server 2003 Standard Edition SP2 is the recommended operating system to run
server components.
If you plan to run Application Server version 3.0 on computers running Windows Vista, all
editions except for Home Basic and Home Premium are supported. The Business Edition
is recommended.
Windows XP Professional SP2 and Windows Vista may be used on a Galaxy Repository
Node for only single-node solutions.
The Bootstrap, IDE, and Galaxy Repository are supported on the following language versions of
Microsoft operating systems: English, Japanese, Chinese, German, and French. The Galaxy
Repository is also supported in English, Japanese, Chinese, German, and French versions of
Microsoft SQL Server 2005.
Wonderware Training
SQL Server 2005 with SP2 (Standard or Enterprise) is the only database supported
by Application Server version 3.0. The Compact, Express, and Workgroup editions of
SQL Server 2005 are not supported for the Galaxy Repository.
The SQL Server 2005 SP2 database must be installed on the same computer as the
ArchestrA Galaxy Repository.
TCP/IP must be enabled on the computer running SQL Server. The TCP/IP protocol
setting can be verified from the SQL Server 2005 Network Configuration under SQL
Server Configuration Manager.
Note: The Microsoft SQL Server login for BUILTIN\Administrators group must be present and
enabled.
Note: Application Server 3.0 requires installing Microsoft SQL Server 2005. You cannot use
Microsoft SQL Server 2000 with this version. You also cannot install and use Application Server on
a computer that has both Microsoft SQL Server 2000 and Microsoft SQL Server 2005 installed.
Vista Restrictions
Application Server version 3.0 can run under Windows Vista Enterprise, Windows Vista
Business, or Windows Vista Ultimate. The Windows Vista Home Basic and Home
Premium editions are not supported.
Users must log on as a Windows Vista administrator to run Application Server version 3.0.
You cannot run Application Server as a Windows Vista standard user or power user.
You can run Wonderware 32-bit software only with a 32-bit version of Windows Vista.
Running Wonderware 32-bit software with a 64-bit version of Windows Vista on 64-bit
hardware is not supported
The Windows Vista User Account Control (UAC) must be disabled when running
Application Server. Refer to Microsoft Windows Vista documentation for instructions to
disable UAC.
When you disable Windows Vista UAC, you must restart the computer before attempting
to install the ArchestrA IDE or Wonderware Application Server. A Galaxy connection error
occurs if you attempt to install the ArchestrA IDE or Wonderware Application Server and
you did not restart the computer after you disabled the UAC.
Windows Vista does not support a traditional Application Server 3.0 single-node
configuration that includes Wonderware Historian (formerly IndustrialSQL Server).
A Vista Platform cannot be configured to be an alarm provider and also have InTouch
WindowViewer on the same computer configured to generate alarms. Only one of the two
will function properly as an alarm provider.
Windows Vista does not support NetDDE. ArchestrA graphics make use of the client layer
when accessing InTouch tags, and appear as a third-party client trying to access
1-79
1-80
Module 1 Introduction
WindowViewer as a data server. As a result, ArchestrA symbols cannot communicate with
InTouch tags. Windows Server 2003 and Windows XP Pro still support NetDDE.
Application Server 3.0 cannot be configured to run as a service under Windows Vista.
Windows Vista security prevents started Windows services from interacting with desktop
objects. When Application Server 3.0 is installed on a computer running Vista, scripts do
not run correctly if they include the InTouch ActivateApp() and SendKeys() functions.
These functions interact with desktop objects by starting Windows programs and sending
keystrokes to these programs.
The Galaxy Repository is only supported on Vista for single-node systems. For multiplenode Galaxies, Windows Server 2003 is the preferred operating system for the Galaxy
Repository node.
Wonderware Training
If the second NIC is not physically connected to anything (that means no wire in it), no
action is required. The profiles and firewall rules are automatic.
If the second NIC is connected, it MUST be configured. Follow the rules for configuring
a normal redundancy setup, Vista will identify this NIC and assign it a Private profile. If
the NIC is not configured, Vista will assign a profile of Public to this
NIC and cause all of our firewall exceptions to be deactivated on all NICs. For the NIC
to be configured properly, give it an IP address, sub net mask and gateway address.
The gateway address can be the same as the IP address. Usually these addresses
will be the internal, non-routable addresses like 192.168.0.x or the 10.x.x.x range.
If you have more than two NICs, make sure all connected NICs are configured with an
IP address and default gateway address and have been assigned a profile of Private.
1-81
1-82
Module 1 Introduction
Licensing
Term
Description
Galaxy
This refers to the total Application Model that resides in a Galaxy repository.
Also the single Namespace.
Platform Count
Number of PCs in the Galaxy (note each InTouch needs a platform to be part
of the Galaxy Namespace).
I/O Count
ArchestrA IDE
You may have exceeded the licensed I/O count or number of WinPlatforms.
Use the License Utility to correct these problems. Until the problem is resolved, you cannot:
After you have updated your license, you should be able to connect to your Galaxy and open the
ArchestrA IDE with no further problems.
Note: If a license expires while you are using the ArchestrA IDE, you are not allowed to connect to
the Galaxy the next time you open the ArchestrA IDE.
To check your current license, expiration date (if any) and limitations (if any), double-click the
License icon at the bottom of the ArchestrA IDEs Main Window
For more information on licensing requirements, please contact your local distributor.
Wonderware Training
1-83
1-84
Module 1 Introduction
Wonderware Training
Explain a project workflow and area devices and why they are needed
This section provides an explanation of the need for adequately modeling your plant in order to
achieve an application implementation that will be optimal for efficiency.
Introduction
In order to successfully implement a project for the Wonderware A2 environment, you should start
with careful planning to come up with a working model of your plant or plant area. A six-step
project workflow is provided that describes how to complete different tasks in a logical and
consistent order, so that you minimize the engineering effort.
The project information that you define will become your guide when actually creating your
industrial application using the ArchestrA IDE. The better your project plan, the less time it will take
to create the application, and with fewer mistakes and rework.
1-85
1-86
Module 1 Introduction
Plan Templates
Wonderware Training
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.
1-87
1-88
Module 1 Introduction
Once you have created the complete list, group the devices according to type, such as valves,
pumps, and so on. Consolidate any duplicate devices into common types so that only a list of
unique basic devices remains, and then document them in your project planning worksheet.
Each basic device is represented in the ArchestrA IDE framework as an "object." An instance of an
object must be derived from a defined template. The number of device types in your final list will help
you to determine how many object templates you will need to create for your application. You can
group multiple basic objects to create more complex objects, which is a concept known as
"containment."
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.
ArchestrA IDE naming restrictions. For example, you might have an instance tagname of:
YY123XV456
with the following attributes:
OLS, CLS, Out, Auto, Man
The following illustration shows how the naming convention in a traditional Human-Machine
Interface (HMI) is different from the naming within ArchestrA IDE:
Wonderware Training
! "#$ %
( %
! "#$ %
! "#$
( %
! "#
! "#$ &
( &
! "#$'
('
For more
information refer
to the InTouch to
IAS Migration
document
For ArchestrA IDE, references are created using this naming convention:
<objectname>.<attributename>
For example:
YY123XV456.OLS
If you create all of your Areas first, you can easily assign an object instance to the correct
Area if you set that particular Area as the Default Area; otherwise, you will have to move
them out of the unassigned Area later.
It is helpful to create a System Area to which you can assign instances of WinPlatform and
AppEngine objects. WinPlatform and AppEngine objects are used to support
communications for the application, and do not necessarily need to belong to a plantrelated Area or any Area for that matter.
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
1-89
1-90
Module 1 Introduction
assigned to the selected Area. Before you begin to create instances in another Area, change the
default to the new Area.
A final consideration for constructing Areas is that the various Areas equate to alarm groups. It is
at the Area level that alarm displays can easily be filtered.
Object Templates
A template is an element that contains common configuration parameters for objects that are used
multiple times within a project. Templates are instantiated to represent specific objects within the
application.
For example, you might need multiple instances of a valve within your application, so you would
create a valve template that has all of the required properties. This allows you to define once, and
reuse multiple times. If you change the template, the changes can be propagated to the instances.
You can use simple drag-and-drop within the ArchestrA IDE to create instances from templates.
Additional information on how to actually develop objects using templates is covered in Module 3,
Planning for Object Templates on page 3-7.
The next three steps (Planning Templates, Defining the Security Model, and Defining the
Deployment Model) are done once the initial Plant Model is in place. These are represented
through subsequent Modules in this training course. Please refer to additional information which is
available in the Wonderware A2 Deployment Guide.
Wonderware Training
Factory Layout
Your instructor will assign you a student number that you will use to create the unique identifiers
for each heat exchanger and mixer assigned to you.
This lab will help you familiarize yourself with the work that is going to be made in the rest of the
labs for the class.
Objectives
Upon completion of this lab you should be able to:
Feel familiar with the naming convention and device structure to be used in this class
2. Create the IDs for the heat exchangers and mixers assigned to you.
1-91
1-92
Module 1 Introduction
Wonderware Training
1-93
1-94
Module 1 Introduction
Wonderware Training
1-95
1-96
Module 1 Introduction
Wonderware Training
Module 2
Application Infrastructure
Section 1 The Plant Model
Lab 3 Creating the Plant Model
Section 2 The Deployment Model
Lab 4 Creating and Deploying the Deployment Model
Section 3 The Runtime Environment
2-3
2-5
2-11
2-17
2-27
2-31
2-41
2-51
2-2
Module Objective
Explain the concept and describe the need of developing a Plant Model before
configuring the Wonderware Application Server
Explain Galaxies and introduce you to the Integrated Development Environment (IDE)
Wonderware Training
Examine the concept of how to utilize ArchestrA Application Server to model a specific
facility.
This section provides an explanation of the importance of having a model of the plant facility.
Additionally, it explains the concept of how to utilize ArchestrA Application Server to model a
specific facility.
Section
Area
Production
Line
Manufacturing
Cell
Once a plant application model has been developed, applications can be easily extended or
replicated based on the structure you have provided. With this Facility Model you can:
This provides universal application development capabilities. Additionally, it provides the ability to
build industrial applications that ensure consistent engineering quality and operational best
practices.
2-3
2-4
WinPlatform AutomationObjects
AppEngine AutomationObjects
Device IntegrationObjects
WinPlatforms, AppEngines and Device Integration objects do not report their alarms and events to
Area AutomationObjects even though they belong to Areas. This allows alarm clients to receive
alarm notifications without any dependencies on Area AutomationObjects. For example, a
deployed and running WinPlatform can report alarms even though its Area is not deployed and
running.
Using the Area model will become a filtering mechanism for alarms when we cover the Module on
Alarms and History.
Wonderware Training
Objectives
Upon completion of this lab you should be able to:
Create instances
Use the $Area object to create a plant model for the Galaxy
Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.
AB Discharge
ABIntake
ABProduction
ABLine1
ABLine2
ABControlSystem
4. Arrange the new $Area instances to model the factory layout defined in Lab 2.
2-5
2-6
2. In the Template Toolbox, right-click on the Galaxy and select New Template Toolset.
Wonderware Training
2-7
2-8
Wonderware Training
8. Create a new instance of the $ABArea template by drag-and-dropping the $ABArea object
from the Template Toolbox to the Model view.
Name the new instance ABDischarge.
2-9
2-10
ABProduction
ABLine1
ABLine2
ABControlSystem
10. Drag-and-drop the newly created objects to assign areas ABLine1 and ABLine2 to the
ABProduction area. The final plant model should look like the following illustration.
Wonderware Training
This section provides an explanation of the Deployment Model and demonstrates the structure of
the Deployment Model.
2-11
2-12
You see information about total instances, total templates, deployed instances with changes,
undeployed instances with changes, objects that have an error or warning state, objects that are
checked out, and object you have checked out.
c. Click OK.
Deploying Objects
You deploy object instances for three reasons:
Testing.
When you are ready to deploy, make sure the following conditions are met:
The objects being deployed are not in an error state in the Galaxy database.
The object's host is already deployed. A cascade deploy operation, which deploys a
hierarchy of objects, deploys all objects in the correct order. This deploys an object's host
before the object is deployed.
Wonderware Training
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.
2-13
2-14
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.
On Scan: Sets the initial scan state to on scan for the object(s) you are deploying. If the
host of the object you are deploying is currently off scan, this setting is ignored and the
object is automatically deployed off scan. While deploying multiple objects the deploy
operation will deploy all of the selected objects "off-scan." Once all of the objects are
deployed the system will set the scan-state to "on-scan."
Note: Objects can only execute when both the host/engine is "on scan" and the object is "on
scan." If either the host/engine or the object is "off scan," the object can not execute.
Note: Always deploy Areas to their host AppEngines on scan. Since Areas are the primary
providers to alarm clients, deploying Areas off scan results in alarms and events not being
reported until they are placed on scan.
Off Scan: Sets the initial scan state to off scan for the object(s) you are deploying. If you
deploy objects off scan, you must use the ArchestrA System Management Console
Platform Manager utility to put those objects on scan and to function properly in the runtime environment.
Note: The System Management Console controls on the state of the host/engine. The
ObjectViewer controls the state of the objects.
Note: The default scan setting is set in the User Default settings in the Configure User
Information dialog box.
h. Click OK to deploy the object(s). The Deploy progress box appears. When the deploy is
complete, click Close.
Redeploying Objects
Redeploying is similar to deployment. While you are testing, you frequently redeploy your
application to see changes you make. The redeploying process undeploys the object and then
deploys it back.
You may have an object whose deployment state is Pending Update. That means the object
changed since it last deployment. When you deploy those changes, the new object is marked as
the last deployed version in the Galaxy.
To redeploy
a. On the Object menu, click Deploy.
b. Follow the procedure for Deploying Objects.
Wonderware Training
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
2-15
2-16
Wonderware Training
Objectives
Upon completion of this lab you should be able to:
Use the $WinPlatform, $AppEngine and $Area objects to create a deployment model for
the Galaxy
Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.
2-17
2-18
Wonderware Training
2-19
2-20
5. In the Model view, assign the ABGRPlatform instance to the ABControlSystem area.
Wonderware Training
2-21
2-22
10. In the Model view, assign the ABAppEngine instance to the ABControlSystem area.
Wonderware Training
2-23
2-24
Wonderware Training
16. Leave the default settings and click the OK button. This will display a second Deploy dialog
box indicating the progress on deploying the objects.
As soon as the process is complete, the Close button is enabled.
2-25
2-26
Wonderware Training
Illustrate the differences in the Development environment and the Runtime environment.
Explain the use of the Object Viewer in monitoring the Runtime environment.
This section provides an explanation of the Runtime environment and explains the use of the
Object Viewer in monitoring the Runtime environment.
Runtime Environment
The previous workflow task defined the deployment model that specifies where objects are
deployed. In other words, the deployment model defines which nodes will host the various
AutomationObjects.
The objects deployed on particular platforms and engines define the objects' "load" on the
platform. The load is based on the number of I/O points, the number of user-defined attributes
(UDAs), etc. The more complex the object, the higher the load required to run it.
After deployment, the Runtime environment facilitates the activity generated by the objects. In
Application Server the Object Viewer is used to monitor the Runtime environment. The Object
Viewer is used to check communications between nodes and determine if the system is running
optimally. For example, a node may be executing more objects than it can easily handle, and it will
be necessary to deploy one or more objects to another computer.
To view the activity in the Runtime database the Object Viewer is used. It displays the current
value of all of the objects and object attributes in the database. In order to create the Runtime
database, Application Server requires information about all of the variables being created. As
object and object attribute values change (e.g. created, value change, configuration change), the
changes are reflected in Runtime and monitored via the Object Viewer.
Object Viewer
The Object Viewer monitors the status of the objects and their attributes and can be used to
modify an attribute value for testing purposes.
To add an object to the Object Viewer Watch list, you can manually type the object and attribute
names into the Attribute Reference box in the menu bar and select Go. When prompted to enter
the Attribute Type, press the OK key.
You can save a list of items being monitored. Once you have a list of attributes in the Watch
Window, you can select all or some of them and save them to an XML file by right-clicking on the
Watch window and selecting Save. A previously saved Watch window can also be loaded to
monitor previously saved attributes. You can also add a second Watch window that shows as a
separate tab in the bottom of the Viewer.
2-27
2-28
Attributes section
Individual attributes of the object.
Wonderware Training
Checked in
Objects whose configuration are successfully uploaded have a new version number and a change
log entry for the upload operation. The run-time objects version number also has a new version
number. That version number matches the version in the configuration database.
If you select an object that is currently checked out to you, a warning appears during run-time
upload. If you continue, you lose all configuration changes you made to the checked out object.
The Galaxy performs an Undo Check Out operation on it before the run-time attributes are copied
to the Galaxy database.
Note: You cannot upload run-time changes for objects checked out to other users.
To upload run-time changes to the Galaxy
a. Select one or more objects in the Model view or Deployment view. For example, you could
select an entire hierarchy from AppEngine down.
b. On the Object menu, click Upload Runtime Changes. The run-time attributes of the selected
objects are copied over those in the Galaxy database.
2-29
2-30
Wonderware Training
Objectives
Upon completion of this lab you should be able to:
Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.
Using ObjectViewer
1. Open Object Viewer from within the ArchestrA IDE.
2. Rename the default watch window to Platform Info and add the following attribute references:
ABGRPlatform.CPULoad
ABGRPlatform.DiskSpaceFree[1]
ABGRPlatform.RAMAvailableAvg
3. Create a new watch window called Engine Info and add the following attribute references:
ABAppEngine.Scheduler.ScanPeriod
ABAppEngine.ScanState
ABAppEngine.ScanStateCmd
4. Save the watch list to you training folder (C:\Wonderware Training) with the name My Watch
Windows.
2-31
2-32
Using ObjectViewer
1. In the Model view, open Object Viewer by right-clicking the ABGRPlatform instance and
selecting View in Object Viewer.
Wonderware Training
Attributes section
Individual attributes of the object.
3. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the default Watch List 1 tab.
2-33
2-34
Wonderware Training
2-35
2-36
RAMAvailableAvg
8. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch
Window to add a new tab to the watch list.
Wonderware Training
2-37
2-38
Wonderware Training
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-39
2-40
Wonderware Training
Be familiar with Device Integration Objects, I/O Server and Data Access Server
Overview of DI Objects.
This section provides an understanding of the Device Integration Objects, I/O Server and DA
Server. It also provides an overview of DI Objects.
Introduction
Dynamic Data Exchange (DDE)
Dynamic Data Exchange (DDE) is a communication protocol developed by Microsoft to allow
applications in the Windows environment to send/receive data and instructions to/from each other.
It implements a client-server relationship between two concurrently running applications.
The server application provides the data and accepts requests from any other application
interested in its data. Requesting applications are called clients. Some applications such as
InTouch and Microsoft Excel can simultaneously be both a client and a server.
Note: NetDDE, an older protocol used for communication over the network to Wonderware and
non-Wonderware sources, is supported on Windows XP and Windows 2000, but not on Windows
2003 Server. Communication with Wonderware sources is recommended using SuiteLink.
2-41
2-42
Value Time Quality (VTQ) places a time stamp and quality indicator on all data values
delivered to VTQ-aware clients.
Wonderware Training
2-43
2-44
DDESuiteLinkClient
The DDESuiteLinkClient object is a key member of the core set of AutomationObjects within the
ArchestrA system infrastructure. The DDESuiteLinkClient object is a DeviceIntegration object that
allows access to a running I/O Server. A DDE or SuiteLink I/O Server can provide data points to
Galaxy application objects through the DDESuiteLinkClient object.
Note: The DDESuiteLinkClient object is compatible with all Wonderware I/O Servers and
components.
There is a one-to-one relationship between an instance of the DDESuiteLinkClient object and a
running I/O Server. If you want to reference data points in more than one I/O Server, you must
configure and deploy more than one DDESuiteLinkClient object. For example, you would need to
configure one DDESuiteLinkClient object to communicate to an ABTCP I/O Server and another
one to talk to the GEHCS I/O Server.
When you configure the DDESuiteLinkClient object, you can specify one or more I/O Server topics
to which access is required. At run time, all items that the Galaxy application requires for a
specified topic are updated with the latest values from the I/O Server. The rate at which the values
are updated depends on how the topics were configured within the target I/O Server.
If you want to connect to a DDE I/O Server, specify login information that the DDESuiteLinkClient
object uses to connect to the I/O Server.
From other objects and from scripts, you can reference the topics you configured for the
DDESuiteLinkClient object. For example, you might configure the input source for a
FieldReference object to reference an item for one of the topics. Thus, the FieldReference object
input source is receiving data from an I/O Server through the DDESuiteLinkClient object.
To aid in rapid application development, you can create a list of topic items that appear in the
ArchestrA Attribute Browser. To do this, specify the item address and associate it with a userdefined attribute name (alias). Creating the item list is not required in order to reference data from
the I/O Server.
The reference syntax for a DDESuiteLinkClient object data point is:
<objectname>.<topicname>.<itemname>
OR
<objectname>.<topicname>.<attributename>
The <objectname> is the name that you choose to give to the DDESuiteLinkClient object.
Wonderware Training
InTouchProxy
The InTouchProxy Object is a gateway between Galaxy application objects and data that is
available through an InTouch application. The InTouchProxy object allows you to browse a
selected InTouch application tagname dictionary, add selected tags as attributes in the Galaxy
application, then read these attributes from the InTouch application at run time.
Note: Before using the tagname browser to browse for tags, make sure that InTouch
WindowMaker is not running on the InTouch node. WindowViewer, however, can be running. Also,
be sure that you have given share permission of Read to the InTouch folder that contains the
Tagname.X file.
The InTouchProxy object is a key member of the core set of AutomationObjects within the
ArchestrA system infrastructure. The InTouchProxy object is a DeviceIntegration object that
represents a running InTouch node. The InTouch node effectively serves as the data provider
(supporting the SuiteLink communication protocol) by providing data points to Galaxy application
objects through the InTouchProxy object.
Note: This object is compatible with InTouch v7.11 and later applications.
There is a one-to-one relationship between an instance of the InTouchProxy object and a running
InTouch node. An InTouch "node" is a unique combination of the computer name and InTouch
application. If you want to reference data points in more than one InTouch node, you must
configure and deploy more than one InTouchProxy object. For example, you would need to
configure one InTouchProxy object to get data from an InTouch application running on Computer1
and another one to get data from an InTouch application running on Computer2.
When you configure the InTouchProxy object, you might want to specify one or more existing
InTouch tagnames (items) to use as object attributes. At run time, if these attributes are added in the
client (for example, the Object Viewer watch window), they are updated with the latest values from
the InTouch items. InTouch sends a new data value for an item to the InTouchProxy object each
time the value changes. Any items that you configure for an InTouchProxy object automatically
becomes available within the ArchestrA Attribute Browser.
From other objects and from scripts, you can reference the attributes you created for InTouch
items. For example, you might configure the input source for a FieldReference object to reference
one of these InTouchProxy object attributes. Thus, the FieldReference object's input source would
be receiving data from a tag in an InTouch node through the InTouchProxy object. The reference
syntax for an InTouchProxy object data point is:
<objectname>.<InTouchTagName>
The <objectname> is the name that you choose to give to the InTouchProxy object.
The group of specified InTouch items for an InTouchProxy object is also known as the "scan
group." Only one scan group exists in the InTouchProxy object. Run-time object attributes within
the scan group allow you to monitor errors related to the data quality for InTouch item values in a
scan group.
2-45
2-46
Subscriptions, which are implemented via scan groups. Read transactions, which are
implemented via block reads.
Write transactions, which are implemented via block writes.
Note: If you are using this object to communicate with an OPC DA Server, you must properly
configure the OPC DA Server before deploying this object.
RedundantDIObject
The RedundantDIObject provides you with the ability to configure a single object with connections
to two different data sources (proxy objects or DIDevice objects). In the event of a failure of the
active data source, this object automatically switches to the standby data source.
This capability allows clients to configure redundant connections to a field device.
The RedundantDIObject is a DeviceIntegration object that makes redundant connections to a field
device possible. If one of the source objects is unable to provide connection to the field device, the
RedundantDIObject automatically switches to the other source object for continued data
acquisition.
The way the RedundantDIObject determines that a data source is in Bad state by monitoring the
ConnectionStatus attribute common to all DIObjects, the ProtocolFailureReasonCode attribute
that reflects a failure in communication by a DAS DIObject with a field device, and the ScanState
attribute common to all ApplicationObjects. When those attributes are, respectively, Disconnected,
non-zero, or Offscan, the status of the corresponding data source object is changed and a
switchover attempt is made to the other data source.
There is a one-to-two relationship between an instance of a RedundantDIObject and a pair of
source DeviceIntegration objects.
The RedundantDIObject supports the following operations on I/O points from field devices:
Subscriptions, which are implemented via scan groups. Read transactions, which are
implemented via block reads (when available in the source DIObject). Write transactions,
which are implemented via block writes (when available in the source DIObject).
Wonderware Training
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.
2-47
2-48
Legacy I/O Server applications (SuiteLink, DDE, and OPC Servers) do not require a
platform on the node on which they run. They can reside on either a standalone or
workstation node.
However, the DI Objects used to communicate with those data sources such as the
DDESuiteLinkClient object, OPCClient object, and InTouchProxy objects must be
deployed to an AppEngine on a Platform. Although it is not required that these DI Objects
be installed on the same node as the data server(s) they communicate with, it is highly
recommended in order to optimize communication throughput.
For Device Integration objects like ABCIP and ABTCP DINetwork objects, both the
DAServer and the corresponding DI Objects must reside on the same computer hosting
an AppEngine.
I/O Servers can run on Workstations, provided the requirements for visualization processing, data
processing, and I/O read-writes can be easily handled by the computer. Run the I/O Server and
the corresponding DI Object on the same node where most or all of the object instances (that
obtain data from that DI Object) are deployed.
This implementation expedites the data transfer between the two components (the I/O Server and
the object instance), since they both reside on the same node. This implementation also minimizes
network traffic and increases reliability.
However, it is good practice to evaluate the overhead necessary to run each
Wonderware Training
Support for hot configuration, device additions and device- and server-specific parameter
modifications
A wide range of DA
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-49
2-50
Wonderware Training
Objectives
Upon completion of this lab you will be able to:
Note: FOR THIS LAB ONLY!!! This time you will NOT preface the object name with your FIRST
and LAST initial. Again, this is for THIS LAB ONLY!
4. On the Topic tab, add a topic called tagname and import the InControl Items List.csv file
from the C:\Wonderware Training folder.
5. In the Model view, assign the InControl instance to the ABControlSystem area.
2-51
2-52
Reconnect
ServerName
CommunicationProtocol
ServerNode
Wonderware Training
2-53
2-54
Wonderware Training
2-55
2-56
9. With the topic tagname selected, click the Import button at the Associated attributes for
tagname section.
The Open dialog box is displayed. Navigate to the C:\Wonderware Training folder, select the
InControl Items List.csv file and press the Open button.
Wonderware Training
11. Click the Save and Close button and check in the object.
2-57
2-58
13. In the Model view, assign the InControl instance to the ABControlSystem area.
Wonderware Training
2-59
2-60
Wonderware Training
2-61
2-62
22. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch
Window to add a new tab to the watch list.
Wonderware Training
24. The Rename Tab dialog box is displayed. Enter InControl for the Tab Name field and click
OK.
25. On the Attribute List (left section of Object Viewer) locate the following attributes, right-click
on them, and select Add to Watch to add them to the watch list:
ConnectionStatus
Reconnect
ServerName
ServerNode
CommunicationProtocol
2-63
2-64
Wonderware Training
Module 3
Application Objects
Section 1 Templates and Instances
3-5
3-9
3-11
3-27
3-29
3-35
3-37
3-41
3-45
3-61
3-67
3-2
Wonderware Training
3-3
Module Objectives
Be able to
3-4
Wonderware Training
Introduces you to the concept of templates and explain how to derive a template.
This section introduces you to the concept of templates and explain how to derive a template.
Templates
One of the major benefits of Application Server is that it allows you to re-use existing engineering.
Working with templates is the best way to illustrate such capability.
A template is an entity that represents the common functional requirements of a field device
(valves, pumps), a group of field devices (skids, stations), or a user function (algorithms). These
requirements reflect information such as number of Inputs and Outputs, alarm conditions, history
needs, and security. One object template performs the equivalent functions of multiple InTouch
tags and scripts.
A template is created either from a base template or from another derived template. Base
templates are the objects provided with the Application Server. Base templates cannot be
modified.
Note: You should avoid creating instances directly from base templates, since you will not be able
to take advantage of advanced configuration and maintenance capabilities.
Templates are high-level definitions of the devices in your environment. Templates are like a
cookie cutter from which you can make many identical cookies.
You define a template for an object, like a valve, one time and then use that template when you
need to define another instance of that item. Template names have a dollar sign ($) as the first
character of their name.
A template can specify application logic, alarms, security, and historical data for an object.
A template can also define an area of your environment. You can extend and customize a template
by adding User Defined Attributes (UDAs), scripts, or extensions to meet the specific needs of
your environment. Objects inherit attributes from their parents.
Wonderware Application Server comes with predefined templates, called base templates. You
cannot change these templates. All templates you create are derived from base templates.
You can also nest templates, or contain them. Contained templates consist of nested object
templates that represent complex devices consisting of smaller, simpler devices, including valves.
A reactor is a good candidate for containment.
Templates only exist in the development environment.
Using the Diaphragm valve template, you can quickly create an Diaphragm valve instance when
you need another Diaphragm valve in your application.
3-5
3-6
Instances
Instances are the run-time objects created from templates in Wonderware Application Server.
Instances are the specific things in your environment like processes, valves, conveyer belts,
holding tanks, and sensors. Instances can get information from sensors on the real-world device
or from application logic in Wonderware Application Server. Instances exist during run time.
In your environment, you may have a few instances or several thousand. Many of these instances
may be similar or identical, such as valves or holding tanks. Creating a new valve object from
scratch when you have several thousand identical valves is time-consuming. That's where templates
come in.
Propagation
If you need to change something about all diaphragm valves, you can change the template for the
diaphragm valve and all diaphragm valves in your application inherit the changes, assuming the
attributes are locked in the parent template. This makes it easy to maintain and update your
application.
Wonderware Training
Wonderware Application Server is shipped with a number of pre-defined templates to help you
create your application quickly and easily. Review these templates and determine if any of their
functionality match the requirements of the devices on your list. If not, you can create (derive) new
templates from the supplied UserDefined templates.
For your project planning, document which existing template can be used for which objects, and
what templates you will need to create yourself.
A child template that you derive from a parent template can be highly customized. You can
implement user-defined attributes (UDAs), scripting, and alarm and history extensions.
Note: You can use the Galaxy Dump and Load Utility to create a .CSV file, which you can then
modify using a text editor and load back into the galaxy repository. This allows you to make bulk
edits to the configuration quickly and easily.
3-7
3-8
Wonderware Training
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:
History
Statistics
3-9
3-10
History
State Alarm
Statistics
The UserDefined object is an object that you can use to create customized objects. You can use
the UserDefined object in the following ways:
1. As a template containing Field Attributes associated to multiple variables in a system. In this
case, the object provides a simple and manageable structure as all the variables are
contained in the same object.
For example, you might create a UserDefined object called "Tank" and configure Field
Attributes that represent variables associated to the tank system:
LT100 - Analog Field Attribute - Input from a level transmitter configured with options
such as: Scaling, Limit alarms and Statistics (Min/Max/Avg).
TT100 - Analog Field Attribute - Input from a temperature transmitter configured with
options such as Rate of Change alarm and Statistics (Min/Max/Avg).
SW100a - Discrete Field Attribute - Input from a limit switch configured with options
such as State Labels and State alarm.
SW100b - Discrete Field Attribute - Input from a limit switch configured with options
such as State Labels and State alarm.
References between attributes in the object can be accomplished by using relative reference,
for example:
The "Tank" can be customized to raise an alarm when both XV100a and XV100b valves are
open. For example, you can add a Boolean UDA called "ValueOpenAlarm", extend it with an
Alarm Extension, and then add the following OnExecute script:
IF me.XV100a == "Open" AND me.XV100b == "Open" THEN
me.ValueOpenAlarm = true;
ELSE
me.ValueOpenAlarm = false;
ENDIF;
2. As a "container" for other objects. An object relationship in which one object is comprised of
other objects is called containment. Containment allows you to group various objects together
to make complex objects.
Wonderware Training
Objectives
Upon completion of this lab you should be able to:
Configure and use object templates to create instances that will inherited the configuration
Use the Galaxy Browser to build references to instances attributes within the Galaxy
Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.
Input
Data type:
Float
Engineering units:
Deg F
checked
4095.0
EU value - Maximum:
250.0
-5.0
255.0
3-11
3-12
Wonderware Training
3-13
3-14
5. On the Field Attributes tab, click on the Add Analog button to add a new analog field
attribute.
Wonderware Training
T1
Access mode:
Input
Data type:
Float
Engineering units:
Deg F
checked
4095.0
EU value - Maximum:
250.0
-5.0
255.0
3-15
3-16
8. Click the Save and Close button and check in the object.
9. The Check In dialog box appears. Enter Initial configuration and setup in the Comment
field and click OK.
Wonderware Training
3-17
3-18
Wonderware Training
3-19
3-20
18. Repeat steps 13 to 17 to configure the Input source for attributes T2, T3 and T4 using the
tagname.HEXX0_TC2, tagname.HEXX0_TC3 and tagname.HEXX0_TC4 attributes.
19. Click the Save and Close button and check in the object.
Wonderware Training
3-21
3-22
23. A second Deploy dialog box appears indicating the progress on deploying the object. As soon
as the process is complete, the Close button will be enabled. Click Close.
Wonderware Training
3-23
3-24
26. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch
Window to add a new tab to the watch list.
Wonderware Training
28. The Rename Tab dialog box is displayed. Enter HeatEx for the Tab Name field and click OK.
29. On the Attribute List (right section of Object Viewer) locate the following attributes, right-click
on them, and select Add to Watch to add them to the watch list:
T1
T2
T3
T4
3-25
3-26
Wonderware Training
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
3-27
3-28
Unlocking an Attribute
To unlock a Template attribute, do the following:
1. Select the desired Template in the ArchestrA IDE and launch its editor.
2.
Select the locking mechanism for the locked attribute in the objects editor. Some editors may
have lock icons associated with certain edit fields, but this possibility is within the scope of the
developer of the objects editor.
Wonderware Training
Objectives
Upon completion of this lab you should be able to:
Lock attributes in templates to control the changes that can be made on derived objects
Propagate changes from templates to derived object by modifying the value of locked
attributes
Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.
Scaling section:
locked
3-29
3-30
Wonderware Training
Scaling section:
locked
3-31
3-32
6. Double-click the ABHeatEx_001 instance to open its configuration editor and verify the
changes.
Select the T1 field attribute and expand the Enable I/O scaling section.
Wonderware Training
3-33
3-34
10. A second Deploy dialog box appears indicating the progress on deploying the object. As soon
as the process is complete, the Close button will be enabled. Click Close.
Wonderware Training
Introduces you to the concept of the $AnalogDevice object and its functionality.
This section introduces you to the concept of the $AnalogDevice object and its functionality.
$AnalogDevice Object
The AnalogDevice object is an ApplicationObject that can be configured as either a basic analog
device, or an analog regulator device. When configured as a basic analog device, the
AnalogDevice object follows the traditional model of a basic analog input/output object with
alarming and history. When configured as an analog regulator device, the AnalogDevice object
provides an external model of a PID controller that exists in a field device, in addition to providing
the traditional analog alarming and history capabilities.
AnalogDevice Object as a Basic Analog Input/Output Object
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.
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.
3-35
3-36
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:
In addition, you can configure the AnalogDevice object to allow or disallow the overriding of the PV
value. If you enable the PV override, then you can use the PV.Mode attribute to place the
AnalogDevice object into either Auto or Manual mode. When the AnalogDevice object is in Auto
mode, the PV is updated from the field and matches the value and quality of the PVAuto attribute.
When the AnalogDevice object is in Manual mode, the PVAuto attribute continues to be updated
from the field, but the PV value does not. Instead, the PV can be set by a user write or a script, and
the quality is always set to UNCERTAIN.
Other controller-oriented features that can be configured for an AnalogDevice object of type
analog regulator include:
Controller mode (CtrlMode attribute). You can use the controller mode to govern what
types of writes are allowed to the SP value within the system. Controller mode options are
Manual, Cascade, and None. When the object is in Manual mode, only end users are
allowed to command a change in the value of SP. In Cascade mode, only scripts or other
supervisory objects are allowed to command a change to SP. Finally, if None is specified
for the controller mode, any type of write is allowed for the SP.
Control tracking. A Boolean control track flag can be read from an external device or
object. When tracking is on, the external controller "owns" the value of the SP; the SP is
purely read-only and cannot be commanded to be changed and output to the field.
Wonderware Training
Lab 9 Meter
Lab 9 Meter
Introduction
This lab illustrates how to use the $AnalogDevice object to model a meter template which will be
used later to create the objects for the mixer level and temperature transmitters identified in Lab 2.
The template created in this lab will be integrated later with other templates to form the mixer
object; because of this, no instances will be created yet for this object.
Objectives
Upon completion of this lab you should be able to:
Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.
General Steps
Create the Meter template
1. Derived a new template from the $AnalogDevice object, name it $ABMeter, and assign it to
the AB Training template toolset.
2. Configure the object as follows:
Type:
Analog (locked)
Unchecked (locked)
Enable PV override:
Unchecked (locked)
checked (locked)
0.0 (locked)
4095.0 (locked)
Conversion mode:
Linear (locked)
unchecked (locked)
3-37
3-38
2. Use $ABMeter for the name of the template and move it to your template toolset.
Wonderware Training
Lab 9 Meter
4. Configure the General tab as follows:
Type:
Analog (locked)
Unchecked (locked)
Enable PV override:
Unchecked (locked)
checked (locked)
0.0 (locked)
4095.0 (locked)
Conversion mode:
Linear (locked)
unchecked (locked)
5. Click the Save and Close button and check in the object.
3-39
3-40
Wonderware Training
Introduces you to the concept of the $DiscreteDevice object and its functionality.
This section introduces you to the concept of the $DiscreteDevice object and its functionality.
$DiscreteDevice Object
The DiscreteDevice object is a general purpose ApplicationObject that represents a large class of
physical equipment common in manufacturing, such as pumps, valves, motors, and conveyors.
These devices have two or more discrete physical states (for example, Open, Closed, and
Moving). The actual state of a device is monitored using a combination of discrete inputs, and a
device can be optionally controlled using a combination of discrete outputs.
The state names are configurable and are mapped to both input and output Boolean combinations
in truth-table form. The meaning of the states depends on the type of discrete device. For a pump,
the states might be configured as "Off" and "On," while for a valve they might be configured as
"Open," "Closed," and "Moving." Note that a control valve has a continuous position represented
by an analog signal of 0 to 100% and is not properly represented with a discrete device. Control
valves are best represented with the AnalogDevice object.
When a DiscreteDevice object is commanded to a new state, it sets the configured combination of
discrete outputs for that state. When one or more of its monitored discrete inputs change, the
DiscreteDevice object determines the new actual state of the equipment and sets the process
value (PV) appropriately.
Input and output states are totally independent of each other and can be configured as required by
your application; however, the input and output states can be linked by alarms. This allows the object
to detect a command timeout and uncommanded change alarms when devices
unexpectedly change, or fail to change when commanded to do so.
Historization of key attributes including the current state (PV) and commanded state (Cmd) can
also be configured.
Finally, the DiscreteDevice object supports a rich set of statistics reporting that you can enable
during configuration.
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.
3-41
3-42
(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."
Valve_Close
Mapped State
Bad
Closed
Opened
Bad
where:
1=TRUE
0=FALSE
By default, when the monitored discrete inputs change, the DiscreteDevice object determines the
new actual state of the equipment and updates the value of the process value (PV) appropriately.
You can configure the DiscreteDevice object to allow or disallow overriding of the PV value. If you
enable the PV override, then the object can be placed in Auto, Manual, or Simulate modes using
the PVMode attribute.
When the object is in Auto mode, the PV updates from the field and matches the value
and quality of PVAuto.
When the object is in Manual mode, PVAuto continues to update from the field but the PV
does not. Instead, the PV can be set by a user or script and the quality is always marked
as UNCERTAIN.
Wonderware Training
When the object is in Simulate mode, the PV value is set equal to the Cmd value, rather
than read from the field.
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.
3-43
3-44
Wonderware Training
Objectives
Upon completion of this lab you should be able to:
Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.
Checked (locked)
Enable outputs:
Checked (locked)
3-45
3-46
Unchecked (locked)
Checked (locked)
State names:
(locked)
Passive state:
Closed
Opened
Transition state:
Traveling
Fault state:
Fault
2 (locked)
Input Name:
(locked)
CLS
OLS
Input to PV Map:
(locked)
0 0: Traveling
0 1: Opened
1 0: Closed
1 1: Fault
PV override:
(locked)
1 (locked)
Output Name:
(locked)
CmdOpen
Closed:
Unchecked (locked)
Opened:
Checked (locked)
Manual (locked)
Control tracking:
(locked)
Wonderware Training
Checked (locked)
Enable outputs:
Checked (locked)
Unchecked (locked)
Unchecked (locked)
State names:
(locked)
Passive state:
Stopped
Running
Fault state:
Fault
1 (locked)
Input Name:
(locked)
FlowSwitch
Input to PV Map:
(locked)
0: Stopped
1: Running
PV override:
(locked)
1 (locked)
Output Name:
(locked)
CmdStart
Stopped:
Unchecked (locked)
Running:
Checked (locked)
Manual (locked)
Control tracking:
(locked)
3-47
3-48
Checked (locked)
Enable outputs:
Checked (locked)
Unchecked (locked)
Unchecked (locked)
State names:
(locked)
Passive state:
Stopped
Running
Fault state:
Fault
1 (locked)
Input Name:
(locked)
Input 1 Input
Name:
AuxContact (locked)
Input to PV Map:
(locked)
0: Stopped
1: Running
PV override:
(locked)
1 (locked)
Output Name:
(locked)
CmdStart
Stopped:
Unchecked (locked)
Running:
Checked (locked)
Manual (locked)
Control tracking:
(locked)
Wonderware Training
2. Use $ABValve for the name of the template and move it to your template toolset.
3-49
3-50
Checked (locked)
Enable outputs:
Checked (locked)
Unchecked (locked)
Checked (locked)
State names:
(locked)
Passive state:
Closed
Opened
Transition state:
Traveling
Fault state:
Fault
Wonderware Training
2 (locked)
Input Name:
(locked)
CLS
OLS
Input to PV Map:
(locked)
0 0: Traveling
0 1: Opened
1 0: Closed
1 1: Fault
PV override:
(locked)
3-51
3-52
1 (locked)
Output Name:
(locked)
CmdOpen
Closed:
Unchecked (locked)
Opened:
Checked (locked)
Manual (locked)
Control tracking:
(locked)
8. Click the Save and Close button and check in the object.
Wonderware Training
10. Use $ABPump for the name of the template and move it to your template toolset.
3-53
3-54
Checked (locked)
Unchecked (locked)
Unchecked (locked)
State names:
(locked)
Passive state:
Stopped
Running
Fault state:
Fault
Wonderware Training
1 (locked)
Input Name:
(locked)
FlowSwitch
Input to PV Map:
(locked)
0: Stopped
1: Running
PV override:
(locked)
3-55
3-56
1 (locked)
Output Name:
(locked)
CmdStart
Stopped:
Unchecked (locked)
Running:
Checked (locked)
Manual (locked)
Control tracking:
(locked)
16. Click the Save and Close button and check in the object.
Wonderware Training
18. Use $ABMotor for the name of the template and move it to your template toolset.
3-57
3-58
Checked (locked)
Unchecked (locked)
Unchecked (locked)
State names:
(locked)
Passive state:
Stopped
Running
Fault state:
Fault
Wonderware Training
1 (locked)
Input Name:
(locked)
AuxContact
Input to PV Map:
(locked)
0: Stopped
1: Running
PV override:
(locked)
3-59
3-60
1 (locked)
Output Name:
(locked)
CmdStart
Stopped:
Unchecked (locked)
Running:
Checked (locked)
Manual (locked)
Control tracking:
(locked)
24. Click the Save and Close button and check in the object.
Wonderware Training
Section 6 Containment
Section 6 Containment
Section Objectives
This section illustrates the concept of containment and how it works with Application Objects and
Templates.
This section illustrates the concept of containment and how it works with Application Objects and
Templates.
Tagnames
Contained Name
Hierarchical Name
Name
Description
Tagname
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
3-61
3-62
ApplicationObject Containment
ApplicationObjects can be contained by other ApplicationObjects. This provides context for the
contained object and a naming hierarchy that provides a powerful tool for referencing objects.
Note: Base templates cannot be contained by another template, either as the container or as the
template being contained. You can only use containment with derived templates.
Wonderware Training
Section 6 Containment
An example of a containment hierarchy is a tank that contains the following objects:
Inlet Valve
Agitator
Outlet Valve
Level
3-63
3-64
Agitator = Agitator01
Level = Level01
Wonderware Training
Section 6 Containment
Within the context of each hierarchy, the contained names are unique, in that the names only refer
to this tank system and the contained objects.
So if the tank is named Tank01, the contained names are:
Tank01.Inlet
Tank01.Agitator
Tank01.Outlet
Tank01.Level
Me.Outlet: Allows a script running within the parent object to generically reference its child
outlet instance.
3-65
3-66
Containment of instances is limited to Areas containing other Areas and AppObjects containing
other AppObjects.
Renaming can be done on an instance's tagname and contained name. A template only has a
template name.
Wonderware Training
Lab 11 Mixer
Lab 11 Mixer
Introduction
This lab uses the templates created in Labs 9 and 10 to create dedicated templates for each of the
Mixers components identified in Lab 2. Using the $UserDefined template to create a template for
the mixer itself, you will use object containment to integrate all the pieces together and build the
mixer system.
The InControl object created in Lab 6 provides the connection to the live values for each of the
objects that are part of the mixer.
Objectives
Upon completion of this lab you should be able to:
Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.
3. Derived two new templates from the $ABPump object, name them $Pump1 and $Pump2, and
assign them to the $ABMixer template.
4. Derived a new templates from the $ABMotor object, name it $Agitator, and assign it to the
$ABMixer template.
3-67
3-68
Liters (locked)
EU value Minimum:
0.0 (locked)
EU value Maximum:
100.0 (locked)
-5.0 (locked)
105.0 (locked)
6. Derived a new template from the $ABMeter object, name it $TT, and assign it to the $ABMixer
template. Configure the object as follows:
Engineering units:
Celsius (locked)
EU value Minimum:
0.0 (locked)
EU value Maximum:
250.0 (locked)
-5.0 (locked)
255.0 (locked)
Wonderware Training
Lab 11 Mixer
8. Configure the input and output references for the contained objects as follows
where XX is your student number.
:
For Agitator_001
AuxContact.InputSource:
InControl.tagname.TXX0_AG_AuxContact
CmdStart.OutputDestination:
InControl.tagname.TXX0_AG_CmdStart
For Inlet1_001
CLS.InputSource:
InControl.tagname.TXX0_IV1_CLS
OLS.InputSource:
InControl.tagname.TXX0_IV1_OLS
CmdOpen.OutputDestination:
InControl.tagname.TXX0_IV1_CmdOpen
For Inlet2_001
CLS.InputSource:
InControl.tagname.TXX0_IV2_CLS
OLS.InputSource:
InControl.tagname.TXX0_IV2_OLS
CmdOpen.OutputDestination:
InControl.tagname.TXX0_IV2_CmdOpen
For LIT_001
PV.Input.InputSource:
InControl.tagname.TXX0_LT_PV
For Outlet_001
CLS.InputSource:
InControl.tagname.TXX0_OV_CLS
OLS.InputSource:
InControl.tagname.TXX0_OV_OLS
CmdOpen.OutputDestination:
InControl.tagname.TXX0_OV_CmdOpen
For Pump1_001
FlowSwitch.InputSource:
InControl.tagname.TXX0_TP1_FlowSwitch
CmdStart.OutputDestination:
InControl.tagname.TXX0_TP1_CmdStart
For Pump2_001
FlowSwitch.InputSource:
InControl.tagname.TXX0_TP2_FlowSwitch
CmdStart.OutputDestination:
InControl.tagname.TXX0_TP2_CmdStart
For TT_001
PV.Input.InputSource:
InControl.tagname.TXX0_TT_PV
3-69
3-70
11. Using the watch list created in Lab 5, add a new watch window called Mixer and add the
following attribute references:
Agitator_001.PV
Agitator_001.Cmd
Inlet1_001.PV
Inlet1_001.Cmd
Inlet2_001.PV
Inlet2_001.Cmd
LIT_001.PV
Outlet_001.PV
Outlet_001.Cmd
Pump1_001.PV
Pump1_001.Cmd
Pump2_001.PV
Pump2_001.Cmd
TT_001.PV
Wonderware Training
Lab 11 Mixer
3-71
3-72
5. Create a derived template of the $ABValve object by right-clicking the template and selecting
New / Derived Template.
6. Use $Inlet2 for the name of the template (Notice that you will not use your initials for this
object) and assign it to the $ABMixer template to contain it within the $ABMixer object.
7. Create a derived template of the $ABValve object by right-clicking the template and selecting
New / Derived Template.
8. Use $Outlet for the name of the template (Notice that you will not use your initials for this
object) and assign it to the $ABMixer template to contain it within the $ABMixer object.
Wonderware Training
Lab 11 Mixer
Create the Mixers Pumps and Agitator templates
9. Create a derived template of the $ABPump object by right-clicking the template and selecting
New / Derived Template.
10. Use $Pump1 for the name of the template (Notice that you will not use your initials for this
object) and assign it to the $ABMixer template to contain it within the $ABMixer object.
11. Create a derived template of the $ABPump object by right-clicking the template and selecting
New / Derived Template.
12. Use $Pump2 for the name of the template (Notice that you will not use your initials for this
object) and assign it to the $ABMixer template to contain it within the $ABMixer object.
3-73
3-74
13. Create a derived template of the $ABMotor object by right-clicking the template and selecting
New / Derived Template.
14. Use $Agitator for the name of the template (Notice that you will not use your initials for this
object) and assign it to the $ABMixer template to contain it within the $ABMixer object.
Wonderware Training
Lab 11 Mixer
16. Use $LIT for the name of the template (Notice that you will not use your initials for this object)
and assign it to the $ABMixer template to contain it within the $ABMixer object.
3-75
3-76
Liters (locked)
EU value Minimum:
0.0 (locked)
EU value Maximum:
100.0 (locked)
-5.0 (locked)
105.0 (locked)
19. Click the Save and Close button and check in the object.
20. Create a derived template of the $ABMeter object by right-clicking the template and selecting
New / Derived Template.
Wonderware Training
Lab 11 Mixer
21. Use $TT for the name of the template (Notice that you will not use your initials for this object)
and assign it to the $ABMixer template to contain it within the $ABMixer object.
3-77
3-78
Celsius (locked)
EU value Minimum:
0.0 (locked)
EU value Maximum:
250.0 (locked)
-5.0 (locked)
255.0 (locked)
24. Click the Save and Close button and check in the object.
Wonderware Training
Lab 11 Mixer
Create a Mixer Instance
25. Using the Template Toolbox and the Model view, create an instance of the $ABMixer
template using the default name of ABMixer_001.
Assign the instance to the ABLine1 area.
27. Select the Inputs tab and configure the Input Source Reference as follows:
AuxContact: InControl.tagname.TXX0_AG_AuxContact
where XX is your student number.
3-79
3-80
29. Click the Save and Close button and check in the object.
Configure Inlet1
30. Double-click on the Inlet1_001 instance to open its configuration editor.
31. Select the Inputs tab and configure the Input Source Reference as follows:
CLS:
InControl.tagname.TXX0_IV1_CLS
OLS:
InControl.tagname.TXX0_IV1_OLS
32. Select the Outputs tab and configure the Output Destination Reference as follows:
CmdOpen: InControl.tagname.TXX0_IV1_CmdOpen
where XX is your student number.
33. Click the Save and Close button and check in the object.
Wonderware Training
Lab 11 Mixer
Configure Inlet2
34. Double-click on the Inlet2_001 instance to open its configuration editor.
35. Select the Inputs tab and configure the Input Source Reference as follows:
CLS:
InControl.tagname.TXX0_IV2_CLS
OLS:
InControl.tagname.TXX0_IV2_OLS
36. Select the Outputs tab and configure the Output Destination Reference as follows:
CmdOpen: InControl.tagname.TXX0_IV2_CmdOpen
where XX is your student number.
37. Click the Save and Close button and check in the object.
40. Click the Save and Close button and check in the object.
3-81
3-82
42. Select the Inputs tab and configure the Input Source Reference as follows:
CLS:
InControl.tagname.TXX0_OV_CLS
OLS:
InControl.tagname.TXX0_OV_OLS
43. Select the Outputs tab and configure the Output Destination Reference as follows:
CmdOpen: InControl.tagname.TXX0_OV_CmdOpen
where XX is your student number.
44. Click the Save and Close button and check in the object.
Wonderware Training
Lab 11 Mixer
Configure Pump1
45. Double-click on the Pump1_001 instance to open its configuration editor.
46. Select the Inputs tab and configure the Input Source Reference as follows:
FlowSwitch: InControl.tagname.TXX0_TP1_FlowSwitch
where XX is your student number.
47. Select the Outputs tab and configure the Output Destination Reference as follows:
CmdStart: InControl.tagname.TXX0_TP1_CmdStart
where XX is your student number.
48. Click the Save and Close button and check in the object.
Configure Pump2
49. Double-click on the Pump2_001 instance to open its configuration editor.
3-83
3-84
51. Select the Outputs tab and configure the Output Destination Reference as follows:
CmdStart: InControl.tagname.TXX0_TP2_CmdStart
where XX is your student number.
52. Click the Save and Close button and check in the object.
Configure the TT
53. Double-click on the TT_001 instance to open its configuration editor.
54. Select the I/O tab and configure the PV input source as InControl.tagname.TXX0_TT_PV.
where XX is your student number.
55. Click the Save and Close button and check in the object.
Wonderware Training
Lab 11 Mixer
Deploy the Object
56. Select the Deployment view, right-click the ABMixer_001 instance and select Deploy.
57. The Deploy dialog box displays. By default the system will do a Cascade Deploy of all 9
objects in the containment relationship and set all instances On Scan as soon as the objects
are deployed. Leave the default settings and click OK.
58. A second Deploy dialog box displays indicating the progress on deploying all 9 objects. As
soon as the process is complete, the Close button will be enabled. Click Close.
3-85
3-86
60. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch
Window to add a new tab to the watch list.
61. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the watch list to Mixer.
Wonderware Training
Lab 11 Mixer
62. Using the Object List (left section of Object Viewer) and the Attribute List (right section of
Object Viewer), locate and add the following attributes to the selected watch list by rightclicking on each attribute and selecting Add to Watch:
For Agitator_001
PV
Cmd
For Inlet1_001
PV
Cmd
For Inlet2_001
PV
Cmd
For LIT_001
PV
For Outlet_001
PV
Cmd
For Pump1_001
PV
Cmd
For Pump2_001
PV
Cmd
For TT_001
PV
63. Right-click in the Watch List (bottom section of Object Viewer) and select Save to save the
watch list to disk.
3-87
3-88
Wonderware Training
Module 4
4-3
Section 2 Extensions
4-7
4-11
4-19
4-51
4-57
4-2
Module Objectives
Be able to work with extending the objects and configuring them for additional
functionality.
Wonderware Training
Section 1 UDAs
Section 1 UDAs
Section Objective
This section introduces and explains UDAs and how they are configured and used.
This section introduces and explains UDAs and how they are configured and used.
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.
4-3
4-4
Wonderware Training
Section 1 UDAs
You can create an array for each data type except InternationalizedString. Select This is an
array and specify the array's length in the Number of elements box.
The Value parameter specifies the initial setting for the attribute when the object is deployed. Enter
value data for each data type. In the case of a non-arrayed Boolean, select the True/False check
box to use a True value. Clear the check box to use a False value. For an arrayed Boolean, select
the desired element and provide a default value by typing either true or false.
When using UDAs in scripting, note the following:
When using Calculated and Calculated Retentive UDAs as counters, they must be
manually initialized. For instance, if you use me.UDA=me.UDA+1 as a counter in a script,
you must also initialize the UDA with something like me.UDA=1 or me.UDA=<some attribute
value>.
Calculated UDAs can be initialized in OnScan and Execute scripts (that is, scripts with
those types of Execution Type triggers), but not Startup scripts.
Calculated Retentive UDAs must be initialized in Startup scripts, and can be initialized in
OnScan and Execute scripts. The main purpose of a Calculated Retentive UDA is to
retain the attribute's current value after a computer reboot, redundancy-related failover, or
similar occurrence in which valid checkpoint data is present. Therefore, your Startup script
should contain a statement testing the Boolean value of the attribute,
StartingFromCheckpoint, on the object's AppEngine. If the value is TRUE, you should not
initialize the UDA; if the value is FALSE, you should initialize the UDA.
4-5
4-6
Wonderware Training
Section 2 Extensions
Section 2 Extensions
Section Objective
This section describes the Output Functionality for Application Objects in the Extensions
environment.
This section provides describes the Output Functionality for Application Objects in the Extensions
environment.
Extensions
The Extensions page is comprised of five main functional areas. These are described below.
Extendable Attributes List: Lists all attributes currently associated with the object. The
list can include those added through the UDA object extension function. Select the Show
Extension Attributes check box to include attributes added on the UDA page.
InputOutput Extension Group: Use to configure an attribute so that its value is both read
from an external-reference source and written to an external-reference destination (the
source and destination may or may not be the same). The extension reads the Source
attribute's value and quality, and updates the extended attribute's value and quality every
scan. Changes read from the source are not written back to the Destination attribute.
4-7
4-8
Wonderware Training
Section 2 Extensions
7. For History Extension, enter values for the remaining parameters: Force Storage Period,
Engineering Units, Value Deadband, Trend High and Trend Low, if available (depends on
the data type of the selected attribute). An X is placed in the History column of the selected
attribute.
8. Lock the value if desired. The lock symbol is available only when you are extending a
template. Otherwise, it indicates the lock condition of the value in the parent object.
9. Set the security classification for the attribute if available. See "Security Icons" in "Working
with Object Editors" for more information.
10. Save and close the object editor to include the new attribute extensions in the configured
object.
Output Functionality
The following information applies to the functionality of InputOutput and Output extensions as well as
the output function of the Field Reference, Switch and Analog Device objects.
If a single set request is made to a destination attribute during a single scan cycle, that value is
sent to the destination. During a single scan cycle, though, more than one set request to the same
destination is possible. In that case, folding occurs and the last value is sent to the destination.
The following occurs during a single scan cycle: Only the last value requested during a scan cycle
will be sent to its destination when the object executes. Its status is marked as Pending as it waits
for write confirmation from the destination object. All other set requests during that scan cycle are
marked as successfully completed.
If one or more new sets are requested during the next scan cycle, then the second scan cycle's
value is determined in the same way as described above. It is then sent to the destination when
the object executes again and the value sent to the destination during the previous scan cycle is
marked with successful completion status even if write confirmation had not been received.
In other words, within a single scan cycle, data is folded and only the last set requested is sent to
the destination. For instance, an {11,24,35,35,22,36,40} sequence of set requests will result in a
value of 40 being sent to the destination object. All other values result in successful completion
status.
The exception to the above-described functionality is for Boolean data types used in User sets
(sets from InTouch or FactorySuite Gateway). This functionality accounts for an unknown user
input rate (for instance, repeated button pushes) with a consistent object scan rate for outputs, and
therefore creates reproducible results. In this case, a combination of folding as described above
plus maintenance of a queue of one element deep in order to better meet the expectation of users.
To begin with, the first value set after the object is deployed (the default True or False) is always
written to its destination.
Subsequently, the following occurs during a single scan cycle: A two-tiered caching scheme of a
Value to be Sent and a Next Value to be Sent is implemented. The Value to be Sent is based on
data change as compared to the last value sent to the destination object. The Next Value to be
Sent is based on data change as compared to the Value to be Sent value. When the first data
change occurs, the new value is cached in the Value to be Sent queue. Folding occurs if the same
value is requested again. If another value change occurs, this second value is cached in the Next
Value to be Sent queue. Again, folding occurs if the same value is requested again.
The Value to be Sent value is sent during the next scan cycle, and the Next Value to be Sent value
is sent during the following scan cycle.
4-9
4-10
In other words, for Boolean data types and User sets, the following examples apply:
Previous Scan Cycle
Value Sent
Value to be Sent
1,0,0,1,1
none
1,0,0,1,1
1,1,0,0
1,1,0,0
none
Note: In the case of Boolean data types used in Supervisory sets (sets between
ApplicationObjects and ArchestrA) or a mixture of Supervisory and User sets during a single scan
cycle, the behavior is the same as the other data types.
Important! When the same attribute is extended with an Input extension and an Output extension,
writes to the Output extension's Destination occur every scan regardless of whether the extended
attribute has changed. This behavior occurs even when the Output Every Scan check box is
cleared, increasing the potential for additional network traffic. The behavior described in this note
does not apply to an InputOutput extension.
Wonderware Training
Objectives
Upon completion of this lab you should be able to:
Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.
2. Extend the Speed attribute with an Input extension and configure its Source as ---.---.
3. Extend the SpeedSP attribute with an InputOutput extension and configure its Source
as ---.---. Leave Output destination differs from input source unchecked and lock it.
InControl.tagname.TXX0_AG_Speed
SpeedSP.InputSource:
InControl.tagname.TXX0_AG_SpeedSP
4-11
4-12
6. Using the watch list created in Lab 5, add a new watch window called Extensions and add the
following attribute references:
Agitator_001.PV
Agitator_001.Cmd
Agitator_001.Speed
Agitator_001.SpeedSP
7. With the Agitator Running, set the SpeedSP attribute to any valid float value to test it.
Wonderware Training
Float
Category:
Object writeable
Float
Category:
User writeable
4-13
4-14
checked
Source:
---.---
Wonderware Training
checked
Source:
---.---
unchecked (locked)
7. Click the Save and Close button and check in the object.
4-15
4-16
9. Select the Speed attribute and configure its Input extension as follows:
Source: InControl.tagname.TXX0_AG_Speed
where XX is the student number.
Wonderware Training
11. Click the Save and Close button and check in the object.
4-17
4-18
13. Open Object Viewer by right-clicking the Agitator_001 instance and selecting View in Object
Viewer. If you closed Object Viewer before, you can use File / Load Watch List to open the file
you saved earlier.
14. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch
Window to add a new tab to the watch list.
15. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the watch list to Extensions.
PV
Cmd
Speed
SpeedSP
17. With the Agitator Running, set the SpeedSP attribute to any valid float value (e.g. 50).
Wonderware Training
If you use Calculated and Calculated retentive UDAs as counters, they must be
manually initialized. For example, if you use me.UDA=me.UDA+1 as a counter in a script,
you must also initialize the UDA with something like me.UDA=1 or me.UDA=<some
attribute value>.
Calculated UDAs can be initialized in scripts with Execution type triggers of On Scan and
Execute, but not initialized in Startup scripts.
You must initialize Calculated retentive UDAs in Startup scripts and you can initialize
these UDAs in On Scan and Execute scripts. A Calculated retentive UDA retains the
attributes current value after a computer restart, redundancy-related failover, or similar
situation in which valid checkpoint data is present. Your Startup script should contain a
statement testing the Boolean value of the StartingFromCheckpoint attribute on the
objects AppEngine. If the value is TRUE, do not initialize the UDA. If the value is FALSE,
initialize the UDA.
If the user selects an Execute type script, the script editor exposes one edit field for an expression
and another edit field for the script code.
The script expression acts as a filter for the invocation of Execute script execution. The expression
is evaluated every time the object that the script is attached to is executed. Dependent on the
evaluation the actual script is triggered or not.
4-19
4-20
Reference Strings
Reference strings refer to an object or to data within an object's attributes. A reference string
consists of an object's reference string plus an attribute's reference string.
AutomationObject Reference + Attribute Reference
A reference string is the object name plus the attribute name: ObjectName.AttributeName.
In TIC101.PV
TIC101 is the AutomationObject reference and PV is the attribute reference.
The AttributeName can be omitted in a reference string, PV being assumed in such cases.
Note: Some objects have a PV attribute, while others do not.
Reference strings are concatenated substrings, each no more than 32 characters separated by
periods. A substring cannot contain a period. Mathematical operator characters are not allowed. At
least one character in each substring must be non-numeric.
Note: The Galaxy resolves reference strings. If the GR is not available, resolution is done on a
peer-to-peer level. After initial resolution, an object is provided an alias that handles references to
its location across your network. If an object is relocated or renamed, the reference string
resolution is repeated and a new alias provided.
Wonderware Training
Me
MyContainer
MyPlatform
MyEngine
MyArea
Relative references are especially useful in templates because absolute references typically do
not apply or make sense.
When you use relative references, like MyContainer, you can refer to contained objects within that
container. For example, a reference to MyContainer.InletValve.PV is equivalent to
Tank1.InletValve.PV in the following hierarchy:
Tank1
4-21
4-22
Wonderware Training
Historize Script State: Select to send the state of the script to a Wonderware Historian
Server historian, the ArchestrA historian.
Script Creation box: Shows the script you are writing.
4-23
4-24
Script Examples
The following script examples may be used for reference.
Wonderware Training
Note: Many additional script examples may be located in the ArchestrA IDE Help files under
Enhancing an Objects Functionality/QuickScript .NET Scripting Language/Sample Scripts.
Load an XML Document from Disk and Do Look-ups on It
dim doc as System.Xml.XmlDocument;
dim node as System.Xml.XmlNode;
doc = new System.Xml.XmlDocument;
doc.Load("c:\catalog.xml");
' find the title of the book whose isbn is 044023722X
node = doc.SelectSingleNode("/catalog/book[@isbn='044023722X']/title");
LogMessage(node.InnerText);
' find all titles written by Grisham
for each node in doc.SelectNodes("/catalog/book[author/lastName='Grisham']/
title")
LogMessage(node.InnerText);
next;
4-25
4-26
While inline specification of external attributes is very convenient (you just type in the name or pick
the right name using the attribute browser), it imposes restrictions when used in scripts attached to
templates.
Consider the following script snippet:
Valve101.ControlMode=Auto;
Valve101.Cmd=Open;
Valve101.ControlMode=Cascade;
If this script is attached to a template and the script code (script text) is locked in the template, then
any instance of this template can only meaningfully work if there is a Valve101 obviously a bad
design of the script.
The script environment offers two solutions for this problem:
1.
Usage of relative names in the script code (e.g., MyContainer.ControlMode=Auto). While this
approach works perfectly in scripts which are locked in a template, it severely constrains the
number of attributes that can be accessed this way.
2. Using aliases in the script code that link to a reference table. This option is discussed in more
detail in the next section.
Wonderware Training
This script can be locked in the template without locking down which attribute on what object is
actually used in an instance derived from this template.
The actual mapping to an attribute is done via the Alias Reference table exposed by the script
editor. The table exposes the following fields:
Alias
Reference
PVofInletValve
Valve101.PV
4-27
4-28
Wonderware Training
Execution Mode
OnExecute() mode scripts can be configured to execute in one of two execution modes,
synchronous or asynchronous. All other script types are always synchronous and cannot be
configured otherwise.
Synchronous Execution
The synchronous mode is the default choice and represents serial script execution by the
ApplicationEngine in the course of calling the Execute method of all ApplicationObjects that are
on-scan in the ApplicationEngine. For satisfactory determinism, this mode requires that all scripts
execute deterministically and quickly enough to prevent an ApplicationEngine over-scan condition.
Asynchronous Execution
The asynchronous mode is used for the class of scripts that perform operations that dont meet the
above speed and determinism criteria. These scripts will be executed on a worker pool of
separate, lower priority threads than the Application Engines primary thread. No support will be
provided to establish prioritization of execution among Asynchronous mode scripts; they will all
receive the same priority.
An asynchronous script running in a separate thread can access ArchestrA attributes via normal
get/set calls. The call is marshaled over to the main engine thread and processed. The calling thread
waits for call return until main thread can process get/set request. This is OK since asynchronous
thread is usually slower and background in nature.
4-29
4-30
Shutdown attribute simply a Boolean flag that requests the asynchronous script to shut
down on its own. A well-written script will check this command before and after timeconsuming operations.
Elapsed time attribute indicates the amount of time the asynchronous script has been
executing (if RunningFlag is true).
Asynchronous scripts also have the following diagnostic attribute within the engine:
Count of asynchronous scripts running indicates the number of asynchronous scripts
currently executing.
Watchdog Timeout
The execution time of both synchronous as well as asynchronous mode scripts is monitored
against a timeout period. All synchronous scripts on an AppEngine share the same timeout period
which is exposed as a configurable attribute of the AppEngine.
In the case of asynchronous scripts a timeout period that is shared for all asynchronous scripts does
not make sense since the needed execution time can vary by orders of magnitude between different
asynchronous scripts. In order to account for this, the timeout period can be separately configured
for each asynchronous script. It is exposed as an attribute of the script.
Wonderware Training
This script will work independent of whether the PID object resides on the same AppEngine that
the script is executing on (on-engine) or not (off-engine). Each set operation is immediately
executed. If the PID object is on-engine then the set operation changes the value of the
corresponding attribute right away.
If the PID object is off-engine then all set operations are queued up in exactly the order they were
issued and are executed at the end of the scan cycle of the AppEngine (asynchronous set).
Get operations work accordingly. Lets consider the following script code snippet:
{For this example you assume that PID.SetPoint==30 at the start of the script}
If PID.SetPoint==30 then
PID.Mode=Auto
PID.SetPoint=50
PID.Mode=Cascade
Endif;
If PID.SetPoint==50 then
{Do something else}
Endif;
If the PID object exists and its SetPoint can be set to 50 then the second if statement will always
evaluate to true if the PID object is on-engine. However, in the off-engine case both if statements
will never evaluate to true in the same execution cycle of the script.
In other words, when a script performs an attribute set (write) operation followed, at a later point in
the script, by a read of the same attribute, the value written will not be read back if the attribute is
off-engine, rather the attribute value existing when the script commenced execution is returned
instead. In this case, the value written to the attribute will not be returned by a get (read) operation
until succeeding execution scans of the script.
Notes:
As described above a script performing read / write operations on the same attribute will
behave differently depending on whether the attribute is on-engine or off-engine. If
necessary, the script developer can avoid this situation by using a local script variable to
manage the attributes value in the course of the scripts execution. At the end of the
script, the value of the local variable is then written to the attribute.
Scripts attached to an ApplicationObject are part of the supervisory control logic. I.e., read
and write operations performed by the script are treated as SupervisoryGets / Sets.
4-31
4-32
Accessing UDAs
The precautions taken for regular attributes do not apply for UDAs. UDAs are added to an object
for the main purpose of having one or more scripts on this object drive them.
As a result script access to UDAs is treated exactly like the internal runtime access of a primitive to
its attributes. In particular, a script can set the quality property of a UDA on the hosting object.
However, the quality of a UDA is defaulted to GOOD.
On the other hand propagation of quality in calculations is handled in the following manner: In the
expression a = b + c, if b is bad (or initializing), the value of a is not updated and its quality is set to
BAD or (initializing). If the quality of b is uncertain then the calculation is performed, the value of a
is updated and as quality is set to uncertain.
Wonderware Training
4-33
4-34
If the quality of Valve101.PV and Valve102.PV is acceptable then the if and else branches are
executed purely based on the value of those two attributes.
However, if at least one of the PV values has an unacceptable quality (bad or initializing) then
automatically the else branch is executed. I.e., if statements should be written in a way that the
else branch always constitutes the fail safe mode.
Wonderware Training
As soon as the right side is not just a single attribute reference but involves additional statements,
the script execution system has to ignore the quality. From a users perspective it is easier if all the
listed cases are treated equally; i.e., the quality is ignored in all cases.
When a script execution abort occurs, the script just stops. Sometimes it might be necessary
to set the quality of some UDAs that are controlled by the aborted script to bad. The user can
accomplish this by exercising a second script that monitors the abortion of
the first script.
Failed writes constitute a normal behavior that does not constitute an alarm.
Example: A script constantly tunes the parameters of a PID loop which is typically in
control mode. However, every time when a shift changes, the PID object is set to manual
mode for a short period of time. Now the writes fail but the script just keeps going and
eventually a script run will again successfully be able to set the PID parameters.
Of course it is also possible to check the WriteStatus from within the script and react accordingly.
4-35
4-36
Overflow Error
A script experiences an overflow condition. Overflow conditions not only apply to analog data
types (integer float) but also other data types (e.g., string length overflow).
Division by Zero
The division by zero error is raised only for integer operations. In the case of float values the
scripting is able to deal with + and - and also NaN (Not a Number).
Wonderware Training
When a Script is locked in a Template, the Alias names are automatically locked also. The
Alias References are never locked. Locking of Aliases is not specified separately (it is only
done when the script itself is locked/unlocked).
The Script expression, trigger type and trigger period are group locked and can be locked
separately from the script text.
When a Script is added to a Template, all properties of the Script are editable.
When a Script is added to an Instance, all properties of the Script are editable except for
the Lock property (since lock is never editable in an Instance).
For a Script added in an Instance, all properties of the Aliases can be edited except the
Lock (since locks are never editable for Instances).
Calling public instance methods (with and without parameters) of .NET types.
Calling public static methods (with and without parameters) of .NET types.
Language Definition
QSII Case Sensitivity
All QuickScript .NET keywords and variable name identifiers are not case sensitive. However, the
case is preserved throughout editor sessions.
QSII Comments
Both single line and multi-line comments are supported. Single line comments start at a in a
source code line that has no matching ending in the line. Multi-line comments start with a { and
end with a } and can span multiple lines as the name suggests.
4-37
4-38
Description
Complement
Negation
NOT
Logical NOT
Description
Multiplication
Division
Subtraction
Assignment
MOD
Modulo
SHL
Left Shift
SHR
Right Shift
&
Bitwise AND
Exclusive OR
Inclusive OR
**
Power
<
Less than
>
Greater than
<=
>=
==
<>
Not Equal to
AND
Logical AND
OR
Logical OR
Wonderware Training
Operator
1 (highest)
(, )
- (negation), NOT, ~
**
* , /, MOD
+, -
SHL, SHR
==, <>
&
10
11
12
13
AND
14 (lowest)
OR
QSII Variables
Variables must be declared before any other code. Local variables or attributes can be used
interchangeably within the same script. However, local variables go out of scope at the end of the
script function they are used in. However, variables declared in the general section of the script
exist and keep their value throughout the lifetime of the object that the script is associated with.
Thus this kind of variable turns into a member variable of the script class. Other scripts attached
to the same object cannot access this variable.
Variables can be used on both the left and right hand side of statements and expressions.
where
variable_name ::= <letter> { <letter> | <digit> | <special_character> }
letter ::= A-Z | a-z
digit ::= 0-9
special_character ::= _
upper_bound ::= 1-2,147,483,647
data_type ::= Boolean | Discrete | Integer | Float | Real | Double | String |
Message | Time | Object
The variable name is limited to 255 Unicode characters. Note that, in contrast to attribute names,
variable names must not contain dots. Variable names and the data type identifiers are not case
sensitive. If there is a naming conflict between a declared variable and another named entity in the
script (attribute name, alias, name of an object leveraged by the script), the variable name takes
precedence over the other named entities.
For example, lets assume that your script accesses the hosting objects PV attribute in the script text
and you declare DIM PV AS Integer;. Within the declaring script, expressions using PV in a
4-39
4-40
Default
Value
Corresponding
C++ data type
Boolean, Discrete
False
VARIANT_BOOL
Integer
long (4 bytes)
Signed
2147483648 to 2147483647
Float, Real
NaN
float (4 bytes)
Double
NaN
Double (8 bytes)
String, Message
(empty
string)
BSTR
Time
Based on .NETs
System.DateTime
(8 bytes)
ElapsedTime
Based on .NETs
System.TimeSpan
structure (8 bytes)
Object
Nothing
IDispatch pointer
Comment
Wonderware Training
QuickScript
.NET Data
Type
Comments
MxBoolean
Boolean or
Discrete
True=1, False=0
MxInteger
Integer
MxFloat
Float or Real
MxDouble
Double
MxString
String or
Message
MxInternationalizedString
String or
Message
MxTime
Time
MxElapsedTime
ElapsedTime
Same definition
MxReferenceType
String
MxStatusType
Integer
MxDataTypeEnum
Integer
MxSecurityClassificationEnum
Integer
MxDataQualityType
Integer
4-41
4-42
QuickScript
.NET Data
Type
Comments
MxQualifiedEnum
Integer or
String
MxQualifiedStruct
N/A
Wonderware Training
Floats
Float constants are applicable as values for variables of type float / real or double. I.e., float
constants do not take the number of bytes into account. It is up the validation step of the script
(lexer / parser) to detect an overflow when too big a float constant is assigned to either a variable
of type float / real or double.
FloatConst ::=
[<sign>] <digit>* .<digit>+ [<exponent>]
|
String Literals
String literals need to be surrounded by double quotes. They are referred to as quoted strings.
Within the quoted string the character \ can be used as an escape character. The following
escape characters are supported:
Escape Sequence
Description
\n
New line
\r
Carriage return
\t
Horizontal tab
\'
\"
\\
Backslash
\uxxxx
4-43
4-44
Description
\Uxxxxxxxx
WHILE Loop
Data Type
Mapping
Boolean, Discrete
Integer
Float, Real
Double
String, Message
Time
Wonderware Training
Mapping
Object
For consistency with InTouch Scripting, the following syntax is also supported:
IF <boolean_expression> THEN
[statements]
[ { ELSE IF
[statements] } ]
[
ELSE
[statements] ]
ENDIF;
ENDIF;
This approach basically nests a brand new IF compound statement within a previous one and
requires an additional ENDIF.
4-45
4-46
(This holds true if loop is incrementing up, otherwise, if loop is decrementing, loop
termination will occur if analog_var is less than end_expression.)
change_expression is an expression, to define the increment or decrement value of
analog_var after execution of the NEXT statement. The change_expression can be either
positive or negative. If change_expression is positive, start_expression must be less than
or equal to end_expression or the statements in the loop will not execute. If
change_expression is negative, start_expression must be greater than or equal to
end_expression for the body of the loop to be executed. If STEP is not set, then
change_expression defaults to 1.
It is possible to exit the loop from within the body of the loop via the EXIT FOR statement.
The FOR loop is executed as follows:
1. analog_var is set equal to start_expression.
2. The system tests to see if analog_var is greater than end_expression. If so, the loop exits. (If
change_expression is negative, the system tests to see if analog_var is less than
end_expression.)
3. The statements in the body of the loop are executed. Here the loop can potentially be exited
via the EXIT FOR statement.
4. analog_var is incremented by 1 - or by change_expression if it is specified.
5. Steps 2 through 4 are repeated.
Note: FOR-NEXT loops may be nested. The number of levels of nesting possible depends on the
memory and resource availability.
As in the case of the FOR TO loop it is again possible to exit the execution of the loop via the
statement EXIT FOR; from within the loop.
Wonderware Training
Note: Collections are frequently leveraged by VB and VBA / JScript. Microsofts office suite is built
around the concept of collections. Furthermore Microsoft started to expose more and more of the
Windows system via collections.
Example:
Dim
Dim
Dim
Dim
Dim
fso As IFileSystem;
folder As IFolder;
fileCollection As IFileCollection;
file As IFile;
fileName as String;
WHILE Loop
A WHILE loop is used to perform a function (or set of functions) within a script several times during
a single execution of a script while a condition is true. The general format of the WHILE loop is as
follows:
WHILE <boolean_expression>
[statements]
[EXIT WHILE;]
[statements]
ENDWHILE;
Where:
It is possible to exit the loop from within the body of the loop via the EXIT WHILE statement.
The WHILE loop is executed as follows:
1. The system tests to see if boolean_expression is true. If not, the loop exists.
2. The statements in the body of the loop are executed. Here the loop can potentially be exited
via the EXIT WHILE statement.
3. Steps 1 through 2 are repeated.
Note: WHILE loops may be nested. The number of levels of nesting possible depends on the
memory and resource availability.
4-47
4-48
Where StringRight is a binary script function as described in the Scripting DFS. After executing the
script snippet PumpState holds the value On.
Any of the script functions provided by The Application Server can be invoked this way.
Syntax:
ScriptFunction ::= <FunctionName> ( {<Paramater>} { , <Paramater>} );
ActiveX Server:
Other names for ActiveX Server are COM Server, ActiveX component, ActiveX EXE, ActiveX DLL.
Creating objects outside of the context of scripts does not work. In many cases an object can only
be created in a programmatic manner based on another already created object.
VBS example:
Dim xlApp
Dim xlBook
Dim xlSheet
' Assign object references to the variables. Use
' Add methods to create new workbook and worksheet
' objects. Note that xlBook and xlSheet can only be
' created after the objects xlApp and xlBook got
' created.
Set xlApp = WScript.CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets.Add
Once created, the methods exposed by a COM object can be accessed as if they would be script
functions.
There are at least two different approaches:
Wonderware Training
Keywords
and
exit
null
as
false
object
attribute
float
or
boolean
for
real
din
if
shl
discrete
in
shr
double
indirect
step
each
integer
string
elapsedtime
message
then
else
mod
time
elseif
new
to
endif
next
true
endwhile
not
while
4-49
4-50
Note: The Attribute() keyword does not accept values as a parameter. If you need to use dynamic
references to an attribute value, use Indirect instead.
QuickScript .NET also reserves for future use the following words:
Reserved Words
abstract
event
MyContainer
static
base
explicit
MyEngine
sub
begin
extern
MyHost
switch
break
finally
MyPlatform
system
call
function
namespace
this
case
goto
nothing
throw
catch
implicit
on
triger
class
import
out
try
continue
imports
private
typeof
default
include
protected
until
delegate
inherits
public
using
do
interface
raiseevent
virtual
end
internal
readonly
void
endsub
is
ref
when
endswitch
like
return
with
enum
Me
select
error
MyArea
sizeof
Wonderware Training
Objectives
Upon completion of this lab you should be able to:
Use the QuickScript.NET scripting engine to extend your objects with extra functionality
Me.ConnectionStatus <> 2
Trigger type:
WhileTrue
Trigger period:
00:00:05.0000000
Script body:
Me.Reconnect = True;
4-51
4-52
Me.ConnectionStatus <> 2
Trigger type:
OnTrue
Script body:
Me.DisconnectCnt = Me.DisconnectCnt + 1;
Wonderware Training
Aliases section:
(locked)
Declarations section:
(locked)
Scripts section:
Execution type:
Execute (locked)
Basics section:
(locked)
Expression:
Me.ConnectionStatus <> 2
Trigger type:
WhileTrue
Trigger period:
00:00:05.0000000
4-53
4-54
Integer
Category:
Calculated
(locked)
Declarations section:
(locked)
Scripts section:
Execution type:
Execute (locked)
Basics section:
(locked)
Expression:
Me.ConnectionStatus <> 2
Trigger type:
OnTrue
Wonderware Training
8. Click the Save and Close button and check in the object.
4-55
4-56
Wonderware Training
Objectives
Upon completion of this lab you should be able to:
Use the QuickScript.NET scripting engine to automatically configure on runtime the input
and output references of instances
Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.
2. Add a script called AssignIO (locked) with an Execute execution type configured as follows:
Expression:
Me.AssignIOCmd
Trigger type:
WhileTrue
Trigger period:
00:00:00.0000000
Script body:
(provided as a text file as part of the training material)
4-57
4-58
Wonderware Training
Data type:
Boolean
Category:
User writeable
True/False:
checked
4-59
4-60
Aliases section:
(locked)
Declarations section:
(locked)
Scripts section:
Execution type:
Execute (locked)
Basics section:
(locked)
Expression:
Me.AssignIOCmd
Trigger type:
WhileTrue
Trigger period:
00:00:00.0000000
Wonderware Training
5. Click the Save and Close button and check in the object.
4-61
4-62
Note: The new instance of the $ABMixer template will display the warning icon on all
contained objects. This is OK. These warnings can be cleared by setting the default
references from ---.--- to ---.
Important! If there is a warning icon on the mixer instance itself, notify your instructor.
Wonderware Training
Module 5
5-3
5-9
5-25
5-29
5-2
Module Objective
Wonderware Training
Section 1 Alarms
Section 1 Alarms
Section Objectives
This section provides familiarization of the concept of alarms and events and how ArchestrA
handles them.
What is an Alarm/Event
The alarm and event capabilities in the system provide for users to automate the detection,
notification, historization and viewing of either application (process) alarms and events or system/
software alarms events. Alarms and events are things that occur in the runtime system. Events
and alarms are different and the system distinguishes between the two. An event is simply an
occurrence of a condition at a certain point in time. The system can detect events, store them
historically and report them to various clients. Alarms, on the other hand, represent the
occurrence of a condition that is considered abnormal (generally bad) in nature and requiring
immediate attention from a user. Alarms are a special type of event that indicate something
abnormal has happened. The system handles the real-time reporting of alarms in a special
manner and provides special clients for their viewing.
Examples of alarms include:
A process measurement has exceeded a predefined limit, such as a high temperature
alarm.
A process device is not in the desired state, such as a pump that should be running has
stopped.
The system hardware is not operating within desired limits, for example the CPU utilization
on a Platform exceeds a certain percentage for an extended time.
The operator has changed a plant operator parameter; for example, a setpoint on a
temperature controller.
The system engineer has changed the runtime system configuration; for example,
deployment of a new AutomationObject.
The system engineer has started or stopped a system component; for example, stopping
an engine.
A platform has come back online after it had a failure or shutdown.
Configuration actions within the Galaxy Repository; for example import or check-out.
A message sent to the system logger (SMCLogger). Note, sometimes certain software
events may log a message in addition to generating an event, but this is ancillary. Logger
messages are not events.
5-3
5-4
Alarms:
ArchestrA field
N/a
Time
Tagname
Name
Comment
Area
Alarm group
State
Priority = 1-999
Priority
Value (mxValue)
Value
Limit (mxValue)
Limit
Value MxReference
N/a
Limit MxReference
N/a
Units MxReference
N/a
Category
Class
Category
SubClass
Wonderware Training
Section 1 Alarms
AutomationObjects acknowledge attribute for the alarm. Security is used as part of this set (it is a
UserSetAttribute). An optional comment can be entered when the acknowledge is requested.
An acknowledge of an alarm is reported as an alarm state change back to the distributed alarming.
The optional operator comment is included in the event message sent back.
Distributed Alarming has no support for passing a rejected acknowledge failure feedback.
Therefore, if an acknowledge is requested from a client but does not succeed, the only feedback
on the InTouch client will be no change in acknowledge status on the client.
Alarm Enable/Disable
The InTouch Alarm Client can enable/disable alarming on any AutomationObject. The platform
receives the enable request and forwards it to the target AutomationObjects AlarmMode attribute.
Security is used as part of this set (it is a UserSetAttribute).
System Events:
ArchestrA field
Type = SYS
Timestamp
Time
Tagname
Name
Tag description
Comment
Area
Alarm group
N/a
N/a
Priority = 1
N/A
Provider = Galaxy
N/A
Type = OPR
Timestamp
Time
Tag.primitive.attribute
Name
Tag description
Comment
Area
Alarm group
5-5
5-6
Operator 1 name
RequestingEngineName +
Operator name
Operator 2 name
N/a
Old value
Limit
New value
value
N/a
N/a
Priority = 999
N/A
Provider = Galaxy
N/A
Type = LGC
Timestamp
Time
Tag.primitive.attribute
Name? Or name+comment?
Tag description
Comment
Area
Alarm group
Old value
Limit
New value
Value
N/a
N/a
Priority = 999
N/A
Provider = Galaxy
Wonderware Training
Section 1 Alarms
Alarm Queries
Alarm queries provide alarm information and event reports coming from the galaxy.
Use the following syntax for querying alarms from a Galaxy. This syntax gets alarms from a
specific attribute of an object in a specific area on a specific computer.
\\NodeName\Galaxy!Area.Object.Attribute
The following syntax gets all alarms from the Platform on computer node (by default):
\\NodeName\Galaxy
You can also use a wildcard. The following syntax gets all alarms from Area1, Area2, Area3, and so
on:
\\Galaxy!Area*
The following syntax gets all alarms from all objects starting with the characters "Tank" in the area
"Area":
\\Galaxy!Area.Tank*
Configuration at design time for subscription to specific alarm providers on the network for
alarm reports. One or more Application Server platforms can be an alarm providers (and
can be local or remote).
Configuration at design time for subscription to specific alarm groups (or areas) in a
provider. Groups (or areas) can be hierarchical, meaning sub-groups are automatically
subscribed to.
5-7
5-8
Wonderware Training
Objectives
Upon completion of this lab you should be able to:
Configure the $WinPlatform object as an alarm provider for the galaxy
Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.
5-9
5-10
5. Extend the Malfunction attribute with an Input extension and configure its Source as ---.---.
6. Extend the Malfunction attribute with an Alarm extension and lock it. Configure its category as
Process and leave the default values on the rest of the attributes.
9. Using the watch list created in Lab 5, add a new watch window called Alarms and add the
following attribute references:
LIT_001.PV
LIT_001.InAlarm
LIT_001.Hi.InAlarm
LIT_001.Hi.Limit
LIT_001.Hi.TimeAlarmOn
LIT_001.Hi.TimeAlarmOff
Agitator_001.InAlarm
Agitator_001.Malfunction
Agitator_001.Malfunction.InAlarm
Agitator_001.Malfunction.TimeAlarmOn
Agitator_001.Malfunction.TimeAlarmOff
ABLine1.AlarmOnCnt
Wonderware Training
sa
Password:
12. Configure the Alarm DB Logger Manager to query all priorities from the following alarm
query:
\Galaxy!ABControlSystem
\Galaxy!ABDischarge
\Galaxy!ABIntake
\Galaxy!ABProduction
13. Leave the defaults advanced settings and start Alarm DB Logger Manager.
5-11
5-12
3. Click the Save and Close button and check in the object.
Wonderware Training
checked (locked)
Level alarms:
(locked)
Hi:
checked (locked)
Hi Limit:
80.0 (unlocked)
Hi Priority:
500 (locked)
Hi Alarm Message:
6. Click the Save and Close button and check in the object.
5-13
5-14
Boolean
Category:
Object writeable
checked
--checked (locked)
Category:
Process
Priority:
500
Alarm message:
me.ShortDesc
True
Wonderware Training
13. Select the AssignIO tab and add the following line of code to the Configure agitator section of
the code:
Me.Agitator.Malfunction.InputSource = dataSource = _AG_Malfunction;
14. Click the Save and Close button and check in the object.
5-15
5-16
16. Open Object Viewer by right-clicking the LIT_001 instance and selecting View in Object
Viewer. If you closed Object Viewer before, you can use File / Load Watch List to open the
file you saved earlier.
Note: If you had Object Viewer opened, you will need to switch to it first and click the OK
button to close before trying to re-opened again from the ArchestrA IDE.
17. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch
Window to add a new tab to the watch list.
18. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the watch list to Alarms.
Wonderware Training
5-17
5-18
23. Configure the Alarm DB Logger Manager Configuration dialog box as follows and then
click the Create button:
Server Name:
(local)
Database:
WWALMDB
User Info:
User Name:
sa
Password:
Logging Mode:
Wonderware Training
Detailed
Note: If the following Warning dialog is displayed, click the Yes button to delete the existing
database and create a new one.
25. Back at the Alarm DB Logger Manager Configuration dialog box click the Next button to
continue.
5-19
5-20
To Priority:
999
Alarm Query:
\Galaxy!ABControlSystem
\Galaxy!ABDischarge
\Galaxy!ABIntake
\Galaxy!ABProductio
Wonderware Training
28. Back at the Alarm DB Logger Manager window, click the Start button to start the Alarm
Database Logger.
5-21
5-22
30. Configure the Connect to Server dialog box as follows and then click the Connect button to
continue:
Server type:
Database Engine
Server name:
localhost
Authentication:
Wonderware Training
Windows Authentication
32. On the Views list (right pane), right-click on the v_AlarmHistory view and select Open View
to display the current list of alarms logged in the database.
5-23
5-24
Wonderware Training
Section 2 Historization
Section 2 Historization
Section Objectives
This section provides familiarization with the background concept of historization and the details of
historizable configuration.
Historization Background
The history system supports historization of process data in distributed history architecture.
One or more Historian products can be installed on the same network as the Application Server
Galaxy. The Galaxy can be configured to store history data into one or more of those Historians.
Since the Engines use push technology to historize, the Historian box does not have any
ArchestrA software requirements.
Each Engine in the Galaxy is configured with the location of the Historian storage node to which its
history data is to be sent. This configuration is stored in an attribute within the Engine.
Wonderware Historian requires a Historian tag to be configured in its database for each attribute to
be historized by an AutomationObject. Thus, there is a one-to-one relationship between a
historized object and a tag in Wonderware Historian.
When an AutomationObject starts up it registers its configuration data with Historian using a
Historian supplied interface. If the Historian tag already exists, it means this object has been
previously registered. If the Historian tag does not exist, it is created automatically. In either case,
the object receives back a unique identifier (handle) for that tag. This is a push-style configuration
model, meaning the configuration data for each historized property of an object is dynamically, and
automatically, pushed to Historian. The user does not need to run Historian configure and import
tags from Application Server (as done with InTouch today).
For storage, the story is similar. When an object decides to store a new VTQ to Historian, it
pushes that storage update message, with the new VTQ, to Historian using a Historian supplied
interface. The Historian must exist on a different node from the AutomationObject. The history
primitive uses the previously-returned unique identifier for the Historian tag that corresponds to the
historized property to identify the tag being stored.
Note: Alarms are stored at the Platform, history is stored at the Engine.
History Configuration
Historizable Data Types for Attributes
Attributes of the following data types support historization:
Float (numerical)
Double (numerical)
Integer (numerical)
Boolean (non-numerical)
5-25
5-26
Value Deadband the threshold value (measured in engineering units) that the absolute
value of the difference between the new and last-stored values must differ before storing
the new value to history. A value of 0 is valid and is the default and means that some
change is required prior to storing the value. A change in Quality always causes a new
record to be stored, regardless of whether the Value has changed.
Force Storage Period this is the time interval, in seconds (floating point), at which the value must
be stored regardless of the value deadband setting. In addition to the Value Deadband setting, the
value will be stored continuously at this interval. A value of 0 disables this feature.
Trend Hi specifies the initial maximum trend value for clients.
Trend Lo specifies the initial minimum trend value for clients.
Wonderware Training
Section 2 Historization
product automatically. For example, if the engineering units string for the tag changes from Deg
F to Deg C upon a redeploy, the Historian configuration database must reflect this change.
NaN Handling
For Float and Double attributes, a potential value is the IEEE NaN encoding for the float or double
representation. NaN values can be generated for attributes that are to be historized. These NaNs
will be accompanied by a Bad OPC Data Quality. In any case, NaN is a valid value that can be
generated for floats and doubles. Unfortunately, Historian clients do not handle NaN properly.
Therefore, ArchestrA will convert the NaN value to a Null value representation just prior to sending
to Historian.
5-27
5-28
The Galaxy Platform and its Engines which are generating history startup prior to Historian
node startup in a recovery situation.
History data must be preserved in these cases by having it stored locally until the link to
Historian has recovered or Historian has started. This is called store/forward. This
capability is limited by the hard disk capacity of the system where data is stored before
forwarding. The maximum data storage size to be consumed by store/forward must be
configurable in the Platform. Also, whether store/forward is enabled/disabled can be
configured.
Wonderware Training
Objectives
Upon completion of this lab you should be able to:
Configure attributes within objects for historization including the History Extension
Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying
your objects in a common galaxy later in the course.
5-29
5-30
Agitator_001.Speed
Inlet1.PV
LIT_001.PV
Wonderware Training
C:\S&F
3. Click the Save and Close button and check in the object.
checked
Historian:
6. Click the Save and Close button and check in the object.
5-31
5-32
8. Select the History tab and check the PV box to historize the PV attribute. Leave the default
values and lock all attributes by clicking the lock on Historize.
9. Click the Save and Close button and check in the object.
checked (locked)
0 (locked)
12. Click the Save and Close button and check in the object.
Wonderware Training
14. Select the Speed attribute, check and lock the History extension and configure it as follows:
Engineering units:
RPM
15. Click the Save and Close button and check in the object.
5-33
5-34
18. Configure the Server List Configuration as follows and click the Add button:
Server:
LOCALHOST
Authentication information:
Use Integrated security:
Wonderware Training
checked
20. With LOCALHOST selected on the Servers pane (top-left pane), you will see the attribute
references configured for historization in the Tags pane (bottom-left pane).
5-35
5-36
Inlet1_001.PV
LIT_001.PV
Wonderware Training
Module 6
Security
Section 1 Security Overview
Lab 17 Security
6-3
6-13
6-2
Module 6 Security
Module Objective
Configure, deploy, and test security with Application Server.
Wonderware Training
View (or other GUI client applications) when performing runtime operations including
monitoring, control and data entry functions.
The system is not designed to stop malicious access to the system. The security system is
designed to support the normal operating parameters of an automation system. Passwords are
encrypted but they are stored in a database that is accessible. So, the system is not designed to
stop determined programmers from accessing the system.
If your application requires a higher level of security, this can be achieved by typical IT
departments using tools provided by Microsoft. To facilitate a higher level of security, the security
model can be configured to support operating system authentication. In that case, the
configuration and runtime permissions can be mapped to the external operating system account.
Some options include password timeout and electronic signature authentication.
6-3
6-4
Module 6 Security
Each attribute of an AutomationObject is given a security classification. This provides the ability to
define who can write to attributes of an object.
For example, a certain attribute of the DiscreteDevice may be set by the operator to change its
status while a different attribute may be set by a technician. These attributes are meant for
different people, Operator (operate) and Technician (tuning). Configuring access to all users for all
AutomationObjects on individual bases would be a time-consuming and repetitive effort. Thus,
configured Roles and Security Groups can be applied to Users to enable easier configuration of
the Security Model.
Security Groups are simply the grouping of objects that you want to behave in the same way with
respect to security. Every AutomationObject belongs to exactly one Security Group. By default all
new objects belong to the Default Security Group, which cannot be removed. Roles generalize
Users function, such as Intake Operator or Dispatcher. Roles are granted permissions onto a
number of Security Groups. If, for instance, a Role is granted Tuning access to a Security Group,
then that role has write permissions to all object attributes with a security classification of Tuning
(but none other). Roles are also granted utility functions-based permissions, such as Deploy or
Can Edit.
For example, a Role of Software Engineer is created. This Role has full permissions to modify the
objects in the ArchestrA IDE, and has permissions to deploy as well. To undeploy an object,
though, the system requires that the object is offscan. Control of offscan/onscan is controlled by
Operation permissions -- not granted to the Software Engineer, so he cannot undeploy any objects
in Onscan mode. Only an operator (with Operation permissions) can do so.
Permissions are required to perform most ArchestrA activities. Usually only one permission is
required to perform a given activity, but occasionally, two or more permissions may be required for
operation-critical actions.
Wonderware Training
Authentication Mode
6-5
6-6
Module 6 Security
On the Authentication Mode page, choose the mode of Galaxy security:
None: The default setting for new Galaxies, this mode is considered Open Security. It
leaves all functions open to all users. No authentication is provided for any operations in
the ArchestrA configuration or runtime environment. No login dialog boxes are displayed
for operating Application Server utilities or runtime processes.
Galaxy: This mode uses local galaxy configuration to authenticate the user. Use this
setting to create a user security system controlled by the Galaxy database.
OS User Based: This mode enables the Authorization of individual OS users. Use this
setting to take advantage of the operating system's (NT) user authentication system, on
an individual user basis.
OS Group Based: This mode enables the Authorization for users based on which OS
Groups they have been assigned to. Use this setting to take advantage of the operating
system's user authentication system, on a group basis. When you select OS Group
Based Authentication mode, the following Configurable Intervals options are displayed:
Login Time: This value (in milliseconds) is the timeout period during which the
system validates the user's membership against the OS groups selected as ArchestrA
Roles. After this timeout period, the login operation defaults to the local cache. The
result of a successful login for a value other than 0 (zero) is that local cache is stored/
updated. If the login operation times out and the user has performed a previous
ArchestrA login on the computer, local cache is used; if the user has never performed
an ArchestrA login on the computer, the ArchestrA login fails. Minimum allowed value
is 0 (zero); maximum is 9,999,999. Default value is 0 (zero), which switches off this
feature (the operation does not time out). The Login Time option should be used
primarily for intermittent or slow network scenarios. The value you should use in this
option is determined by the speed of your network and by the number of groups
configured in ArchestrA. In other words, the slower the network or the higher the
number of groups, the greater the value should be for Login Time.
Role Update: This value (in milliseconds) is the time between each validation attempt
per OS group for the user's membership when a login is attempted. The user
membership update is done one role per Role Update interval to minimize network
usage. Minimum allowed value is 0 (zero); maximum is 9,999,999. Default value is 0
(zero), which switches off this feature (the operation does not pause between
validating user membership and groups). This option should be used primarily for
intermittent or slow network scenarios. This option operates independently of the
Login Time option. In other words, even if Login Time times out, the role update
operation continues in the background and eventually updates user-to-role
relationships for this user in the local cache.
Note: When you select Authentication Modes, note the messages relevant to your ArchestrA
installation that are displayed in the Note box.
Wonderware Training
If you have previously configured security under one Authentication Mode and then you
switch authentication modes, only those users created while configuring the new mode
are enabled. Other users are not deleted, just disabled in the new mode.
When you close the Configure Security dialog box after selecting any Authentication
Mode other than None, you must login. This action ensures that the new security model
can be enforced. If you select Cancel on the login dialog box, the ArchestrA IDE closes.
When you switch to None from another Authentication Mode and click OK, the
ArchestrA IDE is shut down.
When Galaxy authentication is selected, each user must provide a user name and
password in a login dialog box. The security system authenticates the user's credentials
against Galaxy user data. Access to all operations in the ArchestrA IDE and anywhere in
the ArchestrA environment are granted based on the logged in user's associated roles
and permissions. The ArchestrA IDE customizes the user interface to the user's previous
preferences (for instance, which Application Views are shown). The logged in user's name
is shown in the status bar of the ArchestrA IDE.
When OS User Based authentication is selected, each user must provide a domain, user
name and password in a login dialog box. The security system ensures that the OS user is
authorized to use the ArchestrA IDE.
When OS Group Based authentication is selected, each user must provide a domain, user
name and password in a login dialog box. The security system first ensures that the user
is authorized to use the ArchestrA IDE. Then the system authorizes the user's credentials
against operating system groups mapped to security roles in the Galaxy.
Note: In both OS-based authentication modes, a user is not presented with a log in dialog box
if that user has authorization to use that ArchestrA utility.
A user can have multiple accounts within the security system. For instance, a user may
have an account that provides permissions for working with instances but not templates.
The same person may have another supervisory account for working with templates and
managing users in the ArchestrA environment. To switch between levels of authority, the
person must login as the new user. To do this, click Change User on the Galaxy menu.
6-7
6-8
Module 6 Security
If you use OS Group Based Authentication Mode, you should first familiarize yourself indepth with
the functions of the Windows operating system, particularly its user permissions, groups and
security features. ArchestrA OS Group Based security leverages those Windows features.
Take note of the following behaviors that are unique to OS Group Based Authentication Mode:
A newly-added user working on a computer that has no access to the Galaxy node cannot
write to an attribute on a remote node if that user has never logged on to the remote node.
This is true even if the user has been given sufficient runtime operational permissions to do
writes. To enable remote writing capabilities, log on to the remote node at least once.
Wonderware Training
If you attempt to log in to ArchestrA on a workstation running Windows 2000, login will fail
until you properly set the TCB privilege in Local Security Policies. Do this as follows: On a
Windows 2000 Server computer - on the Start menu, point to Programs and then
Administrative Tools, and then click Local Security Policies (On a Windows 2000
Professional computer - on the Start menu, point to Settings and then click Control
Panel. In the Control Panel, double-click Administrative Tools. In the Administrative
Tools utility, double-click Local Security Settings.). In the left pane of the Local Security
Settings dialog box, expand the Local Policies folder and click the User Rights
Assignment folder. In the right pane, double-click Act as a part of operating system. In
the Local Security Policy Setting dialog box, add the user (the user logged in to the
computer) by selecting the Local Policy Setting check box, and then click OK. Log off
and log in to the computer again to implement the new TCB privilege. You must be an
administrator to set TCB privilege.
The list of domains and user groups appears differently in the group browser depending
on whether you have configured your domain as a Mixed or Native domain. Your unique
appearance should map to the list of domains and user groups you see when you use the
Windows tool for managing your domain. A domain group that is configured as
"Distribution" rather than "Security" cannot be used for security purposes.
The user's full name is not available to any client (for instance, an InTouch window) if the
domain controller is disconnected from the network when the user logs in to ArchestrA for
the first time. If the user previously logged in to ArchestrA when the domain controller was
connected, the user's full name will still be available to the client from data stored in cache
even if the domain controller is disconnected when the user subsequently logs in to
ArchestrA.
User Authentication
Client utilities like ArchestrA IDE, SMC, and View require their users to be authenticated so that
the appropriate permissions can be confirmed. An authenticated user is granted the sum of all
Permissions within their assumed Roles.
Login using an OS user who has been authorized and whose password has expired. The
user will get the message Login Failure: The specified account password has expired.
The user will then be able to change the password.
If the OS user is a new user and the account has been configured to require the password
to be changed on the first logon, on attempting the login they will receive the message
Login Failure: The password for the specified account must be change before first logon.
6-9
6-10
Module 6 Security
Machines and users defined within a Workgroup. Note the users/groups have been
defined on each machine and imported into the Galaxy Repository (GR) and defined as
Local Host.
Logon Dialog
If security is enabled within the Galaxy, a client utility Logon dialog will be displayed. Application
Server provides a standard login dialog.
The login appears:
The user explicitly chooses a Log On option from within the UI. It is not necessary to
explicitly Log Off before logging on using a different User Profile. The previous user will
be implicitly logged off.
Logon Object
A Logon COM object is provided for use by any OS client utilities that need to log on to Application
Server. This COM object either provides a Log-on Dialog or is driven silently by an automation
interface. OS authentication and log on dialogs may be leveraged.
Wonderware Training
FreeAccess Any User can write to these attributes to perform safety or time critical
tasks that could be hampered by an untimely logon request (e.g. halting a failing process).
This does not require the user to have any privileges.
Operate Operators write to these attributes during normal day-to-day operations. These
include Attributes such as Setpoint, Output and Control Mode for a PID Object, Command
for a Discrete Device Object, etc. This requires the user to be assigned to the Security
Group of this AutomationObject, to allow the write.
Secured Write Operators write to these attributes for normal interaction with a highly
secured object forces re-authentication. This requires the user to be assigned to the
Security Group of this AutomationObject, to allow the write. The AutomationObject will
reject the write requested via the return status and the user must re-enter the login details.
Verified Write Operators write to these attributes for normal interaction with a very
highly secured object. This is similar to Secured Write, however it also requires a second
user authentication. The second user must also be assigned to the Security Group of this
AutomationObject, to allow the write.
Tune Writing to these attributes is considered a tuning activity. Examples are attributes
that adjust alarm setpoints, PID sensitivity, etc. This requires the user to be assigned to
the Security Group of this AutomationObject, to allow the write.
Configure Writing to these attributes is considered a significant configuration change.
For example, a PLC register that defines a Discrete Device input. This requires the user to
be assigned to the Security Group of this AutomationObject, to allow the write. It also
requires that the Object is currently OffScan.
View-Only The attributes are never written to at runtime, regardless of the user's
permissions.
There are two other situations where an Attribute's Security Classifications are specified:
When an Engineer overrides the Attribute Security Classification within a Template editor.
6-11
6-12
Module 6 Security
Wonderware Training
Lab 17 Security
Lab 17 Security
Introduction
As you work with the security settings within the ArchestrA IDE you set up various Roles and
Users and configure them with different sets of permissions. You then observe the different
behaviors in the Object Viewer as you logon as various users.
In this lab you configure the security settings for your galaxy and test it with a sample automation
object that has been partially pre-configured for you.
Note: Importing objects will be discussed in detail, including the options in this dialog box, in the
following module.
Objectives
Upon completion of this lab you should be able to:
Configure the security classifications for individual attributes within automation objects
Note: Remember to ALWAYS preface the object name with your FIRST and LAST initial.(e.g., if
the user is Ann Brown, Valve would be ABValve) This will eliminate problems when deploying your
objects in a common galaxy later in the course.
6-13
6-14
Module 6 Security
Configure the SecurityTest Object
3. Configure the Security Classifications for each UDA in the object as follows:
Att1_FreeAccess:
Free Access
Att2_Operate:
Operate
Att3_SecuredWrite:
Secured Write
Att4_VerifiedWrite:
Verified Write
Att5_Tune:
Tune
Att6_Configure:
Configure
Att7_ReadOnly:
Read Only
5. Assign the new instance to the ABDischarge area and deploy it.
7. Add a security group named TestGroup and assign the ABSecurityTest_001 instance to it.
unchecked
SMC Permissions:
unchecked
checked
checked
TestGroup:
unchecked
Wonderware Training
Lab 17 Security
9. Add a new role named Operators with an access level of 500 and with the following
permissions:
No General permissions
No Operational permissions for the Default security group
Configure the Operational permissions section for the TestGroup security group as follows:
Can acknowledge Alarms:
checked
unchecked
checked
unchecked
10. Add a new role named Supervisors with an access level of 1000 and with the following
permissions:
No General permissions.
No Operational permissions for the Default security group.
Configure the Operational permissions section for the TestGroup security group as follows:
Can acknowledge Alarms:
unchecked
unchecked
unchecked
checked
11. Add a new role named Engineers with an access level of 2000 and with the following
permissions:
Configure the General permissions as follows:
IDE Permissions: checked (this will check every box within the node)
Framework Configuration:
unchecked
SMC Permissions: checked (this will check every box within the node)
Configure the Operational permissions for the TestGroup security group as follows:
Can acknowledge Alarms:
unchecked
checked
unchecked
unchecked
6-15
6-16
Module 6 Security
12. Configure the Administrator role with all Operational permissions.
13. Add a new user named HOper with a full name of Homer Operator and make it part of the
Operators role. Assign ww as the password.
14. Add a new user named JSup with a full name of Joe Supervisor and make it part of the
Operators and Supervisors role. Assign ww as the password.
15. Add a new user named WEng with a full name of William Engineer and make it part of the
Engineers role. Assign ww as the password.
18. Using the watch list created in Lab 5, add a new watch window called Security and add the
following attribute references:
ABSecurityTest_001.Att1_FreeAccess
ABSecurityTest_001.Att2_Operate
ABSecurityTest_001.Att3_SecuredWrite
ABSecurityTest_001.Att4_VerifiedWrite
ABSecurityTest_001.Att5_Tune
ABSecurityTest_001.Att6_Configure
ABSecurityTest_001.Att7_ReadOnly
ABSecurityTest_001.ScanState
ABSecurityTest_001.ScanStateCmd
20. Test the different security classifications and the security permissions by modifying the value
of the attributes under the different user accounts created before.
Wonderware Training
Lab 17 Security
View the Security Audit Trail
21. Use SQL Server Management Studio to query all data from the v_EventHistory view.
6-17
6-18
Module 6 Security
2. On the Import Automation Object(s) dialog box, navigate to C:\Wonderware Training and
select the $SecurityTest.aaPKG file. Click the Open button.
Wonderware Training
Lab 17 Security
3. On the Import Preferences dialog box, leave the default options and click OK to continue.
Note: Importing objects will be discussed in detail, including the options in this dialog box, in
the following module.
6-19
6-20
Module 6 Security
4. Rename the object $ABSecurityTest and move it your toolset.
Wonderware Training
Lab 17 Security
6. Select the Att1_FreeAccess UDA and click the Shield icon to select the security
classification for the attribute. Select the Free Access security classification from the popup
menu.
7. Repeat step 6 to configure the security classifications for the following attributes:
Att2_Operate:
Operate
Att3_SecuredWrite:
Secured Write
Att4_VerifiedWrite:
Verified Write
Att5_Tune:
Tune
Att6_Configure:
Configure
Att7_ReadOnly:
Read Only
8. Click the Save and Close button and check in the object.
6-21
6-22
Module 6 Security
Create and deploy an instance of SecurityTest
9. Using the Template Toolbox and the Model view, create an instance of the $ABSecurityTest
template. Leave the default name and assign the instance to the ABDischarge area.
Wonderware Training
Lab 17 Security
12. Select Galaxy for the Authentication Mode.
6-23
6-24
Module 6 Security
13. Select the Security Groups tab.
Wonderware Training
Lab 17 Security
15. Select the Default security group and locate the ABSecurityTest_001 instance in the objects
list (right pane).
6-25
6-26
Module 6 Security
16. Drag-and-drop the ABSecurityTest_001 instance to the TestGroup in the security group list
(left pane).
Select the TestGroup security group.
Important!
template.
Wonderware Training
Make sure that you are moving the objects instance and NOT the objects
Lab 17 Security
17. Select the Roles tab.
6-27
6-28
Module 6 Security
18. From the Roles available list, select the Default role and configure the permissions as
follows:
On the General permissions section:
IDE Permissions:
SMC Permissions:
checked
TestGroup:
unchecked
Wonderware Training
Lab 17 Security
checked
unchecked
checked
unchecked
6-29
6-30
Module 6 Security
unchecked
unchecked
unchecked
checked
Wonderware Training
Lab 17 Security
unchecked
checked (this will check every box within the node)
Configure the Operational permissions for the TestGroup security group as follows:
Can acknowledge Alarms:
unchecked
checked
unchecked
unchecked
6-31
6-32
Module 6 Security
22. Select the Administrator role and configure the Operational permissions for the TestGroup
security group as follows:
TestGroup: checked (this will check every box within the group)
Wonderware Training
Lab 17 Security
23. Select the Users tab.
6-33
6-34
Module 6 Security
Wonderware Training
Lab 17 Security
25. With HOper selected, click on the Change Password button, enter the following information
in the Change Password dialog box, and then click the OK button to continue.
Old Password:
[blank]
New Password:
ww
ww
6-35
6-36
Module 6 Security
27. With JSup selected, click on the Change Password button, enter the following information in
the Change Password dialog box, and then click the OK button to continue.
Old Password:
[blank]
New Password:
ww
ww
Wonderware Training
Lab 17 Security
29. With WEng selected, click on the Change Password button, enter the following information in
the Change Password dialog box, and then click the OK button to continue.
Old Password:
[blank]
New Password:
ww
ww
30. Back on the Configure Security dialog box, click OK to accept the security configuration.
31. On the Change User dialog box, enter the following information and then click the OK button
to log in:
User name:
WEng
Password:
ww
6-37
6-38
Module 6 Security
33. From the Galaxy menu, select Change User to log in as the Administrator.
34. Enter Administrator for the User name and click the OK button to log in as the Administrator.
Note: By default the Administrator account DOES NOT have a password assigned.
Wonderware Training
Lab 17 Security
Test Operational permissions
35. Deploy the ABSecurityTest_001 object.
36. Open Object Viewer by right-clicking the ABSecurityTest_001 instance and selecting View
in Object Viewer. If you closed Object Viewer before, you can use File / Load Watch List to
open the file you saved earlier.
37. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch
Window to add a new tab to the watch list.
38. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the watch list to Security.
6-39
6-40
Module 6 Security
41. Test the different security classifications and the security permissions by modifying the value
of the attributes under the different user accounts created before.
To log in to Object Viewer with a different user account, select Change User from the
Options menu.
42. Enter the users credentials in the Change User dialog box and then click the OK button.
You can verify the current logged in user on the left side of the status bar.
Wonderware Training
Lab 17 Security
View the Security Audit Trail
Note: Make sure that the Alarm DB Logger Manager utility is started.
Tip: You can refer to Lab 15 Configuring Alarms to see how to run and start the Alarm DB
Logger Manager utility.
43. Launch the SQL Server Management Studio by selecting Start / All Programs / Microsoft
SQL Server 2005 / SQL Server Management Studio.
44. Configure the Connect to Server dialog box as follows and then click the Connect button to
continue:
Server type:
Database Engine
Server name:
localhost
Authentication:
Windows Authentication
6-41
6-42
Module 6 Security
45. In the Object Explorer (left pane) navigate to localhost / Databases / WWALMDB / Views to
get a list of all the databases Views in the Object Explorer Details (right pane).
46. On the Views list (right pane), right-click on the v_EventHistory view and select Open View
to display the current list of alarms logged in the database.
Wonderware Training
Module 7
Galaxy Maintenance
Section 1 Exporting and Importing Objects
7-3
7-13
7-21
7-33
7-2
Module Objectives
Obtain an overview and understanding of:
Configuring Instances Through a .csv File Using Galaxy Dump and Load
Wonderware Training
This section discusses some fundamental functions dealing with Galaxy Maintenance.
Specifically, it illustrates how to Export for future use and how to Import a galaxy created
previously.
7-3
7-4
Note: You can export more than one object with this function by first multi-selecting objects
(Shift+Click or Ctrl+Click). If you want to export all of the objects in the Galaxy, point to
Export and then click All AutomationObjects.
Wonderware Training
7-5
7-6
Note: Export maintains containment relationships that were previously specified. Also, if an
object is currently checked out, the last checked in version of the object's configuration is
exported.
Wonderware Training
7-7
7-8
Wonderware Training
One key factor to mention is that the security model settings for objects does NOT get exported
when using the Export function. In order to export those you would have to use the Backup
process in the Galaxy Database Manager in the System Management Console (SMC)
discussed in the next Section of this manual.
7-9
7-10
Wonderware Training
7-11
7-12
When the import process is complete, you can start using the objects you imported.
Wonderware Training
This section discusses some fundamental functions dealing with Galaxy Maintenance.
Specifically, it illustrates how to Export a galaxy for future use and how to Import a galaxy
created previously.
Galaxy Dump
Object instances and their configuration data can be exported to a comma-delimited format Galaxy
dump file (.csv extension).
Note: This function only dumps instances. Templates cannot be dumped. The .csv file contains
the configuration for the checked in versions of the selected objects as well as the checked-out
objects of the user who initiates the Galaxy dump. The file contains only those attributes that are
unlocked and configuration time-writeable, one column per attribute. Attributes that are locked,
calculated or runtime writeable only are not saved to the file. Attributes that are not text based (for
example, type QualifiedStruct) are not dumped. Object Help files are not dumped.
To export objects to a Galaxy dump file
1. Select an object in the Application Views pane. You can export more than one instance with
this function by first multi-selecting objects (Shift+Click). Also, you can dump all instances
derived from a template by selecting just the template.
7-13
7-14
Wonderware Training
4. After the Galaxy dump process is finished, click Close. A .csv file has been created containing
the selected objects and configuration data.
7-15
7-16
Wonderware Training
7-17
7-18
Wonderware Training
3. Choose the preferred conflict resolution and click OK. A progress box is displayed during the
Galaxy load process. Click Cancel to terminate the Galaxy load process.
A Galaxy Load dialog box appears indicating that the Load was successful.
All objects that were changed or created during the Galaxy Load process are checked out to
the logged in user.
Note: A comment line in a .csv file created in Microsoft Excel may create an unintended
default-value object. To avoid this scenario, open the .csv file in Notepad to ensure the
comment line does not contain quote marks.
7-19
7-20
Wonderware Training
This section provides an understanding of role of the System Management Console and how it can
be configured.
Allows viewing of the layout of the Galaxy Repository, Platforms, and Engines
7-21
7-22
If Platform Manager has security enabled, the Platform Manager Login dialog box appears.
From the Platform Manager Login dialog box, enter your User Name and Password. If the
configured security is OS User Based, then select the domain from the Domain list box. Click OK.
Wonderware Training
Console Tree
The console tree has a Windows Explorer-type hierarchical structure layout, with the ArchestrA
System Management Console appearing as the root node and the SMC snap-ins appearing
below this node. Like Windows Explorer, the console tree can be expanded or collapsed by
clicking on the "+" or the "-" symbols that appear next to the snap-in.
The console tree shows the items that are available in the console. The snap-ins that appear
below the ArchestrA SMC node include the Platform Manager, the Log Viewer, the DAServer
Manager, and the Galaxy Database Manager.
The contents of the details pane changes as you select items in the console tree.
Details Pane
The details pane is comprised of two main elements:
Column headings: when Galaxy Database Manager is selected in the console tree, two
columns are displayed, Node and Galaxy. The Node column identifies which node a
galaxy resides on. The Galaxy column displays the galaxys name. Use this information
when backing up and restoring galaxies.
The contents of the details pane changes as you select items in the console tree.
7-23
7-24
No authentication
When no security is enabled from the ArchestrA IDE, the user is automatically logged into Platform
Manager as "DefaultUser." Without security, the logon dialog box does not display when Platform
Manager is launched and the user is granted all permissions.
If the security configured from the ArchestrA IDE requires Galaxy authentication, OS User Based
authentication, or OS Group authentication, then some of the existing users and roles are not valid
and the user may not be able to perform some operations.
Galaxy Authentication
Galaxy authentication requires the user to log into Platform Manager every time the utility is
started.
OS Group Authentication
In OS Group authentication, the user defines roles that match OS Groups and at log in, the OS
Groups are matched with the roles.
The following commands are available from the Platform Manager Action menu when you select
a platform or engine in either the console tree or the details pane.
Wonderware Training
Command
Description
Configure
Log Flags
Connect
Messages
Refresh
Help
These commands are also available by right-clicking an item in either the console tree or the
details pane. The available commands are dependant on the current state of the object and your
security permissions. If you do not have permission to perform a particular command, then that
command is grayed out.
The following commands are available from the Platform Manager View menu when you select a
platform or engine in either the console tree or the details pane.
Command
Description
Filter
Find
7-25
7-26
Description
Go To
Bookmarks
Mark
Choose Columns
Customize
Button
Description
Back
Forward
Up one level
Show/Hide Console Tree/Favorites
Refresh
Help
Filter
Enable/Disable Message Filter
Find
Fast Mark
Export
Print
Print Preview
Wonderware Training
Log Viewer - This utility is used to view error and informational messages that are sent by
ArchestrA components. The look-and-feel and the format of the user interface can be
customized to suit individual needs.
7-27
7-28
The journey of a Log Message originates with the Application where Log Flags are generated.
These are passed to the Logger where they are then stored in the Log Message Storage. They
are then available for viewing by the LogFlag Viewer. The LogFlag Editor provides the capability
to edit the LogFlags. This is illustrated in the following diagram.
Wonderware Training
6
LogFlag Editor
LogFlag Viewer
5
3
4
2
1
Using Bookmarks
Bookmarks are unique labels you can apply to individual messages for quick access. They differ
from marks in that bookmarks are associated with specific messages while marks are messages
added below the message that is currently last in the log.
You cannot enter duplicate bookmark names for more than one message, and a message can
have only one bookmark.
The message window can display a Bookmark column, which is initially hidden by default. To
show the Bookmark column, right-click on the column header of the message window and click
Show. In the Choose Columns dialog box, click Bookmarks in the Columns Hidden box, click the
Show button to move it to the Columns Shown box and click OK. The Bookmark column is added
at the far right of the column header. Click and drag it to another position if you want. When
the text of a bookmark in the Bookmark column is partially obscured, point to it to display the
entire bookmark like a tool tip.
You can set bookmarks in two ways: adding a regular bookmark that you can name and setting a
fast bookmark that is named for you.
7-29
7-30
To manage bookmarks
1. On the View menu, click Bookmarks.
2. In the Bookmarks dialog box, you can manage current bookmarks and create new ones. The
bookmark list shows the current set of bookmark names and associated Message No. (the
same number as the No. column in the message window). The bookmark list provides several
functions.
3. For instance, to rename a bookmark, select it, press F2 and type the new name. Note that
each bookmark must have a unique name; so you cannot bookmark two messages with the
same name.
4. To go to a bookmarked message, double-click on it in the list or select it and click Go To.
5. To remove one or all bookmarks from your logged messages, select a message and click
Remove, or click Remove All.
6. To add a new bookmark, select the message you want to bookmark in the message window
and click Add. This function is comparable to a fast bookmark. Rename it by pressing F2.
7. When you are done, click Close.
Note: Bookmarks are not saved when you quit the Log Viewer application. To mark your message
log more permanently, use the Mark command on the View menu.
DAServer Manager
The DAServer Manager allows local or remote configuration of the DA Server and its device
groups and items, and can monitor and perform diagnostics on DAServer communication with
PLCs and other devices.
Wonderware Training
7-31
7-32
Wonderware Training
This section discusses the role of changing the network account and how to use the Change
Network Account and how to configure it.
Node-to-Node Communications
All computers that have installed ArchestrA-enabled software must be able to communicate with
each other. This communication is enabled through an ArchestrA-specific user account set up
during the initial installation of an ArchestrA component on each computer.
Subsequent installations of ArchestrA components do not prompt for user account
information. They automatically use the account set up during the installation of the initial
component.
The user account described in this document only enables node-to-node communications
between ArchestrA components. It is not associated with ArchestrA security, which provides user
authentication for individual access points to the infrastructure.
Note: You must have Administrator privileges on the computer to make changes with the Change
Network Account utility.
7-33
7-34
The data shown in this dialog box are those settings entered during the initial installation of an
ArchestrA component on the computer. The password options are shown blank for security
reasons.
Wonderware Training
In a multi-node ArchestrA system, recreate the same user account with the same user name
and password that was created on all other computers that have installed ArchestrA-enabled
software.
Note: After you recreate the user account in the Change Network Account dialog box, the
Microsoft Windows security component on your computer may take several minutes to update
this information on the ArchestrA Galaxy node. Until that occurs, your ArchestrA IDE may not
function properly. Rebooting the Galaxy node causes this update to occur immediately.
When you use the Change Network Account utility to create or use an account that is different
from the one originally set up during installation, the old account is maintained (not deleted).
7-35
7-36
Error Messages
When using the Change Network Account utility, you may encounter the following error messages.
Error Message
Action Required
You must type a password in the Change Network Account utility. Click
OK, type a password in the dialog box, type the same password in the
Confirm Password box, and then click OK again.
You chose to use a local machine or network domain account that does
not exist. Click OK. Ensure the user account you entered in the
Domain/Local Machine Name box is valid and the user name and
password you typed are valid for that user account, and then click OK.
If this message is displayed again, check with your network
administrator about the existence of the account.
You chose to use a local machine user account, but the password you
typed does not match the account's password. Click OK if you want to
change the password for this user account or Cancel to revert to the
original settings. If you click OK, the password for the account is
changed. If you click Cancel, the Change Network Account utility is
displayed, allowing you to correct the password or type another user
name and password.
Wonderware Training
Action Required
You chose to use a network domain user account, but the password
you typed does not match the account's password. Click OK, correct
the password, confirm the password, and click OK.
You used one or more invalid characters in the User Name box. Click
OK, type a valid user name and click OK.
You must type a user name in the Change Network Account utility.
Click OK, type a user name in the dialog box, and then click OK again.
7-37
7-38
Wonderware Training
2. Select Internet Protocol (TCP/IP) in the list of components used by this connection, and click
Properties. The Internet Protocol (TCP/IP) Properties dialog box (see image below) is
displayed.
7-39
7-40
3. For the supervisory network, select Obtain an IP address automatically. For the other
network connections, select Use the following IP address. Consult your network
administrator for the proper settings for the remainder of the parameters in this group.
4. Click Advanced. The Advanced TCP/IP Settings dialog box (see image below) is displayed.
Click the DNS tab.
Wonderware Training
5. For the supervisory network, select Register this connection's addresses in DNS. For the
other network connections, clear this check box.
6. Click OK.
7-41
7-42
Wonderware Training
Module 8
8-3
8-9
8-19
8-2
Module Objectives
Obtain an overview and understanding of:
DAServers and DI Objects and how they relate to the connectivity of your application to
external data.
FactorySuite Gateway and how it can enhance the connectivity of your application.
Wonderware Training
This section will describe the configuration of a Wonderware I/O Server (Modbus).
Introduction
Wonderware I/O Servers are Microsoft Windows application programs that enable other DDEaware Windows applications (such as InTouch or Excel) access to data in the real world (such as
PLCs or RTUs).
Wonderware servers are primarily intended for use with Wonderware's InTouch program; however,
they can be used by any Microsoft Windows program capable of acting as a DDE client.
In this section, we will examine the start-up, configuration and use of a Wonderware I/O Server.
Because Wonderware's I/O servers are Windows applications, they will all have the same basic
appearance and capabilities. Keep in mind that depending on server required, additional hardware
(network, and so on) may be necessary and the configuration screens may require additional
information.
The following information references the Modbus I/O Server as a point-to-point server using the
RS-232 serial port to PLCs provided at the Wonderware facility training environment. Your
instructor may have you configure the following screens differently.
Note: All I/O Server setup which follows is specific to the Wonderware facility training
environment. Your instructor will provide the proper configuration information. It accesses one
Koyo DirectLogic O5 PLC via its programming port.
8-3
8-4
Com Port: Select the communication port that is connected to the PLC equipment.
Reply Timeout: Enter the amount of time (in seconds) that all PLCs connected via this serial
communications port will be given to reply to commands from the I/O Server.
Note: This timeout is sustained only when the PLC fails to respond. When the PLC is
responding normally, there is no penalty. The default value of 3 second should be sufficient for
most configurations.
Protocol area: Select the protocol configured for the equipment attached to this
communication port. RTU is recommended.
Baud Rate area: Select the baud rate (serial bit rate) setting that matches the equipment
connected to this communication port.
Data Bits area: Select the option for the number of data bits that corresponds to the
configuration of the equipment on this communication port.
If ASCII is selected for the protocol, use 7. If RTU is selected, use 8.
Stop Bits area: Select the appropriate number of stop bits for the communication port. If the
baud rate is greater than 300, the stop bits should be set to 1.
Parity area: Select the setting that corresponds to the configuration of the equipment on this
communication port.
Note: All devices on a single communication port must be configured with the same Protocol,
Parity, Stop Bits, Data Bits and Baud Rate.
Wonderware Training
Note: Click Save to save the current settings entered for the selected communication port.
The Communication Port Settings dialog box remains displayed and another communication
port can be configured.
8-5
8-6
Note: Once topics have been defined, their names will be listed in the Topics pane of this
dialog box.
b. Click New to add a new topic definition.
The MODBUS Topic Definition dialog box appears:
c. Topic Name: Enter a unique name (up to 32-characters long) for the PLC in the field.
Note: When communicating with InTouch, this exact name is used as the topic name in the
Access Name definition.
d. ComPort: Select the communications port to be associated with this topic.
Wonderware Training
Slave Device Type: Drop-down list contains slave device types other than the default.
g. String Variable Style: The PLC will use this style to store ASCII strings in its registers.
h. Register Type: Select BINARY or BCD, based on hardware used.
i.
Block I/O Sizes: Coil Read: Enter the maximum number of consecutive coils to be read at
one time. In this example, the valid coil read values can be between 8 and 2000 and must be
an even multiple of 8.
j.
Coil Write: Enter the maximum number of consecutive coils that can be written to at one time.
In this example, the valid coil write values can be between 8 and 800 and must be an even
multiple of 8.
k. Register Read: Enter the maximum number of consecutive registers to be read at one time.
In this example, the valid register read values can be between 1 and 125.
l.
Register Write: Enter the maximum number of consecutive registers that can be written to at
one time. In this example, the valid register write values can be between 1 and 100.
m. Update Interval: Enter the frequency (in milliseconds) that the I/O Server will read (poll) the
items/points associated with this topic. Different items/points can be polled at different rates by
defining multiple topic names for the same PLC and setting different update rates for each
topic.
n. Click OK to accept the entries and close the dialog box.
The Topic Definition dialog box will open with the new topic listed:
o. Click the Done button to close this dialog box and return to the server's program window.
p. Click Modify to change an existing topic definition.
q. Click Delete to delete an existing topic definition.
Note: The previous information is provided for example only. Configuration steps for this class
are provided in the following lab.
8-7
8-8
Wonderware Training
Become familiar with DAServer and its use with Wonderware Application Server.
This section provides familiarization with DAServer and its use with Wonderware Application
Server.
Introduction
Wonderwares DAServer is designed to provide simultaneous connectivity between client
applications based on Wonderware SuiteLink, OPC and DDE protocols that run on Microsoft's
Windows 2000 and Windows XP operating systems and the data devices supported by the specific
protocol being translated.
Wonderware's DAServers also come with an exclusive new user interface called the DAServer
Manager, which is installed as a Microsoft Management Console snap-in. Its end-user benefits
include simple remote server activation, configuration and operation, and extensive protocol
diagnostic troubleshooting.
Several standard features are available with each DAServer, including:
Support for hot configuration, device additions and device- and server-specific parameter
modifications
Configuration
DAServers can be configured using the DAServer Manager utility. The DAServer Manager is an
MMC shell capable of displaying specific configuration pages for each configuration node. This
utility allows browsing and editing of servers on different nodes.
DAServers are hot configurable. In other words, they are configurable while the server is running
or even acquiring data. Certain restrictions imposed by the underlying network/protocol/hardware
might apply. For instance, if you uncheck System Items on the global parameters configuration
dialog of the DAServer Manager and select Apply, and then re-check System Items and Apply,
System Items data is valid only to newly connected clients.
The configuration data format for DAServers is XML. Any XML-enabled program (for example, IE
and XML Notepad) can read this format.
8-9
8-10
Device Protocol Layer: Server specific (responsible for communicating with hardware and
specific to the DAServer). The Device Protocol Layer provides translation between the
hardware- specific protocol such as ModBus and CIP and the DAS Engine interface:
Each physical part of a DAServer is comprised of a set of .EXE and/or .DLL modules. ArchestrA
provides the Plug-in and DAS Engine modules.
Wonderware Training
Plug-ins
Plug-ins provide protocol translation functionality for device integration clients. Typical Plug-ins
communicate in DDE, SuiteLink or OPC protocol, and serve as interfaces between their clients
and the DAS Engine. You can disable a protocol when customizing the installation for your
DAServer.
DAS Engine
The DAS Engine is a middleware component that exposes two sets of unique interfaces, one for
communicating with Plug-ins and one for communicating with Device Protocol Layer components.
It encapsulates common tasks for the DAServer, like handling the item database, distributing data
to clients, propagating clients' requests to the protocol, and providing diagnostics.
DAServer Characteristics
Configuration
The DAServer Manager is capable of displaying specific configuration pages for all servers. This
utility allows browsing and editing of servers on different nodes.
Recall that DAServers are hot-configurable. In other words, they are configurable while the server
is running or even acquiring data. Certain restrictions imposed by the underlying network/protocol/
hardware might apply.
For instance, if you uncheck System Items on the global parameters configuration dialog of the
DAServer Manager and select Apply, and then re-check System Items and Apply, System Items
data is valid only to newly connected clients.
The configuration data format for DAServers is XML. Any XML-enabled program (for example, IE
and XML Notepad) can read this format.
Runtime
The DAS Engine is loaded by the DAServer as an in-process COM object.
It is not statically linked. In other words, a new DAS Engine (feature enhancement or bug fix)
would not require re-linking to the other components nor re-QA of those other components. It is
deployed to the system and attaches to all existing server components.
This is an important added value for the customer to be independent of ArchestrA release cycles,
especially for OEM customers with their own release schedule.
Newly deployed Plug-ins do not require re-linking nor re-QA of associated components. Even new
Plug-ins would not require any development effort for the other components. In fact, it is feasible to
implement new functionality (like Store-and-Forward) in a Plug-in to enhance the server without
involvement of the code of the other components.
8-11
8-12
Hot Configuration
One of the big advantages provided by the DAServer is the ability to make your DAServer
configurable while the server is running - hot configuration.
The extent to which a specific DAServer is hot configurable varies from server to server. You can
choose from a variety of hot configuration responses, from not being hot configurable at all to
being configurable of each individual parameter while the server is running.
The DAServer handles most of the hot configuration work. In general, a user will run the DAServer
Manager and configure each hierarchy. Any changes she makes that add/delete/update a
hierarchy are sent immediately to the running DAServer.
Server-specific code may elect to react to the change. Some parameters cannot be changed while
the DAServer is running due to protocol-specific issues, and these can be ignored by the serverspecific code.
Here is a complete list of notifications to the server about changes in the configuration:
Wonderware Training
FS Gateway is also useful for legacy servers, controllers, and operating systems. Gateway can
translate older DDE to the newer SuiteLink protocol, enabling legacy products to connect to newer
systems.
8-13
8-14
Sybase, Ingres and other databases. Once connected to SQL Server, external databases operate
as if they were part of the native SQL Server database. Data from multiple databases can be
combined in reports and queries.
Refer to the Wonderware support website, especially the Compatibility Matrix, for more
information on specific connectivity tools.
Wonderware Training
To provide NT support which will allow connections to classic products that have not been
migrated to later Operating Systems.
To replace the OPCLink product used when connecting InTouch to OPC Servers.
To provide a mechanism for the transport of IAS data between two different Galaxies.
7) Does FS Gateway provide Galaxy to Galaxy communications with ArchestrA and the
Wonderware Application Server?
FS Gateway does provide the means for data access from an ArchestrA Object Attribute in
Galaxy A to an ArchestrA Object Attribute in Galaxy B, in the same fashion that an Object
Attribute in Galaxy A could receive data from any OPC Server. The plan is that a future release
of the Wonderware Application Server will have built-in "Intergalactic Communications". FS
Gateway can still be used for this in the interim, but an even better solution is forth coming.
8-15
8-16
Acts as a Data Concentrator for a client wanting access to many different sources.
10) What capability is there to browse tag and attribute values for products using the FS Gateway?
FS Gateway can "browse" InTouch and OPC DA Servers Data Connections. This is
accomplished inside the SMC which is the centralized place for configuration and diagnostics. All
other data connection items are manually entered (or alternatively can be imported from a CSV
file) before the data can be browsed. This "browse" is the ability to navigate the actual native
information (either on InTouch or OPCServer). Once a group is created and the items created
inside the group then a client can browse this "configured" data.
For the Wonderware Application Server, it is necessary to manually enter the item names.
This can be done on the IAS platform first and then exported into a .csv file and then imported
into the FS Gateway. Once these items have been manually entered the OPC Client will be
able to browse the data. The user can still access data that has not been configured for
browsing but the item name must be known. SuiteLink inherently does not allow for browse
capabilities.
12) What data is accessible in the Wonderware Application Server Galaxy via the FS Gateway?
The FS Gateway exposes 4 basic data types in a Galaxy. They are Boolean, String, Float and
Integer.
Wonderware Training
SuiteLink Clients
Server Products
DDE Servers
14) Can I run more then one instance of FS Gateway on a single computer?
No, only a single instance of the FS Gateway can be run on a single computer at the same
time. This is similar to our DAServers.
15) Can I have multiple galaxies as data sources connected to an instance of FS Gateway?
No, the FS Gateway must be on the same platform as the Application Server and only one
instance of Application Server can reside on a particular platform.
17) How many Data Sources can I have connected to an instance of FS Gateway?
The FS Gateway can act as a data concentrator and can access as many sources as you
would like to connect to (with the limitation of only one can be an Application Server).
Windows XP
Windows NT 4.0
Windows 2000
Windows 2003
For additional information or details on how to access and configure Factory Suite Gateway please
refer to the Wonderware FactorySuite Gateway Users Guide.
8-17
8-18
Wonderware Training
Become more familiar with DI Objects and their use with Wonderware Application Server.
This section provides familiarization with DI Objects and their use with Wonderware Application
Server.
Introduction
Device Integration (DI) Objects are designed for applications that connect to Application Server.
They represent the application's network and devices, and mirror the actual device hierarchy. In
Application Server, Device Integration (DI) Objects are a subset of Automation Objects available in
the Template Toolset of the Integrated Development Environment (IDE). As a subset of these
Automation Objects, Device Integration Objects consist of two parts:
DI Network Object, which represents the communications port and are thus associated
with DA Servers.
DI Device Object, which represents the physical devices that make up a network.
Examples of DI Device Objects are network bridge devices or PLCs. When the objects are
deployed, they represent the network hierarchy. Each level of this hierarchy can be
monitored for its individual status.
Device Integration objects are used to represent communications channels and field controllers.
As such, they are most often arranged in a hierarchy that models the physical hierarchy of the
network and devices on that network.
Device Integration objects are designed to make it very easy to integrate DAServers into the
ArchestrA environment.
Therefore, deploying a DI Network actually deploys the DAServer and its associated components
within the ArchestrA IDE/Galaxy. This facilitates the DAServer installation process for end-users.
DI Object Advantages
Device Integration Objects (DI Objects) represent communication with external devices. DI
Objects may be DINetwork Objects (for example, the Redundant DI Object) or DI Device Objects.
DI Objects (and their associated AppEngine) can reside on any I/O, DA, or Automation Object
Server node in the Galaxy. DI Objects allow connectivity to data sources such as DDE servers,
SuiteLink servers, OPC servers, and existing InTouch applications.
The advantages of using DI Objects are as follows:
DI Objects can be used to represent all devices and PLCs in a network, enabling
representation of an entire plant, including a hierarchical view of network connectivity.
DI objects are so closely tied to the DAServer that when an object is deployed across the
network, it remotely installs the DAServer (This means that you can install the DAServer
without going to the actual machine, and that the DAServer connects immediately.).
8-19
8-20
DI objects are very closely tied to the DAServer they are assigned to, so that when an
object is deployed, it brings with it all code, including registry, scripting, attributes, and
parent.
Note that in a large project, this process may take some time. However, tremendous savings are
achieved when comparing centralized deployment with individual tasks should the Servers be
separately installed and configured on each node.
The differences between the Application and DI Objects are listed below:
DI Objects include some extra primitives in addition to the common Primitive (also hidden
by default. A special dialog provides access to the attributes developers might need to
override.).
DI Devices and DI Network objects have extra tabs within their editors to configure
ScanGroups, BlockReads, and BlockWrites.
Wonderware Training
Module 9
Multi-Node Applications
Section 1 Application Redundancy
Lab 18 Configuring Application Redundancy
Section 2 DI Redundancy
Lab 19 Configuring the Redundant DI Object
Section 3 Multi Node Application
Lab 20 Convert to Network Environment
9-3
9-17
9-31
9-35
9-45
9-49
9-2
Module Objectives
Obtain an overview and understanding of:
Using exporting and importing to take objects that were created on one node and migrate
them to a single node, and:
Wonderware Training
This section covers the concept of redundancy, how it can be configured and key points
to more effectively implement this feature.
This section provides an understanding of the concept of redundancy, how it can be configured
and key points to more effectively implement this feature. It also provides an understanding of the
concept and functionality of Redundant DI Objects
Redundant Configuration
Redundancy is important in processes that rely on continuous availability of information. There are
two basic types or topologies of redundant configuration:
Redundant Application Engines
Redundant DI Objects
9-3
9-4
Wonderware Training
Since an engine is required to run under a platform, the platform objects that sponsor the Primary
and Backup application engines need to be configured to use the dedicated NIC. This NIC
provides a high speed inter-connection link or Redundant Message Channel between the
platforms. The Message Channel is vital to keep both engines synchronized with alarms, history,
and checkpoint items from the engine that is in the Active Role. Each engine also uses this
Message Channel to provide its health, along with status information, to the other.
The sequence of deployment (cascade, Primary first, or Backup First) of the redundant pair of
Application engines determines which of these in the pair will take the Active Role. The first engine
deployed takes the Active role while the other one takes the Standby role. The engines maintain
their current roles until a failure occurs. (A failure might consist of computer hardware lost or failed,
or a network card failure.) If a failure occurs, the engine with the Standby role assumes the Active
role and the engine that was in the Active role is given the role of Standby - Not Ready. When the
cause of the failure has been remedied, this engine assumes the Standby - Ready role.
Terminology
Two sets of terms are critical to understanding the functions of redundant objects. These are
described below.
During Configuration
Primary object: The object intended as the main or central provider of the functionality in the
run-time. For AppEngines, it is the object you enable for redundancy. For data acquisition, it is
the DIObject you intend to use first as your data source in the run-time.
Backup object: The object that provides the functionality of the Primary object when it fails.
For AppEngines, it is the object created by the ArchestrA infrastructure when the Primary
object has been enabled for redundancy. For data acquisition, it is the DIObject you do not
intend to use first as your data source in the run-time.
During Run-Time
Active object: The object that is currently executing desired functions. For AppEngines, it is the
object that is hosting and executing ApplicationObjects. For data acquisition, it is the object
that is providing field device data through the RedundantDIObject.
Standby object: The passive object; that is, it is waiting for a failure in the Active object's
condition or for a force-failover. For AppEngines, it is the object that monitors the status of the
Active AppEngine. For data acquisition, it is the object that is not providing field device data
through the RedundantDIObject.
The Primary/Backup and Active/Standby objects form a redundancy pair. For AppEngine pairs,
only the Primary and its hierarchy of assigned ApplicationObjects must be created, configured and
deployed. The Backup is handled completely by the ArchestrA infrastructure (for instance, it is
deployed separately from the Primary). For data acquisition, the Primary/Backup DIObjects (the
data sources) must be separately created, configured and deployed. Also, you must create,
configure and deploy a RedundantDIObject to control failovers between the two data source
objects.
9-5
9-6
Key Points
a. Before placing an engine with redundancy enabled under a platform in the Deployment view,
configure the platform Redundant Message Channel; otherwise the engine will show an error.
b. In the Application Views panes of the ArchestrA IDE, only in the Deployment view will the
Backup engine be visible.
c. The Backup Engine cannot be edited.
d. After editing an engine with redundancy enabled while it is deployed, when it is redeployed the
engine which has the Active role will perform this function. It will then update the engine that is
in the Standby role.
e. A Backup engine's deployment status can be different from that of the Primary Engine, but
operations such as renaming, importing and exporting, GRdump and GR load that are
performed on the Primary Engine are automatically performed on the Backup. These
operations cannot be performed on the Backup Engine alone.
f.
Platforms hosting primary and backup AppEngines should have identical configuration. For
instance, it is possible to configure the platform with the Primary to be the InTouch Alarm
provider and filter the areas you want to query in the Platform editor. For the Alarm
Management system to behave correctly, this same configuration should be implemented in
the platform with the Backup. It is recommended that you make the following parameters
common to both platforms:
IT Alarm provider-Areas
Common scripting.
Role Determination
The sequence of deployment (cascade, Primary first, or Backup First) of the redundant pair of
Application engines determines which of these in the pair will take the Active Role. The first engine
deployed takes the Active role while the other one takes the Standby role. The engines maintain
Wonderware Training
9-7
9-8
Visualization Nodes
Supervisory Network
AutomationObject Server
AutomationObject Server
Primary
Backup
AE_1
(Standby)
Platform 2
Platform 1
Control Network
In a Shared redundant configuration, two or more Redundant Engines reside on each of two
platforms. Each platform hosts a Primary and a Backup engine. See the illustration below. This
scenario operates similarly to the Dedicated configuration, but allows the application load to be
shared on two computers until a failure occurs. When a failure occurs, one platform hosts the load
of both application engines. The benefits of using this approach is that the time of failover is
shortened and that only part of an application process is affected during a failure.
Note: It is important to understand both the CPU and memory load requirements of each engine.
Each computer must be capable of supporting these needs when a failure occurs; otherwise,
throughput for the application can be compromised
Wonderware Training
Visualization Nodes
Supervisory Network
AutomationObject Server
AutomationObject Server
Primary
AE2
AE1 Bck
Platform 1
Backup
Backup
AE1
Bck AE2
Primary
Platform 2
Control Network
9-9
9-10
Active - Standby not Available: The state of an Active AppEngine when it determines it
cannot achieve communications with its partner object. This could mean that checkpoint,
subscription and alarm state changes have not been successfully transmitted to the
Standby object, a heartbeat ping has not been received from the Standby object, or
notification is received that the Standby AppEngine has shutdown or is not running. If an
AppEngine is in this state, it 1) continues normal execution of hosted objects, 2) cannot be
manually switched to Standby state, and 3) while continuing to attempt communicate with
the Standby, does not attempt to send data to the Standby object.
Determining Failover Status: The initial state of a redundancy-enabled AppEngine when
it is first started. It has not determined yet whether it is the Active or Standby AppEngine.
Communication between the two AppEngines is attempted first over the RMC and then
over the primary network to make this determination. If communication cannot be made
after a certain timeout period, an AppEngine assumes the Active role if it has all of the code
modules and checkpoint file data to do so. Continued attempts are made at communicating
with its partner.
Standby - Missed Heartbeats: The state of an AppEngine when 1) a heartbeat ping has
not been received from its Active partner within a configured timeout period, 2) the Active
AppEngine fails or hangs up, or 3) the Active AppEngine is shutdown on purpose. When in
this state, the Standby object attempts to determine whether or not the Active object has
failed. If a manual failover is initiated (by using the ForceFailoverCmd attribute), it will be
processed only if the heartbeats were missed over the primary network and not missed
over the RMC.
Standby - Not Ready: The state of an AppEngine when one of several conditions occurs:
1) its has lost communications with its partner object or it maintains communications with
its partner but has missed checkpoint updates or alarm state changes from the Active
Wonderware Training
AppEngine, 2) new objects are deployed to the Active AppEngine and necessary files
have not been installed on the Standby AppEngine yet, or 3) the Standby AppEngine has
lost communications over the RMC before it could complete synchronizing data. Typically,
the AppEngines partner is in one of the following states: Active-Standby not Available,
Active, or Standby- Missed Heartbeats.
Standby - Ready: The state of an AppEngine when is has completed synchronizing code
modules and checkpoint data with the Active AppEngine. In this state, the AppEngine
monitors for Active AppEngine failure by verifying heartbeat pings received from the
Active engine, checks that all files required for execution are in sync with the Active
engine, and receives the following from the Active AppEngine: checkpoint change data,
subscription-related notifications, alarm state changes, and history blocks.
Standby - Sync'ng with Active: The state of an AppEngine when it is synchronizing code
modules with the Active object. If code modules exist on the Standby computer that do not
exist on the Active node, they are uninstalled, and likewise, any code modules that exist
on the Active node but not on the Standby node are installed. Once all code modules are
synchronized, the AppEngine transitions to Standby-Syncd Code state.
Standby - Sync'd Code: The state of a Standby AppEngine that has successfully
synchronized all code modules with the Active object.
Standby - Sync'd Data: The state of a Standby AppEngine when all object-related data,
including checkpoint and subscriber information, are synchronized with the Active object.
An object in this state typically transitions to Standby-Ready state.
Switching to Active: A temporary, transitional state when a Standby AppEngine is
commanded to become Active.
Switching to Standby: A temporary, transitional state when an Active AppEngine is
commanded to become Standby.
Unknown: The state of a redundant partner when a communication loss occurs between
AppEngines or when the partner AppEngine is not running.
Alarm Generation
When failover conditions occur, the ArchestrA system reports alarms to the Logger. These alarms
contain the following information:
Note: Depending on the scenario that causes a failover, the Standby AppEngine may become the
Active in an offscan state and alarms may not be generated. If the Active AppEngine is shutdown
offscan, the checkpointer may transfer that state to the Standby, and when the latter becomes the
Active, it will startup offscan. When the AppEngine is put onscan, alarms then are generated.
9-11
9-12
Previous
State
Current
State
Alarm Raised
When
Alarm
Reported
By
Standby - Not
Ready 1
Active
Standby - Not
Ready
Standby - Not
Ready
ACtive
Engine
Standby - Not
Available
Active
Entering Active
Active
Engine
Standby Becomes
Active
Active
Engine
Alarm
Failover
Occurred
Legend:
1
The Active AppEngine monitors the status of the Standby through the RMC to determine
when to raise this alarm. Also, if the Active AppEngine is in Active-Standby not Available state,
this alarm is not generated.
When a failover occurs, the Standby AppEngine that becomes active will not report alarms
outstanding from the old Active AppEngine. The state of those old alarms, though, is reflected on
the new Active AppEngine as follows:
Out of alarm
Unacknowledged
Unacknowledged-Return to normal
Acknowledged-Return to normal
Acknowledged
The message input by the operator when the alarm was acknowledged
Note: All alarm state information is collected and sent to the Standby AppEngine at the end of a
scan cycle and before being sent to alarm clients. Any alarms that occur between scan cycles,
therefore, may not be reported to the Standby object if the Active object fails. The sequence of
reporting alarms ensures that alarm clients do not report alarms in states that are different from
those reported by the Standby AppEngine if the Active one fails.
History Generation
All active objects (AppEngine and hosted objects) report history data as they normally do in the
run-time environment.
Historical data is reported to the historian only from the Active AppEngine.
Loss of connectivity with the historian does not cause a failover. The Active AppEngine then goes
into store-forward mode and caches data every 30 seconds. Store-forward data (when the
historian is unavailable) is synchronized with the Standby AppEngine.
Wonderware Training
Forced Failover
Failover can be forced to occur. Do this through the ForceFailoverCmd attribute of the AppEngine.
For instance, you can link multiple conditions in a script or use the Object Viewer utility to trigger a
forced failover.
Deployment
Primary and Backup AppEngines can be deployed together or individually. When they are
deployed together (no matter which object is actually selected for deployment), the Primary always
becomes the Active and the Backup becomes the Standby. When they are deployed individually,
the first one deployed becomes the Active.
Hosted ApplicationObjects are always deployed to the Active AppEngine. When deploying the first
of a redundant pair of AppEngines, you can cascade deploy all objects it hosts. This operation can
be paired with deploying both the Primary and Backup AppEngines at the same time.
Note: If you deploy the Backup AppEngine first and then deploy hosted objects to that
AppEngine, ensure that network communications to both target computers is good before
deploying the Primary AppEngine. Otherwise, errors may occur.
In the run-time environment, either the Primary or Backup AppEngine can become the Active or
Standby depending upon failure conditions on either computer.
Before deploying the Primary and Backup AppEngines, all configuration requirements must be
met. Each AppEngine must be assigned to a separate WinPlatform. A valid redundancy message
channel (RMC) must be configured for each WinPlatform. To deploy the Primary and Backup
together, select Include Redundant Partner in the Deploy dialog box. This option is not available
when doing the following operations:
9-13
9-14
Cascade Deploy
Allowed
Yes
Yes
Yes
Yes
No
Yes
Yes
Yes
No
Yes
No
Yes
No
No
No
Yes
Yes
Yes
Yes
Yes
Condition
Undeploying redundancy pairs of AppEngines is similar to any regular object undeployment. The
Active and Backup AppEngines can be undeployed separately. Also, they can be undeployed as a
pair by selecting one of the objects in an Application View, selecting the Undeploy command, and
selecting Include Redundant Partner in the Undeploy dialog box.
Note: Undeployment of any AutomationObjects, including redundant AppEngine pairs, does not
uninstall code modules for that object from the hosting computer. Code modules are uninstalled
only when the WinPlatform is undeployed.
Wonderware Training
You can configure an AppEngine for redundancy before its associated WinPlatform, but if
you do, you will get an error message that the Platform (specifically, the RMC) is not
configured yet.
If the RMC IP Address parameter is not configured in both hosting WinPlatforms, then the
configuration state of both Primary and Backup AppEngines changes to Error, with a
message indicating that the host WinPlatform is not configured with the network adapter
required for redundant communications. When the RMC IP Address is configured and the
WinPlatforms are checked in, the hosted AppEngines are automatically revalidated and
the Error state is resolved. If hosted AppEngines are checked out, they are not
revalidated.
If both Primary and Backup AppEngines are assigned to the same WinPlatform and an
attempt is made to deploy both engines, both the Primary and Backup will fail to deploy
with a message noting that the Primary and Backup objects must be hosted by different
WinPlatforms. Reassign the Backup object to another WinPlatform and deploy it
separately.
If both the Network Address and RMC IP Address parameters in the WinPlatform's
editor address the same network card, you will get a warning message when you save the
configuration. These two parameters must address different network cards.
9-15
9-16
Wonderware Training
Objectives
Upon completion of this lab you should be able to:
to ArchestrA
to RMC
2. Use the network connections Advanced Settings to make sure that the ArchestrA
connection is access before the RMC connection.
9-17
9-18
4. On the Advanced setting for TCP/IP, configure the RMC connection to not Register this
connections addresses in DNS.
6. Configure the ABGRPlatform objects Redundancy message channel IP address with its
own RMC IP address.
7. Create a new instance of the $ABPlatform template using the default name and assign it to
the ABControlSystem area.
8. Configure the ABPlatform_001 object with the name of the second computer and its own
RMC IP address for the Redundancy message channel IP address.
9. Configure the ABAppEngine object for Redundancy and assign its backup to the
ABPlatform_001 object.
Test Redundancy
10. Deploy the galaxy.
11. Using the watch list created in Lab 5, add a new watch window called Redundancy and add
the following attribute references:
ABAppEngine.Host
ABAppEngine.Redundancy.Identity
ABAppEngine.Redundancy.Status
ABAppEngine.Redundancy.PartnerPlatform
ABAppEngine.Redundancy.PartnerStatus
ABAppEngine.Redundancy.FailoverOcurred
ABAppEngine.Redundancy.ForceFailoverCmd
Wonderware Training
9-19
9-20
Wonderware Training
to ArchestrA
to RMC
9-21
9-22
Wonderware Training
and
6. At the RMC Properties dialog box, on the General tab, select the Internet Protocol (TCP/IP)
item and click the Properties button.
9-23
9-24
Wonderware Training
9. Click the OK button to close the Advanced TCP/IP Settings dialog box.
Click the OK button to close the Internet Protocol (TCP/IP) Properties dialog box.
Click the Close button to close the RMC Properties dialog box.
9-25
9-26
13. Click the Save and Close button and check in the object.
Wonderware Training
17. Click the Save and Close button and check in the object.
9-27
9-28
20. Click the Save and Close button and check in the object.
21. On the Deployment view, assign the automatically created ABAppEngine (Backup) object to
the ABPlatform_001 instance.
Wonderware Training
23. Open Object Viewer by right-clicking the ABAppEngine instance and selecting View in
Object Viewer. If you closed Object Viewer before, you can use File / Load Watch List to
open the file you saved earlier.
24. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch
Window to add a new tab to the watch list.
25. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the watch list to Redundancy.
9-29
9-30
29. Failover the system doing any of the following on the second computer:
You can use the Mixer watch window to verify that the objects are running properly.
Wonderware Training
Section 2 DI Redundancy
Section 2 DI Redundancy
Section Objective
This section covers the concept of redundancy, how it can be configured and key points
to more effectively implement this feature.
This section provides an understanding of the concept of redundancy, how it can be configured
and key points to more effectively implement this feature. It also provides an understanding of the
concept and functionality of Redundant DI Objects
Redundant DI Objects
Application Engines can host Redundant Device Integration Objects (DI Objects). The
RedundantDIObject monitors and controls the redundant DIObject data sources. Unlike redundant
AppEngines, individual DIObject data sources do not have redundancy-related states. For all
intents and purposes, they function as standalone objects.
Only one DIObject data source provides field device data through the RedundantDIObject at a
time. Both data sources must have commonly configured DAGroups which are reflected in and
channeled through the RedundantDIObject, which monitors the two DIObject data sources and
determines which one is Active at any given time. Both data sources must also have the same
item address space.
The Redundant DI Object is a DINetwork Object used to enable continuity of I/O information from
field devices. The Redundant DI Object provides the ability to configure a single object with
connections to two different data sources. If the primary data source fails, the Redundant DI
Object automatically switches to the backup data source for its information. There is a one-to-two
relationship between an instance of the Redundant DI Object and the running instances of the
source DI objects; that is, for each Redundant DI Object, a pair of source DI Objects is deployed.
9-31
9-32
*
*
! !+,-
!" #
.
$' ( )
'
.
)*+
!
&
'!" #
$%&
Configuration RedundantDIObjects
Configure redundancy in data acquisition objects in the ArchestrA IDE through their editors. Data
acquisition redundancy objects (two DIObjects and the RedundantDIObject) do not have
redundancy-related deployment statuses.
In data acquisition redundancy, you must configure all three components: a Primary DIObject data
source, a Backup one, and a Redundant DIObject.
Because data acquisition redundant components are essentially standalone objects, all valid
operations that apply to any other ApplicationObjects apply to the three objects. All ArchestrA IDE
commands, Galaxy Dump and Load functions, and import and export operations are valid on the two
DIObject data sources and the RedundantDIObject.
The main focus of RedundantDIObject configuration is:
Setting the Primary DI Source and Backup DI Source on the General tab of the objects
editor.
Setting up the common scan groups, and block read and block write groups on the
respective tabs of the objects editor.
Wonderware Training
Section 2 DI Redundancy
Note: You must configure at least one scan group before you can deploy the RedundantDIObject.
Also, only scan, block read, and block write groups shared by the Primary and Backup DIObjects
should be configured in the RedundantDIObject.
Deployment
Deployment for data acquisition redundancy is the same as individually deploying unrelated
objects. No special conditions apply to each DIObject data source and the RedundantDIObject.
9-33
9-34
Wonderware Training
Objectives
Upon completion of this lab you should be able to:
3. Rename the InControl instance as DIO1 and host it on the ABAppEngineDI1 engine.
4. Create a copy of the DIO1 object by repeating Lab 6 but naming the object DIO2. Assign the
new object to the ABControlSystem area and host it on the ABAppEngineDI2 engine.
9-35
9-36
DIO1
Backup DI source:
DIO2
8. On the Scan Group tab, copy the common scan groups and attributes from the primary or
backup DI sources.
11. Using the watch list created in Lab 5, add a new watch window called RDIO and add the
following attribute references:
InControl.DISourcePrimary
InControl.DISourceBackup
InControl.DISourceActive
InControl.DISourceStandby
InControl.StatusPrimaryDISource
InControl.StatusBackupDISource
InControl.ConnectionStatus
InControl.SwitchReason
InControl.ForceFailoverCmd
13. Force a failover in the system and monitor the objects using Object Viewer and the different
watch windows created during the class.
Wonderware Training
3. Undeploy the InControl instance, rename it DIO1 and host it on the ABAppEngineDI1
engine.
9-37
9-38
4. Use Lab 6 Connecting to the Field to create another device integration object, but name it
DIO2 instead of InControl. Assign it to the ABControlSystem area.
Note: You can export your object, rename the original, and then import the object to create a
copy of the object with all of the original objects configuration attributes.
5. In the Deployment view, host the DIO2 object on the ABAppEngineDI2 engine.
Wonderware Training
9-39
9-40
DIO1
Backup DI source:
DIO2
10. Select the Scan Group tab and click on the Copy Common Scan Groups button.
On the Copy Common Scan Groups dialog box, click the OK button to accept tagname as
the scan group for the new InControl object.
Wonderware Training
12. Click the Save and Close button and check in the object.
9-41
9-42
17. Open Object Viewer by right-clicking the InControl instance and selecting View in Object
Viewer. If you closed Object Viewer before, you can use File / Load Watch List to open the
file you saved earlier.
18. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch
Window to add a new tab to the watch list.
19. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to
rename the watch list to RDIO.
Wonderware Training
22. Force a failover to the second device integration object by writing true to the
ForceFailoverCmd attribute of the Redundant DI Object. You can use the Mixer watch
window to verify that the objects are running properly.
9-43
9-44
You can use the Mixer watch window to verify that the objects are running properly.
Wonderware Training
9-45
9-46
Wonderware Training
Name and deploy their own Platform as the first Platform deployed on the Galaxy
Repository node.
Failure to follow these key steps before others connect and start deploying objects can produce
less than desirable results.
9-47
9-48
Wonderware Training
Objectives
Upon completion of this lab you will be able to:
Preparation
Note: This section is to be performed by everyone except where noted.
1. Undeploy the galaxy.
9-49
9-50
6. Create an area instance named ControlSystem and assign the InControl object to it.
7. Create a platform instance named ABPlatform and assign it to the ControlSystem area.
8. Create an engine instance named AppEngineDI and assign it to the ControlSystem area.
12. Create a user account that belongs to the Administrator role for each member of the team.
15. Create a platform instance named ABPlatform and configure it with your local computers
name. Assign it to the ControlSystem area.
Wonderware Training
18. Create an area instance named ABLine and host it on your ABAppEngine object.
19. Create an instance of your mixer template and name it properly with the valid 3-digit mixer ID
at the end (ABMixer_XXY) as identified in Lab 2. Host it on your ABLine area.
21. Use Object Viewer to verify that all objects are running properly and are getting data from the
field.
Note: Feel free to experiment and play around with the multi-node system to reinforce the
knowledge acquired during this class.
9-51
9-52
Wonderware Training
Module 10
ArchestrA Graphics
Introduction InTouch HMI and ArchestrA Integration
Section 1 Creating and Managing Symbols
Section 2 Using ArchestrA Symbols in WindowMaker
Lab 21 Symbol Creation
Section 3 Using Custom Properties
10-1
10-3
10-85
10-93
10-103
10-109
10-117
Lab 23 Animation
10-193
10-203
10-209
10-221
10-224
10-234
3-2
Module Objectives
Wonderware Training
Define the differences between InTouch used Stand-Alone, Managed, and Published
with the ArchestrA IDE.
You can also switch directly between WindowMaker and WindowViewer to test or run your
applications and switch back to make modifications to your applications.
Network Application Development manages the propagation of changes from your InTouch
application on a development node to running InTouch applications on target nodes.
1-18
Module 1 Introduction
ArchestrA Symbols
In addition to the benefits of managing InTouch applications within the ArchestrA IDE, you can
model your manufacturing environment by creating graphics with the ArchestrA Symbol Editor.
The ArchestrA Symbol Editor is fully integrated into the ArchestrA IDE and supports powerful
modelling possibilities.
You can embed the ArchestrA Symbols into your managed InTouch applications, which can then
be used as published InTouch applications.
Wonderware Training
Application Manager
Managed InTouch
Applications
ArchestrA IDE
Published InTouch
Applications
Not possible
New application
Importing stand-alone
application
Importing SmartSymbols
Edit Application
WindowMaker started
from the Application
Manager
WindowMaker started
from the Application
Manager
Delete Application
Delete InTouchViewApp
template
Support of
ArchestrA Symbols
No
Support of DB Dump
and DB Load
Editing application in
original resolution
requires conversion
Yes
Yes
Yes
Management of
Distributed
Applications
Network Application
Development (NAD)
ArchestrA IDE
Network Application
Development (NAD)
Configuring how
new InTouch
application versions
are accepted
Configured in Application
Manager (Network
Application Development)
Configured in WindowMaker
Configured in
Application Manager
(Network Application
Development)
Use Fast-Switch to
test application
Yes
Yes
Yes
Yes
Yes
1-19
1-20
Module 1 Introduction
Managing InTouch Applications Using the IDE
ArchestrA manages your InTouch applications with a specific type of ArchestrA object called the
InTouchViewApp object.
An InTouchViewApp template references one specific managed InTouch application at design
time and cannot be executed at run time.
You must create an instance of the InTouchViewApp template. This instance can be deployed to a
target node. The target node is the node on which the managed InTouch application runs in
WindowViewer.
To distribute an InTouch application, you create multiple instances of the same template and
deploy them to multiple nodes.
Optionally, you can:
Publish the managed InTouch application. The published InTouch application runs like a
stand-alone InTouch application but can contain ArchestrA Symbols.
Use the attributes of the deployed InTouchViewApp object to read from and write to
InTouch tags with ArchestrA attributes.
The InTouchViewApp template does not contain the InTouch application data itself, such as the
tag configuration and values, but simply references the application.
Wonderware Training
Exporting and Importing Tag Data Associated with a Managed InTouch Application
You can export tag data that is associated with a managed InTouch application to a .csv file. This
is equivalent to the DB Dump function of the InTouch Application Manager.
You can import the exported tag data from a .csv file back into a managed InTouch application in
the same way as the DB Load function. The exported .csv files from a managed InTouch
application and those of a stand-alone InTouch application are fully interchangeable.
1-21
1-22
Module 1 Introduction
Publishing Managed InTouch Applications
You can publish a managed InTouch application. The published InTouch application is no longer
associated with the InTouchViewApp template.
The published application cannot be edited within the IDE or imported into another
InTouchViewApp template. In other words, you cannot manage it with the IDE or republish it. The
published InTouch application can still communicate with the Galaxy through any embedded
ArchestrA Symbol. You can, for example, write data back to the Galaxy or visualize Galaxy data.
You can edit the ArchestrA Symbol using basic InTouch operations such as copying, cutting,
pasting, duplicating, moving, resizing, flipping, rotating, and configuring with InTouch animation
links.
However, the ArchestrA Symbols cannot be modified, nor can new ArchestrA Symbols be
embedded into the InTouch application. These operations are only allowed with managed InTouch
applications.
You can do this in environments that do not support the processing requirements of ArchestrA. For
example, in remote plant operations or in small networks.
For stand-alone InTouch applications, you cannot import any windows from published and
managed InTouch applications that contain ArchestrA Symbols. A warning message
appears, and information on which windows were not imported is written to the Logger. If
you import windows from managed or published InTouch application that contain
ArchestrA Symbols, the windows are imported, but the ArchestrA Symbols are not
functional and appear as Not Found.
For managed InTouch applications, you can import any windows from published, standalone, and other managed InTouch applications. Embedded ArchestrA Symbols are not
imported.
For published InTouch applications, you can import any windows from stand-alone
InTouch applications.
Wonderware Training
If you try to open more than one InTouchViewApp template for configuration at a time on
one node, IDE prevents you from doing so. Close WindowMaker, WindowViewer, and
Application Manager and retry. Alternately, you can edit the InTouchViewApp object on a
different node with InTouch WindowMaker.
If you close the IDE while editing an InTouch application with WindowMaker,
WindowMaker prompts you to save any changes. It then closes and the InTouchViewApp
template is checked in.
If you close the IDE while testing an InTouch application with WindowViewer,
WindowViewer closes.
Use ArchestrA security (Galaxy security) in InTouch, deploy a WinPlatform instance to the
node on which the deployed managed InTouch application is running.
ArchestrA Symbols
The ArchestrA IDE includes a Symbol Editor that you can use to create symbols that visualize
production processes and provide an HMI interface to ArchestrA AutomationObjects.
The following diagram shows you how symbols that are created with the ArchestrA Symbol Editor
can be used in InTouch applications.
1-23
1-24
Module 1 Introduction
Start WindowMaker.
Export and import a managed InTouch application together with its InTouchViewApp
object.
Publish a managed InTouch application.
Export tag data to and import tag data from a .csv file.
You can start the ArchestrA IDE from the InTouch Application Manager.
The following graphic shows how applications are imported, exported, managed, and published.
Wonderware Training
1-25
1-26
Module 1 Introduction
d. Double-click the derived template.
f.
Select InTouchView Application to create an InTouch application that uses only ArchestrA
references as an external data source.
g. Click Next.
WindowMaker starts.
Wonderware Training
Click Yes to convert the InTouch application to the current system resolution and open it.
Click No to open and edit the InTouch application in its original resolution.
1-27
1-28
Module 1 Introduction
To start WindowMaker from an InTouchViewApp instance
a. Open the ArchestrA IDE.
b. Locate the InTouchViewApp object whose parent hosts the managed InTouch application you
want to modify.
c. Double-click the InTouchViewApp object.
The InTouchViewApp Instance Edit dialog box appears.
Note: If you select the Dont ask me again check box and click Yes, the next time you open
an InTouchViewApp instance, the managed InTouch application is automatically opened from
the associated InTouchViewApp template.
You can change this setting using the User Information dialog box, which you open from the
Edit menu.
Wonderware Training
1-29
1-30
Module 1 Introduction
Importing an InTouch Application
You can import an existing InTouch application to use as a managed InTouch application. You do
this in two steps:
Create an InTouchViewApp object to associate with the imported InTouch application.
Wonderware Training
Click Next.
The next panel appears.
g. If needed, type a new name in the Application Name box and a description in the Description
box. The name and description appear in the Application Manager when the managed
InTouch application is deployed.
h. Click Next.
The next panel appears and shows you the import progress.
i.
Click Done.
InTouch WindowMaker is started and you can edit the InTouch application as a managed
InTouch application.
1-31
1-32
Module 1 Introduction
Exporting and Importing Tag Data
You can export the tag data of a managed InTouch application to a .csv file. You can import this
data into another managed InTouch application or a stand-alone InTouch application.
To export tag data from a managed InTouch application
a. Open the ArchestrA IDE.
b. Select the derived InTouchViewApp template that contains the managed InTouch application
from which you want to export the tag data.
c. On the Galaxy menu, point to Export, and then click DB Dump.
The CSV File to Dump To dialog box appears.
d. Specify a location and file name for the .csv file and click Save.
A confirmation dialog box appears.
e. Select Group output by types if you want the tag data to be grouped by data types in the .csv
file.
f.
Click OK.
When a success message appears, click OK.
Wonderware Training
This section explains what ArchestrA Symbols are, how they are stored in the ArchestrA
environment, and how they can be managed using the IDE tools.
About Symbols
ArchestrA Symbols are graphical symbols that you can use to visualize data in an InTouch HMI
application. They are managed by the IDE.
Using the IDE, you can:
Open the symbol for editing with the ArchestrA Symbol Editor.
Delete a symbol.
Open the symbol in read-only mode with the ArchestrA Symbol Editor.
The Graphics panel of an Automation object instance, if you are unlikely to re-use the
symbol in any other situation.
3-3
3-4
Note: You can press the following keys to create a new ArchestrA symbol: Ctrl + Shift + S.
b. Rename the symbol.
Names must be unique within the entire hierarchy.
Valid characters for symbol names include alphanumeric characters, # and _ (underscore).
Symbol names cannot contain spaces and the symbol name cannot begin with the $
character.
c. Double-click the symbol name.
The ArchestrA Symbol Editor opens.
Wonderware Training
Draw an element by selecting an element from the Tools panel, placing it on the canvas,
and then configuring its properties.
Select one or more elements on the canvas with the mouse or from the Element list.
Resize elements.
Change the z-order of elements to change which elements appear on top of others when
they overlap.
Rotate elements.
Change the origin of elements to specify around which point the elements are rotated.
Undo and redo any number of changes made previously to the symbol.
3-5
3-6
You can change the shape of these elements anytime by editing their control points.
Wonderware Training
Drawing Buttons
You can draw a button on the canvas. You can configure a button with a text label or an image.
To draw a button
a. Click the button icon in the Tools panel.
b. Click the canvas and drag the shape of the button element.
c. Release the mouse button.
The button text appears in edit mode.
d. Type a text label for the button and then press Enter.
3-7
3-8
Wonderware Training
Dragging Elements
After you draw elements on the canvas, you can drag them to a new position.
To drag elements on the canvas
a. Select one or more elements.
b. Click one of them and hold the mouse button down.
c. Drag the mouse to the new position.
d. Release the mouse button.
3-9
3-10
Note: The Properties Editor not only supports values, but also allows input of color, font, and
file information in the respective dialog boxes.
Properties are organized in categories so you can find them more easily. The following table
shows the categories:
Property Category
Purpose
Graphic
Appearance
Fill Style
Line Style
Text Style
Runtime Behavior
Custom Properties
Wonderware Training
Properties Editor
When you select an element, it appears with handles that give you control over its size and
orientation.
When you select multiple elements, the last selected element is the primary element. All other
previously selected elements are secondary elements.
Selected Element
Primary Element
Description
Appears with color-filled handles.
Behaves as an active selected
element.
Is the point of reference for all
operations, such as aligning or
spacing multiple selected elements.
Secondary Elements
To select a group, you must click one of the elements contained in the group.
3-11
3-12
b. To select further elements, press Shift + click. The other elements become selected.
Note: Note You can see in the Elements List which elements are selected.
On the Edit menu, click Select All. All elements on the canvas are selected.
Note: Note You can also press the F2 key to select all elements.
Wonderware Training
Unselecting Elements
You can unselect one or more selected elements. You can do this by clicking on them individually
on the canvas or in the Elements List.
If you want to remove the selected elements in a specified rectangular area, you can use the
lasso.
To unselect elements individually
a. Do one of the following:
b. 2 Repeat the previous step for all elements you want to unselect.
To unselect elements from a specified rectangular area
a. Shift + click the canvas outside of any element.
b. Drag the mouse so that the lasso surrounds the elements that you want to unselect.
c. Release the mouse button. The selected elements within the lasso are unselected, and the
selected elements outside the lasso remain selected.
3-13
3-14
Group
Path
For buttons, text, and text boxes, the text is selected and you can type new text.
For polylines, polygons, curves, and closed curves, the control points of the element
appear. Use these to change the shape of the element. You can also add and delete
control points.
For arcs, pies, and chords, the handles for the start angle and sweep angle appear. Use
these to change the start angle and sweep angle.
For groups, the group handle is replaced with a shaded outline. You can select individual
elements and groups within the group to edit and move them.
Wonderware Training
Copying Elements
After you select an element, you can copy it by using menu options or you can Ctrl + click.
To copy one or more elements
3-15
3-16
Press Ctrl + X.
Press Ctrl + V.
d. Click the canvas location where you want the element or group to be placed.
To delete an element or a group
a. To remove the element or group and not use it in the future, select the element or group.
b. Do one of the following:
Wonderware Training
Press Ctrl + D.
The selected element is duplicated and appears offset to the original element.
Ctrl + click one of the selected elements to duplicate all selected elements.
You can keep the mouse button down and drag them to the new position on the canvas.
3-17
3-18
Resizing Elements
You can resize selected elements by:
Dragging the handles of a single element to increase or decrease its horizontal or vertical
size.
Changing the Width and Height properties of one or more elements using the Properties
Editor.
Some elements cannot be resized or can only be resized in certain directions, such as the
Calendar control or DateTime Picker. If the primary element has such restrictions, then any
secondary elements resize proportional to the change in primary element's size and do not resize
independently.
b. Drag one of the handles. The object is resized while you drag.
c. Release the mouse button.
To resize a single selected element with the mouse and keeping a fixed width/height ratio
a. Select an element. The handles of the selected element appear.
b. Press and hold the Shift key.
c. Drag one of the handles.
The object is resized while you drag, the width/height ratio stays unchanged.
d. Release the mouse button and Shift key.
Wonderware Training
3-19
3-20
You can use the Elements List to see or change the z-order of the elements.
For more information of Adjusting the z-Order of Elements see Chapter 5 of Creating and
Managing ArchestrA Graphics Users Guide.
Wonderware Training
Rotating Elements
You can rotate elements to any orientation (0 - 359 degrees):
The element is rotated around its point of origin. By default, the point of origin is in the center of the
element. You can move the point of origin to any other location, even outside of the object itself.
In multiples of 15 degrees.
In multiples of 45 degrees.
You can rotate an element with the rotation handle. The rotation handle is a light-blue circle at the
top of a selected element.
3-21
3-22
Wonderware Training
Type the absolute coordinates in the x, y format for the point of origin.
Type the relative coordinates in the x, y format for the point of origin.
c. Press Enter. The points of origin move to the specified absolute position or to the specified
position in relation to the center points of the selected elements.
For example, if you have two elements, you can set the relative point of origin to 10, 10 to place the
points of origin for both elements 10 pixels to the right and 10 pixels below the corresponding
center points of each element.
3-23
3-24
Flipping Elements
You can flip elements on their horizontal or their vertical axis. The axis for each element is
determined by its point of origin.
To flip elements vertically
a. Select one or more elements.
b. On the Arrange menu, point to Transform, and then click Flip Vertical. The selected elements
are flipped vertically on their horizontal axis.
Wonderware Training
In the Elements List, click the group name and click again.
The group name is in edit mode.
Ungrouping
After you create a group, you can ungroup it if you no longer want it.
If the group included elements and other groups, when you ungroup, the original elements and
groups again exist as independent items. To ungroup any subgroups, you must select each one
and ungroup it separately.
If you ungroup a set of elements and elements already exist with the names of the grouped
elements, then the newly ungrouped elements are renamed.
To ungroup
a. Select the groups you want to ungroup.
b. On the Arrange menu, point to Grouping, and then click Ungroup.
The groups is converted to the original elements.
The group name is removed from the Elements List and the element names appear.
3-25
3-26
Elements to groups.
Wonderware Training
c. Edit the element with the Properties Editor, by mouse or by menu according to your
requirements.
d. Click outside the group.
To edit components within a group by using the Edit Group command
a. On the canvas, select the group that you want to edit.
b. On the menu Edit, click Edit Group GroupName.
The group is outlined with a diagonal pattern.
3-27
3-28
Path Graphics
Path graphics are elements that combine selected open elements, such as lines, H/V lines,
polylines, curves and arcs to a single closed graphic element.
On the direction in which you drew its elements. The end point of one element is
connected to the start point of the next element.
The properties of the elements contained within a path graphic are retained, so that when you
break the path graphic, the elements of which it consists appear as they did before the path
graphic is created.
The Path Graphic has the same properties as a rectangle, ellipse or polyline. It loses these
properties when you break the path.
Wonderware Training
Path Tool:
3-29
3-30
Wonderware Training
Unfilled style
Fill behavior, which determines if the object is to be filled horizontally, vertically, or both
Click More Solid Colors to open the Style Selection dialog box and select a solid color.
Click More Gradients to open the Style Selection dialog box and configure a gradient.
Click Patterns to open the Style Selection dialog box and select a pattern.
Click Textures to open the Style Selection dialog box and select a texture.
3-31
3-32
If relative to the screen, the gradient, pattern, or texture does not rotate with the element.
If relative to the element, the gradient, pattern, or texture rotates with the element.
Wonderware Training
Horizontal.
Vertical.
Horizontal
Vertical
Both
You can also set the amount you want the element to be horizontally filled by as a percentage.
To set an elements horizontal fill direction and percentage
a. Select one or more elements you want to configure.
b. In the Properties Editor, set the HorizontalDirection property to:
c. For the HorizontalPercentFill property, type a percentage (0 - 100) in the value box.
You can also set the amount you want the element to be vertically filled by as a percentage.
To set an elements vertical fill direction and percentage
a. Select one or more elements you want to configure.
b. In the Properties Editor, set the VerticalDirection property to:
c. For the VerticalPercentFill property, type a percentage (0 - 100) in the value box.
3-33
3-34
Text boxes.
Start and end points for lines, arcs, and H/V lines.
Line pattern, which is the continuity of a line. For example, a continuous line, a dotted line,
a dashed line, or a combination.
Note: You can also set the elements line properties in the Line Format properties group in
the Properties Editor.
Wonderware Training
3-35
3-36
Click More Solid Colors to open the Style Selection dialog box and select a solid color.
Click More Gradients to open the Style Selection dialog box and configure a gradient.
Click Patterns to open the Style Selection dialog box and select a pattern.
Click Textures to open the Style Selection dialog box and select a texture.
Note: You can also set the elements line style in the Properties Editor. If you do this, you can
configure the solid color, gradient, pattern, or texture in the Style Selection dialog box.
You can also substitute strings in text, text box, and button elements.
Wonderware Training
Text element and the button element in the same way as in the InTouch HMI or with the
TextFormat property in the Properties Editor.
3-37
3-38
Click More Solid Colors to open the Style Selection dialog box and select a solid color.
Click More Gradients to open the Style Selection dialog box and configure a gradient.
Click Patterns to open the Style Selection dialog box and select a pattern.
Click Textures to open the Style Selection dialog box and select a texture.
Wonderware Training
Buttons
Text Boxes
If the element is a text element and you then modify the text at design time or run time, the text is
anchored to the point of alignment.
Text right alignments move additional text further over to the left.
Changes in font size leave the point of alignment unchanged and modify the frame
accordingly.
3-39
3-40
Top Left
Top Center
Top Right
Middle Left
Middle Center
Middle Right
Bottom Left
Bottom Center
Bottom Right
Substituting Strings
You can search and replace strings of any element that have the Text property on your canvas.
You can use the basic mode to replace strings in a list.
You can also use advanced functions, such as find and replace, ignore, case-sensitivity, and
wildcards.
You cannot substitute static strings that are used in an Radio Button Group, List Box or Combo
Box.
Press Ctrl + L.
Wonderware Training
Press Ctrl + E.
To find specific strings in the list, type a string in the Find What box and click Find Next to
find the next string.
To replace a selected found string with another string, type a string in the Replace with
box and click Replace.
To replace multiple strings, type values in the Find What and Replace with boxes and click
Replace all.
f.
To find only entire words that match your search string, click Match Whole Word Only.
To use wildcards, click Use Wildcards. Use an asterisk (*) to search for any sequence of
characters. Use a question mark (?) to search for strings with one variable character.
Click OK.
3-41
3-42
Setting Style
You can set the fill, line, and text style from various places in the ArchestrA Symbol Editor using
the Style Selection dialog box. The Style Selection dialog box is common to any element for which
you can set a solid color, gradient, pattern, or texture. You can also set the transparency of the
style.
Because you can open the Style Selection dialog box from different places in the ArchestrA
Symbol Editor, the dialog box header can be different.
Also, not all tabs may be available. For example, for setting one color of a gradient in the
Properties Editor, you can only select a solid color from the Style Selection dialog box.
Standard palette.
Color picker.
Custom palette.
Wonderware Training
b. In the Standard Palette area, click a color. The new color appears in the New color box on the
right of the dialog box.
c. Click OK.
3-43
3-44
d. Click OK.
Hue (0-255).
Saturation (0-255).
Luminance (0-255).
Wonderware Training
Type values for red, green, blue, hue, saturation, and luminance.
The new solid color appears in the New color box on the right of the dialog box.
c. Click the add button above Custom Palette.
The solid color is added to the Custom Palette area.
To remove a solid color from the custom palette
a. In the Style Selection dialog box, click the Solid Color tab.
b. In the Custom Palette area, select the solid color you want to remove.
c. Click the Delete button above Custom Palette.
The solid color is removed from the custom palette.
3-45
3-46
Wonderware Training
Setting a Gradient
You can configure gradients by the:
Number of colors - 1, 2 or 3.
Variant - depending on your selection for the number of colors and direction.
Color distribution shape - bell or triangular with options to configure the center and falloff.
You set a gradient on the Gradient tab in the Style Selection dialog box.
3-47
3-48
If you use one color, the gradient is between this solid color and a specified shade of black
to white.
If you use two colors, the gradient is between these two colors.
If you use three colors, the gradient is between these three colors in sequence.
c. Click the color selection box to open the Select Solid Color 1 dialog box. Select a solid color
and click OK. For more information about this dialog box, see Setting a Solid Color on page
164.
d. Move the slider between Dark and Light. The new gradient appears in the New color box on
the right of the dialog box.
e. Click OK.
To set a gradient using two colors
a. In the Style Selection dialog box, click the Gradient tab.
b. In the Colors area, click Two. Two color selection boxes appear.
c. Click the Color 1 or Color 2 color field to select a color from the Select Solid Color dialog box.
The new gradient appears in the New color box on the right of the dialog box.
d. 4 Click OK.
Wonderware Training
c. Click the Color 1, Color 2 or Color 3 color field to select a color from the Select Solid Color
dialog box.
The new gradient appears in the New color box on the right of the dialog box.
d. Click OK.
Point based - from the inside outwards in linear fashion depending on the bounding points
3-49
3-50
In the Horizontal and Vertical boxes, type values for the center location.
The new gradient appears in the New color box on the right of the dialog box.
d. Click OK.
To set a point based gradient
a. In the Style Selection dialog box, click the Gradient tab.
b. In the Direction area, click Point Based.
In the Horizontal and Vertical text boxes, type values for the center location.
The new gradient appears in the New color box on the right of the dialog box.
d. Click OK.
Wonderware Training
The new gradient appears in the New color box on the right of the dialog box.
d. Click OK.
The new gradient appears in the New color box on the right of the dialog box.
c. Click OK.
3-51
3-52
In a triangular distribution, the gradient from one color to the next rises and falls at the
same rate.
The peak specifies the offset of the gradient if it has one or two colors.
The falloff specifies the amplitude of the gradient if it has one or two colors.
Additionally, you can configure the center point of a radial or point based gradient if it is defined by
three colors.
To use a bell-shaped gradient
a. In the Style Selection dialog box, click the Gradient tab.
b. In the Color Distribution Shape area, click Bell. The new gradient appears in the New color box
on the right of the dialog box.
c. Click OK.
To use a triangular gradient
a. In the Style Selection dialog box, click the Gradient tab.
b. In the Color Distribution Shape area, click Triangular. The new gradient appears in the New
color box on the right of the dialog box.
c. Click OK.
Wonderware Training
The new gradient appears in the New color box on the right of the dialog box.
c. Click OK.
To set the falloff of a gradient with one or two colors
a. In the Style Selection dialog box, click the Gradient tab.
b. In the Color Distribution Shape area, do one of the following:
The new gradient appears in the New color box on the right of the dialog box.
c. Click OK.
To set the center point of a radial or point based gradient with three colors
a. In the Style Selection dialog box, click the Gradient tab.
b. In the Color Distribution Shape area, do one of the following:
The new gradient appears in the New color box on the right of the dialog box.
c. Click OK.
Height
50
50
50
50
Appearance
3-53
3-54
The new gradient appears in the New color box on the right of the dialog box.
c. Click OK.
To set the height of the focus scales for a gradient
a. In the Style Selection dialog box, click the Gradient tab.
b. In the Focus Scales area, do one of the following:
The new gradient appears in the New color box on the right of the dialog box.
c. Click OK.
To lock the width and the height of the focus scales for a gradient
a. In the Style Selection dialog box, click the Gradient tab.
b. Click Lock Width = Height. The width and height are set equal. When you make changes to
the width or the height, they are set equal to each other.
c. Click OK.
Setting a Pattern
You can set a pattern for an element. The following table describes the pattern options:
Pattern
Options
Horizontal
Vertical
Percent
05, 10, 20, 25, 30, 40, 50, 60, 70, 75, 80, 90
Grid
Checker Board
Small, Large
Diagonals
Diamond
Cross
Diagonal
Brick
Horizontal, Diagonal
Confetti
Small, Large
Others
Zig Zag, Wave, Weave, Plaid, Divot, Shingle, Trellis, and Sphere
Patterns consist of the foreground color and the background color that you can change.
Wonderware Training
b. Select a pattern. The new pattern appears in the New color box on the right of the dialog box.
c. If you want to change the foreground color of the pattern, click the Foreground color selection
box. The Style Selection dialog box appears. Select a solid color and click OK.
d. If you want to change the background color of the pattern, click the Background color selection
box. The Style Selection dialog box appears. Select a solid color and click OK.
e. Click OK.
3-55
3-56
Setting a Texture
Textures are images you can use as styles for lines, fills and text. You can stretch the image or tile
the image across the entire element to be filled.
To set a texture
a. In the Style Selection dialog box, click the Textures tab.
b. Click Select Image. The Open dialog box appears. You can import the following image
formats: .BMP, .GIF, .JPG, .JPEG, .TIF, .TIFF, .PNG, .ICO, .EMF. Animated GIF images are
not supported.
c. Browse to and select an image file and click Open. The new pattern appears in the New color
box on the right of the dialog box.
d. Configure the size mode. Do one of the following:
Click Stretch to enlarge (or shrink) the pattern across the selected element.
e. Click OK.
Wonderware Training
The No Fill style appears as a red cross-through line in the New color box on the right of the
dialog box.
b. Click OK.
3-57
3-58
Wonderware Training
FillColor
LineColor
TextColor
UnFillColor
c. Click the + icon to expand the property. The Color1, Color2, Color3, and Transparency subproperties are shown.
d. Do one of the following:
Type a new value for the transparency and press Enter. You are done.
e. Click the browse button. The Style Selection dialog box appears.
f.
Select a color from the Style Selection dialog box and click OK.
The solid color is applied to the selected element.
User input.
Pushbuttons.
Action scripts.
Other animations such as horizontal fills and tooltips continue to work as expected.
To enable an element for run-time interaction
a. Select one or more elements you want to enable.
b. In the Properties Editor Runtime Behavior group, set the Enabled property to True.
To disable an element for run-time interaction
a. Select one or more elements you want to disable.
b. In the Properties Editor Runtime Behavior group, set the Enabled property to False.
3-59
3-60
You must also make sure that the TabStop property of each element is set to true. When the
TabStop property is set to true, you can use the tab key at run time to switch to the selected
element.
To edit the elements tab order
a. Select the element for which you want to set the tab order.
b. In the Properties Editor, ensure that the TabStop property is set to True.
c. Type a unique value for the TabOrder property.
Wonderware Training
When you use the format painter, it copies the following formats of the element if applicable for the
target element(s):
Transparency
Fill style, orientation, behavior, horizontal percent fill, and vertical percent fill
Unfilled style
Groups of elements.
3-61
3-62
Enable anti-aliasing, or smoothing, for your symbol to improve its appearance. The antialiasing filter essentially blurs the elements slightly at the edges.
Allow or prevent the opening of more than one symbol or display from a symbol. One
example is a symbol with multiple Show Symbol animations. If this option is enabled, you
can open more than one pop-up and each pop-up is modeless.
Wonderware Training
Image-specific properties.
Button-specific properties.
Status elements.
Set the radius of the rounded rectangle to a specific value using the Properties Editor.
Rounded rectangles maintain their radius when their size is changed. If the symbol containing
rounded rectangles is embedded into an InTouch window and resized, the radius is not affected.
This can have adverse affects on the graphic representation of your symbol.
To enlarge the radius of a rounded rectangle
a. Select one or more rounded rectangles on the canvas.
b. Press and hold Shift and the + key on the numeric keypad.
The radius is enlarged, and the rounded rectangle becomes more round.
3-63
3-64
In the Line Start list, click a shape for the start of the line.
In the Line End list, click a shape for the end of the line.
Click OK.
Wonderware Training
For auto scaling, the text is resized to fit the text box.
For word wrapping, the text in a text box continues in the next line.
Using Images
You can place images on the canvas. This is a two step process:
a. Draw a frame which specifies the target size of the image.
b. Import the image from an image file.
After you place an image on the canvas, you can:
3-65
3-66
In normal mode, the image is not stretched or tiled. You can resize the image frame with
the resizing handles.
In tile mode, the image is repeated so that a tiled pattern that fills its frame is created.
In auto mode, the image frame is enlarged or reduced to the image size. The resizing
handles are locked. When the image style of an image element is Auto, you cannot
change its size.
Wonderware Training
Note: You can also set the image alignment in the ImageAlignment property in the Properties
Editor.
To set the image alignment
a. Select the image element with the image you want to align.
b. In the Properties Editor, select ImageAlignment.
c.
In the list, click one of the following options: TopLeft, TopCenter, TopRight, MiddleLeft,
Centers, MiddleRight, BottomLeft, BottomCenter or BottomRight. The image is aligned
accordingly in the image frame.
3-67
3-68
Setting the image color transparency is different than setting the transparency of the image
element, as it only applies to one color. Image transparency applies to the entire image.
To enable image color transparency
a. Select the image element.
b. In the Properties Editor, select HasTransparentColor.
c. In the list, click True.
To set the transparency color for an image
a. Select the image element.
b. On the Edit menu, click Select Image Transparent Color. The pointer becomes a color picker.
c. Click the color you want to use as the transparency color. The image is updated with the new
transparency color.
Note: You can also select a transparency color with the TransparentColor property in the
Properties Editor.
Wonderware Training
c. Browse to and select the executable of the image editing application and click Open. The
image editor is added to the list.
3-69
3-70
Using Buttons
You can use buttons in ArchestrA Symbols. Buttons show a text caption or an image. If they show
a text caption, you can:
Wonderware Training
The up image is the image that appears when the button is released at run time
The down image is the image that appears then the button is pressed at run time
You can edit an up image or a down image after you assign it to a button.
To use a down image or up image on a button
a. Select the button element on the canvas.
b. In the Properties Editor, select Image in the property ButtonStyle list.
c. Click the browse button of the UpImage property and select an image in the Open dialog box.
This is the image that appears on the button by default and also when the button is released.
d. Click the browse button of the DownImage property and select an image in the Open dialog
box. This is the image that appears on the button when the button is clicked on.
To edit an up image or a down image of a button
a. Right-click the button element on the canvas. The context menu appears.
b. Click Edit Button Image, then click one of the following:
Edit Up Image
3-71
3-72
c. Click a control point you want to change and drag it to the new location. The element is
updated accordingly.
d. Repeat the previous step for all control points you want to change.
Repeat the last step for any other control points you want to add.
Repeat the last step for any other control points you want to remove. You must have at least
two control points.
Wonderware Training
3-73
3-74
c. If you want to the angle to be multiples of 15 degrees, press and hold the Shift key.
d. If you want to the angle to be multiples of 45 degrees, press and hold the Ctrl key.
e. Grab the start angle or the sweep angle handle and drag it to the new location. The element is
updated accordingly.
Wonderware Training
If you want additionally either angles to be multiples of 45 degrees, press and hold the Ctrl
key.
g. Drag the mouse. The start angle and sweep angle are changed accordingly.
h. When you are done, release the mouse button and then any keys.
3-75
3-76
Wonderware Training
d. Type a new unique name for the symbol and press Enter.
The symbol is renamed.
3-77
3-78
d. Click Yes.
The Graphic Toolset is deleted.
Wonderware Training
c. To hide Graphic Toolsets, clear the check box next to the Toolsets you want to hide.
d. To show Graphic Toolsets, check the check box next to the Toolsets you want to show.
e. To select or unselect all Toolsets, click the Check All or Uncheck All buttons.
f.
3-79
3-80
When you open a symbol in the ArchestrA Symbol Editor, it is checked-out. No other user can edit
the symbol until you check the symbol in again.
Note: You can open multiple instances of the ArchestrA Symbol Editor at the same time.
However, you cannot edit the same symbol in multiple instances of the ArchestrA Symbol Editor
To edit a symbol in the Graphic Toolbox
a. Open the Graphic Toolbox.
b. Locate the symbol you want to edit by browsing in the Graphic Toolbox.
c. Double-click it.
The ArchestrA Symbol Editor opens.
Wonderware Training
contain embedded symbols from the Graphic Toolbox, these symbols are exported along
with the symbols associated with the Automation object.
contain embedded graphics from other Automation objects, these symbols (including any
embedded symbols from the Graphic Toolbox contained in them) and their parent
Automation object are not exported with Automated object A. They remain as references,
and upon import, the system tries to reestablish the connection with those exact
references in the target Galaxy.
3-81
3-82
Exporting Symbols
You can export symbols to a symbol .aaPKG file.
To export symbols to a symbol .aaPKG file
a. In the Graphic Toolbox, select the symbols that you want to export.
b. On the Galaxy menu, point to Export, and then click Object(s).
The Export Automation Object(s) dialog box appears.
c. Browse to the save location and type a name for the symbol .aaPKG file.
d. Click Save. The symbols and their toolset folders are exported.
e. Click Close.
Wonderware Training
When you delete a symbol, you are shown where the symbol is used. This lets you
understand the impact of deleting the symbol before you actually delete it.
You cannot delete symbols that someone else has open for editing or left checked out.
If you delete a symbol from an Automation Object, the symbol still appears to other users
until you check in the Automation Object.
If you delete a symbol that is used in an InTouch window, it is not deleted from that
window. However, the ArchestrA animation links no longer work and you cannot edit the
symbol with the ArchestrA Symbol Editor.
To delete a symbol
a. Do one of the following:
Open the Automation Object with the symbol you want to delete.
Click the Graphics tab.
c. At the prompt, review the places this symbol is being used, if any.
d. Click Yes. The symbol is deleted.
Note: You can also delete multiple symbols at the same time.
Copying a Symbol
You can copy a symbol by saving it to another location and renaming it.
To copy a symbol:
a. Select a symbol.
b. Export the symbol to the Graphic Toolbox.
c. Rename the symbol in the Graphic Toolbox.
d. Re-import the object.
3-83
3-84
Wonderware Training
You can use ArchestrA Symbols that are created with the ArchestrA Symbol Editor in the IDE in
your IDE-managed InTouch application.
ArchestrA IDE
InTouch WindowMaker
InTouchViewApp
Automation
Object (Template)
IDE-Managed InTouch
Applications
Manages
Provide s
Archest rA
Symbol s
ArchestrA Symbol
Editor
InTouch WindowViewer
Test Application
Templates and
Instances
IDE-Managed InTouch
Applications
Provides
ArchestrA
Symbol Functionality
You can:
Create a new Instance of the Automation object that is hosting the inserted ArchestrA
Symbol.
3-85
3-86
Note: You cannot insert ArchestrA Symbols into windows of stand alone InTouch applications.
Instead, convert the IDE-managed InTouch applications to stand alone InTouch applications.
ArchestrA symbols are converted, but can not be edited.
c. Select the ArchestrA symbol you want to insert and click OK.
The insertion icon appears if the mouse is over the InTouch window.
d. Click on the InTouch window where you want to insert the ArchestrA symbol.
The object is inserted on the InTouch window.
Wonderware Training
Standard editing, such as copying, cutting, pasting, duplicating, resizing, moving and
deleting.
Configuring WindowMaker animation links.
Object size.
Object location.
Visibility.
Orientation.
Enablement.
Note: The animation links configured in WindowMaker are independent from those configured in
the ArchestrA Symbol Editor. They do not inherit the settings of the ArchestrA symbol and take
precedence when run in WindowViewer.
To configure WindowMaker animation links of an inserted ArchestrA symbol
a. Select the inserted ArchestrA symbol.
b. From the Special menu, select Animation Links.
The Animation Links dialog box appears.
3-87
3-88
Wonderware Training
If the dynamic size change is disabled, any changes to the absolute anchor point position of the
parent symbol:
Note: For more information about dynamic size propagation, see Creating and Managing
ArchestrA Graphics Users Guide.
To enable or disable dynamic size change of an inserted symbol
a. Select the inserted ArchestrA symbol.
b. On the Special menu, point to ArchestrA Graphic name, then check or uncheck Dynamic
Size Propagation.
in the
3-89
3-90
Wonderware Training
Close the InTouch window containing the inserted ArchestrA symbol and open it again.
In both cases the changes made to the ArchestrA symbol are reflected in the inserted symbol in
the InTouch window.
In both cases the changes made to the ArchestrA symbol are reflected in the inserted ArchestrA
symbol in the InTouch window.
3-91
3-92
Create
ArchestrA
Symbol
WindowMaker
Insert
ArchestrA
Symbol into
InTouch
Window
Accept
Changes in
WindowMaker
WindowViewer
Fast Switch to
WindowViewer
Test ArchestrA
Symbol in
WindowViewer
Fast Switch to
WindowMaker
Open then after a short while, a message appears in WindowViewer asking you to accept
the changes. Click Yes.
Closed then you can fast-switch from WindowMaker to WindowViewer to see your
changes.
Note: After you have made changes to an ArchestrA symbol and saved it, it is faster to close
WindowViewer and to re-open WindowViewer than to wait for the changes to propagate to the
open WindowViewer session.
Wonderware Training
Objectives
Upon completion of this lab, you will be able to:
f.
GatePipe
ValveAPipe
ValveBPipe
DrainPipe
3-93
3-94
Wonderware Training
3-95
3-96
10. Using the Elements list or the Properties pane, rename the object MainTank.
Note: The name will change in both places any time an edit is made.
Wonderware Training
Note: Using a Point Based gradient with a Height of 100 and a Bell Color distribution allows
the gradient shading to more accurately follow the shape of a complex object.
Note: Once shaded, you can adjust he size of the object as necessary.
3-97
3-98
For the input and output piping, draw rectangles with gradient shading and the line weight set
to No Line.
13. Draw two rectangles as shown below for the first set of input and output piping.
15. Once the objects are named, group them and rename the group GatePipe.
Wonderware Training
ValveBPipe
DrainPipe
Optional: You may also want to select MainTank and set its line weight to No Line.
3-99
3-100
Wonderware Training
3-102
Wonderware Training
This section shows you how to configure and use custom properties to extend the functionality of
symbols and also to use in combination with InTouch tagnames.
Data Type:
- Boolean
- Integer
- Float
- Double
- String
- Time
- Elapsed Time
Default Value:
- Value
- Reference (Element or Attribute)
- Expression
CUSTOM PROPERTY 1
Description
SYMBOL
CUSTOM PROPERTY 2
CUSTOM PROPERTY 3
Visibility:
- Public Custom Property
- Private Custom Property
CUSTOM PROPERTY N
3-103
3-104
Wonderware Training
You can see the name of the symbol and the custom property in the header of the right side of
the dialog box.
e. Configure the custom property on the right side of the Edit Custom Properties dialog box.
For more information see Creating and Managing ArchestrA Graphics Users Guide - Chapter
10 Using Custom Properties - Configuring Custom Properties.
f.
3-105
3-106
Note: The header of the configuration section shows you the symbol name, for example
Symbol_001, on the right and the custom property name on the left, for example
MyCustomProperty. It can be accessed from scripting as Symbol_001.MyCustomProperty.
d. In the Data Type list, select the data type of the custom property.
You can select one of the following:
Data Type
Boolean
Elapsed Time
Float
Integer
Wonderware Training
Symbol
Symbol
Time
f.
Make the property read-only at run time and prevent its value being changed,
click the Lock icon.
In the Default Value box, type a literal value, reference or expression or browse for a
reference using the Browse icon.
g. If the selected data type is String, Time or Elapsed Time, you can click either the T icon or
label icon.
Select the T icon to indicate that the default value is a static value.
Select the label icon to indicate that the default value is a reference to a value.
i.
Public, so that the custom property is visible and can be used in a parent symbol if the
symbol is embedded or inserted.
Private, so that the custom property is not visible outside of the defining symbol and
cannot be used if the symbol is embedded or inserted.
In the Description box, type a meaningful description for the custom property.
3-107
3-108
Configuring Automation objects that point at external sources and then pointing the
custom property at the corresponding attribute reference.
Configuring a special InTouch reference syntax in the Default Value box. When you insert
the symbol on an InTouch window, the referenced InTouch tagnames connect to the
tagnames of InTouch.
Note: For more information, see Connecting Animations with Custom Properties on page
219, Connecting Animations with InTouch tags on page 220 and the InTouch ArchestrA
Integration Guide.
Note: When you override the custom property, it appears bold in the custom property list.
Description.
Locked state.
Wonderware Training
Objectives
Upon completion of this lab, you will be able to:
Data Type
Default Value
Visibility
Level
Integer
Public
Agitator
Boolean
3-110
Note: Pay close attention to the symbol names. This will help you avoid mistakes.
The ArchestrA Symbol Editor will open with Main_Reactor showing.
3. Right-click any blank space and select Custom Properties.
Wonderware Training
3-112
Wonderware Training
3-114
11. In the Elements list in the left pane, right-click on the GateValve symbol and select
Custom Properties.
Wonderware Training
15. Save and Close your symbol and add the appropriate Check-in comments.
16. Switch to WindowMaker.
3-116
18. Double-click on the tank to see the Custom Properties now associated with the object.
Wonderware Training
You can use animations to specify how the element appears at run time. Animations are driven by
data that comes from ArchestrA attribute values and expressions as well as element properties,
and InTouch tags.
You can use:
Visualization animations, such as visibility, fill style, line style, text style, blinking, percent
fill horizontal, percent fill vertical, horizontal location, vertical location, width, height,
orientation, value display or tooltip.
Interaction animations, such as disablement, user input, horizontal slider, vertical slider,
pushbutton, action script, show symbol or hide symbol.
Element-specific animations for Status element and Windows Common Control elements.
Each element in your ArchestrA symbol can have one or more animations.
You can disable and enable individual animations for debugging purposes.
You can also cut, copy and paste animations between elements, regardless of their type. Only
animations that are supported by the target element are pasted.
You can also substitute references and strings in animations.
Note: Not all animations are available for all element types, as some do not make logical sense,
such as line style with a text element. You are not able to select or copy these invalid
combinations.
3-117
3-118
Wonderware Training
Note: Depending on the animation type you may get an animation state selection panel
instead.
Select the element. The assigned animations appear in the Animation Editor.
3-119
3-120
Wonderware Training
3-121
3-122
e. Repeat for any other animations you want to disable and click OK when you are done.
To enable an animation
a. Select the element.
b. On the Special menu, click Edit Animations. The Edit Animations dialog box appears.
c. Locate the animation you want to enable from the animation list on the left side of the dialog
box.
d. Select Enabled from the list of that row.
e. Repeat for any other animations you want to enable and click OK when you are done.
Wonderware Training
If the configuration has an error, an exclamation mark is shown next to the animation icon.
ArchestrA attributes.
Element properties.
Custom properties.
InTouch tags.
3-123
3-124
Wonderware Training
Configuring a reference with the intouch:tagname syntax. The animation connects to the
InTouch tagname of the node the symbol is deployed to.
Using a custom property and configuring the custom property in the inserted ArchestrA
symbol in InTouch to reference an InTouch tag. For more information, see the InTouch
ArchestrA Integration Guide.
3-125
3-126
Note: To configure a reference to use an InTouch SuperTag, use the following syntax:
attribute(intouch:SuperTag\Member).
The InTouch tags are represented by attributes of the InTouchViewApp object instance.
Wonderware Training
In the Edit Animations dialog box, on the configuration panel click either the left or right
arrow icon.
The configuration panel changes to the configuration panel of the previous or next animation.
3-127
3-128
Visibility animations.
Blink animations.
Orientation animations.
Tooltip animations.
Disablement animation.
Pushbutton animations.
Action script animations.
d. In the Boolean box, type either a boolean numeric value, attribute reference or expression.
e. Select True, 1, On, if you want the element to show, when the expression is true, otherwise
select False, 0, Off.
Wonderware Training
Associate expressions of any data type supported by ArchestrA with a fill style.
Define as many fill styles as you require and associate each one with a condition.
You can define the conditions by specifying a comparison operator (=, >, >=, <, <=) and a
breakpoint, which itself can be a value, an attribute reference or an expression.
You can add conditions, delete conditions and also change the order in which the conditions are
processed.
e. In the Boolean box, type either a boolean numeric value, attribute reference or expression.
f.
Unselect Color in the True, 1, On area OR False, 0, Off area if you do not want a different fill
style for the true or false condition than the default fill style.
g. In the True, 1, On area, click the color box to configure the fill color when the expression is
true. The style selection dialog box appears.
h. In the False, 0, Off area, click the color box to configure the fill color when the expression is
false. The style selection dialog box appears.
i.
3-129
3-130
f.
If the data type of the expression is string or internationalized string, you can specify to ignore
the case by selecting Ignore Case.
g. In the Truth Table, click the color box in the Color column. The style selection dialog box
appears.
h. In the Operator column, select the comparison operator.
i.
j.
To set the default fill style for a truth table fill style animation
a. Open the Edit Animations dialog box, Truth Table Fill Style panel.
b. In the Element Fill Style area, click the color box. The style selection dialog box appears.
To use the default fill style in a truth table fill style animation
a. Open the Edit Animations dialog box, Truth Table Fill Style panel.
b. Locate the condition for which you want to set the style to default style.
c. Uncheck the mark for that condition in the Color column of the truth table.
The associated style is the same as the style for the Element Fill Style.
Wonderware Training
Arrow down icon to move the condition down in the truth table.
3-131
3-132
When the attribute TankLevel_001.PV is 0 then the fill style is solid black.
When the attribute TankLevel_001.PV is smaller than 20, then the fill style is solid red.
Color
Operator
Expression
Solid Black
Solid Red
<
20
Red, Pattern
>
Standards.TankMax
Expression: TankLevel_001.PV
Element Fill Style: Solid blue
Associate expressions of any data type supported by ArchestrA with a line style.
Define as many line styles as you want and associate each one with a condition.
You can define the conditions by specifying a comparison operator (=, >, >=, <, <=) and a
breakpoint, which itself can be a value, an attribute reference or an expression.
You can add conditions, delete conditions and also change the order in which the conditions are
processed.
Wonderware Training
Line style.
Line thickness.
Line pattern.
e. In the Boolean box, type either a boolean numeric value, attribute reference or expression.
f.
In the True, 1, On area, click the Color box to configure the line style when the expression is
true. The style selection dialog box appears.
g. In the Weight box, type a value for the line thickness when the expression is true.
h. From the Pattern list, select a line pattern for the line when the expression is true.
i.
Repeat the above steps for the false condition in the False, 0, Off area.
j.
To set default line style, thickness and/or pattern in a boolean line style animation
a. Open the Edit Animations dialog box, Boolean Line Style panel.
b. In the Element Line Style area, select a style, type a value for the width and select a pattern
for the default boolean line style.
3-133
3-134
f.
If the data type of the expression is string or internationalized string, you can specify to ignore
the case by selecting Ignore Case.
g. In the Truth Table, click the color box in the Color column.
The Style Selection dialog box appears.
h. In the Weight column, type a value for the line weight.
i.
j.
Wonderware Training
To use the default line style, width or pattern in a truth table line style animation
a. Open the Edit Animations dialog box, Truth Table Line Style panel.
b. Locate the condition for which you want to change the line style, width or pattern.
c. To use the default line style for the condition, uncheck the mark in the Color column of the
truth table.
d. To use the default line width for the condition, uncheck the mark in the Width column of the
truth table.
e. To use the default line pattern for the condition, uncheck the mark in the Pattern column of the
truth table.
Arrow down icon to move the condition down in the truth table.
3-135
3-136
Associate expressions of any data type supported by ArchestrA with a text style.
Define as many text styles as you want and associate each one with a condition.
You can define the conditions by specifying a comparison operator (=, >, >=, <, <=) and a
breakpoint, which itself can be a value, an attribute reference or an expression.
You can add conditions, delete conditions and also change the order in which the conditions are
processed.
e. In the Boolean box, type either a boolean numeric value, attribute reference or expression.
f.
In the True, 1, On area, click the Color box to configure the text style when the expression is
true.
The Style Selection dialog box appears.
g. Click the Browse button for the Font box, to select a font, font style and size for the text when
the expression is true.
h. Repeat the above steps for the false condition in the False, 0, Off area.
i.
Wonderware Training
To use default text style and/or font in a boolean text style animation
a. Open the Edit Animations dialog box, Boolean Text Style panel.
b. In either the True, 1, On or False, 0, Off areas, unselect Color and/or Font to use the
corresponding default style and/or font.
c. Configuring a Truth Table Text Style Animation.
d. You can configure an element with a truth table text style animation.
g. If the data type of the expression is string or internationalized string, you can specify to ignore
the case by selecting Ignore Case.
h. In the Truth Table, click the color box in the Color column.
The style selection dialog box appears.
i.
j.
To set the default text style or font for a truth table text style animation
a. Open the Edit Animations dialog box, Truth Table Text Style panel.
b. In the Element Text Style area, select a style and a font for the default truth table text style.
3-137
3-138
Arrow down icon to move the condition down in the truth table.
Wonderware Training
If the element should blink invisibly or if it should blink with specified colors.
d. In the Boolean box, type either a boolean numeric value, attribute reference or expression.
e. In the Blink When Expression Is area, select either:
True, 1, On to enable blinking when the expression is true.
f.
In the Blink Speed area, select either Slow, Medium or Fast for the blinking speed.
g. In the Blink Attributes area, select either Blink Visible With These Attributes or Blink Invisible.
h. If you selected Blink Visible With These Attributes, you can configure the styles that are
used at run time for the text, line and fill component of the element. Click on the corresponding
color box, and the style selection dialog box appears.
i.
3-139
3-140
Unfill Color: the style of the background when the element has 0% filling.
Note: The fill orientation is a common setting to the percent fill horizontal and percent fill vertical
animations. If you configure an element with both these animations, then the last set orientation is
the setting that is used.
You can also preview how the percent fill horizontal animation appears at run time.
To configure an element with a percent fill horizontal animation
a. Select the element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears.
c. Click the Add icon and select % Fill Horizontal. The percent fill horizontal animation is added
to the animation list and the % Fill Horizontal configuration panel appears.
Wonderware Training
In the Value - At Max Fill box, type an analog value, attribute reference or expression that
causes the maximum percent of filling at run time.
g. In the Fill - Min% box, type an analog value, attribute reference or expression to specify the
minimum percent of filling.
h. In the Fill - Max% box, type an analog value, attribute reference or expression to specify the
maximum percent of filling.
i.
j.
Fill Color box to select a style from the style selection dialog box.
This is the fill style of the element.
Unfilled Color box to select a style from the style selection dialog box.
This is the background fill style of the element.
You can preview your configuration by using the slider in the Preview area.
Drag the slider to see how different values affect the appearance at run time.
3-141
3-142
Unfill Color: the style of the background when the element has 0% filling.
In the Value-At Max Fill box, type an analog value, attribute reference or expression that
causes the maximum percent of filling at run time.
g. In the Fill-Min% box, type an analog value, attribute reference or expression to specify the
minimum percent of filling.
Wonderware Training
j.
Fill Color box to select a style from the style selection dialog box.
This is the fill style of the element.
Unfilled Color box to select a style from the style selection dialog box.
This is the background fill style of the element.
l.
Relative to Graphic - so that the filling is in relation to the element and the filling rotates
with the element.
Relative to Screen - so that the filling is in relation to the screen and the filling does not
rotate with the element.
You can preview your configuration by using the slider in the Preview area.
Drag the slider to see how different values affect the appearance at run time.
3-143
3-144
In the Value-At Right End box, type an analog value, attribute reference or expression that
corresponds to the offset specified by the Movement-To Right value.
g. In the Movement-To Left box, type an analog value, attribute reference or expression for the
maximum offset to the left.
h. In the Movement-To Right box, type an analog value, attribute reference or expression for
the maximum offset to the right.
i.
Wonderware Training
In the Value - At Bottom box, type an analog value, attribute reference or expression that
corresponds to the offset specified by the Movement - Down value.
g. In the Movement - Up box, type an analog value, attribute reference or expression for the
maximum offset upwards.
h. In the Movement - Down box, type an analog value, attribute reference or expression for the
maximum offset downwards.
i.
3-145
3-146
In the Value-At Max Size box, type an analog value, attribute reference or expression that
corresponds to the maximum width specified by the Width-Max% value.
g. In the Width-Min% box, type an analog value, attribute reference or expression for the
minimum width in percent of the original element.
h. In the Width-Max% box, type an analog value, attribute reference or expression for the
maximum width in percent of the original element.
i.
j.
Wonderware Training
In the Value-At Max Size box, type an analog value, attribute reference or expression that
corresponds to the maximum height specified by the Height-Max% value.
g. In the Height-Min% box, type an analog value, attribute reference or expression for the
minimum height in percent of the original element.
h. In the Height-Max% box, type an analog value, attribute reference or expression for the
maximum height in percent of the original element.
i.
j.
3-147
3-148
In the Value-At CW End box, type an analog value, attribute reference or expression that
corresponds to the maximum angle in degrees for the counter-clockwise orientation as
specified by the Orientation-CW value.
g. In the Orientation-CCW box, type an analog value, attribute reference or expression for the
maximum orientation in counter-clockwise direction in degrees.
h. In the Orientation-CW box, type an analog value, attribute reference or expression for the
maximum orientation in clockwise direction in degrees.
Wonderware Training
j.
If you use current as offset orientation, you can type an offset value in the text box next to Use
Current as Offset Orientation. This affects the orientation of the element on the canvas.
k. In the Current Relative Origin area, type values in the dX and dY boxes to specify the
rotation origin as offset from the element center point. This affects the point of origin of the
element on the canvas.
l.
Select either:
Replace Current Angle to ignore the design-time rotation setting of the element as it
appears on the canvas.
Apply Current Angle as Offset to rotate the element at run time in relation to its designtime rotation angle on the canvas.
m. You can preview the orientation and how run-time values affect the appearance of the
element, by dragging the slider in the Preview area.
3-149
3-150
A boolean value.
An analog value.
A string value.
A time value.
In the True Message box, type a value, attribute reference or expression for the text display
when the expression is true.
g. In the False Message box, type a value, attribute reference or expression for the text display
when the expression is false.
Note: Make sure that the input modes
of the True Message and False Message are
set correctly. Click the input mode icon to set either a static value or an attribute reference or
expression.
h. When you are done, click OK.
Wonderware Training
In the Text Format box, type a format for the value output. If you change this value, the
TextFormat property of the element also changes. For example: PV = #,###.##
3-151
3-152
e. In the Time or Elapsed Time box, type a time or elapsed time value, attribute reference or
expression.
In the Text Format box, type a format for the value output.
If you change this value, the TextFormat property of the element also changes.
Use the following letters to set the time format:
Abbreviation Item to Display
f.
hours
hh
minutes
mm
seconds
ss
day of month
dd
ddd
dddd
ampm
numeral month
MM
MMM
MMMM
yy
yyyy
Wonderware Training
e. Select:
f.
Tag Name to show the tag name of the hosting Automation object.
Hierarchical Name to show the hierarchical name of the hosting Automation object.
Contained Name to show the contained name of the hosting Automation object.
3-153
3-154
A static value and make sure the input mode icon is set to static.
An attribute reference or expression and make sure the input mode icon is set to attribute
or reference.
Wonderware Training
d. In the Boolean box, type either a boolean numeric value, attribute reference or expression.
e. In the Disabled When Expression is area, select either:
f.
True,1, On in which case the element is disabled at run time whenever the expression is
true.
False, 0, Off in which case the element is disabled at run time whenever the expression is
false.
3-155
3-156
Boolean.
String.
Time.
Elapsed time.
e. In the Boolean box, type an attribute reference or browse for one by using the Browse button.
f.
g. In the Prompt - True Message box, type a value, attribute reference or expression.
This is the text that appears on the button that causes the attribute to be set to true.
h. In the Prompt - False Message box, type a value, attribute reference or expression.
This is the text that appears on the button that causes the attribute to be set to false.
i.
If you want the input dialog box to appear by pressing a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
j.
If required, select Input Only to suppress that the discrete value display element shows the
True Message and False Message.
Wonderware Training
In the Display Value - False Message box, type a value, attribute reference or expression.
This is the text that appears on the canvas when the associated attribute is false.
m. Make sure that the input modes of all boxes are set correctly.
Click the input mode icon to set either a static value or an attribute reference or expression.
n. When you are done, click OK.
e. In the Analog box, type an attribute reference or browse for one by using the browse button.
f.
g. Make sure that the input mode of the Message to User box is set correctly.
Click the input mode icon to set either a static value or an attribute reference or expression.
h. If you want to restrict the range of input values, you can do so in the Value Limits area by:
First selecting Restrict Values.
The Typing values, attribute references or expressions for the Minimum and Maximum
boxes.
3-157
3-158
If you want the input dialog box to appear by pressing a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
j.
If required, select Input Only to suppress that the analog value display element shows the
analog input result on the canvas.
k. To use the keypad to type the analog value, select Use Keypad.
l.
If you want to format your text during input, type a valid text format in the Text Format box.
For example: PV = #,###.##
e. In the String box, type an attribute reference or browse for one by using the browse button.
f.
g. Make sure that the input mode of the Message to User box is set correctly.
Click the input mode icon to set either a static value or an attribute reference or expression.
h. If you want the input dialog box to appear by pressing a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
i.
If required, select Input Only to suppress that the string value display element shows the
string input result on the canvas.
Wonderware Training
If you want to use the keypad to type the string value, select Use Keypad.
k. If you selected Input Only and want to see placeholders during the input at run time, select
Echo Characters.
l.
Select Password.
Select Encrypt if you want to encrypt the string that holds the password.
e. In the Time box, type an attribute reference or browse for one by using the browse button.
f.
g. Make sure that the input mode of the Message to User box is set correctly.
Click the input mode icon to set either a static value or an attribute reference or expression.
h. If you want the input dialog box to appear by pressing a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
i.
If required, select Input Only to suppress that the time value display element shows the time
input result on the canvas.
3-159
3-160
To use the current date and time as default, select Use Current Date/Time as Default.
k. Select either:
l.
Use Input Dialog to use the Time User Input dialog box at run time to type date and time
values in individual boxes.
Use Calendar to use the Time User Input dialog box at run time to select a date with the
calendar control.
If you selected Use Input Dialog to type the time value, you can either select:
e. In the Elapsed Time box, type an attribute reference or browse for one by using the Browse
button.
f.
In the Message to User box, type a value, attribute reference or expression. This is the text
that appears as prompt on the elapsed time value input dialog box at run time.
Wonderware Training
g. Make sure that the input mode of the Message to User box is set correctly.
Click the input mode icon to set either a static value or an attribute reference or expression.
h. If you want the input dialog box to appear by pressing a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
i.
If required, select Input Only to suppress that the elapsed time value display element shows
the time elapsed input result on the canvas.
j.
Select Use Dialog to use the Elapsed Time User Input dialog box to type the elapsed time
value at run time.
k. If you selected Use Dialog to type the elapsed time value, you can optionally select:
l.
d. In the Analog box, type an attribute reference or browse for one by using the Browse button.
e. In the Value - Left Position box, type an analog value, attribute reference or expression that
corresponds to the offset specified by the Movement - To Left value.
f.
In the Value - Right Position box, type an analog value, attribute reference or expression that
corresponds to the offset specified by the Movement - To Right value.
3-161
3-162
j.
You can select where the cursor is anchored to the element when it is dragged at run time. In
the Cursor Anchor area, select either:
You can select if position data from the slider is written continuously to the attribute, or only
once when the mouse button is released. In the Write Data area, select either Continuously
or On mouse release.
k. If you want a tooltip to appear on the element showing the current value during dragging,
select Show Tooltip.
l.
If you want to preview the movement as it appears in run time, drag the slider in the Preview
area.
Wonderware Training
d. In the Analog box, type an attribute reference or browse for one by using the Browse button.
e. In the Value - Top Position box, type an analog value, attribute reference or expression that
corresponds to the offset specified by the Movement - Up value.
f.
In the Value - Bottom Position box, type an analog value, attribute reference or expression
that corresponds to the offset specified by the Movement - Down value.
g. In the Movement - Up box, type an analog value, attribute reference or expression for the
maximum offset upwards.
h. In the Movement - Down box, type an analog value, attribute reference or expression for the
maximum offset downwards.
i.
You can select where the cursor is anchored to the element when it is dragged at run time. In
the Cursor Anchor area, select either:
j.
You can select if position data from the slider is written continuously to the attribute, or only
once when the mouse button is released. In the Write Data area, select either Continuously
or On mouse release.
k. If you want a tooltip to appear on the element showing the current value during dragging,
select Show Tooltip.
3-163
3-164
If you want to preview the movement as it appears in run time, drag the slider in the Preview
area.
g. In the Boolean box, type a boolean attribute reference or browse for one by using the Browse
button.
Wonderware Training
i.
If you selected Toggle as action, you can configure the value to be written, when the mouse
button is released instead. Select On button release.
j.
If you selected Direct, Reverse, Reset or Set as action, you can configure the value to be
written:
Continuously by selecting Continuously while button is pressed. Also specify the
frequency the value is to be sent, by typing a value in the Delay between value send box.
Once by unselecting Continuously while button is pressed.
k.
If you want the pushbutton action to be executed by pressing a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
l.
You can preview the pushbutton run-time behavior by clicking Button in the Preview area.
3-165
3-166
e. In the Analog box, type an attribute reference or browse for one by using the Browse button.
f.
Direct so the value becomes Value1 when the element is clicked and the mouse button
held. The value returns to Value2 when the mouse button is released.
Toggle so the value becomes Value1, if it is Value2 and Value2 if it is Value1 when the
element is clicked.
Set so the value is set to Value1 when the element is clicked.
g. In the boxes Value1 and, if applicable, Value2, type analog values, attribute references or
references.
h. You can configure the value to be written when the mouse button is released instead.
Select On button release. This does not apply if you selected Direct as action.
i.
j.
Continuously by selecting the Continuously while button is pressed. Also specify the
frequency the value is to be sent, by typing a value in the Delay between value send box.
Wonderware Training
You can preview the pushbutton run-time behavior by clicking Button in the Preview area.
Click the button multiple times to preview the value changes over a period of time.
e. In the String box, type an attribute reference or browse for one by using the Browse button.
f.
Direct so the value becomes Value1 when the element is clicked and the mouse button
held. The value returns to Value2 when the mouse button is released.
Toggle so the value becomes Value1, if it is Value2 and Value2 if it is Value1 when the
element is clicked
Set so the value is set to Value1 when the element is clicked.
3-167
3-168
You can configure the value to be written when the mouse button is released instead.
Select On button release. This does not apply if you selected Direct as action.
j.
Continuously by selecting the Continuously while button is pressed. Also specify the
frequency the value is to be sent, by typing a value in the Delay between value send box.
Once by unselecting the Continuously while button is pressed.
If you want the pushbutton action to be executed by pressing a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
m. You can preview the pushbutton run-time behavior by clicking Button in the Preview area.
Wonderware Training
On Center Double Click to activate the action script when the center mouse button is
double-clicked.
On Mouse Over to activate the action script when the mouse pointer is moved over the
element.
On Mouse Leave to activate the action script when the mouse pointer is moved out of the
element.
While Mouse Over to activate the action script while the mouse pointer is over the
element.
Note: To expand the available space for your script you can use the expansion buttons
to hide the script header and/or the animation list.
See Section 5, Associating Scripts with Symbols for more details regarding Scripting.
3-169
3-170
d. From the Trigger type list, select the trigger that activates the action script at run time.
e. If you selected a trigger type that starts with While, type how frequently the action script is
executed at run time in the Trigger period box.
f.
If you selected the trigger types On Mouse Over or On Mouse Leave, type a value in the
Trigger Period box. This value specifies after what delay the action script is executed at run
time.
g. If you selected a trigger type that involves pressing a key, type a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
h. Create your script in the action script window.
i.
Wonderware Training
d. In the Reference box, type a symbol name or browse for one by using the Browse button.
e. If you want to add a title bar to the symbol, select Has Title Bar.
f.
3-171
3-172
Select where you want the window to appear by selecting a position in the Position list.
You can select one of the following:
Center Screen to position the symbol in the center of the screen.
Top Left Mouse Position to position the symbols top left corner at the position of the
mouse pointer.
Top Right Mouse Position to position the symbols top right corner at the position of the
mouse pointer.
Bottom Left Mouse Position to position the symbols bottom left corner at the position of
the mouse pointer.
Bottom Right Mouse Position to position the symbols bottom right corner at the position
of the mouse pointer.
Center Mouse Position to position the symbols center point on the mouse pointer.
Top Left X,Y Position to position the symbols top left corner at a specified position.
Center X,Y Position to position the symbols center point at a specified position.
Top of Screen to position the symbol at the top center of the screen.
Left Side of Screen to position the symbol at the left middle of the screen.
Right Side of Screen to position the symbol at the right middle of the screen.
Bottom of Screen to position the symbol at the bottom center of the screen.
Top Left Corner of Screen to position the symbol at the top left corner of the screen.
Top Right Corner of Screen to position the symbol at the top right corner of the screen.
Bottom Left Corner of Screen to position the symbol at the bottom left corner of the
screen.
Bottom Right Corner of Screen to position the symbol at the bottom right corner of the
screen.
k. If you selected Top Left X,Y Position or Center X,Y Position as position, you can type the
desired coordinates in the X and Y value boxes.
l.
Select how large you want the window to be in the Size list. You can select either:
Symbol Size (1x) to make the window size the same as the size of the symbol.
Symbol Size plus 25% (1.25x) to make the window size 25% larger than the size of the
symbol.
Symbol Size plus 50% (1.5x) to make the window size 50% larger than the size of the
symbol.
Symbol Size plus 75% (1.75x) to make the window size 75% larger than the size of the
symbol.
Double Symbol Size (2x) to make the window size twice the size of the symbol.
Triple Symbol Size (3x) to make the window size three times the size of the symbol.
Quadruple Symbol Size (4x) to make the window size four times the size of the symbol.
25% Screen Size to make the window size cover 25% of the screen.
50% Screen Size to make the window size cover 50% of the screen.
75% Screen Size to make the window size cover 75% of the screen.
Full Screen Size to make the window size cover the entire screen.
Wonderware Training
c. Select either:
Current Symbol, if you want to close the currently shown symbol or window.
Symbol shown by an element, if you want to close a symbol that is shown by that
element. Type the element name in the adjacent box.
d. If you want the symbol window to be hidden by pressing a key or key combination, in the
Shortcut area select a shortcut key in the Key list, and select Ctrl and/or Shift to combine the
shortcut key with the Ctrl key and/or Shift key.
e. When you are done, click OK.
3-173
3-174
Windows Common Controls, such as Radio Button Group, Check Box, Edit Box, Combo
Box, Calendar, DateTime Picker and List Box.
The appearance of the Status Graphic element depends on the settings in the Configure Quality
and Status Display dialog box.
Note: The Status Graphic animation is only used by the Status element and cannot be removed
from the Status element.
To configure a Status Graphic animation
a. Select the Status element you want to configure.
b. On the Special menu, click Edit Animations.
The Edit Animations dialog box appears and the Status Graphic configuration panel appears.
c. From the Available Graphic Elements list, select all elements for which you want to monitor
their attribute quality and status.
d. Click the >> button to add them to the Selected Graphic Elements list.
Note: You can click the << button to remove any elements you do not want to select.
Wonderware Training
f.
In the Value or Expression list type a value or expression that can either be a literal, or a
reference or element property.
Note: You can also browse for the value or expression by clicking the browse button.
Static radio button group - uses static captions and values that you define in the
configuration panel.
Array radio button group - uses captions and values that are contained in an Automation
Object array.
Enum radio button group - uses captions and values that are contained in an enum data
type of an Automation Object.
3-175
3-176
c. In the Reference box, type an attribute reference to store the selected value at run time.
d. In the Static Values and Captions list, configure the captions of the radio button group and
also the values that correspond to them to:
Add an option, click the Add icon.
Delete an option, select it in the list and click the Remove icon.
Move an option up the list, select it in the list and click the Arrow up icon.
Move an option down the list, select it in the list and click the Arrow down icon.
e. If you want to use the values themselves as captions, select Use Values as Captions.
f.
You can either orientate the radio button group in vertical or horizontal direction.
Select either Vertical or Horizontal.
Wonderware Training
d. In the Reference box, type an attribute reference to store the selected value at run time.
e. In the Array Reference box, type or browse for an array attribute.
The Array Values and Captions list is populated with the values from the array reference.
f.
To define your own captions, unselect Use Values as Captions and type them in the list.
g. If you want to format the value before it is shown as a caption, type a text format string in the
Format box, for example #.###.
h. Set Items Sorting to either:
None to show the items in the order they are in the enum attribute.
i.
You can either orientate the radio button group in vertical or horizontal direction.
Select either Vertical or Horizontal.
j.
3-177
3-178
d. In the Enum Reference box, type an enum attribute reference. The Enum Values and
Captions list is populated with the values from the enum reference.
e. To define your own captions, unselect Use Values as Captions and type them in the list.
f.
None to show the items in the order they are in the enum attribute.
g. You can either orientate the radio button group in vertical or horizontal direction.
Select either Vertical or Horizontal.
h. When you are done, click OK.
Wonderware Training
c. In the Checked value - Boolean box, type an attribute reference. The attribute reference
contains the selected state of the check box control at run time.
d.
If you want to set the caption of the check box at run-time, select Override caption at
Runtime with the following expression and type a string value or attribute reference or
expression in the String Expression box.
3-179
3-180
Read-Only to use the edit box to only show text and not allow text input.
Maximum Length to limit the maximum numbers of characters you can type in the edit
box control. You can specify the maximum number in the Characters box.
Static Combo Box - uses static captions and values that you define in the configuration
panel.
Array Combo Box - uses captions and values that are contained in an Automation object
array.
Enum Combo Box - uses captions and values that are contained in an enum data type of
an Automation object.
You can also use Combo Box-specific methods in scripting to perform various functions at run
time. You can browse these methods in the Galaxy Browser with the Combo Box selected.
Wonderware Training
c. In the Reference box, type an attribute reference to store the selected value at run time.
d. In the Static Values and Captions list, configure the captions of the combo box and also the
values that correspond to them:
Delete an option, select it in the list and click the Remove icon.
Move an option up the list, select it in the list and click the Arrow up icon.
Move an option down the list, select it in the list and click the Arrow down icon.
e. If you want to use the values themselves as captions, select Use Values as Captions.
f.
i.
Simple - at run time you can type a value, but not select any.
DropDown - at run time you can either type a value, or select one from the list.
DropDownList - at run time you can only select a value from the list, but not type one.
3-181
3-182
d. In the Reference box, type an attribute reference to store the selected value at run time. The
Array Values and Captions list is populated with the values from the array reference.
e. To define your own captions, unselect Use Values as Captions and type them in the list.
f.
If you want to format the value before it is shown as a caption, type a text format string in the
Format box, for example #.###.
None to show the items in the order they are in the enum attribute.
Wonderware Training
3-183
3-184
c. In the Date Reference box, type a Time attribute reference to store the selected value at run
time.
d. If you want to restrict the date the user can select at run time, you can specify limits as follows:
e. If you want some dates to appear bold, in the Bolded Dates box type a reference that points
to an attribute array with time data type.
f.
If you want todays date shown on the calendar control, select Show Today.
g. If you want to change the colors of the calendar control, click in the Calendar Colors area the
following color boxes:
Month Background.
Title Background.
Title Foreground.
The style selection dialog box appears and you can select a solid color.
h. When you are done, click OK.
Wonderware Training
c. In the Time Reference box, type a Time attribute reference to store the selected value at run
time.
d. To set the datetime format, select from the Format list one of the following:
Long to show the date and time in the dddd MMMM dd, yyyy format, for example:
Thursday, August 03 2006.
Short to show the date and time in the dd/MM/yyyy format, for example: 8/3/2006.
Time to show just the time in the hh:mm:ss format, for example: 3:46:09 PM.
Custom to specify your own time format. Use the following letters to set the time format.
If you want to change the colors of the calendar control that drops down, click in the
Calendar Colors area the following color boxes:
Month Background.
Title Background.
Title Foreground.
The style selection dialog box appears and you can select a solid color.
3-185
3-186
Static List Box - uses static captions and values you define in the configuration panel.
Array List Box - uses captions and values contained in an Automation object array.
Enum List Box - uses captions and values contained in an enum data type of an
Automation object.
You can also use List Box-specific methods in scripting to perform various functions at run time.
You can browse these methods in the Galaxy Browser with the List Box selected.
c. In the Reference box, type an attribute reference to store the selected value at run time.
d. In the Static Values and Captions list, configure the captions of the list box and also the
values that correspond to them. To:
Add an option, click the Add icon.
Delete an option, select it in the list and click the Remove icon.
Move an option up the list, select it in the list and click the Arrow up icon.
Move an option down the list, select it in the list and click the Arrow down icon.
e. If you want to use the values themselves as captions, select Use Values as Captions.
f.
Wonderware Training
d. In the Reference box, type an attribute reference to store the selected value at run time.
e. In the Array Reference box, type or browse for an array attribute. The Array Values and
Captions list is populated with the values from the array reference.
f.
To define your own captions, unselect Use Values as Captions and type them in the list.
g. If you want to format the value before it is shown as a caption, type a text format string in the
Format box, for example #.###.
h. Set Items Sorting to either:
i.
None to show the items in the order they are in the enum attribute.
3-187
3-188
d. In the Enum Reference box, type an enum attribute reference. The Enum Values and
Captions list is populated with the values from the enum reference.
e. To define your own captions, unselect Use Values as Captions and type them in the list.
f.
None to show the items in the order they are in the enum attribute.
Wonderware Training
Note: The boolean expression is a trigger that determines when the value is written from the
control to the tag or attribute. If the value changes in the tag or attribute, then the value is
written to the control, regardless of the trigger setting or condition.
To submit value changes immediately
a. Open the Windows common control in the Edit Animations dialog box.
b. In the Submit Value Changes area, select Immediately.
To submit value changes after a boolean expression becomes true
a. Open the Windows common control in the Edit Animations dialog box.
b. In the Submit Value Changes area, select On Trigger Condition.
c. In the Boolean Expression box, type a boolean expression or browse for a boolean attribute.
3-189
3-190
SYMBOL4
SYMBOL3
SYMBOL2
SYMBOL1
ELEMENT1
CustomProperty1
CustomProperty2
CustomProperty3
InTouch WindowMaker
InTouch Tags
tag3
tag2
SYMBOL1
tag1
ELEMENT1
CustomProperty1
CustomProperty2
CustomProperty3
USES INTOUCH
TAG AS REFERENCE
Wonderware Training
Object.Extension
galaxy:Object.Extension
intouch:Tagname
Tagname
Note: You can restore the original value of the custom property by clicking the Restore icon.
e. When you are done, click OK.
Any animation in the ArchestrA symbol that is configured with the selected custom property
now interacts with the InTouch tagname instead.
3-191
3-192
Wonderware Training
Lab 23 Animation
Introduction
In this lab, you will add animation to the tank symbol you created in Lab 3 and modified in Lab 4.
You will use a % Fill Vertical animation to show the tank filling and draining. You will also animate
a text box to display the agitator status and then test these animations in Runtime.
Objectives
Upon completion of this lab, you will be able to:
3-194
Add a Fill Style animation with a State of Boolean and the colors of Green for On and Red
for Off.
i.
Default Value
Agitator
Agitator_PLC1
DrainValve.FillColor
Green
DrainValve.Value
Drain_Valve_PLC1
GateValve.FillColor
Green
GateValve.Value
Gate_PLC1
Start.Value
Start_PLC1
Level
Tank_Level_PLC1
ValveA.FillColor
Green
ValveA.Value
Valve_A_PLC1
ValveB.FillColor
Green
ValveB.Value
Valve_B_PLC1
Test in Runtime.
Wonderware Training
3-196
9. Click OK.
Note: Although it is possible to assign a property to the Min/Max fill properties, you will set the
property for this lab.
10. Set At Max Fill to 1000.
Wonderware Training
Note: You can test your animation configuration using the Preview section in the lower right
corner.
3-198
14. Double-click the Text Box to open the animations and add a Value Display animation.
16. Without exiting the Edit Animations dialog box, add another animation
Select the Fill Style animation.
Wonderware Training
17. Select the State of Boolean and define the animation as shown below using:
Expression Or Reference: Agitator
Green for On
3-200
This will open the InTouch Tag Browser and you will be able to select the appropriate tags to
link to the custom Properties to drive the animation.
Note: Recall that when symbols are embedded into other symbols, their custom properties
come across with them. For example, the Custom Property to drive the animation for Valve_A
is named ValveA.Value.
Note: You also have the option in some cases, to override the color for an embedded symbol.
For example, you can change the Default Value for DrainValve.FillColor to Red to change
the OnColor.
Wonderware Training
Default Value
Agitator
Agitator_PLC1
DrainValve.FillColor
Green
DrainValve.Value
Drain_Valve_PLC1
GateValve.FillColor
Green
GateValve.Value
Gate_PLC1
Level
Tank_Level_PLC1
Start.Value
Start_PLC1
ValveA.FillColor
Green
ValveA.Value
Valve_A_PLC1
ValveB.FillColor
Green
ValveB.Value
Valve_B_PLC1
3-202
Wonderware Training
Objectives
Upon completion of this lab, you will be able to:
3-204
Element
Panel Background
PanelBrushed
Digital Meter
DigitalMeterRollingDigits
Lights*
LightGlossyGreenRed
b. Assign each Default Value to an appropriately named InTouch Tag with the syntax:
InTouch:Tagname.
c. Open the Main_Reactor Symbol and draw a button labeled Status Panel next to the tank.
d. Add a Show Symbol animation to the button and show the Status Panel.
e. Switch back to WindowMaker and Update the symbol.
f.
Wonderware Training
1. If the IDE is not already open, launch the ArchestrA IDE and connect to your Galaxy.
2. From the IDEs Graphic Toolbox, create a new symbol named StatusPanel in the Class
Symbols Graphic Toolset.
3. Open the symbol and draw a graphic similar to the one shown below.
4. Rename the Elements as shown below.
Element
Panel Background
PanelBrushed
Digital Meter
DigitalMeterRollingDigits
Lights*
LightGlossyGreenRed
3-206
6. Link the Value Custom Property to InTouch:Start_PLC1 by typing it in the Default Value field.
Note: For a reminder of the tags you created earlier, see step 14 on page 2-11.
7. Repeat the steps for each of the other symbols, linking them to the appropriate InTouch tag.
8. Save and Close this symbol.
Wonderware Training
10. Double-click the button and add the animation Show Symbol.
3-208
Wonderware Training
This section shows you how to associate symbols with one or more scripts. Scripts can run code
that animates the symbol or its elements, or perform any other task. The script language used for
this purpose is nearly identical to the one used in InTouch.
Named.
Predefined scripts are similar to InTouch window scripts in that they are executed either:
Named scripts let you execute any number of scripts in run time that are triggered by values or
expressions:
Being true: While True.
Note: Any named script that is triggered by the DataChange trigger type is executed the first time
the symbol is shown. This behavior is different than the DataChange trigger behavior of Industrial
Application Server scripts.
For more information about Industrial Application Server scripting, see the Industrial Application
Server Users Guide.
You can:
3-209
3-210
Note: The Predefined Scripts animation cannot be deleted. It can contain scripts for each trigger
type On Show, While Showing and On Hide.
To configure the predefined scripts for a symbol
a. Open the symbol in the ArchestrA Symbol Editor.
b. On the Special menu, click Scripts.
The Edit Scripts dialog box appears.
On Show to configure a script that is executed once when the symbol is opened.
While Showing to configure a script that is executed every so often while the symbol is
open.
On Hide to configure a script that is executed once when the symbol is closed.
d. If you configured a While Showing script, type a time period in milliseconds in the Period box.
This specifies after how many milliseconds the action script is executed.
e. Type your script in the main edit box.
f.
Use the Script Function Browser and Attribute Browser to select external data.
No to not save the changes and close the script dialog box.
Cancel to not save the changes and keep the script dialog box open.
Wonderware Training
Periodically if the values or expressions fulfill a certain criteria, such as being true.
Note: Every named script can contain only one trigger type.
To add a named script to a symbol
a. Open the symbol in the ArchestrA Symbol Editor.
b. On the Special menu, click Scripts.
The Edit Scripts dialog box appears.
c. Click the Add icon.
A new entry is created in the Named Scripts list on the left of the panel.
f.
3-211
3-212
OnTrue to trigger the script once when the expression becomes true from false.
OnFalse to trigger the script once when the expression becomes false from true.
DataChange to trigger the script once when the expression or its quality changes.
h. If you selected DataChange, select Quality Changes to trigger the script when the quality of
the specified expression changes.
i.
j.
If required, in the Deadband box, type the deadband value. The deadband specifies by how
much the expression must change before the script is executed.
Use the Script Function Browser and Attribute Browser to select external data.
No to not save the changes and close the script dialog box.
Cancel to not save the changes and keep the script dialog box open.
Example:
While the boolean Controls.FillTank is true, the tank level Tank_001.pv is increased by 1 unit
every second.
Wonderware Training
3-213
3-214
On Show if the action script you want to remove is executed once when the symbol is
opened.
While Showing if the action script you want to remove is executed every so often while
the symbol is open.
On Hide if the action script you want to remove is executed once when the symbol is
closed.
Property of an element.
Wonderware Training
3-215
3-216
Combo Box and List Box controls to access and change the contents of their lists at run
time.
where ControlName is the name of the Edit Box control and FileName is the name of the file
you want to save the contents of the control to.
The text contained in the control at run time is saved to the specified file.
To load text into an Edit Box control from a file
In an action script, use the following method:
ControlName.LoadText(FileName);
where ControlName is the name of the Edit Box control and FileName is the name of the file
you want to load the text from.
The text contained in the file is loaded into the run time contents of the Edit Box control.
Wonderware Training
where ControlName is the name of the Combo Box or List Box control and ItemCaption is the
new item you want to add.
The item is added to the end of the list.
To insert an item in a Combo Box or List Box list
In an action script, use the following method:
Controlname.InsertItem(ItemCaption);
where ControlName is the name of the Combo Box or List Box control and ItemCaption is the
new item you want to insert.
The item is inserted above the currently selected item in the list.
3-217
3-218
where ControlName is the name of the Combo Box or List Box control and Index is the index
of the item you want to delete.
The item at the specified index is deleted, subsequent items are moved up the list.
To delete the selected item from a Combo Box or List Box list
In an action script, use the following method:
ControlName.DeleteSelection();
where ControlName is the name of the Combo Box or List Box control.
The selected item is deleted, subsequent items are moved up the list.
To delete all items from a Combo Box or List Box list
In an action script, use the following method:
Controlname.Clear();
where ControlName is the name of the Combo Box or List Box control.
All items of the control are deleted.
where ControlName is the name of the Combo Box or List Box control and ItemCaption is the
caption of the item you are looking for.
Index is set to -1 if the item is not found, otherwise contains the index of the found item.
Wonderware Training
where ControlName is the name of the Combo Box or List Box control and Index is the index
of the item for which you want to read the caption.
Caption contains the item caption of the specified index.
where ControlName is the name of the Combo Box or List Box control, Index is the index of
the item that you want to set and Value is the value you want to assign to the item.
To get item data in a Combo Box or List Box list
In an action script, use the following method:
Value = Controlname.GetItemData(Index);
where ControlName is the name of the Combo Box or List Box control and Index is the index
of the item for which you want to get the value.
Value contains the value that is assigned to the item.
3-219
3-220
where ControlName is the name of the Combo Box or List Box control and FileName is the
name of a file on the local hard drive or on the network.
The list contained in the file is loaded and, if valid, the current list is overwritten.
To save the item list for a Combo Box or List Box control to a file
In an action script, use the following method:
Controlname.SaveList(FileName);
where ControlName is the name of the Combo Box or List Box control and FileName is the
name of a file on the local hard drive or on the network.
The list is saved to the specified file.
Wonderware Training
Lab 25 Scripting
Introduction
In this lab you will add a meter symbol to the tank created earlier. You will configure a script so that
when you hover over the symbol, it will enlarge and be easy to read. When you move your mouse
off the symbol, it will shrink to its original size. This lab modifies the Main_Reactor symbol created
and modified in earlier labs.
Objectives
Upon completion of this lab, you will be able to:
Data Type
Visibility
GrowMe
Boolean
Private
ShrinkMe
Boolean
Private
InitialSize
Float
Private
GrowSize
Float
Private
f.
Delay
Script
On Mouse Over
500 ms
GrowMe = True;
ShrinkMe = False;
GrowMe = False;
ShrinkMe = True;
3-222
Period
Script
GrowMeter
While True
50 ms
50 ms
i.
j.
Wonderware Training
3-224
Wonderware Training
Data Type
Visibility
GrowMe
Boolean
Private
ShrinkMe
Boolean
Private
InitialSize
Float
Private
GrowSize
Float
Private
9. Double-click on the TankMeter Element and add an Action Script for a Trigger type
On Mouse Over.
3-226
Wonderware Training
3-228
17. Add an additional Named Script named ShrinkMeter with the Expression of ShrinkMe. and a
Period of 50 ms.
TankMeter.Height = TankMeter.Height / 1.10;
TankMeter.Width = TankMeter.Height;
If TankMeter.Height <= InitialSize then
ShrinkMe = False;
Endif;
18. Click OK, then Save and Close the Main_Reactor symbol.
Wonderware Training
21. Double-click on the symbol and link the Custom Property TankMeter.Value to the InTouch
Tag Tank_Level_PLC1 as shown.
3-230
Wonderware Training
Configure visual clues regarding the status of your data and/or plant operations.
Status visualization
Configured cross-Galaxy
5-19
5-20
Uncertain
Initializing
Communication Error
Configuration Error
Operational Error
Software Error
Security
Warning
Pending
Preview of settings
Wonderware Training
Status Graphics
You can use a Status Graphic element to indicate the status or quality of:
All ArchestrA attributes that are used in one or more specified elements in the same
hierarchical level.
Attribute
A
Attribute
B
Attribute
C
Attribute
D
Attribute
E
Deliver values
(and also quality
and status) to
animate the
elements
Deliver quality and
status directly from
ArchestrA attributes
Element 1
Element 2
Element 3
Configure the appearance of the Status Graphic element for each quality and status state.
5-21
5-22
Change the appearance of animated elements that are using the specified ArchestrA
attributes. This can be done either by:
Overriding the animation or changing the appearance of the element.
In all cases, you can configure how quality and status is shown in the Configure Quality and
Status Display dialog box. This is configured outside the ArchestrA Symbol Editor in the IDE.
The setting is applied globally across the Galaxy to all selected animated elements that use the
monitored attribute. This applies also to:
Elements contained in groups.
To avoid this problem, paste a new Status Graphic element in the hierarchical level you want to
monitor, or associate it directly with the attributes you want to monitor.
Wonderware Training
Objectives
Upon completion of this lab, you will be able to:
Disconnect the PLC or shutdown the DA Server to test the quality behavior of your object
and observe the results.
5-23
5-24
Wonderware Training
Note: Not all Status Style Overrides are available to InTouch applications, as some are
intended for Application Server based data. The two primary options that are available to use
with InTouch are the Communication Error and Bad overrides.
4. Change the settings for the Bad Status Style override, setting the Outline color to red,
Line Pattern to a dashed line., and checking the Blink option.
5-25
5-26
8. Select the LevelIndicator Graphical Element and click on >> to apply the quality options.
Wonderware Training
5-27
5-28
Wonderware Training
Appendix A
A-2
Wonderware Training
A-3
A-4
Wonderware Training
A-5
A-6
Wonderware Training
A-7
A-8
Wonderware Training
Properties
Data common to all attributes of objects, such as name, value, quality, and data type.
Proxy Object
A Proxy Objects is an Automation Object that represents an actual product for the purpose of
device integration with the Wonderware Application Server or InTouch HMI. For example, there
is a Proxy Object that enables the Wonderware Application Server to access an OPC server.
Redundancy
During Configuration
Primary object: The object intended as the main or central provider of the functionality in
the run-time. For AppEngines, it is the object you enable for redundancy. For data
acquisition, it is the DIObject you intend to use first as your data source in the run-time.
Backup object: The object that provides the functionality of the Primary object when it fails.
For AppEngines, it is the object created by the ArchestrA infrastructure when the Primary
object has been enabled for redundancy. For data acquisition, it is the DIObject you do not
intend to use first as your data source in the run-time.
During Run-Time
Active object: The object that is currently executing desired functions. For AppEngines, it
is the object that is hosting and executing ApplicationObjects. For data acquisition, it is the
object that is providing field device data through the RedundantDIObject.
Standby object: The passive object; that is, it is waiting for a failure in the Active objects
condition or for a force-failover. For AppEngines, it is the object that monitors the status of
the Active AppEngine. For data acquisition, it is the object that is not providing field device
data through the RedundantDIObject.
Redundant DI Object
The RedundantDIObject monitors and controls the redundant DIObject data sources. Unlike
redundant AppEngines, individual DIObject data sources do not have redundancy-related states.
For all intents and purposes, they function as standalone objects.
Redundant Message Channel
The Redundant Message Channel (RMC) is a dedicated Ethernet connection which is required
between the platforms hosting redundant engines. The RMC is vital to keep both engines
synchronized with alarms, history, and checkpoint items from the engine that is in the Active Role.
Each engine also uses this Message Channel to provide its health and status information to the
other.
Reference
A string that refers to an object or to data within one of its attributes.
Relational Reference
A reference to an objects attributes that uses a keyword in place of an object's tagname. These
keywords allow a reference to be made by an object's relationship to the target attribute. Examples
of these keywords are "Me", "MyPlatform", and "MyContainer".
Remote Reference
The ability to redirect ArchestrA object references or references to remote InTouch tags. The new
script function used to redirect remote references at runtime is IOSetRemoteReferences.
Runtime
The InTouch (WindowViewer) function that provides the viewing of data from the configuration
of the application in InTouch development (WindowMaker).
A-9
A-10
Wonderware Training
Appendix B
B-2
Wonderware Training
B-3
The Plant Model Planning Diagrams are displayed on the following pages.
B-4
Wonderware Training
B-5
B-6
Wonderware Training
B-7
B-8
Wonderware Training