ApplicationServer 2017update3 RevA Manual DoNot PDF
ApplicationServer 2017update3 RevA Manual DoNot PDF
W O N D E R W A R E T R A I N I N G
Training Manual
Revision A
April 2019
Part Number 11-GM-10096
y
op
C
ot
N
Update 3
© 2019 AVEVA Group plc and its subsidiaries. All rights reserved.
No part of this documentation shall be reproduced, stored in a retrieval system, or transmitted by any means,
electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of AVEVA.
No liability is assumed with respect to the use of the information contained herein.
Although precaution has been taken in the preparation of this documentation, AVEVA assumes no
responsibility for errors or omissions. The information in this documentation is subject to change without
notice and does not represent a commitment on the part of AVEVA. The software described in this
documentation is furnished under a license agreement. This software may be used or copied only in
accordance with the terms of such license agreement.
ArchestrA, Aquis, Avantis, Citect, DYNSIM, eDNA, EYESIM, InBatch, InduSoft, InStep, IntelaTrac, InTouch,
y
OASyS, PIPEPHASE, PRiSM, PRO/II, PROVISION, ROMeo, SIM4ME, SimCentral, SimSci, Skelta,
SmartGlance, Spiral Software, Termis, WindowMaker, WindowViewer, and Wonderware are trademarks of
op
AVEVA and/or its subsidiaries. An extensive listing of AVEVA trademarks can be found at: https://
sw.aveva.com/legal. All other brands may be trademarks of their respective owners.
Contact Information C
AVEVA Group plc
High Cross
Madingley Road
Cambridge
ot
CB3 OHB. UK
https://sw.aveva.com/
For information on how to contact sales, customer training, and technical support, see https://sw.aveva.com/
N
contact.
o
D
Table of Contents 1
Table of Contents
Module 1 Introduction .................................................................................1-1
Section 1 – Course Introduction......................................................................... 1-3
Section 2 – System Platform Overview.............................................................. 1-7
Section 3 – Application Server Overview......................................................... 1-11
Lab 1 – Creating the Galaxy ............................................................................ 1-15
Section 4 – The ArchestrA IDE ........................................................................ 1-19
Section 5 – Automation Objects....................................................................... 1-29
Lab 2 – Creating Global Derived Templates.................................................... 1-41
Section 6 – System Requirements and Licensing ........................................... 1-49
y
Section 1 – The Plant Model.............................................................................. 3-3
Section 2 – The Deployment Model................................................................... 3-5
op
Lab 3 – Creating the Plant and Deployment Models ....................................... 3-11
Section 3 – System Management Console...................................................... 3-27
Section 4 – The Runtime Environment ............................................................ 3-35
Lab 4 – Using Object Viewer ........................................................................... 3-41
Section 5 – Data Simulation............................................................................. 3-53
C
Lab 5 – Configuring for Data Simulation .......................................................... 3-55
Module 6 History..........................................................................................6-1
Section 1 – Historizing Data for Application Server ........................................... 6-3
Lab 13 – Configuring and Retrieving History ................................................... 6-11
y
Module 11 Galaxy Backup and Restore .................................................... 11-1
op
Section 1 – Galaxy Backup and Restore.......................................................... 11-3
C
ot
N
o
D
Wonderware Training
y
op
Module 1 – Introduction
C
Section 1 – Course Introduction 1-3
ot
Module Objectives
List the objectives of the course and describe the agenda
Describe the System Platform and Application Server
Introduce the ArchestrA IDE
Describe Automation Objects
Explain the system requirements for Application Server
Explain licensing and product security of System Platform and Application Server
y
op
C
ot
N
o
D
Wonderware Training
Section 1 – Course Introduction 1-3
Course Description
The Application Server 2017 Update 3 course is a 4-day, instructor-led class designed to provide
an overview of the features and functionality of Application Server. This course provides lectures
and hands-on labs to supply and reinforce the knowledge necessary to use these features and
functions for plant modeling.
The class demonstrates how to use Application Server technology to connect to field devices,
process data, run scripts, handle alarms, and historize alarms and events. This course also
provides a fundamental understanding of application maintenance, real-time alarm recording, and
security settings, and describes how to set up redundancy for data acquisition.
y
Objectives
op
Upon completion of this course, you will be able to:
Create a new application
Model the plant floor
C
Employ rapid prototyping using a data simulator
Acquire data from field devices
Configure data communication redundancy
ot
Audience
D
Prerequisites
Knowledge of the following tools, features, and technologies is required:
Industrial automation software concepts
Course Outline
Module 1 – Introduction
Section 1 – Course Introduction
This section describes the course and its objectives, intended audience, prerequisites, and
agenda.
Section 2 – System Platform Overview
This section describes fundamental concepts about System Platform, including its clients,
components, and services. It also introduces the ArchestrA technology.
Section 3 – Application Server Overview
This section describes Application Server and its components and discusses what a Galaxy is
and how to create one.
Section 4 – The ArchestrA IDE
This section describes the ArchestrA IDE, including the layout, its key functions, toolboxes and
y
how to create them, and the application views available.
Section 5 – Automation Objects
op
This section describes automation objects, templates, and instances. It discusses the Object
Editor, explains the different states of automation objects and operations when editing objects,
and gives a brief explanation of Object Wizards.
C
Section 6 – System Requirements and Licensing
This section describes the System Platform computer roles, the software and hardware
requirements for Application Server, the ArchestrA Network Account, and how the product is
secured and licensed.
ot
This section describes the simulated manufacturing environment to be used for the course
and explains the naming conventions used in the simulated process.
D
Wonderware Training
Section 1 – Course Introduction 1-5
y
binding capabilities.
op
Section 3 – Change Control and Propagation
This section describes attribute locking and unlocking. It also discusses how template
changes can propagate to previously derived objects.
Section 4 – Containment
C
This section describes containment with templates and application objects, and explains
different modeling approaches. It also discusses the naming conventions of contained objects.
ot
Module 6 – History
Section 1 – Historizing Data for Application Server
This section describes how Historian historizes data. It explains how to configure engines and
platforms for historization and describes how to configure objects to historize attributes. It also
discusses how to retrieve historical data with Insight.
y
Module 9 – Security
op
Section 1 – Security Overview
This section describes how ArchestrA handles security. It discusses the security models
available in the ArchestrA IDE and describes how to configure general security permissions
and operational permissions.
C
Section 2 – Object Security
This section describes the security classifications for object attributes and discusses the
security audit trail.
ot
Wonderware Training
Section 2 – System Platform Overview 1-7
Introduction
System Platform is an industrial software platform built on ArchestrA technology. It contains an
integrated set of services and an extensible data model to manage plant control and information
management systems. System Platform supports both the supervisory control layer and the
manufacturing execution system (MES) layer, presenting them as a single information source.
System Platform and its clients provide the framework and tools for developing, executing,
monitoring, and visualizing your applications. Services such as data acquisition, historization, and
alarming are provided by System Platform components. Services such as visualization and
trending are provided by System Platform clients.
y
The System Platform software is based on industry standards and Microsoft technologies, such as
Windows, .NET, SQL Server, IIS, and others. ArchestrA provides the fundamental technology and
op
services for the multi-user, object-oriented platform.
Additional functional modules, such as Manufacturing Execution System (MES), Skelta BPM
Workflow Management, and others, are available to extend the functionality of System Platform
and its clients.
C
ot
N
o
D
y
op
System Platform components are as follows:
Application Server is the heart of System Platform. It provides an object-oriented
framework with tools for developing and deploying applications.
C
Historian provides process data historization and alarm and event logging for Application
Server. Data is exposed through SQL Server and/or an Open Data Protocol (oData)
interface.
Communication Drivers are drivers for communicating with third-party controllers. These
ot
come in the form of OI Servers and IO Servers. System Platform also works with third-
party drivers, such as third-party OPC Servers.
System Platform clients include:
N
Supervisory clients run the operator interface and provide real-time access to
Application Server data, alarms, and events. There are two supervisory client products,
based on different technologies. Both can coexist in the same System Platform solution.
o
Wonderware Training
Section 2 – System Platform Overview 1-9
Together, System Platform and its clients provide the core services needed to develop, implement,
and deploy industrial automation applications. Some of these services include:
Real-time data acquisition from field devices
Scaling, statistics, and manipulation of data
Process control
Alarm triggering, logging, acknowledgement, and management
Historization, trending, and analysis of process data
Visualization of real-time process data
Reporting
Applications built on System Platform are extensible through the use of scripting within the product
itself or through several available toolkits. For example, an application can access a third-party
web service by means of a script.
ArchestrA Technology
y
ArchestrA is a distributed architecture developed for supervisory control and manufacturing
information systems. It is an open and extensible technology based on a distributed, object-
op
oriented design. It is built on .NET and leverages the Microsoft Framework for the industrial
automation world.
ArchestrA provides the following system services:
C
Object management for creating object-oriented applications
A component object framework for application modeling of plants, factories, and
equipment
ot
A common, global name space for all application types, from single-node to distributed,
and networked applications
Inter-process advanced communications with system maintenance and diagnostic
information
N
Centralized security services with support for multi-user environments for development
and runtime
Version management for every object in the application, including logging of development
o
operations
Most of these services are exposed, configured, and managed by Application Server.
D
y
op
C
ot
N
o
D
Wonderware Training
Section 3 – Application Server Overview 1-11
Application Server
The Application Server is the heart of the System Platform; it provides the services and tools to
create, manage, and deploy your application. An application created with Application Server is
called a Galaxy; both terms are interchangeable.
Based on an object-oriented framework, Application Server allows you to "assemble" a project out
of smaller, individual objects that represent the different parts of your plant and your application.
These are assembled from an area or a section of the factory, to every equipment in the field
(valve, tanks, pumps, and so on), to the actual computers running your application. Almost
everything that is part of your project is modeled as an object in a Galaxy. A point-and-click
interface allows you to easily create, configure, and manage your objects, and at the same time
y
allows the extension and enhancement of your application through integration with the .NET
Framework, particularly through a powerful scripting engine.
op
Applications created with Application Server have distributed capabilities by nature. Going from
one computer to a multi-node networked environment is simply a matter of modeling the
computers that will be part of your project and distributing the load of your application (objects)
across them. This same functionality allows you to easily create and deploy redundant
configurations.
C
Some of the main characteristics and benefits of Application Server are:
Object-oriented framework that provides a modeling approach to creating and managing
ot
applications
Native support for DDE, SuiteLink, and OPC to access Wonderware and third-party
drivers, such as OI Servers and legacy IO Servers
N
y
as the single logical name space of your deployed application (runtime environment). It is
composed of:
op
A collection of objects that represent all your physical and logical entities in your
application; from computers and runtime engines, to all the equipment in the field
A project database that holds the configuration information
One or more networked computers running the application
C
A common set of system-level policies that all components and objects comply with, such
as security, alarm, and communications settings
The Galaxy Repository software, a Windows Service, manages the development and deployment
ot
of the Galaxy. The project database is hosted in the same computer where the Galaxy Repository
software is installed.
N
Important: While a Galaxy Repository can host more than one Galaxy, only one Galaxy can be
deployed and running at any given time.
For runtime, the objects in the Galaxy can be deployed to multiple computers for load balancing,
o
task distribution, and redundancy. A key benefit of the single namespace is that it allows objects
and process data to be referenced by scripts, graphics, and other objects from any computer in the
D
Wonderware Training
Section 3 – Application Server Overview 1-13
y
op
This dialog box is used to:
Connect to the selected Galaxy in the specified Galaxy Repository node and open the
ArchestrA IDE. If the selected Galaxy has security enabled, it will prompt you for login
credentials.
C
Create a new Galaxy in the specified Galaxy Repository node.
Delete the selected Galaxy from the specified Galaxy Repository node. As a safety
ot
y
op
C
ot
N
o
D
Wonderware Training
Lab 1 – Creating the Galaxy 1-15
Objectives
Upon completion of this lab, you will be able to:
Create a Galaxy
Connect to a Galaxy using the System Platform IDE
y
op
C
ot
N
o
D
y
op
C
ot
5. Click Create.
Wonderware Training
Lab 1 – Creating the Galaxy 1-17
The Create Galaxy dialog box appears and shows the Galaxy creation progress. This will take
a few moments.
y
6. Verify there are no error messages.
op
C
ot
N
o
7. Click Close.
The TrainingGalaxy you entered in Step 3 has been created and now appears in the Galaxy
name drop-down list.
y
op
8. Click Connect.
The Connect To Galaxy dialog box closes and, after a few moments, the ArchestrA IDE
opens. C
ot
N
o
D
You will use the ArchestrA IDE to develop the Galaxy throughout the remainder of this course.
Wonderware Training
Section 4 – The ArchestrA IDE 1-19
y
op
C
ot
N
All operations commanded through the ArchestrA IDE are actually run by the Galaxy Repository
o
service; the ArchestrA IDE simply sends commands and requests to the Galaxy Repository and
waits for status responses or confirmations. For example, when connected to a remote Galaxy
Repository you deploy an object, the actual deployment task will be executed from the Galaxy
D
Repository computer to the target platform, not from the computer running the ArchestrA IDE.
If the Galaxy has security enabled, the ArchestrA IDE will ask for login credentials; access to the
tool, as well as operations within the tool, will be dictated by the permissions assigned to the user.
Key Functions
Use the System Platform IDE shortcut to open the ArchestrA IDE. Upon opening the ArchestrA
IDE, the Connect to Galaxy dialog box is first displayed. Once connected to a Galaxy, the
ArchestrA IDE application allows the configuration of Galaxy-wide settings as well as the creation
and configuration of automation objects and graphics.
Some of the Galaxy-wide settings that can be configured with the ArchestrA IDE include:
Security configuration and permissions
Language definition for multi-language applications
I/O communication management
Global graphic styles
Time master computer for time synchronization across all Galaxy nodes
Alarms and events logging parameters
User preferences
Multi-Galaxy communications
y
When working with objects, the ArchestrA IDE allows:
Creation of new objects
op
Configuration of existing objects, such as I/O points, alarm definitions, and process data to
historize
Check-out/Check-in functionality for versioning control
C
Deployment and undeployment of objects
View object properties, such as error and warning messages, as well as cross-reference
information
Upload changes to the runtime version of the object to the configuration database
ot
The ArchestrA IDE also includes import and export capabilities, including:
Objects
N
The ArchestrA IDE main window displays several toolboxes and views that are used to work with
automation objects and graphics; out-of-the-box, it includes two toolboxes and six views (five of
them are visible by default).
Other software products might include extensions to the ArchestrA IDE that add more toolboxes or
views, or both; these new components might serve another purpose than to work with objects in
the Galaxy. For example, Skelta BPM includes an extension for the ArchestrA IDE that adds a
Workflow toolbox to interact with the Workflow Sever.
Wonderware Training
Section 4 – The ArchestrA IDE 1-21
The toolboxes included with the ArchestrA IDE hold libraries of reusable objects and graphics:
Template Toolbox – Contains all automation object templates in your Galaxy organized
by folders called Template Toolsets.
Graphic Toolbox – Contains all ArchestrA Symbols and Client Controls organized by
folders called Graphic Toolsets. Graphics created within an automation object are not
displayed in this toolbox.
The application views included with the ArchestrA IDE are used to display and configure
relationships between objects:
Model – Relationship between automation object instances as it pertains to the
automation scheme of the application, usually the physical layout of the plant
Deployment – Relationship between automation object instances as it pertains to the
computers where the objects will be deployed (where the objects will run)
Derivation – Parent-child relationship between all automation objects in the Galaxy, from
base templates to each individual instance
IO Devices – Relationship between automation object instances and the Device
Integration objects; it allows automatic assignment of I/O references
y
The other views included with the ArchestrA IDE are:
op
IO Device Mapping – Displays the I/O references configured through the IO Devices
view; it allows validation and override of the references
Operations – Displays the results of manually validating the configuration of automation
object templates and instances
C
You can use the * on the keypad to expand the hierarchy of a selected object or toolset in a view or
toolset. For example, if you select the top-level object, such as the Galaxy name in the Model view,
and then press the * on the keypad, the entire hierarchy will be expanded.
ot
You can customize your working area by arranging the way toolboxes and views are displayed on
the ArchestrA IDE. All toolboxes and views can be:
Docked to any edge of the main window or have it float over the working area
N
Grouped in a single panel and accessed through tabs at the bottom of the panel
Closed so it will not show in the working area; closed panels can be reopened through the
View menu
o
Auto-hidden so it will show as a single tab on an edge of the main window; clicking the tab
will temporarily show the panel
D
Note: The layout of the ArchestrA IDE can be reset to the factory default by using the Reset
Layout option on the View menu.
The customization of the working area is associated with the currently logged-in user and saved as
part of the Galaxy configuration; this allows the user to access the Galaxy from a different
computer using the ArchestrA IDE and retrieve their custom layout for the working area.
The Synchronize Views option on the View menu will use the selected object in the active panel to
automatically select the same object in all the other opened panels.
y
op
C
ot
Base and protected derived template objects are displayed with a small orange lock icon to the left
of the object icon. The configuration of these objects is read-only, but you can still create writeable
derived templates and instances from them.
Containment relationships between templates can be configured and displayed within this toolbox.
N
When creating a containment relationship, contained templates are displayed using only their
contained name; for example, when containing a template called $Agitator into a template called
$Mixer, the agitator template is displayed as Agitator instead of $Mixer.Agitator.
o
Template Toolsets
D
Template toolsets are used to organize all templates within the Template Toolbox.
You can create your own template toolsets to organize the templates as you need, including the
creation of sub-toolsets. Template toolsets and the organization of templates within the toolbox is
shared by all users of the Galaxy.
Top-level template toolsets can be hidden or shown as needed, which in turn will hide or show any
sub-toolsets. The configuration is associated with the currently logged-in user and saved as part of
the Galaxy configuration; this allows the user to access the Galaxy from a different computer using
the ArchestrA IDE and retrieve their custom view of the Template Toolbox.
Wonderware Training
Section 4 – The ArchestrA IDE 1-23
y
op
C
ot
N
o
D
Protected ArchestrA Symbols are displayed with a small orange lock icon to the left of the symbol
icon. This graphics are read-only and cannot be modified; they can be used and configured via
their Wizard Options and Custom Properties.
Graphic Toolsets
Graphic toolsets are used to organize all ArchestrA Symbols and Client Controls within the
Graphic Toolbox.
You can create your own graphic toolsets to organize the symbols and controls as you need,
including the creation of sub-toolsets. Graphic toolsets and the organization of graphics within the
toolbox is shared by all users of the Galaxy.
Top-level graphic toolsets can be hidden or shown as needed, which in turn will hide or show any
sub-toolsets. The configuration is associated with the currently logged-in user and saved as part of
the Galaxy configuration; this allows the user to access the Galaxy from a different computer using
the ArchestrA IDE and retrieve their custom view of the Graphic Toolbox.
y
op
C
ot
N
o
You can switch between these view by using the button on the toolbar. Alternatively, you can
use the option in the context menu when you right-click within the Model view.
D
Since this view is structured by areas, the top-level objects are $Area objects. You contain sub-
areas within other areas up to a maximum of 10 levels per branch; this limitation does not include
other automation objects hosted in an area.
Any non-$Area instance that has not been assigned is located in the Unassigned Area folder.
The Model view also displays the containment relationship between instances; contained objects
display their contained name in brackets.
Wonderware Training
Section 4 – The ArchestrA IDE 1-25
y
op
C
ot
N
o
D
Since this view is structured by platforms, the top-level objects are $WinPlatform objects. The
platform objects host engines and the engines host the rest of the objects in the Galaxy, such as
device integration objects, application objects, and visualization applications.
Any non-$WinPlatform instance that has not been hosted is located in the Unassigned Host
folder.
The Deployment view also displays the containment relationship between application object
instances; contained objects display their contained name in brackets.
y
op
C
ot
The parent-child relationship between objects is represented in a hierarchical view, with the base
N
The Derivation view helps identify which objects will be impacted by the propagation of changes.
Wonderware Training
Section 4 – The ArchestrA IDE 1-27
y
op
C
ot
N
o
The relationship with I/O devices is represented in a hierarchical view, with device integration
objects as the top-level objects and all of their configured scan groups displayed as sub-items. All
D
other objects, application and system objects, are assigned directly to the scan groups.
Any non-device integration object that has not been assigned is located in the Unassigned IO
Device folder.
The IO Devices view does not display the containment or hosting relationship between the objects;
contained objects display their hierarchical name in brackets.
y
op
The IO Device Mapping view allows for validation of the references by reading a single data point
for each one of the references and displaying if the read was a success (value on green
background) or not (no value on red background).
C
The references generated by autobinding can be adjusted by overriding the device integration and
scan group names (Device.ScanGroup override) or the object and attribute names
(Object.Attribute override), or both.
ot
The Operations view displays the results of manually validating the configuration of automation
object templates and instances. This view is not opened by default; it will automatically appear
when manually validating an object or it can be accessed through the View menu.
o
D
The list displays all validated objects along with the status of the validation: Good, Warning, or
Error. Details about the specific warnings and errors can be found in the properties of the object.
Wonderware Training
Section 5 – Automation Objects 1-29
Automation Objects
Automation objects, along with the relationship between each other, are the centerpiece of the
object-oriented framework of Application Server. Through automation objects, you can model
virtually anything related to the Galaxy, from an area or section of the plant, to every equipment in
the field, to the actual computers running your application.
y
op
C
ot
N
o
computers that are part of the Galaxy, the runtime engines that execute the rest of the
objects (including how fast the objects will run), and the layout of the plant and distribution
of alarms. System objects also include the visualization applications to run in InTouch.
Device Integration Objects – Represent the controllers and other I/O data sources
outside the Galaxy, such as PLCs, RTUs, and DCSs. Device integration objects are the
means by which the Galaxy gets access to I/O data from the field; they connect to the
drivers that access the different controllers in your application, such as OI Servers, legacy
IO Servers, and OPC Servers.
Application Objects – Simply put: everything else. Application objects usually represent
the equipment in the plant floor, such as valves, tanks, and motors; however, they can also
be used to run specific runtime calculations and connections to external data sources
(other than field devices), like databases or web services.
A brand new Galaxy includes a series of objects that can be customized and enhanced to fit the
needs of virtually any application. Other software products might include specialized automation
objects for use in the Galaxy; usually these in the form of application objects. You can also build
new application objects from scratch using ArchestrA Object Toolkit; though knowledge of C# and
Visual Studio is required to use the toolkit.
The main benefit of an object-oriented approach to configuring the Galaxy is that it allows for the
encapsulation of all configuration elements of each element of your system in an automation
object. This self-contained approach reduces the engineering time associated with the
development and maintenance of the application.
y
op
C
ot
All automation objects include the following features and configuration options:
Inputs and Outputs – References to real-time I/O data from the field or other objects in
N
the Galaxy. For example, read the status of a valve and command it to open or close.
Scripting – To implement custom calculations, decision-making based on equipment
data, or to enhanced the functionality of objects in the Galaxy. For example, calculating
o
Historian Server. It also includes configuration parameters, such as range and deadbands.
Security Requirements – Permissions necessary to write values to the object. For
example, command a valve to open or change the setpoint for the speed of a motor.
Alarms and Events Configuration – Specify which alarms and events are to be triggered
(or captured if triggered by the controller); automation objects include traditional alarm
definitions built-in. For example, a HI and a LO alarm for the level of a tank.
Version and Documentation – Each object keeps track of its own configuration version
and includes its own help file.
Graphic Symbols – Graphical representations of the object to be used in the operator's
interface displayed by InTouch. Graphics can be animated to display real-time changes to
values of the object; for example, a graphic for a motor object can turn green when the
motor is running and gray when it is not.
Wonderware Training
Section 5 – Automation Objects 1-31
y
op
C
Types of Automation Objects
ot
There are three categories of automation objects in a Galaxy: Application objects, Device
Integration objects, and System objects. Each one of these categories include several types of
N
toolset to the Device Integration toolset does not make the $Area object a device integration
object.
D
Application Objects
While System objects provide the infrastructure to distribute and run your application, and Device
Integration objects give you the means to access real-time I/O from field devices, it is the
Application Objects that allow you to model the equipment in the field. For example, valves,
motors, conveyors, and level and temperature transmitters are all modeled through Application
Objects.
y
SQL Data Object ($SQLData) – This object provides access to SQL Server databases by
means of mapping data in a table to attributes in objects in the Galaxy. It provides
op
commands for all basic database transactions such as select, insert, update and delete
records.
User-Defined Object ($UserDefined) – This object is an "empty" object and a "blank
canvas" in the sense that it does not provide any extra functionality besides the common
C
features shared by all object in the Galaxy. It can be used to model virtually any kind of
equipment, from the most basic (like a tank with a level meter or a valve) to very complex
devices (like a reactor system with multiple components).
ot
Other application objects are available as part of other software products; these objects provide
extended functionality to the Galaxy. For example, MES includes up to three application objects
that can be added to the Galaxy: the operations, utilization, and sample recording objects. You can
also build new application objects from scratch using ArchestrA Object Toolkit; though knowledge
N
Device Integration objects (or simply DI objects) represent your controllers, such as PLCs, RTUs,
or similar devices. They do not communicate directly to the controllers, but with a driver that
D
Wonderware Training
Section 5 – Automation Objects 1-33
y
InTouch Proxy Object ($InTouchProxy) – An object useful in "hybrid" installations,
where System Platform coexist with legacy, tag-based InTouch applications. It provides a
op
way of integrating legacy InTouch applications to your Galaxy; it sits on top of your tag-
based InTouch applications and allows your Galaxy to read (and if necessary, write) data
from InTouch. It helps you consolidate all your data within the Galaxy, without having to
immediately convert your existing InTouch applications. For example, you can implement
C
new production lines in System Platform and integrate data from existing production lines
that are implemented with legacy, tag-based InTouch applications.
ot
System Objects
System objects constitute the infrastructure objects of the Galaxy. These objects provide the pillars
or foundation of your application, and define two very important concepts in your project Galaxy:
N
The Plant Model (the logical organization of the objects and distribution of alarms) and the
Deployment Model (in which computers the objects will run on).
o
D
server, operator station, engineering node (among others), are all represented by this
object. It gathers and calculates information about the computer node itself; from RAM
and disk space available to CPU load and page faults. This object is the basis of the
Deployment Model.
Application Engine Object ($AppEngine) – This object is the runtime engine for the
application; it is in charge of running areas, device integration objects, and application
objects in the Galaxy. One of the most important settings in this object is the scan period,
which indicates how fast you want your application to run; it can run scans as fast as 10ms
and as slow as 1 hour, hardware permitting, of course. Multiple Application Engines can
be hosted on the same computer or across multiple computers running different objects at
different speeds, or both.
View Application Object ($ViewApp) – This object holds the operator's graphical
interface (HMI). This is one of two visualization applications, which include the windows
and ArchestrA graphics that comprise your operator interface. The application will
effectively run in InTouch Operations Management Interface, but it is managed and
deployed by the Galaxy; it is integrated with the rest of the Galaxy configuration, including
security.
y
View Engine Object ($ViewEngine) – Another engine object, but much more simple than
the Application Engine; its only purpose is to allow the distribution of visualization
op
applications (InTouchViewApp objects) to the operator stations.
InTouch View Application Object ($InTouchViewApp) – This object can also hold the
operator's graphical interface (HMI). This is one of two visualization applications, which
include the windows and ArchestrA graphics that comprise your operator interface. The
C
application will effectively run in InTouch, but it is managed and deployed by the Galaxy; it
is integrated with the rest of the Galaxy configuration, including security.
ot
Instances are created out of template objects. Instances inherit the entire configuration
from the parent template, but allows for extended configuration on its own. For example, if
there was no configuration to historize certain data point in the template, that configuration
can be added to the instance.
o
Templates are also created out of other templates. As instances, they inherit the
configuration from the parent template and can be extended. The top-most level template
D
is called a base template; all other templates are called derived templates.
Configuration changes to templates are propagated to its derived children objects, both,
derived templates and instances.
Creating your own templates lets you enforce standards and create a library of reusable
objects.
Instance objects are deployed to the runtime environment and are run by the system;
template objects are configuration-only and cannot be deployed.
Wonderware Training
Section 5 – Automation Objects 1-35
The following is a comparison between the characteristics of all three classifications of automation
objects.
Base templates are created with the ArchestrA Object Toolkit while derived templates and
instances are created within the ArchestrA IDE.
The first level of derived objects is created from base templates; other derived
templates and instances can be created out of other derived templates.
Multiple levels of derivation are allowed.
y
The ArchestrA Object Toolkit (Visual Studio and C# knowledge required) is available
for you to create your own base templates if needed (only application objects can be
op
created with the toolkit; device integration and system objects cannot be created with
the toolkit).
Base Templates contain predefined, built-in attributes and functionality; these cannot be
removed/deleted. Derived templates and instances inherit all attributes, scripts, and
C
configuration settings from the parent template; attribute and configuration values might
be modified, but not removed/deleted.
ot
N
o
D
Base Templates are read-only and cannot be changed. Derived templates and instances
can be enhanced by adding custom attributes, features, and scripts; inherited
configuration might be writeable.
Your derived templates can be made read-only for distribution, if needed by way of
protecting the objects (useful to establish corporate-wide standards, OEM, and
System Integrators libraries).
Templates, base and derived, only exist in the development environment (configuration
project database) and cannot be deployed to runtime. Instances exist on both
environments, development and runtime, and are designed to be deployed and run.
Important: Always create derived templates from base templates and never create instances
directly from a base template. Base templates are read-only; therefore, they cannot be customized
to propagate changes to their children.
y
op
C
ot
N
All derived templates and instances are said to be of the same type as the base template
from which they are created; for example, in the illustration above, the $Valve, $Inlet, and
$Outlet templates, as well as all the CV instances are classified as User-Defined objects
D
Wonderware Training
Section 5 – Automation Objects 1-37
y
op
C
ot
N
The configuration editor of automation objects group attributes in tabs based on functionality.
There are three tabs that are common to all objects:
o
Attributes – Allows you to enhance an automation object by adding your own custom
attributes. Custom attributes can be extended by adding features such as: I/O references,
D
Other configuration tabs might be available in the editor depending on the object. For example, the
$Area object includes a tab named 'General' with several area-specific configuration attributes.
y
op
C
ot
N
o
D
Wonderware Training
Section 5 – Automation Objects 1-39
Object States
The state of an automation object is displayed as overlay icons to the object icon in the Template
Toolbox and application views within the ArchestrA IDE. There are deployment-related and
configuration-related status indicators; both can be present on an object at the same time.
The following are deployment status indicators for object instances; these overlay icons appear in
the top-left corner of the object's icon:
[No Icon] Object is deployed and no configuration changes are pending. This is the
normal scenario for a deployed object.
Object is deployed, but there are configuration changes that have not been
deployed. In this state, the configuration version of the object is different from
the runtime version of the object.
Object is deployed, but there are software updates that have not been
y
deployed. In this state, the software version in the development environment is
different from the runtime version. This occurs when a new version of base
op
templates has been imported to the Galaxy.
The following are configuration status indicators for object templates and instances; these overlay icons
appear on the bottom-right corner of the object's icon:
C
Overlay Icon Example Description
[No Icon] Normal state of an object. There are no configuration warnings or errors.
ot
There is an issue with the configuration of the object. The object can still be
deployed, but results might not be as expected.
There is an issue with the configuration of the object. The issue is too severe
N
Configuration warning and error messages are displayed in the properties of the object. Before
chasing for configuration attributes in the object editor, it is best to check the properties of the
o
Editing Objects
Application Server supports multi-user configuration management by implementing a check-out/
check-in system:
When a user opens an automation object for configuration, the object is checked out from
the configuration project database
While an object is checked out, no other user can open the object for configuration; other
users can still be open the object in read-only mode
A red check mark is displayed to the right of the object's icon to indicate that the object has
been checked out by the logged-in user; a black check mark indicates that the object is
checked out by a different user than the logged-in user
An object needs to be checked in for the configuration to be available for deployment
Checked out objects can be saved without checking in the object
Checked out objects can be undone to revert the last checked in state; only the user that
checked out the object can perform an 'undo check out' on the object
Override check-out can be performed by other users with the right security permissions to
revert back to the last checked in state
When checking in objects, by default, the ArchestrA IDE asks for a comment; this comment is
recorded in the configuration log of the object and can be accessed through the properties of the
object. If a comment is not provided, the default "Check in by user" comment is entered in the log.
When deleting automation objects:
Templates with derived objects cannot be deleted
Instances that are deployed cannot be deleted
Deleted base templates are available to re-import form the Application Server installation
folder
Object Wizards
y
An Object Wizard can be added to any derived template. It provides a simplified user interface for
configuring instances (assets) from the template. A single template with an Object Wizard can
op
replace a number of derived templates to configure a variety of similar instances. You can add an
Object Wizard to any derived template.
Depending on your level of permissions, you can:
Create and configure instances from within the ArchestrA IDE and add them to the Galaxy,
C
or modify existing instances. You open an instance and answer a series of prompts or
questions.
Use the Configure New Asset editor to create and configure instances and a
ot
customize a deployable instance. Each choice and option may have one or more attributes,
symbols, and scripts associated with it.
Using an Object Wizard allows you to reduce both the depth of the template hierarchy and the
o
number of templates that are needed to configure instances. Adding an Object Wizard to a
template can eliminate the need for many templates, while providing coverage for the same variety
D
Wonderware Training
Lab 2 – Creating Global Derived Templates 1-41
Objectives
Upon completion of this lab, you will be able to:
Create a new template toolset to organize templates
Create a derived template
Hide a template toolset
y
op
C
ot
N
o
D
y
op
2. Rename the new toolset Training.
C
ot
N
Note: The Rename feature is activated by default when a new toolset is created. It can also
o
Wonderware Training
Lab 2 – Creating Global Derived Templates 1-43
You will now create additional toolsets within the new Training template toolset.
3. Right-click the Training toolset and select New Template Toolset.
y
op
C
5. Repeat Steps 3 and 4 to create a new toolset named Project.
ot
N
o
D
6. Expand the Device Integration toolset by clicking the plus icon to the left of the template
toolset.
7. Right-click $DDESuiteLinkClient and select New | Derived Template.
y
op
C
8. Rename the new derived template $gDDESuiteLinkClient.
ot
Wonderware Training
Lab 2 – Creating Global Derived Templates 1-45
9. Create three more derived templates from the following base templates:
Base Template Derived Template
$InTouchProxy $gInTouchProxy
$OPCClient $gOPCClient
$RedundantDIObject $gRedundantDIObject
The Template Toolbox now displays all four new derived templates in the Device Integration
template toolset.
y
op
C
10. Select and drag the four new derived templates into the Training\Global toolset.
Note: You can select multiple items by pressing the CTRL key and clicking each desired
ot
12. Create four new derived templates from the following base templates:
y
Base Template Derived Template
op
$AppEngine $gAppEngine
$Area $gArea
$ViewEngine $gViewEngine
$WinPlatform $gWinPlatform
C
The Template Toolbox now displays the four new derived templates in the System template
toolset.
ot
N
o
D
Note: You will not create a derived template from $InTouchViewApp or $ViewApp because
they are special objects that do not accept second-level derivation, but you will drag them
together with the other new objects.
Wonderware Training
Lab 2 – Creating Global Derived Templates 1-47
13. Select and drag the four new derived templates, as well as the $InTouchViewApp and
$ViewApp objects to the Global toolset.
y
op
To ensure that instances are not created from base templates, you will hide the Device
Integration and System template toolsets. Going forward, you will only use the Application and
Training template toolsets.
C
14. Right-click the Device Integration template toolset and select Hide.
ot
N
o
D
If you need to view the hidden template toolsets again, perform the following steps to unhide them.
16. On the Galaxy menu, select Configure | Customize Toolsets.
y
op
C
The Customize Toolsets dialog box appears.
ot
17. From the Toolset list, check the toolsets you wish to see in your ArchestrA IDE and click
Close.
N
o
D
Note: This will allow you to unhide toolsets you have hidden and wish to see again.
Wonderware Training
Section 6 – System Requirements and Licensing 1-49
y
op
C
ot
N
application, such as the ArchestrA IDE and the InTouch development tools. There can be
multiple engineering stations for multi-user development teams.
Application Object Server – Computer where application objects are deployed to run on.
There can be multiple application object servers for load distribution or redundancy, or
both.
Device Integration Server – Computer connected to the control network and running the
corresponding drivers, such as a OI Sever or legacy IO Server. A single device integration
server can run multiple drivers, but there can also be multiple device integration servers,
depending on the control network topology.
Visualization Station – Runs the operator's interface or HMI through InTouch runtime
tools. There can be multiple visualization stations.
Historian Server – Runs the Historian Server software and hosts the history and alarm
databases. Typically, there is only one historian server per Galaxy, but there can be more
than one if needed, such as in largely distributed Galaxies hosting local historian servers
per location.
Information Server – Runs the Information Server software and host the reporting
industrial information web portal. Typically, there is only one information server per Galaxy,
but more than one can be implemented if desired.
License Server – Required if implementing Information Server or Historian Client
concurrent license, or both.
Workstation – Computer on the business network that can access reports in Information
Server through a web browser.
Based on these computer roles, the following diagram illustrates the Application Server
components that need to be installed and deployed on each computer.
y
op
C
ot
N
The WinPlatform objects are required on those computers to either host other automation objects
in the Galaxy (Application Object Servers, Visualization Stations) or for real-time communication to
o
Wonderware Training
Section 6 – System Requirements and Licensing 1-51
Note: Please refer to the readme file that came with your software for more details about
hardware and software requirements, compatibility information, key product notes, and additional
resources.
Software Requirements
The following table lists supported and preferred software requirements for various nodes in your
system:
Development Galaxy Automation Supervisory
(ArchestrA IDE) Repository Object Server Client
Windows Server Preferred Preferred Preferred Supported
Windows Workstation Supported Supported Supported Preferred
y
SQL Server --- Required --- ---
.NET Framework Required Required Required Required
op
Minimum Hardware Requirements
The following table lists minimum hardware requirements for server nodes, such as Historian, the
C
GR node, AppEngine host (Application Objects Server), and the ArchestrA IDE (development
environment):
ot
You can use all products on a single node. An All-in-One node includes Application Server,
D
InTouch, Historian, Historian Client, and Licensing components. The following table lists the
minimum hardware requirements for an All-in-One node:
Licensing
The following topics provide general information about System Platform licensing.
Note: Consult your sales representative for details about licensing and pricing.
System Platform
System Platform licenses are available in different sizes. Each option may include licenses for a
number of Galaxies, I/O points, Historian tags, Device Integration Servers, and supervisory clients.
Each System Platform license also includes:
One Insight license.
Remote Response Objects, which are not available out-of-the-box. They must be
downloaded from the Support site.
Available upon request, one Recipe Manager Plus Standard Edition license with two client
connections. Please contact your sales representative for more information.
y
System Platform licenses with 25K I/O points or less do not include a Microsoft SQL Server
op
Standard license.
System Platform licenses are provided for the runtime environment. For development purposes, a
Development Studio license is required. Otherwise, tools such as the ArchestrA IDE will not
launch. Development Studio licenses are offered only with the subscription model.
C
Supervisory Client
A Supervisory Client license enables the use of both Operations Management Interface for
ot
Activated Licensing
o
code. Management and activation of licenses are performed with the following components, which
are installed as part of the installation of your purchased products:
License Server: Acquires, stores, maintains, and serves licenses. It supports redundancy
and failover.
License Manager: Web-based user interface for accessing and maintaining licenses.
For more information about licensing components, refer to your product documentation.
Wonderware Training
Section 6 – System Requirements and Licensing 1-53
y
Password must not expire or change. If the password expires or is changed, all
communications between Wonderware software will cease.
op
The ArchestrA Network Account does not need to be an interactive user.
The first Wonderware software that is installed on a computer will prompt you to setup the
ArchestrA Network Account; at that point, you can use or create a local user or specify an Active
C
Directory user. All subsequent Wonderware software installed on that same computer will
automatically use that same account.
If the password of the ArchestrA Network account is ever changed, all communication between
Wonderware software will stop and you will need to run the Change Network Account utility
ot
(automatically installed with any Wonderware software) on each computer to update the account
information on that node. This will require a restart of the computer.
N
o
D
Note: The ArchestrA Network account cannot be used to log into a computer.
Encrypted Communication
The end-to-end communication between software applications (server and client) can be
encrypted and secured to prevent eavesdropping and malicious tampering (aka: Man-in-the-
Middle) attacks.
To enable encrypted network communication, one of the nodes in the network must be configured
to host and run the System Management Server (SMS). The role of the System Management
Server is to generate, manage, and distribute secure digital certificates used for establishing and
maintaining secure communications.
All other nodes need to be configured to connect to the SMS so they all become part of the same
community.
The SMS does not need to be available at runtime for secure communications to be established.
In fact, once joined to the SMS, a node will not need access to the SMS until it is time to renew the
certificates.
y
With encrypted communication, all of the following protocols are secured:
op
SuiteLink
Message Exchange (MX)
iData
iBrowse
C
HCAL
ot
N
o
D
Wonderware Training
Section 6 – System Requirements and Licensing 1-55
y
op
C
ot
N
o
D
Node-to-Node Communication
Node-to-node communication is unsecured under certain scenarios, including the following:
The version of the software installed on one or more nodes is earlier than 2017 Update 3
(Communication Driver version has no impact)
One node points to a System Management Server, but there is no System Management
Server configured on the other node
There is no System Management Server configured for both nodes
Please note that if one node points to one System Management Server and the other node points
to another System Management Server, there will be NO network connection between the nodes.
y
op
C
ot
N
o
D
Wonderware Training
Section 6 – System Requirements and Licensing 1-57
y
op
C
ot
N
o
D
Sentinel System Monitor constantly monitors the following attributes, messages, and metrics:
System Platform (Platform & Engine): Runtime attributes like Scan Status, Redundancy/
Failover, ArchestrA Event Log Error/Warnings, logged Script issues
DI Objects: Connections/Scan Status, DAServer Status, ArchestrA Event Log Errors/
Warnings
Historian: Historian Services Status, Database Health, ArchestrA Event Log Errors/
Warnings
ArchestrA: ArchestrA Services Status, ArchestrA Event Log Errors/Warnings
MES: MES Services Status, MES Database Performance, ArchestrA Event Log Errors/
Warnings
SQL Server: Internal Performance & Health per Microsoft SQL Server Management Pack
Hardware/Operating System: CPU, Memory, Event Logs, Performance Counters
Other Supporting Software: Terminal Services, 3rd-party IO Servers, and others
y
op
C
ot
N
o
D
Wonderware Training
y
op
Module 2 – Application Planning
C
Section 1 – Application Server Project Workflow 2-3
ot
Module Objectives
Describe the suggested project workflow
Discuss the simulated manufacturing environment and naming convention to be used for
the training session
y
op
C
ot
N
o
D
Wonderware Training
Section 1 – Application Server Project Workflow 2-3
Introduction
The object-oriented framework of Application Server makes it easy to develop and maintain a
Galaxy by encapsulating all-related functionality in individual objects and combining all common
configuration in templates that can be easily spawned into multiple instances. A Galaxy can be
made out of hundreds and even thousands of objects, so careful planning is recommended before
creating these objects to avoid backtracking and redesigning objects down the road.
The following is a suggested project development workflow to get you started on creating your first
Galaxy.
y
op
C
ot
N
o
D
The first three steps are the most important, since the objects derivation hierarchy will rely on this
(and cannot be fixed later on without recreating it); the other three items (plant model, security
model, and deployment model) can be updated later if needed. Here is an explanation of each
step:
Identify field devices and functional requirements - You should start by collecting
information about all the field equipment and devices that will be part of your application.
These devices will be modeled as objects in your Galaxy, so you should gather all their
functional requirements, such as vessel capacities, engineering units, motor states, and
alarms needed, to name a few. Most of the time you will be able to gather most or all the
information from the pipping and instrumentation diagram (P&ID).
Defining naming conventions - Before creating any objects, a key piece is defining a
naming convention for your templates, instances, and attributes; this is particularly
important when using the automatic binding feature of Application Server to link objects to
I/O data.
Plan templates - Once field devices, functional requirements, and naming conventions
have been defined, you can start planning your templates. What common functionality can
you combine in a single template? How many levels of derivation will you need to
minimize duplicating configuration? How should you name your attributes? Do not forget
that the parent-child relationship between objects cannot be broken; if you later find that
you need another level of derivation between templates already created, you will need to
delete all children objects and recreate them later; so pay careful attention to this step as it
is important to avoid any possible redesign of the objects.
Define the plant model - This is the organizational structure of the objects in your Galaxy
and how alarms will be distributed and filtered. The plant model is usually based on how
the equipment is distributed within the factory or plant. The main thing to consider when
defining the plant model is the distribution of alarms; for example, if there are operators
dedicated to each production line, then production lines should be included in the plant
model as individual areas so each operator can filter by the production line it is monitoring.
Define security model - One of the things to define before going to production is the
y
security model for the runtime environment. Which users can write to attributes on which
objects? (for example, who can open a valve or change a setpoint) Who can acknowledge
op
alarms from which objects? Some of the runtime security configuration might involve
changing the security classification of individual attributes within an object, so part of this
could be done while planning the templates. If working on a multi-user development
environment, the security model for working in the ArchestrA IDE might need to be defined
earlier.
C
Define the deployment model - Also before going to production, it will be necessary to
define the production deployment model. This involves the definition of all the WinPlatform
objects necessary to deploy the Galaxy to the production environment. A testing
ot
deployment model will be needed while creating and testing the Galaxy.
N
o
D
Wonderware Training
Section 2 – Case Study 2-5
This section does not contain information specific about Application Server, but a description of the
example that is the basis for the exercises in this training manual, from the fictitious manufacturing
plant, to the equipment that is going to be modeled, to the simulated I/O process that will feed the
Galaxy.
Factory Layout
The factory example for this training course is divided in four main sections or areas: Receiving,
Production, Packaging, and Shipping; with the Production area including two production lines: Line
1 and Line 2.
All these areas will be modeled in the Galaxy using the $Area object and will be the basis for the
plant model.
y
op
C
ot
N
o
D
While all areas of this factory will be simulated in the Galaxy, only some of the equipment in the
Production and Packaging areas and their sub-areas will be modeled.
Note: The simulation provided with this course only simulates some of the equipment in the
Production and Packaging areas.
y
for this device
Two transmitters:
op
Wonderware Training
Section 2 – Case Study 2-7
The I/O data source (from the PLC simulator and the OI Server) relies on the above naming
y
convention (Signal column in the table), where X is either 1 or 2 for Mixer100 and Mixer200.
The Level and Temperature transmitters are provided in counts (0 - 4095) and will need to be
op
scaled to the corresponding engineering units (0 - 100 Liters, 0 - 250 Celsius, respectively).
Each valve has three signals:
A Close Limit Switch (CLS) to indicate if the valve is fully closed
C
An Open Limit Switch (OLS) to indicate if the valve is fully open
A Command (CMD) to signal the valve to open or close
The pumps have two signals:
ot
agitator is on
A Speed Setpoint (Speed.SP) to tell the agitator how fast the motor should run, when it is
D
on
Note: The simulation provided with this training course includes four Mixers named Mixer100,
Mixer200, Mixer300, and Mixer400 with the same names for all of the signals. This course only
uses Mixer100 and Mixer200, but you can use the other two for testing purposes, if needed.
Simulated Process
The simulation for this training course runs a continuous process that has four steps or stages:
1. Adds the first ingredient up to 60% of the tank's volume.
2. Adds second ingredient until the tank is full.
3. Mixes the ingredients in the tank for certain amount of time; the time differs from mixer to
mixer.
4. Drains the tank.
After the tank is empty, the simulation automatically starts over.
y
op
During the running of a batch, a complete run of the four steps or stages from beginning to finish,
the following happens:
The level and temperature of the tank are available, as well as the temperatures.
C
The tank's temperature is in direct proportion with the level of the tank: the higher the
level, the higher the temperature, and vice versa
The speed of the agitator is 0 when it is off and a value close to the specified setpoint
ot
when running
Note: All analog values have a random coefficient applied to it to ensure that values from different
mixers and from batch to batch are different.
N
o
D
Wonderware Training
y
op
Module 3 – Application Infrastructure
C
Section 1 – The Plant Model 3-3
ot
Module Objectives
Explain the Plant and Deployment models
Introduce Object Viewer, Platform Manager, and OI Server Manager tools
Describe the WinPlatform, AppEngine, DDESuiteLinkClient, and OPCClient objects
Introduce OI Servers and IO Servers
Explain attribute referencing and I/O referencing
y
op
C
ot
N
o
D
Wonderware Training
Section 1 – The Plant Model 3-3
This section describes the importance of the plant model and explains the usage of area objects
and the Model view in the ArchestrA IDE.
y
Sections are divided in areas
op
Areas are divided in production lines
Production lines are divided in manufacturing cells
C
ot
N
The plant model is also how alarms are distributed in the system; for example, if the production
area has two production lines, the operator for Line 1 will only want to see alarms for that area,
while the Production Supervisor might want to see alarms for both lines. This functionality is
o
Using the ArchestrA IDE, the plant model is built using the application Model view (for more
information see “The Model View” on page 1-24).
The plant or factory itself is usually represented by the Galaxy and not an actual object; the rest of
the layout is represented by instances of the $Area object, arranged in a hierarchy that represents
how each area is divided into its sub-areas.
y
op
C
ot
Afterwards, the rest of the objects (equipment, computers, engines, and so on) are organized
based on their physical location by assigning them to their corresponding areas.
N
Note: It is possible that the plant model might not include proper areas to assign non-equipment
objects, such as platforms, engines, and device integration objects. In these cases, you can simply
add an area to hold these objects; for example, a 'ControlSystem' or 'ControlRoom' area.
o
The Area object is one of the simplest objects to configure, but its functionality is key to the
implementation of the Galaxy, as it is the basis for the plant model.
The main characteristics of the Area object are:
Represents an area of the plant or an automation process
Can only be nested up to 10 levels
Provides grouping and distribution of alarms
Supports alarm count and status aggregation
Used as filters by alarm clients
On the plant model, the rest of the objects are assigned to it
On the deployment model, it hosts all application objects
Wonderware Training
Section 2 – The Deployment Model 3-5
This section describes the Deployment view of the ArchestrA IDE, discusses the hosting
relationship between objects, explains the usage of the $WinPlatform and $AppEngine objects,
and describes the Deployment options.
y
Note: Only automation object instances can be deployed; templates are configuration-only and
cannot be deployed.
op
Changes made to the configuration of an object are not automatically deployed. When using the
ArchestrA IDE, deployment must be done by a user; until then, the configuration version of the
object is different between the development and the runtime environments. For example, a tank
C
object is deployed without alarms configured for the level value, and then afterwards, a Hi alarm is
added to the level; at this point, the deployed, running version of the object is still lacking any
alarms until the tank object is deployed again.
ot
To deploy changes to an object, usually referred to as redeploy, you just need to deploy the object
again. Depending on the changes, the currently deployed instance might get undeployed, and
then deployed again, or the changes are simply "pushed" to the currently deployed instance. Value
changes to attributes usually are "pushed", while changes that add/remove features (custom
N
even if you have not changed the configuration of its instances, redeployment will be necessary to
send the new software to the runtime environment.
D
Deployment occurs from the Galaxy Repository computer to the target runtime computers. If the
Galaxy Repository goes offline after the objects have been deployed, the runtime environment will
still run all objects and all runtime communication will still be in place.
All application views in the ArchestrA IDE will display a graphical representation of the deployment
status of the object in the form of an overlay over the object's icon (for more information see
“Object States” on page 1-39).
To be able to deploy automation objects, you must define the Deployment Model for the Galaxy.
y
op
C
ot
For a computer to be able to receive a WinPlatform object, the Bootstrap service must be installed
first. The hosting relationship between the objects is as follows:
The WinPlatform object is at the top of the hierarchy and the first to be deployed; it sets
the ArchestrA infrastructure for the Galaxy and manages all the off-node communications.
N
WinPlatform objects host AppEngine objects, which are the primary runtime engines in
charge of running the rest of the objects in the Galaxy, as well as handling the
communication between objects hosted in the same engine.
o
AppEngine objects host Area objects for alarm grouping and filtering.
Area objects host Application objects, which primarily represent the equipment in the
D
plant (valves, motors, tanks, conveyors, and so on).
AppEngine objects also host Device Integration objects, which allow communication to
the field through drivers such as OI Servers, OPC Servers, and legacy IO Servers.
AppEngine objects can host several areas and device integration objects.
WinPlatform objects can host more than one AppEngine object; this allows for running
different objects at different speeds (scan rates).
For visualization purposes, WinPlatform objects also host ViewEngine objects and ViewEngine
objects host InTouchViewApp objects. An instance of the InTouchViewApp object represents a
visualization application or HMI; the ViewEngine object allows the deployment of the visualization
application to remote computers.
Wonderware Training
Section 2 – The Deployment Model 3-7
Using the ArchestrA IDE, the deployment model is built using the application Deployment view
(for more information see “The Deployment View” on page 1-25).
y
op
C
ot
N
o
The deployment model hierarchy indicates the deployment dependencies between the objects;
hosted objects cannot be deployed, if the hosting object is not deployed first. For example, an
Area object cannot be deployed, if the hosting AppEngine object is not deployed first; in turn, the
D
AppEngine object cannot be deployed, if the hosting WinPlatform object is not deployed first.
To rearrange the deployment model, the objects need to be undeployed first. For example, to
move an Area from one AppEngine to another, the Area and its hosted application objects must be
undeployed first; the AppEngine objects can remain deployed, as well as any other objects
deployed to those AppEngine objects.
When deploying objects, an important setting regarding the deployment model is Cascade
Deploy; when set, it deploys the object and all its hosted objects. The Deploy Object Count field
indicates the number of objects to be deployed; "1" will be displayed, if Cascade Deploy is not
checked.
The Deploy dialog box also includes an option for preserving runtime changes. When the Preserve
Runtime Changes check box is checked, changes made to attribute values at runtime are
preserved on redeployment. This option is checked by default.
y
op
C
In contrast, when undeploying objects, the Cascade Undeploy setting is automatically checked, if
the object is hosting objects. The setting is read-only and cannot be unchecked because hosted
ot
objects cannot be deployed if the hosting object is not deployed. The Undeploy Object Count
field indicates the number of objects to be undeployed.
N
o
D
Wonderware Training
Section 2 – The Deployment Model 3-9
y
On the deployment model, engines are hosted on it
The Galaxy Repository requires a special instance of the WinPlatform object that handles GR-
op
specific operations. This instance must be the first object to be deployed from the Galaxy, and
must remain deployed for any other deployment-related operations to occur. It is identified by a
yellow icon (instead of white) in the different application views, within the ArchestrA IDE.
The first instance of the WinPlatform object that is created automatically becomes the Galaxy
C
Repository platform. If the Galaxy Repository platform is deleted, simply create another instance of
the WinPlatform object and it will become the Galaxy Repository platform.
Each WinPlatform instance created must be configured with their Network address, which is the
ot
The Galaxy Repository platform is automatically configured with the computer name of the GR
hosting the Galaxy; the Galaxy Repository to which the ArchestrA IDE is connected to.
D
Important: Deploying more than sixteen AppEngine objects onto a single platform may
deteriorate system performance.
The AppEngine runs all objects hosted on it (application objects, device integration objects, and
areas) on a scan-based schedule set at a configurable speed. The engine will execute all hosted
objects once per scan, one at a time.
Each AppEngine object has its own Scan period setting that can be configured to go as fast as 10
milliseconds and up to 1 hour; the default value is 500 milliseconds.
Note: Careful consideration must be taken when setting the scan rate of an AppEngine. If the
y
objects hosted in the AppEngine take longer than the scan rate to execute, the engine will do a
scan overrun to finish running the objects, effectively skipping one or more scans.
op
C
ot
N
o
D
Wonderware Training
Lab 3 – Creating the Plant and Deployment Models 3-11
Introduction
In this lab, you will create a plant model for the Galaxy by using instances derived from the $gArea
template created in the previous lab. These instances will be organized in the Model view and
used throughout the remainder of this course. The Model view will be used to represent the
physical relationship between these instances, which is good for alarm reporting purposes.
Also, in this lab, you will create a deployment model for the Galaxy by using instances derived
from the $gWinPlatform and $gAppEngine templates, also created previously. The Deployment
view will be used to represent the physical relationship of Application Server components as
deployed to specific nodes on a network. After building the deployment model, you will use the
Deployment view to deploy the instances.
y
op
C
ot
N
Objectives
Upon completion of this lab, you will be able to:
o
Create instances
Create a plant model for a Galaxy
D
y
op
C
ot
N
o
D
2. If it is not selected, click the Model tab to display the Model view.
Note: The tabs allow you to change the way the objects are viewed, based on the type of
operation you are trying to run. Different application views are used throughout the remainder
of this course.
Wonderware Training
Lab 3 – Creating the Plant and Deployment Models 3-13
3. In the Template Toolbox, Training\Global toolset, right-click the $gArea template and select
New | Instance.
y
op
The instance appears in the Model view with the default name of gArea_001.
C
ot
Now, you will create additional instances by dragging the template into the Model view.
5. Drag the $gArea template into the Model view and rename the new instance Production.
y
op
C
6. Drag the $gArea template into the Model view five more times, renaming each of the
instances with the following names:
ot
ControlSystem
Line1
Line2
N
Packaging
Shipping
o
D
Wonderware Training
Lab 3 – Creating the Plant and Deployment Models 3-15
In the plant model used in this course, the Production area consists of two lines, so you will now
assign these lines to the Production area.
7. In the Model view, drag the Line1 area object onto the Production area object.
Line1 is now assigned to the Production area.
You can also create an assignment by right-clicking on an instance and assigning it to an area.
8. Right-click Line2 and select Assign To.
y
op
C
ot
N
o
The Model view now shows the logical layout of the plant that will be used throughout the
remainder of the course.
y
op
C
Create the Deployment Model
ot
Now, you will use the Deployment view, which displays how the application is distributed across
the available networked computers.
N
11. Click the Deployment tab to display the Deployment view, and then expand TrainingGalaxy
and the Unassigned Host folder, if necessary.
o
D
Wonderware Training
Lab 3 – Creating the Plant and Deployment Models 3-17
12. In the Template Toolbox, Training\Global toolset, right-click $gWinPlatform and select
New | Instance.
y
op
C
ot
N
Note: The first WinPlatform instance created is a special version of the WinPlatform object
that represents the Galaxy Repository (GR). The icon for the GR node object is always yellow,
instead of the standard white. Also, the GR platform object is automatically configured with the
computer name of the Galaxy Repository node.
14. Create another new platform instance and name the instance ProdPlatform.
Important: If you have a one-node environment, you will not create additional platforms and
all objects will be hosted on the GRPlatform.
The red error icon next to ProdPlatform indicates that there is a configuration error.
y
You will now configure the newly created platform with the remote computer name.
op
15. Double-click ProdPlatform to open its configuration editor.
In the Deployment view, a red check mark appears next to ProdPlatform indicating that the
object is currently checked out. C
ot
N
o
16. On the General tab, configure the Network address field with the computer name of the
D
Wonderware Training
Lab 3 – Creating the Plant and Deployment Models 3-19
17. In the top-right corner of the pane, click the Save and Close button to close the editor.
y
op
18. In the Comment field, enter Changed Network Address and click OK.
C
The red check mark for ProdPlatform is no longer displayed because the ProdPlatform has
been checked in. The error icon is no longer displayed indicating the ProdPlatform has been
configured.
ot
N
o
D
19. In the Template Toolbox, Training\Global toolset, right-click $gAppEngine and select
New | Instance.
y
op
20. Rename the instance AppEngine1.
C
ot
N
o
Platforms host engines, so you will now move the engine instance to a platform.
21. Drag AppEngine1 to ProdPlatform.
D
Wonderware Training
Lab 3 – Creating the Plant and Deployment Models 3-21
Engines host areas, so you will now move all the areas to the engine.
22. Drag all the area instances from the Unassigned Host folder to the AppEngine1 instance.
y
The Deployment view now shows that all objects in the deployment model have been hosted.
op
Now, you will update the plant model.
23. Click the Model tab to display the Model view, and then expand the Unassigned Area folder.
C
ot
N
o
24. Assign the three objects in the Unassigned Area folder to the ControlSystem area.
D
The Model view now shows that all objects in the plant model have been assigned.
Assigning the platforms and engine to the ControlSystem area allows the control system to
act as a logical organization for filtering alarms.
Note: You can right-click the Galaxy and select Deploy. This will first deploy the
GRPlatform and then deploy the rest of the platforms in parallel.
y
op
C
ot
Wonderware Training
Lab 3 – Creating the Plant and Deployment Models 3-23
The Deploy dialog box appears and displays the progress of the deployment.
This may take a few moments.
When complete, the progress displays 100% completed.
y
28. Click Close.
op
You will now deploy the second platform.
29. Right-click ProdPlatform and select Deploy.
C
ot
N
o
D
The Deploy dialog box appears. Notice that it is set to Cascade Deploy by default and that
nine objects will be deployed. This is because ProdPlatform hosts other objects.
y
op
30. Leave the default options and click OK.
When complete, the progress displays 100% completed. Notice that nine objects were
deployed.
C
ot
N
o
D
Wonderware Training
Lab 3 – Creating the Plant and Deployment Models 3-25
The Deployment view now shows all objects in the Galaxy have been deployed.
y
op
C
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
Section 3 – System Management Console 3-27
This section describes the overall functionality of the System Management Console (SMC). It
explains how to back up and restore using the Galaxy Database manager, and includes how to
create a new Galaxy from a backup file. It discusses how to use the ArchestrA Logger and Log
viewer, and explains how to use Platform Manager.
y
application infrastructure diagnostics by allowing the viewing of runtime status of some system
objects and the ability to perform actions upon those objects.
op
The console tree shows the items that are available in the console. Other snap-ins that may
appear below the ArchestrA SMC node include the Galaxy Database Manager, the Log Viewer,
and the DAServer Manager C
Use the System Platform Management Console shortcut to open the System Management
Console. The ArchestrA System Management Console appears.
ot
N
o
D
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 will depend upon the software installed:
Galaxy Database Manager (GR Node only)
Operations Integration Server Manager (OI Server or WinPlatform deployed)
Log Viewer (all Wonderware nodes)
Platform Manager (all Application Server nodes)
Other snap-ins (for example, Historian Server) will be available when other Wonderware
software is installed
y
op
C
ot
N
Each snap-in has its own toolbar, menu options, detail panel, and so on. The contents of these
o
items will change as you select different items in the console tree.
D
Security
For all ArchestrA administrative utilities, including Platform Manager, security is configured through
the ArchestrA IDE. By default, there is no security enabled for Platform Manager or any of the
other snap-ins.
Wonderware Training
Section 3 – System Management Console 3-29
All objects should be undeployed before beginning to restore a Galaxy. During the restore, no
clients can use the Galaxy Repository. If these conditions are not acceptable, you should restore
at a later time.
Galaxy Backup/Restore
You can back up your Galaxies so that if a Galaxy becomes corrupted, you can restore the Galaxy.
You can choose a backup file to overwrite an existing, corrupted Galaxy or to reproduce a Galaxy
in another Galaxy Repository.
The Galaxy Database Manager is automatically installed on every Galaxy Repository node.
y
than having to be selected for installation as in previous versions. The Simulator OI Server sends
data to attributes of instances configured for I/O automatic assignment in the Galaxy, the same
op
way that a PLC would. With it, you can develop and test a Galaxy before deploying it to your
production environment.
Log Viewer
C
You can use the ArchestrA Log Viewer to view messages logged to the ArchestrA Logger. The
ArchestrA Logger is a system service that records messages from ArchestrA enabled
components. For example, the ArchestrA Log Viewer records the date and time when ArchestrA
ot
When running an ArchestrA application, the Logger runs as a system service. The Log Viewer is a
Microsoft Management Console (MMC) snap-in that provides a user interface for viewing
D
messages reported to the Logger. The MMC is a host or container utility for the Log Viewer with its
own generic functions.
Note: If a problem occurs while running an ArchestrA application, always check logged messages
by using the Log Viewer prior to calling Technical Support.
The following commands are available from the Action menu when you select a platform or
engine in either the console tree or the details pane.
These commands are also available by right-clicking an item in either the console tree or the
details pane. The available commands are dependent 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 View menu when you select a platform in either
y
the console tree or the details pane.
op
C
ot
N
The ArchestrA Logger and Log Viewer are automatically installed when an ArchestrA component
is installed.
ArchestrA Logger - This is the background process that stores messages and events in
the system. This process occurs without any prompting from or interaction necessary from
o
the user. The logging process can be customized with the LogFlag Editor Snap-In utility.
The Logger is installed as a system service, and can be configured to be an Auto Service
D
or Manual Service. In either case, the logging process is always started when an
ArchestrA component begins functioning.
Log Viewer - This utility is used to view error and informational messages that are sent by
ArchestrA components. The look-and-feel and the format of the user interface can be
customized to suit individual needs.
Note: The Log Viewer displays error messages in red-highlighted stripes. These indicate
malfunctioning processes and should be resolved quickly. Warning messages are displayed in
yellow stripes. These indicate major events in the system.
Wonderware Training
Section 3 – System Management Console 3-31
y
op
C
ot
N
Using Bookmarks
o
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
D
y
the name of the message's bookmark by entering it in the box or selecting it from the list. Click Go
To. The Go To dialog box remains open. Use the Previous and Next buttons to go to the nearest
op
bookmarked message above and below, respectively. When you are finished searching, click
Close.
Note: You cannot go to bookmarked messages that are currently hidden by a filter. If you cannot
find the desired message, disable filtering and try again.
C
To Manage Bookmarks
On the View menu, click Bookmarks. In the Bookmarks dialog box, you can manage current
ot
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. For example, to rename a bookmark, select the
N
book, press F2 and enter the new name. Note that each bookmark must have a unique name, so
you cannot bookmark two messages with the same name.
To go to a bookmarked message, double-click it in the list or select it and click Go To. To remove
o
one or all bookmarks from your logged messages, select a message and click Remove, or
Remove All. To add a new bookmark, select the message you want to bookmark in the message
D
window and click Add. This function is comparable to a fast bookmark. Rename it by pressing F2.
When you are finished, 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.
Wonderware Training
Section 3 – System Management Console 3-33
Platform Manager
Platform Manager is a tool that provides access and control to the runtime status of all deployed
platform and engine objects in the Galaxy; it also allows for the opening of the Object Viewer
application. The tool is targeted to application developers and maintenance personal; operators
and other users of the Galaxy should use a graphical interface such as an InTouch application.
y
op
C
The Platform Manager software is installed as part of the Application Server Bootstrap service as a
snap-in to the ArchestrA System Management Console (SMC); access to the runtime Galaxy is
provided through the local WinPlatform object. This means that from any computer that has a
ot
WinPlatform deployed, you will have access and control to all deployed platforms and engines in
the Galaxy.
If the Galaxy has security enabled, Platform Manager will ask for login credentials; access to the
N
tool, as well as operations within the tool will be dictated by the permissions assigned to the user.
Key Functions
o
Platform Manager provides access to the following deployed objects from the Galaxy:
WinPlatform
D
AppEngine
ViewEngine
Platform Manager allows you to:
View the following information of deployed WinPlatform objects:
Platform Name – The name of the platform object
Node Name – The computer name where the platform is deployed to
Platform ID – The internal unique ID of the platform
Platform Status – Indicates the current status of the platform
Operations Status – Indicates the progress status for a command that is placed on
the platform
View the following information of deployed engine objects:
Engine Name – The name of the engine object
Engine Status – Indicates the current status of the engine
y
Running Off Scan – The object is running but not available for execution
op
Various transitional statuses between (for example, Shutting Down)
Important: The Remove Local Platform option effectively removes the deployed platform object
and all hosted objects. The configuration project database for the Galaxy will not be updated and
C
the corresponding objects will still show as deployed in the ArchestrA IDE.
ot
N
o
D
Wonderware Training
Section 4 – The Runtime Environment 3-35
This section describes the runtime environment of the Galaxy, explains communication between
automation objects’ attribute references, and introduces Object Viewer and Platform Manager
tools.
y
op
C
ot
Objects are run one at a time; for example, in the figure above, object B will not be run until object
A has finished. After all objects have finished, whatever remaining time is left on the scan is spent
on housekeeping tasks by the engine; after that, the engine goes idle until the end of the scan.
N
If, for whatever reason, objects take longer to execute and the end of the scan is reached (for
example, the running of complex scripts or too many alarms conditions exist), the engine will go
over the next scan to continue executing the current set of objects; the remainder of the last scan
is spent in housekeeping tasks or idle, or both. This is called a scan overrun and it could span
o
multiple scans. The AppEngine provides attributes to monitor if scan overruns have occurred:
Scheduler.ScanOverrun.Condition
D
Scheduler.ScanOverrunsCnt
Scheduler.ScanOverrunsConsecCnt
In general, objects are executed in the following order:
1. Device Integration objects, in alphabetical order.
2. Areas and Application objects; Application objects are run first, and then their hosting Area. By
default, they are executed in alphabetical order.
3. The AppEngine itself.
At any given scan, the objects are executed in the following order:
y
op
1. The Device Integration objects are executed first, in alphabetical order.
2. The Area objects, including their hosted Application objects are executed (by default) in
alphabetical order.
C
a.The Areas, in alphabetical order are: Area 1, Area 2 and then Area 3.
b.For each of the areas, the hosted Application objects are executed before their
corresponding Area object: X, Y, Z for Area 1; A, B, C for Area 2; and M, N, P for Area 3.
ot
Wonderware Training
Section 4 – The Runtime Environment 3-37
Attribute References
Access to runtime data in the deployed objects can be done either from other deployed objects in
the Galaxy, or from ArchestrA client tools, such as Object Viewer and InTouch. Communication
between computers handled by the WinPlatform objects deployed to each node and access to
runtime data is done through the local WinPlatform object; the location of the target object is not
required.
All automation objects provide data through their attributes; since an object has several attributes,
a reference to the specific looked-for attribute must be made. The reference to an attribute is
always the object name and the name of the attribute, separated by a dot:
<object name>.<attribute name>
Notice that the attribute reference does not includes the location of the object; this is automatically
handled by ArchestrA and the WinPlatform object.
y
op
C
ot
As soon as an attribute reference is submitted from Object Viewer or from a graphic in InTouch,
N
the local platform requests the value from the platform hosting the object; ArchestrA takes care of
handling the locations of all deployed objects. As long as there is network access between
computers, the real-time value is sent to the requested party.
The same behavior occurs when one object requests data from another object, object 1 will have a
o
Object Viewer
Object Viewer is a runtime tool that allows you to test, diagnose, and troubleshoot the Galaxy by
providing read and write access to all deployed automation objects across all computers in the
Galaxy. The tool is targeted to application developers and maintenance personal; operators or
other users of the Galaxy should use a graphical interface such as an InTouch application.
y
op
C
ot
The Object Viewer software is installed as part of the deployment of the WinPlatform object. This
N
means that from any computer that has a WinPlatform object deployed you will have access to all
deployed automation objects in the Galaxy.
You can open the Object Viewer tool from two places:
o
If the Galaxy has security enabled, Object Viewer will require a logged in user to allow (or not)
writing values to automation objects. The Galaxy also includes a specific security permission to
allow writing values to objects using Object Viewer; meaning that even if you have security
permissions to, for example, change a setpoint, you will also need this additional permission to do
so from Object Viewer.
Wonderware Training
Section 4 – The Runtime Environment 3-39
Key Functions
Upon opening Object Viewer, the currently logged in user from the ArchestrA IDE or the Platform
Manager is automatically logged in to the tool.
Object Viewer allows you to:
Browse the deployment model for all currently deployed automation objects
View a list of all the attributes in an automation object, including hidden attributes
View updated/changing values of attributes (see note below)
Write values to attributes
Organize attributes you frequently monitor in watch windows
Save watch windows in watch list files for quick access to frequently monitored attributes
Change the currently logged in user
Some of the parameters of an attribute that can be viewed with Object Viewer are:
Value – The value of the attribute
Timestamp – Indicates the date and time the attribute value or quality last changed, or
y
both
Quality – Indicates the quality of the current value of attribute; possible values are: Good,
op
Uncertain, Initializing, and Bad.
Status – Indicates the status of the last read or write operation on the attribute; possible
values are: OK, Pending, Warning, and several Error statuses
Security Classification – One of the seven permissions that can be assigned to an
C
attribute to allow users to write to it (for more information see Module 9, “Security
Overview”)
Locked – Indicates if the attribute is locked at configuration time; this makes the attribute
ot
read-only in runtime
Type – The ArchestrA data type of the attribute
N
Note: To minimize network traffic and resources used, Object Viewer does not display real-time
values for the attributes, instead it retrieves values at a constant speed of 1 second. This applies
only to attributes added to a watch window.
o
D
y
op
C
ot
N
o
D
Wonderware Training
Lab 4 – Using Object Viewer 3-41
Introduction
In this lab, you will use Object Viewer as a diagnostic tool to test your application objects and
modify their attribute values. You will then create, rename, and save watch lists and add attributes
to the watch lists.
Objectives
Upon completion of this lab, you will be able to:
Open Object Viewer from the ArchestrA IDE and the SMC
Add attributes to a watch list
Create and rename a watch list
Save a watch list
y
op
C
ot
N
o
D
Note: If you are performing this lab using a single-node network configuration, you will use
the GRPlatform for this step.
y
op
C
ot
The Object Viewer window appears and displays the ProdPlatform attributes.
N
o
D
Notice that the console tree is in the top-left pane, the attributes of the selected object in the
top-right details pane, and the watch window in the bottom pane. To see updated runtime
values, you will now add attributes to the watch window.
Wonderware Training
Lab 4 – Using Object Viewer 3-43
2. Click the Attribute Name column heading to sort the list based on the attribute names.
Note: You can click any column heading by which you would like to sort.
3. In the console tree pane, ensure that ProdPlatform is selected, and then in the details pane,
scroll down, and then right-click PlatformInfo and select Add to Watch.
y
op
C
ot
N
Alternatively, you can drag and drop attributes to add them to the watch window.
4. In the console tree pane, click GRPlatform and in the details pane, drag PlatformInfo to the
watch window.
y
op
C
ot
5. In the watch window, expand the Value column to view the entire full value of the attributes.
N
o
D
The PlatformInfo attribute displays the processor and operating system information of the
computer to which the platform is deployed.
6. Add GR.TimeOfLastDeploy to the watch window.
This attribute shows the date and time of the most recent object deployment in the Galaxy.
Wonderware Training
Lab 4 – Using Object Viewer 3-45
y
op
The Rename Tab dialog box appears.
C
8. In the Tab Name field, enter Platforms.
ot
N
o
D
9. Click OK.
The watch window tab now displays the new name.
Note: Adding the .xml file extension is optional. This allows you to edit the file with an XML
y
editor. Object Viewer does not require a file extension.
op
C
ot
N
o
D
Wonderware Training
Lab 4 – Using Object Viewer 3-47
y
op
C
ot
16. In the left pane, expand Platform Manager and select TrainingGalaxy.
Both platforms in the Galaxy are displayed in the right pane.
N
o
D
17. In the right pane, right-click ProdPlatform and select Launch Object Viewer.
Note: You can also select ProdPlatform in the right pane, and then on the toolbar, select
Launch Object Viewer .
Object Viewer reappears and displays the ProdPlatform attributes and the engine it hosts.
y
op
C
ot
N
o
D
Wonderware Training
Lab 4 – Using Object Viewer 3-49
y
op
C
ot
N
o
The Platforms watch list with the platform attributes you added earlier are now visible again.
y
op
A new tab appears at the bottom of the watch window.
C
ot
N
o
D
Wonderware Training
Lab 4 – Using Object Viewer 3-51
23. In the console tree pane, click AppEngine1, and then in the details pane, add the following
attributes to the watch window and adjust the column sizes to view your data:
ScanState
ScanStateCmd
Scheduler.ScanPeriod
y
op
C
ot
N
The ScanState attribute shows if the AppEngine1 is on scan. The ScanStateCmd attribute
allows you to set AppEngine1 on or off scan. The Scheduler.ScanPeriod attribute is the
period of time, in milliseconds, in which AppEngine1 will run all its hosted objects.
o
y
op
C
ot
N
o
D
Wonderware Training
Section 5 – Data Simulation 3-53
This section describes the OI Simulation Server and explains the configuration of an $OPCClient
to the OI.SIM.
Simulator OI Server
The Simulator OI Server (OI.SIM) is automatically installed on the Galaxy Repository node, rather
than having to be selected for installation as in previous versions. The Simulator OI Server sends
data to attributes of instances configured for I/O automatic assignment in the Galaxy, the same
way that a PLC would. With it, you can develop and test a Galaxy before deploying it to your
production environment.
Simulator is a reserved keyword for naming device integration objects. You can create a DI Object
named Simulator and configure it with a corresponding Server node, Server name (Device
integration application name), and at least one topic or Scan Group named Fast. Then, new
instances are automatically assigned to the Simulator in the topic or scan group named Fast.
y
To gather simulated I/O data, you need to make sure that all the I/O references of attributes in
op
instances all exist in the DI Object or Device Integration Server. Specifically, if connecting an
OPCClient instance named Simulator with the OI.SIM and an added Scan Group named Fast, it
connects with the OI.SIM automatically to provide simulated I/O data to any instances that are
assigned to the Fast scan group. It does not need to have I/O references added to the DI Object
and OI.SIM server.
C
Note that a new starter cab file (Default.cab) includes a DI Object named Simulator that is
configured to connect to OI.SIM.
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
Lab 5 – Configuring for Data Simulation 3-55
Introduction
In this lab, you will configure an instance of the $OPCClient and activate the OI.SIM Simulator.
You will connect the instance of the $OPCClient to the OI.SIM, and then will use Object Viewer to
monitor the connection status in runtime.
Objectives
Upon completion of this lab, you will be able to:
Configure an $OPCClient to the OI.SIM
Monitor the connection status to the OI.SIM
y
op
C
ot
N
o
D
y
op
C
ot
Wonderware Training
Lab 5 – Configuring for Data Simulation 3-57
5. On the Scan Group tab, in the Available scan groups area, click to add a scan group.
6. Name the group Fast and press Enter.
y
op
C
7. Click the Save and Close button to close the editor.
The Check In dialog box appears.
ot
y
op
C
ot
Wonderware Training
Lab 5 – Configuring for Data Simulation 3-59
y
Next, you will use the SMC to check the activation status of the OI.SIM.
op
14. In the SMC, expand Operations Integration Server Manager\TrainingGalaxy\
ProdPlatform.
Note that OI.SIM.1 has been activated automatically.
C
ot
N
o
D
y
op
C
ot
Wonderware Training
Lab 5 – Configuring for Data Simulation 3-61
19. From the Attribute Name column, add the following attributes to the watch window:
ConnectionStatus
ScanState
ScanStateCmd
y
op
C
ot
The ConnectionStatus attribute displays the communication status between the topics
N
configured in the device integration object and the topics in the Device Integration Server.
20. Add the ScanGroupList attribute to the watch window.
The Array for Simulator.ATTRIBUTE(ScanGroupList) dialog box appears.
o
You will now configure the array to display the entire array dimension.
21. In the Enter an array index field, enter -1.
y
op
C
24. Click Go.
ot
Wonderware Training
Lab 5 – Configuring for Data Simulation 3-63
The $Sys$Status item for the scan group reports the communication status between the OI
Server and the PLC associated with the scan group. The OI.SIM is a data simulator, so does
not have an actual connection to a PLC. This value will always be True.
26. Right-click the empty area in the watch window and select Save.
y
27. Minimize Object Viewer.
op
C
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
y
op
Module 4 – Application Objects
C
Section 1 – Introduction to Application Objects 4-3
ot
Module Objectives
Introduce Application Objects
Explain and configure Attributes in objects
Describe propagation of changed templates to derived objects
Explain and configure a containment relationship between objects
y
op
C
ot
N
o
D
Wonderware Training
Section 1 – Introduction to Application Objects 4-3
This section describes the application objects in the Galaxy and discusses the basic configuration
of the $UserDefined object.
Application Objects
Application Server is designed as an Object Oriented Application. The objects are fundamental to
Application Server. Application Objects can be configured to do a number of things in Application
Server. They can store process data in the Historian. Application Server provides the following
Application objects:
AnalogDevice
DiscreteDevice
Sequencer
SQLData
y
UserDefined
op
AnalogDevice Object
The AnalogDevice object can act as either a basic analog input device (with optional output) or as
an analog regulator device that provides an external representation of a Proportional-Integral-
C
Derivative (PID) controller that exists elsewhere, typically a Programmable Logic Controller (PLC)
or a Distributed Control System (DCS).
ot
DiscreteDevice Object
The DiscreteDevice object is a general purpose Application Object that represents a large class of
physical equipment common in manufacturing, such as pumps, valves, motors, and conveyors.
N
These devices have two or more discrete physical states (for example, Open, Closed, and
Traveling). The actual state of a device is monitored via a combination of discrete inputs and a
device can be optionally controlled using a combination of discrete outputs.
o
Sequencer Object
D
The Sequencer object is an ArchestrA application object that lets you configure, execute, and
manipulate a sequence of operations associated with ArchestrA attributes, within an application.
You can use it to automate:
repetitive manufacturing procedures with a finite number of steps
supervisory processes with a finite number of steps
SQLData Object
The SQLData object provides an interface to a Microsoft SQL Server running on any computer in
the network. You can configure the SQLData object to either connect to an existing SQL Server
database table or you can create a new SQL Server database and table(s).
UserDefined Object
The UserDefined object provides the basic functionality you need to develop an ArchestrA
supervisory application. The UserDefined object provides this functionality as configurable
attributes, scripts, and graphics. For this reason, it will be used as the template for many objects in
the application used in this training course.
In the following image there is a field device. In this example, you can acquire either Boolean or
Analog values from the field device:
For the Boolean values, there are a couple of attributes where we save the input source
and the input value. The input source will save the I/O address of that data point and the
input value will save the actual value. The object saves the data to a discrete field
attribute.
For Analog values, we also have a couple of attributes related; one that saves the I/O
address, which is the input source and one that saves the value, which is the input value.
Since these are analog values, they can be scaled and saved in an analog field attribute.
Scaling needs to be configured with the Engineering Units Maximum and Minimum and
the Raw Values Maximum and Minimum.
y
op
C
ot
N
o
D
Note: The Input/Output direction in Application Server is opposite of that in the PLC.
In Application Server, plant data comes “in” and settings go “out” to the PLC.
Wonderware Training
Section 1 – Introduction to Application Objects 4-5
You can configure Attributes as an Analog or Discrete type with one of the following access
modes:
Input: The Attribute only accepts input. The Attribute is updated based on the value that is
read from the configured input address.
InputOutput: The 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 Attribute only sends output. The Attribute writes to the specified output
destination. The Output mode supports the following categories:
Calculated
Calculated retentive
User writeable
Object writeable
The Attribute supports the following data types:
Boolean
y
Integer
Float
op
Double
String
Time
ElapsedTime
C
InternationalizedString
The Attribute provides the enabling and configuration for the following functionality:
ot
Statistics
D
The UserDefined object is an object that you can use to create customized objects. You can use
the UserDefined object as a template, or as a container.
y
as State Labels, State alarm, and Statistics (Open/Close time).
XV100b - Discrete Attribute - InputOutput to a solenoid valve configured with options such
op
as State Labels, State alarm, Statistics (Open/Close time).
Wonderware Training
Section 2 – Object Attributes 4-7
This section describes the Attributes tab and the features of an attribute. It also discusses the
configuration options available for application objects, including automatic and manual I/O
binding capabilities.
y
scripting and attribute configuration functions.
On the Attributes tab, you can define the following initial information and parameters for the
op
attribute:
Add a new attribute to an object.
Name the attribute and provide a description.
Configure its data type.
C
For a Boolean data type, you can specify different text strings for the “False” label and
“True” label. For example, if a Boolean attribute is associated with the status of a motor,
you can specify the states as “Stopped” and “Running.” Text boxes appear for you to enter
ot
Set whether the new attribute is an array and how many elements are in the array.
D
y
About the Attributes Tab
op
If the object you are editing does not have any attributes defined, the Attributes tab will be empty,
except for buttons for adding, filtering, duplicating, deleting, and viewing attributes and attribute
features. C
You can activate various features, such as I/O, History, State alarm and Statistics. When you add
an attribute to an object, information about the attribute is shown.
ot
N
o
D
When you add an attribute to an object, the Attributes tab divides into three sections. The left side
of the page lists attributes, the top right shows information about the currently selected attribute,
and the bottom of the right side contains fields for configuring features.
Wonderware Training
Section 2 – Object Attributes 4-9
y
template is checked in.
You can check in a template with an attribute configured with a new feature with the same
op
name as an existing feature on an attribute in a derived object. The template definition of
the feature overrides the feature in the derived object.
If you remove a feature on an attribute from a template, that feature is removed from any
child object. You see the change when you check in the template.
C
Using the I/O Feature
ot
The I/O feature allows you to configure all aspects of data input and output for an attribute.
You can configure I/O type and you can specify input sources and output destinations. The I/O
types you can specify are:
N
Read (Input)
Read/Write (InputOutput)
Write (Output)
o
You can also configure advanced properties. The attribute’s data type and I/O type determine
what Advanced I/O properties are available.
D
The data quality of the configured attribute is set to Bad when reads fail because of
communication errors or datatype conversion failures.
While the extended object is On Scan, it behaves as follows: If an external set (for example, from a
user) to the configured attribute causes either the value or quality to change, then a write of the
configured attribute’s value to the destination occurs during the next execute phase.
The quality must be Good or Uncertain for a write to occur. For writes to occur because of a quality
change, the quality change must be a transition from Bad or Initializing to Good or Uncertain. The
attribute called WriteValue is publicly exposed.
When the configured object is Off Scan, quality is always Bad and user sets are accepted.
y
You can configure Writeable and Calculated attributes of the following data types with a history
op
feature:
Float, Double (stored as a Float)
Integer
Boolean
C
String stored as Unicode, 512 character limit
Custom Enumeration stored as an Integer
ElapsedTime stored as seconds
ot
Select the Limit alarms feature to add and configure a Limit Alarm on an attribute of Integer, Float,
or Double data type. You can add a Limit alarm feature to a template or instance. If added to a
template attribute, the Limit alarm feature is automatically locked in derived objects. Limit alarm
features cannot be added to attribute arrays.
o
You can enable up to four categories of Limit alarms. When enabled, alarms will be triggered when
D
Wonderware Training
Section 2 – Object Attributes 4-11
y
You can enable up to two categories of Deviation alarms. When enabled, an alarm will be
op
triggered when the attribute level deviates from a target value by a configured amount.
Major: The major alarm deviation tolerance
Minor: The minor alarm deviation tolerance
C
Using the State Alarm Feature
Select the State alarm feature to add and configure a State alarm on an attribute of Boolean data
type. You can add a State alarm feature to a template or instance. If added to a template attribute,
ot
the State alarm feature is automatically locked in derived objects. State alarm features cannot be
added to attribute arrays.
N
the Bad Value alarm feature is automatically locked in derived objects. Bad Value alarm features
cannot be added to attribute arrays.
In the Alarm message box, you can browse and select an existing attribute or you can type a text
string as an alarm message. This text string appears in the InTouch alarm view.
Specify a Priority for this alarm, a numeric value for the urgency of the alarm. Valid values are 1
through 999, with 1 being the most urgent.
y
Using I/O Auto Assignment
op
Instead of configuring I/O references manually, or writing scripts to set them at runtime, you can
use I/O auto assignment. Manual configuration of I/O references can be time consuming. Scripting
these references eliminates the issues of manual configuration, but can significantly increase the
time needed for deploying objects. With I/O auto assignment, you do not need to check out
C
individual objects to configure I/O references, and you do not experience the runtime penalties
associated with scripting.
ot
Note: Note: I/O auto assignment is the default setting for application and other system objects,
such as area objects. Device Integration (DI) objects must be manually configured.
When you add input or output attributes to an area or application object in the Attributes tab of the
N
Object Editor, the default setting prepares these attributes for I/O automatic assignment. The auto
assignment reference appears in the I/O section of the Attributes tab if you have enabled the I/O
attribute feature. The default string for an input reference is:
o
<IODevice>.[ObjectName].[AttributeName].InputSource
where [ObjectName] is the hierarchical name of the application or system object, and
D
Wonderware Training
Section 2 – Object Attributes 4-13
For example, assigning the object to the scan group “Fast” under DI object “OPC001” will change
the reference to:
OPC001.Fast.Mixer.Tank.Inlet.InputSource
Important: Do not lock InputSource or OutputDest attributes when using I/O auto assignment. If
either InputSource or OutputDest attributes, or both, are locked in the parent template, the
attributes cannot be updated with the resolved reference when the object is deployed, and the
runtime value will be “---Auto---”.
I/O auto assignment is configured in the IO Devices view. Use this view to associate application
and system objects with DI objects and scan groups.
Scan groups are contained by DI objects and help categorize devices that are associated with
them on the basis of how often their I/O points are scanned.
y
and system objects that are linked to DI object scan groups. Manually configured references are
not displayed in the IO Device Mapping view, nor are attributes associated with application and
op
system objects that have not yet been assigned to a scan group. The attributes shown in this view
are determined by what is selected in the IO Devices view.
When you initially open the IO Device Mapping view after starting the IDE, the table will scroll so
the far right column is in view.
C
Selecting a DI object in the IO Devices view lists I/O auto assignment attributes for all
objects linked to all scan groups under it.
Selecting individual scan groups restricts the scope of the information displayed in the IO
ot
Device Mapping view to the objects that have been linked to the selected scan groups.
Selecting individual application or system object further restricts the scope of attributes
displayed to only those associated with the selected object.
N
Note: You can select multiple items in the IO Devices view. Selected items can be at
different hierarchical levels. Selecting a subordinate object will exclude non-selected objects
within the device hierarchy, even though the parent object is selected.
o
In the IO Device Mapping view, you can view and validate I/O references for each automatically
D
generated attribute, and you can override the automatically generated I/O references. As is the
case in the IO Devices view, you do not have to check out objects to change their I/O assignments.
Writeability
This drop-down list can be set to one of four possible options: Calculated, Calculated retentive,
Object writeable, and User writeable. The following are descriptions of each of these options:
Calculated: Permits only scrips within the same object to write to the attribute. Calculated
attributes are now saved across engine restarts. If you select Calculated for an attribute,
only scripts running on the same object can write to the attribute.
Calculated retentive: Permits only scripts within the same object to write to the attribute.
Calculated retentive attributes are saved across engine restarts.
Object writeable: Permits other objects to write to this attribute, in addition to being set by
scripts within the same object. Object writeable attributes are saved across engine
restarts. The category in not user writeable.
User Writeable: Permits other users to write to this attribute, in addition to being set by
scripts and objects throughout the system. User writeable attributes are saved across
engine restarts. The can be locked during configuration. If locked, they are read only.
y
op
C
ot
N
o
D
Wonderware Training
Lab 6 – Modeling Meters 4-15
Objectives
Upon completion of this lab you will be able to:
Configure and use object templates
Create instances of application objects
Acquire data from an OI Simulator
y
Monitor attribute data in Object Viewer
op
C
ot
N
o
D
y
op
C
ot
N
o
Wonderware Training
Lab 6 – Modeling Meters 4-17
4. Move the $Meter derived template object to your Training\Project template toolset.
y
Now, you will configure the $Meter template.
op
5. Double-click the $Meter template to open its configuration editor.
6. Click the Configure Wizard Options button to close the wizard option panes.
C
ot
N
o
D
7. On the Attributes tab, click the Add button to add a new attribute.
8. Configure the new attribute as follows:
Name: PV
Data type: Float
Writeability: Object writeable
y
op
C
ot
The Float data type selection allows the object to store single-precision floating-point
numbers, when 6–7 significant digits are needed. Object writeable allows other objects to
N
Wonderware Training
Lab 6 – Modeling Meters 4-19
11. Click the Save and Close button to close the editor.
The Check In dialog box appears.
12. In the Comment field, enter Meter.PV and click OK.
The Check In dialog box reappears with an Object 1 of 1 completed message.
y
op
13. Click Close.
C
Create Additional Templates and Instances
Now, you will derive additional templates from the $Meter template. These new templates will
ot
Next, you will use the Template Toolbox and the Model view, to create instances of Level and
Temperature.
17. In the Project toolset, right-click the $Level template and select New | Instance.
y
op
18. Rename the new instance L1.
C
In the Model view, the new instance appears under the Unassigned Area folder.
19. In the Model view, assign the L1 instance to the Production area.
ot
N
o
D
Wonderware Training
Lab 6 – Modeling Meters 4-21
20. In the Project toolset, right-click the $Temperature template and select New | Instance.
In the Model view, the new instance appears under the Unassigned Area folder.
21. Rename the new instance T1 and assign it to the Production area.
y
op
22. On the ArchestrA IDE View menu, click IO Devices.
C
ot
N
o
The IO Devices pane opens on the right side of the ArchestrA IDE.
D
y
The IO Device Mapping pane opens in the center pane of the ArchestrA IDE at the bottom.
op
C
ot
N
o
D
Wonderware Training
Lab 6 – Modeling Meters 4-23
y
op
C
26. Right-click the instances and select Deploy.
ot
N
o
D
The Deploy dialog box appears. By default, the system will set the initial scan state to On
Scan as soon as the objects are deployed.
y
op
27. Click OK to accept the default settings.
When complete, the progress displays 100% completed.
C
ot
N
o
D
Wonderware Training
Lab 6 – Modeling Meters 4-25
Notice that the yellow boxes next to the L1 and T1 have disappeared, indicating a successful
deployment.
y
op
View the Meter Data in Runtime
Now, you will return to Object Viewer to view the attribute values in runtime.
C
29. Click L1, and then right-click L1 and select View in Object Viewer.
ot
N
o
D
30. Select L1, and then in the Simulator watch list, add the following attributes:
PV
PV.InputSource
31. Repeat the previous step to add the following attributes for T1:
PV
PV.InputSource
When the mixer is running, observe the attribute values changing in real time. There is nothing
y
wrong if the numbers are static for a few moments.
32. Expand the Value column to view the full value of the input sources.
op
C
ot
These values represent where the data is coming from for each of the attributes.
N
33. Right-click the blank area of the watch window and select Save to save the watch list.
o
D
Wonderware Training
Section 3 – Change Control and Propagation 4-27
This section describes attribute locking and unlocking. It also discusses how template changes
can propagate to previously derived objects.
y
op
C
ot
N
o
D
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
don't 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
Locking an attribute prevents changes to that attribute on derived templates and instances. This
helps to establish standards in the Galaxy.
To lock a Template attribute, you select the desired Template in the ArchestrA IDE and start its
editor. Next, you enter a value in an attribute field in the object's editor, and then click the locking
mechanism for that attribute. Some editors may have lock icons associated with certain edit fields,
but this possibility is within the scope of the developer of the object's editor. Save and close the
object editor.
The locked attribute in any derived templates and instances created from this template is locked
and unavailable. To test this, you can derive a new template or create an instance from the original
template, and then check the new object's editor. The locked attribute is unavailable for editing.
Unlocking an Attribute
Unlocking an attribute releases the locking control only one level down.
y
op
C
ot
N
o
D
Notice that unlocking an attribute within the $Valve template releases the locking control of the
attribute within the $Inlet and $Outlet templates, otherwise known as ‘locked in me’, meaning that
they will still stay locked within the template until manually unlocked.
Wonderware Training
Section 3 – Change Control and Propagation 4-29
However, if you unlock an attribute within a template that has instances derived from it, the
previously locked attribute is now unlocked within the instances. Hence, instances can only be
unlocked or locked in a parent object.
y
op
C
To unlock a Template attribute, you select the desired Template in the ArchestrA IDE and start its
editor. Next, you click the locking mechanism for the locked attribute in the object's editor. Some
ot
editors may have lock icons associated with certain edit fields, but this possibility is within the
scope of the developer of the object's editor. Save and close the object editor.
N
every item in the group should be locked. You still have the option of locking the group and then
unlocking any specific extension.
D
When this occurs, the group lock icon will appear as Indeterminate . This icon indicates
different lock states for individual options in the group.
y
op
C
ot
N
o
D
Wonderware Training
Lab 7 – Configuring Change Control and Propagation 4-31
Introduction
In this lab, you will control the changes made to derived objects by locking attributes. Additionally,
you will use this feature to propagate changes from templates to existing derived objects. This
practice helps establish standards in the Galaxy, such as standards for engineering units and
scaling values.
Objectives
Upon completion of this lab, you will be able to:
Control changes to derived objects by locking attributes
y
Propagate changes from templates to derived objects
op
C
ot
N
o
D
y
op
C
2. Double-click the $Meter template to open its configuration editor.
3. Verify that the PV attribute is selected.
ot
N
o
D
Wonderware Training
Lab 7 – Configuring Change Control and Propagation 4-33
6. In the Enable I/O scaling area, Maximum: Raw value field, enter 4095.0, and then click the
lock icon to lock the field.
y
op
C
7. Configure the other Enable I/O scaling parameters as follows:
ot
The EU value and Extended EU range parameters are being left unlocked so they can be set
in the derived templates.
8. Save and close the configuration editor.
9. In the Check In dialog box, Comment field, enter Locking Raw Values.
y
op
11. Click Close. C
Configure the Level and Temperature
Next, you will configure the attributes of the Level and Temperature templates.
ot
12. On the Derivation tab, double-click the $Level template to open its configuration editor.
13. Verify that the PV attribute is selected.
N
o
D
14. In the Description field, enter Level Indicator and press Enter.
You must press Enter or click elsewhere for the lock icon to appear.
15. Click the lock icon to the right of the field to lock the description.
Wonderware Training
Lab 7 – Configuring Change Control and Propagation 4-35
16. On the right side of the pane, in the Eng units field, enter Gallons and press Enter, and then
lock the field.
y
it. This is because it was enabled at the $Meter level and the setting was inherited.
18. Configure the Enable I/O Scaling parameters as follows:
op
Minimum: EU value: locked
Minimum: Extended EU range: locked
C
ot
N
o
The EU value and Extended EU range parameters are now being set and locked, since there
will be no further derived templates.
D
y
op
22. Click Close.
23. On the Derivation tab, double-click the $Temperature template to open its configuration
editor.
24. Verify that the PV attribute is selected.
C
ot
N
o
D
25. In the Description field, enter Temperature Indicator and press Enter.
26. Click the lock icon to the right of the field to lock the description.
Wonderware Training
Lab 7 – Configuring Change Control and Propagation 4-37
27. On the right side of the pane, in the Eng units field, enter Deg F and press Enter.
28. Lock the field.
y
op
C
ot
32. In the Check In dialog box, Comment field, enter Locking Attribute Properties.
33. Click OK.
The Check In dialog box reappears with an Object 1 of 1 completed message.
o
Some Temperature indicators may have different ranges, but the desired default ranges are 250
for the Maximum: EU value and 255 for the Maximum: Extended EU range. The initial edit
pushed the default when you locked Maximum: EU value and Maximum: Extended EU range,
but now they need to be unlocked to allow changes.
35. On the Derivation tab, double-click the $Temperature template to open its configuration
editor.
36. In the I/O area, expand Advanced.
37. Configure the Enable I/O Scaling parameters as follows:
y
op
C
38. Save and close the configuration editor.
39. In the Check In dialog box, Comment field, enter Unlocking Attribute Properties.
ot
Wonderware Training
Lab 7 – Configuring Change Control and Propagation 4-39
y
op
The Simulator provides raw values within a fixed EU range of 0 – 20. L1 and T1 have EU
ranges of 0 to 4095, so the values do not match the expected EU values. This will be
addressed in a subsequent lab.
46. Minimize Object Viewer.
C
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
Section 4 – Containment 4-41
Section 4 – Containment
This section describes containment with templates and application objects, and explains different
modeling approaches. It also discusses the naming conventions of contained objects.
y
Contained Name
Hierarchical Name
op
Name Description
Tagname The unique name of the individual object. For example, Valve1.
C
Contained Name The name of the object within the context of its container object. For example, the
object whose Tagname is Valve1 may also be referred to as Tank1.Outlet, if Tank1
contains it and it has the contained name “Outlet.”
Hierarchical Name Hierarchical names that are fully-qualified names of a contained object include the
ot
“Tank1.Outlet”
“Mixer1.Tank.Outlet”
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.
Note: Objects can only contain objects like themselves. For example, ApplicationObjects can only
be contained by other ApplicationObjects. Areas can only contain other Areas.
ApplicationObject Containment
ApplicationObjects can be contained by other ApplicationObjects. This provides context for the
contained object and a naming hierarchy that provides a powerful tool for referencing objects.
An example of a containment hierarchy is a mixer that contains the following objects:
y
2 Inlet Valve
Agitator
op
Outlet
C
ot
N
o
D
Wonderware Training
Section 4 – Containment 4-43
To enable referencing and flexibility within scripting, these objects can be referenced in several
different ways. Each object has a unique Tagname, such as:
Agitator = Agitator_001
Inlet1 = Inlet1_001
Inlet2 = Inlet2_001
Outlet = Outlet_001
y
op
C
ot
N
o
D
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 Mixer_001, the contained names are:
Mixer_001.Agitator
Mixer_001.Inlet1
Mixer_001.Inlet2
Mixer_001.Outlet
Additionally, you can use containment references in scripts such as:
Me.Outlet: Allows a script running within the parent object to generically reference its child
outlet instance.
MyContainer.Inlet1: Allows a script running in any of the children instances to reference
another child instance named Inlet1 that belongs to the same parent.
Note: Be careful renaming contained objects. References from other objects to the object being
renamed are not automatically updated with the new name. You must update the references.
Objects with broken references receive bad quality data at runtime.
To rename an object's contained name, select the object in an Application view: Model,
Deployment, or Derivation. On the Edit menu, click Rename Contained Name. Enter a new
contained name. All IDEs connected to the Galaxy show the object's new contained name. You
y
can also right-click an object and select Rename Contained Name.
op
Containment and the Derivation View
The Derivation View does not show containment relationships. It shows templates and instances
with regard to containment in the follow ways:
C
Non-contained instances show their tagnames
Contained instances show their tagnames and hierarchical names
Non-contained templates show their object name
ot
Renaming can be done on an instance's tagname and contained name. A template only has a
template name.
It is also important to note that adding or removing an element to/from a container at the template
o
Wonderware Training
Lab 8 – Modeling the Mixer 4-45
Introduction
In this lab, you will configure analog and discrete attributes in a series of contained $UserDefined
objects to model a mixer device. You will also use the I/O Binding to map attributes and build
references. You will use the Simulator object you created in a previous lab to provide the
connection to live values from the Simulator. These are only simulated values for rapid
prototyping purposes, not actual simulated process data.
Objectives
Upon completion of this lab, you will be able to:
Create a containment relationship using templates
Create instances of contained objects
y
View the attribute data of contained objects in Object Viewer
Use the Area model to handle I/O assignments
op
C
ot
N
o
D
y
op
C
2. Rename the derived template $Mixer.
ot
N
o
D
Wonderware Training
Lab 8 – Modeling the Mixer 4-47
y
op
4. Select the following derived template objects from the previous lab and move them to the
$Mixer template to create a contained mixer object:
C
$Level
$Temperature
ot
N
o
D
y
op
6. Double-click the $Valve template to open its configuration editor.
C
7. On the Attributes tab, click the Add button and name the new attribute OLS, and then
press Enter.
ot
8. In the Description field, enter Open Limit Switch and press Enter, and then lock the field.
N
o
D
Wonderware Training
Lab 8 – Modeling the Mixer 4-49
9. With the OLS attribute selected, configure the attribute parameters as follows
(leave all other attributes as default):
y
op
C
ot
N
10. Click the Add button and name the new attribute CMD, and then press Enter.
o
11. In the Description field, enter Valve Command and press Enter, and then lock the field.
D
12. With the CMD attribute selected, configure the attribute parameters as follows
(leave all other attributes as default):
y
op
C
ot
N
o
13. Save and close, and then check in the object with an appropriate comment.
D
Wonderware Training
Lab 8 – Modeling the Mixer 4-51
15. Using the $Valve template, create three new derived templates named:
$Inlet1
$Inlet2
$Outlet
y
op
C
ot
Now, you will create the motor template that will be used later to create the agitator and pumps.
17. Create another $UserDefined derived template named $Motor.
18. Move the new template to the Training\Project toolset.
o
D
19. Open the $Motor template and create an attribute named CMD.
20. In the Description field, enter Command and press Enter, but leave it unlocked.
21. Configure the attribute as follows:
Attribute Data
Writeability ‘False’ label ‘True’ label I/O
Name Type
CMD Boolean User writeable Stop locked Start locked Read/Write
(default) (default) (default)
y
op
C
ot
N
o
D
Wonderware Training
Lab 8 – Modeling the Mixer 4-53
y
op
C
ot
N
25. Save and close, and then check in the object with an appropriate comment.
o
y
28. Open the $Agitator configuration editor.
29. For the CMD attribute, change the Description to Agitator Command and lock the field.
op
C
30. For the PV attribute, change the Description to Agitator State and lock the field.
ot
N
o
D
Wonderware Training
Lab 8 – Modeling the Mixer 4-55
Data
Name Description Writeability Eng units I/O
Type
Speed.PV Agitator Speed locked Float Object writeable RPM locked Read
(default)
Speed.SP Agitator Speed Setpoint locked Float User writeable RPM locked Write
(default) (default)
y
op
C
ot
N
o
D
y
32. Save and close, and then check in the object with an appropriate comment.
op
Create the Pump Templates C
Now, you will derive templates from the motor template, which you will use to create pumps.
33. Using the $Motor template, create two new derived templates named:
$Pump1
ot
$Pump2
N
o
D
Wonderware Training
Lab 8 – Modeling the Mixer 4-57
36. For the PV attribute, change the Description to Pump 1 State and lock the field.
37. Save and close, and then check in the object with an appropriate comment.
y
38. Open the $Pump2 configuration editor.
39. For the CMD attribute, change the Description to Pump 2 Command and lock the field.
op
C
40. For the PV attribute, change the Description to Pump 2 State and lock the field.
ot
N
41. Save and close, and then check in the object with an appropriate comment.
o
D
y
op
C
43. Right-click $Mixer and select New | Instance.
ot
N
o
D
Wonderware Training
Lab 8 – Modeling the Mixer 4-59
y
op
Apply I/O Binding
Now, you will assign the instances to their I/O data source to autobind their I/O references to their
proper data points. You will first have to undeploy the objects because you cannot change the
C
autobind assignment of an object while the object being assigned is deployed.
46. Select Line1 and Line2, and then right-click and select Undeploy.
ot
N
o
D
y
50. Expand Mixer100.
op
Notice that all the instances you created to build the mixer have a warning icon, indicating they
do not have an I/O connection.
C
ot
N
o
D
Wonderware Training
Lab 8 – Modeling the Mixer 4-61
51. Collapse Mixer100 view, and then select Line1 and Line2.
52. Drag Line1 and Line2 to the IO Devices pane to Simulator\Fast.
This assignment is to autobind their I/O references to their proper data points.
y
op
Notice that the warning overlay icons have disappeared. This is due to the autobinding
feature.
Now, you will verify the references created using I/O Binding.
C
53. In the Deployment view, expand Mixer100.
54. Deploy Line1, Mixer100 and all its contained objects, and Line2.
ot
N
o
D
y
op
55. Leave the default options and click OK.
When complete, the progress displays 100% completed.
C
ot
N
o
D
Wonderware Training
Lab 8 – Modeling the Mixer 4-63
The Deployment view now displays that Line1, Line2, and all objects in the containment
relationship have been deployed.
y
op
57. Click Mixer100, and then right-click Mixer100 and select View in Object Viewer.
58. Load the watch list you saved earlier, if necessary.
C
59. Add a new watch window and rename the tab Mixer100.
60. Add the following attributes to the watch window:
Level_001.PV
ot
Temperature_001.PV
Agitator_001.CMD
Agitator_001.PV.Msg
N
Agitator_001.Speed.PV
Agitator_001.Speed.SP
Inlet and Outlet CMDs and OLS.Msgs
o
As this is all data from the Simulator data source, the data is not interactive and changing any
value will have no impact.
61. Save the watch list.
62. Minimize Object Viewer.
y
op
C
ot
N
o
D
Wonderware Training
y
op
Module 5 – Device Integration
C
Section 1 – Device Integration Servers 5-3
ot
Module Objectives
Introduce OI Servers
Describe the DDESuiteLinkClient
Explain attribute referencing and I/O referencing
Explain autobind capabilities of object attributes
Configure redundancy for DI Objects
y
op
C
ot
N
o
D
Wonderware Training
Section 1 – Device Integration Servers 5-3
y
op
C
The communication between all these components is done through different protocols:
ot
Communication between device integration objects in the Galaxy and external drivers
(Windows applications or services) is accomplished by the DDE, SuiteLink, or OPC
protocols
The drivers (for example, OI Servers) communicate with the controllers through the
o
OI Servers
The OI Server Manager is a part of the SMC suite of utilities. It enables the configuration,
diagnosis, activation, or deactivation of a local OI Server or a remote OI Server located on a
different node from the OI Server Manager.
You can open multiple instances of the OI Server Manager at the same time; however, you can
only use the first instance to create device hierarchies and configure an OI Server. In all other
instances of the OI Server Manager hierarchy and configuration settings are set to read-only.
y
op
C
ot
Server Groups
N
A server group comprises one or more server instances that use the same OI Server protocol,
such as a Modbus-MBTCP. When you install a specific OI Server on a computer, a server group
and default server instance are automatically created for that OI Server in the OI Server Manager.
Since there is a limit of one server group per OI Server per computer node, that server group
o
for. For the purpose of this course, the MBTCP is optimized and is contained in the Operations
Integration Supervisory Servers folder.
Server Instances
Each server instance has its own configuration and diagnostics, can be activated and deactivated
separate from all other server instances, and appears as a separate application to external clients.
When you install an OI Server on a computer, a server group and a default server instance are
automatically created for that OI Server in the OI Server Manager. The name of the default server
instance is based on the short name of the OI Server installed. For example, for the Wonderware
Simulation OI Server, the default server instance is named OI.SIM.1. All server instance names
follow this basic format.
The middle part of a server instance name becomes the application name that external clients will
use to access OI Server data. For example, if a server instance is named OI.SIM_0001.1, the
Wonderware Training
Section 1 – Device Integration Servers 5-5
corresponding application name will be SIM_0001. This middle part of the server instance name is
used in the InTouch runtime client, WindowViewer, to connect to this data source.
y
configuration parameters see your OI Server-specific documentation.
Using the OI Server Manager, you can also configure a set of common or global parameters for
op
each OI Server. For example, the IP address of the device you are connecting to.
interval of 1,000 milliseconds. If you configure multiple device groups with different update
intervals, the client application can receive data at various intervals.
Smaller update intervals quicken the turnaround for data changes and a increase overhead
N
because a large amount of data is being transmitted between the device and the OI Server. Large
update intervals slow turnaround for data changes.
Defining device items provides a more user-friendly way to name data in the device. Defining
device items is optional, unless you will be taking advantage of the autobind capabilities of object
D
attributes. Use device items to access data in the OI Server and devices connected to the OI
Server. Device items consist of two pieces: a name and an item reference. After it is defined in the
OI Server, you can access it in the client program either through item name or the item reference.
The device Item name is an alternative name for the item reference. It is an alias, or a label, for the
data in the device. You can use this label instead of the item reference when you create the client
application.
The item reference identifies data in the device. The item reference is a PLC memory reference.
Each device’s memory reference can have a different format. For more information, see your OI
Server specific documentation. The actual item reference can be entered as the device Item
name. In this case, the item reference value can be left empty.
You can add device items while the OI Server is active, and these new items are immediately
available to client applications.
You can make changes to items while the OI Server is active. Changes take effect immediately.
OPC clients that are already connected to the item are not affected until they release and re-
acquire the item.
y
op
C
ot
N
o
D
Wonderware Training
Lab 9 – Configuring the OI Server 5-7
Introduction
In this lab, you will use the Operations Integration Server Manager in the SMC. You will configure
the Modbus OI Server to connect to the PLC simulator that provides PLC data throughout the
remainder of this training course. As a part of this configuration, you will import aliases for the
device items through a .csv file.
Objectives
Upon completion of this lab, you will be able to:
Configure the Operations Integration Server Manager using the SMC
Configure an OI Server using the SMC
Activate and deactivate an OI Server using the SMC
y
op
C
ot
N
o
D
y
op
C
ot
Wonderware Training
Lab 9 – Configuring the OI Server 5-9
y
op
C
4. Right-click PORT1 and select Add ModbusPLC Connection.
ot
N
o
D
y
op
C
6. In the Network address field, enter the node name of the computer where the PLC simulation
ot
Note: This will be a remote computer if you are using a two-node architecture, or your
development computer if you are using a single-node architecture.
N
o
D
Wonderware Training
Lab 9 – Configuring the OI Server 5-11
y
9. Rename the topic to Topic1.
op
C
ot
y
op
C
ot
N
o
D
Wonderware Training
Lab 9 – Configuring the OI Server 5-13
y
op
C
ot
N
o
D
Notice that the red error icon next to OI.MBTCP.1 has changed to a green check mark when
the OI Server is running, and Diagnostics now appears.
y
op
C
ot
N
Wonderware Training
Section 2 – Device Integration Objects 5-15
This section describes DI objects, explains the configuration of a DI object to an OI Server, and
discusses how to monitor the connectivity of a DI object in Object Viewer.
y
Application Server includes the following device integration objects for communication with the
drivers:
op
$DDESuiteLinkClient
$OPCClient
These device integration objects can be deployed to any platform in the Galaxy as long as they
have network access to the drivers. They support the following client protocols:
C
Product DDE SuiteLink OPC
$DDESuiteLinkClient
ot
$OPCClient
N
Note: The $OPCClient object supplied with Application Server supports the OPC DA (OPC
Classic) standard. It is possible to add client support for OPC UA to the Galaxy by means of the
ArchestrA Service Bus. Visit the Wonderware Knowledge and Support Center for more
information.
o
Each Device Integration Server speaks a particular device-specific protocol; for example, to
D
communicate with a PLC that speaks the Modbus TCP protocol, you can use Modbus TCP OI
Server. Multiple drivers might be necessary if communicating with different types of controllers.
Device Integration Servers are categorized as:
OI Servers and other third-party OI Servers created with toolkits
Legacy IO Servers and other third-party IO Server created with toolkits
Third-party OPC Servers with support for OPC DA or OPC UA, or both.
These drivers are installed in the computers that have direct access to the controllers (Device
Integration Servers computer role). They support the following protocols for communication with
the clients:
Note: For OPC, DA Servers support the OPC DA standard (OPC Classic).
y
between two concurrently running applications. The server application accepts requests from and
provides data to any client application. Some applications can simultaneously be both a client and
op
a server.
The supported application protocols are:
DDE (Dynamic Data Exchange) - a Microsoft communications protocol that lets
applications send and receive data and instructions to and from each other. DDE
C
communications between Wonderware applications are optimized by packaging multiple
Wonderware-specific DDE messages into a single Microsoft DDE message. Application
Server supports DDE communications through the $DDESuiteLinkClient object.
ot
OPC is an interoperability standard for the exchange of data between devices; these
devices can be software or hardware, or both. While not technically a "protocol", it is
commonly referred to as such for convenience. Application Server supports OPC
o
communications. There are two OPC standards: OPC DA (OPC Classic) and OPC UA;
Application Server supports OPC DA through the $OPCClient object and OPC UA through
the ArchestrA Service Bus (for more information on OPC UA support, visit the
D
Important: Communication using the DDE protocol can only be done on the same computer.
NetDDE, the version of the protocol that allows DDE communications across computers on a
network, has been discontinued and it is not possible in the latest Windows operating Systems.
These communication protocols allow for time and quality propagation. If the server passes a
value, time, and quality (VTQ) triplet to the client, the timestamp and quality associated with the
value is updated in the corresponding data point in the client. In the Galaxy, the device integration
object will receive the VTQ triplet from the driver and the attribute of the requesting application
object will be updated accordingly.
Wonderware Training
Section 2 – Device Integration Objects 5-17
When using these protocols for real-time communications, the client application needs to open a
communication channel with the server application through which items can be requested. This
channel is defined by three parameters:
Node – Name of the computer where the server application is running. This parameter
can be usually omitted, if the client and server are running on the same computer.
Application – Name of the server application.
For the DDE and SuiteLink protocols, it is the name of the server's executable file
without the file extension; for example, the OI Server for Modbus TCP executable file
name is dasmbtcp.exe, so for this parameter only dasmbtcp will be used.
For the OPC protocol, it is the registered name of the server. The name varies
according to the type; for example, the OI Server for Modbus TCP registered name for
OPC is ArchestrA.DASMBTCP.3.
Device Group – The sub-group of items to be accessed on a common update interval.
For the DDE and SuiteLink protocols, it is a server-defined sub-group of items called
Topic. The update interval is specified in the server.
For the OPC protocol, it is a client-defined subscription request called Scan Group
y
that includes the update interval.
op
I/O Referencing from Automation Objects
The real-time communication channel opened between the client and the server using one of the
DDE, SuiteLink, or OPC protocols allows for the request of individual data items.
C
In the context of device integration products, the client application is a device integration object
and the server application is a device integration server connected to a controller. The data items
are the data points within the controller namespace; for example, the register addresses in a PLC
ot
attributes by using the following convention: <object name>.<attribute name>. In the case of
device integration objects, attributes that represent I/O points in the field are generated
dynamically per the device group (communication channel) and the data item (controller I/O data
point) requested; the attribute name becomes a compound of these two pieces:
o
necessary naming conventions. Both, device integration objects and device integration servers
allow adding a list of aliases for the item names.
Note: Naming conventions for item names are important for automatic I/O binding to work.
y
controllers connected to the same device integration server
Allows definition of aliases for item names; this is done on a per topic basis
op
The rate at which the data items are updated depends on how the topics are configured
within the device integration server
Support for advanced communication management to address network traffic and other
resources
C
Each DDESuiteLinkClient instance created must be configured with the Server name; the name of
the server application the object will connect to. If the server is located on a different computer, the
Server node must also be configured; leaving this field empty will have the object look for the
ot
By default, the DDESuiteLinkClient object will communicate with the server using the SuiteLink
Communication protocol; if DDE is to be used, ensure this is configured accordingly.
Wonderware Training
Section 2 – Device Integration Objects 5-19
At least one Topic must also be configured for the DDESuiteLinkClient object to establish a
communication channel with the server application. The topic name(s) must match the name(s) of
the topic(s) in the server application.
Aliases list for the data items can be loaded into the DDESuiteLinkClient object as Associated
attributes for each topic. Adding aliases for data items provide browsing capabilities within the
ArchestrA IDE when configuring attribute references manually.
y
op
The OPCClient Object
The OPCClient object allows real-time access to any OPC server that complies with the OPC OI
standard (OPC Classic), including OI Servers and third-party OPC Servers. There is a one-to-one
relationship between an instance of the $OPCClient object and a running server application; to
C
reference data points in more than one server application, you must configure and deploy more
than one instance of the $OPCClient object (for information on connectivity with OPC UA servers
visit the Wonderware Knowledge and Support Center).
ot
N
o
Support for multiple scan groups which allows one instance of the object to access items
from controllers connected to the device integration server at different update intervals
Support for read and write transactions through blocks
Allows definition of aliases for item names; this is done on a per scan group or block basis,
or both
Support for advanced communication management to address network traffic and other
resources
Each OPCClient instance created must be configured with the Server name; the name of the OPC
server application the object will connect to. If the server is located on a different computer, the
Server node must also be configured; leaving this field empty will have the object look for the
server on the same computer the object is deployed.
At least one Scan Group must also be configured for the OPCClient object to establish a
communication channel with the server application.
y
op
C
Aliases list for the data items can be loaded into the OPCClient object as Associated attributes for
each scan group or block. Adding aliases for data items provide browsing capabilities within the
ArchestrA IDE when configuring attribute references manually.
ot
N
o
D
Wonderware Training
Lab 10 – Configuring the Device Integration Object 5-21
Introduction
In this lab, you will configure an instance of the $gDDESuiteLinkClient template to connect to the
OI Server you configured in the previous lab, using the SuiteLink protocol. You will then use Object
Viewer to monitor the connection status of the instance in runtime.
Objectives
Upon completion of this lab, you will be able to:
Configure a device integration object
Monitor the connection status of a device integration object
y
op
C
ot
N
o
D
y
op
C
ot
Wonderware Training
Lab 10 – Configuring the Device Integration Object 5-23
The Server name shown in this example is for the Modbus simulator used in the training
rooms. This will be different for the data source in your plant.
y
op
5. Click the Topic tab.
6. In the Available topics section, click the ScanGroupList button to add a topic.
7. In the Topic field, enter Topic1 and press Enter.
C
ot
N
o
8. Save and close, and then check in the object with an appropriate comment.
D
9. In the Model view, assign the ProdPLC instance to the ControlSystem area.
y
op
10. In the Deployment view, assign the ProdPLC instance to AppEngine1.
C
ot
N
o
D
Wonderware Training
Lab 10 – Configuring the Device Integration Object 5-25
y
op
12. In the Deploy dialog box, click OK to accept the default settings.
When complete, the progress displays 100% completed.
13. Click Close.
C
View the Attributes in Runtime
ot
Now, you will return to Object Viewer to view the attribute values in runtime.
14. In the Deployment view, right-click ProdPLC and select View in Object Viewer.
N
Reconnect
ScanState
D
ScanStateCmd
The ConnectionStatus attribute displays the communication status between the topics
configured in the device integration object and the topics in the Device Integration Server.
The Reconnect attribute, when set to true, will attempt to reconnect to the Device Integration
Server.
y
19. Click OK.
op
The ScanGroupList is added to the watch window.
C
ot
20. In the Attribute Reference field, enter ProdPLC.Topic1.$Sys$Status and click Go.
N
o
D
Wonderware Training
Lab 10 – Configuring the Device Integration Object 5-27
The Attribute dialog box appears with the Attribute Reference to display in the watch
window automatically selected.
y
The ProdPLC.Topic1.$Sys$Status attribute reference is added to the watch window.
op
C
ot
The $Sys$Status item for the Topic1 scan group reports the communication status between
the OI Server and the PLC associated with the scan group.
22. Save the watch list.
N
y
op
C
ot
N
o
D
Wonderware Training
Section 3 – Connecting Application Objects to Field Data 5-29
You can enhance and extend an object by using features, attributes, scripts, and graphics. You
can add scripts on the Scripts page of the Object Editor. You can add graphics on the Graphics
page of the Object Editor.
y
Write (Output)
op
You can also configure advanced properties. The attribute’s data type and I/O type determine
what Advanced I/O properties are available.
these references eliminates the issues of manual configuration, but can significantly increase the
time needed for deploying objects. With I/O auto assignment, you do not need to check out
individual objects to configure I/O references, and you do not experience the runtime penalties
associated with scripting.
N
Note: Note: I/O auto assignment is the default setting for application and other system objects,
such as area objects. Device Integration (DI) Objects must be manually configured.
o
When you add input or output attributes to an area or application object in the Attributes tab of the
Object Editor, the default setting prepares these attributes for I/O automatic assignment. The auto
D
assignment reference appears in the I/O section of the Attributes tab if you have enabled the I/O
attribute feature. The default string for an input reference is:
<IODevice>.[ObjectName].[AttributeName].InputSource
where [ObjectName] is the hierarchical name of the application or system object, and
[AttributeName] is the name of the attribute.
The default string for an output reference is:
<IODevice>.[ObjectName].[AttributeName].OutputDest
The string <IODevice> is a placeholder that indicates the I/O reference will be built automatically.
The reference is created when you link the object to a scan group and DI object, without the need
to manually enter or script the reference.
The following is an example of an I/O reference string before the object has been assigned to a
scan group and DI object:
<IODevice>.Mixer.Tank.Inlet.InputSource
Once you assign the object to a scan group, the reference resolves to include the assigned Device
Integration (DI) object and scan group.
For example, assigning the object to the scan group "Fast" under DI object "OPC001" will change
the reference to:
OPC001.Fast.Mixer.Tank.Inlet.InputSource
Important: Do not lock InputSource or OutputDest attributes when using I/O auto assignment. If
either InputSource or OutputDest attributes, or both, are locked in the parent template, the
attributes cannot be updated with the resolved reference when the object is deployed, and the
runtime value will be "---Auto---".
I/O auto assignment is configured in the IO Devices view. Use this view to associate application
and system objects with DI objects and scan groups.
Scan groups are contained by DI objects and help categorize devices that are associated with
them on the basis of how often their I/O points are scanned.
y
Validating and Editing I/O Assignments
The IO Device Mapping view is a table that displays I/O auto assignment references for application
op
and system objects that are linked to DI object scan groups. Manually configured references are
not displayed in the IO Device Mapping view, nor are attributes associated with application and
system objects that have not yet been assigned to a scan group. The attributes shown in this view
are determined by what is selected in the IO Devices view.
C
When you initially open the IO Device Mapping view after starting the IDE, the table will scroll so
the far right column is in view.
Selecting a DI object in the IO Devices view lists I/O auto assignment attributes for all
ot
objects linked to all scan groups under it.
Selecting individual scan groups restricts the scope of the information displayed in the IO
Device Mapping view to the objects that have been linked to the selected scan groups.
N
Selecting individual application or system object further restricts the scope of attributes
displayed to only those associated with the selected object.
o
Note: You can select multiple items in the IO Devices view. Selected items can be at
different hierarchical levels. Selecting a subordinate object will exclude non-selected objects
within the device hierarchy, even though the parent object is selected.
D
In the IO Device Mapping view, you can view and validate I/O references for each automatically
generated attribute, and you can override the automatically generated I/O references. As is the
case in the IO Devices view, you do not have to check out objects to change their I/O assignments.
Wonderware Training
Lab 11 – Connecting the Mixer to the Field 5-31
Introduction
In this lab, you will work with the Production area and change the I/O assignment of Mixer100
objects. You will connect the objects to live controller data, and then change the agitator speed
and monitor the data acquisition.
Objectives
Upon completion of this lab, you will be able to:
Change the I/O assignment of objects
Connect objects to live controller data
Monitor data acquisition
y
op
C
ot
N
o
D
y
op
C
The Undeploy dialog box appears.
ot
N
o
Wonderware Training
Lab 11 – Connecting the Mixer to the Field 5-33
3. Click Close.
y
4. In the IO Devices pane, expand ProdPLC.
op
C
ot
N
o
D
5. Assign Production and all its contained areas and objects you just undeployed, except L1
and T1, which should remain with Simulator\Fast, to ProdPLC\Topic1.
The L1 and T1 objects were not moved to ProdPLC\Topic1, as they are not part of the Mixer
process and do not have any item addresses in the Modbus simulator.
y
op
6. Deploy the Production area and all its contained areas and objects.
C
ot
N
o
D
Wonderware Training
Lab 11 – Connecting the Mixer to the Field 5-35
y
op
11. Click OK.
Wait for the mixer to be full, which causes the agitator to start, and note the
Agitator_001.Speed.PV.
C
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
Section 4 – Device Integration Redundancy 5-37
This section describes DI redundancy and explains how to configure a Redundant DI Object.
RedundantDIObject
y
The RedundantDIObject provides you with the ability to configure a single object with connections
op
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.
C
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,
ot
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
N
implemented via block reads (when available in the source DIObject). Write transactions,
which are implemented via block writes (when available in the source DIObject).
D
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 OI Server groups and must have the same item address space.
Note: The RedundantDIObject checks the state of its source DIObjects on every scan cycle.
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.
RedundantDIObjects belong to a family of objects called DINetwork objects. Refer to the
Redundancy Module for more details.
y
Redundant DIObject data source
op
C
ot
N
o
D
Because data acquisition redundant components are essentially standalone objects, all valid
operations that apply to any other ApplicationObjects apply to the three objects.
All IDE commands, Galaxy Dump and Load functions, and import and export operations are valid
on the two DIObject data sources and the RedundantDIObject.
Before you can deploy the RedundantDIObject, you must configure at least one scan group. Also,
configure only scan, block read, and block write groups shared by the Primary and Backup
DIObjects in the RedundantDIObject.
To configure the Redundant DIObject, on the General tab of the Object Editor, set the Primary DI
Source and Backup DI Source. Set up the common scan groups. Set up the common block read
and block write groups on the tabs of the Object Editor.
Wonderware Training
Section 4 – Device Integration Redundancy 5-39
y
RedundantDIObject to communicate with DIObjects, you should configure the PingItem attribute
for each scan group.
op
C
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
Lab 12 – Configuring the Redundant DI Object 5-41
Introduction
In this lab, you will configure the Galaxy for redundancy at the Device Integration level. This is
accomplished by using the Redundant DI Object, which monitors two Device Integration objects.
You will then create a deployment model for the Redundant DI Object and force a failover on a
redundant DI system.
If you are on a single-node network configuration, you will skip this lab.
Objectives
Upon completion of this lab, you will be able to:
y
Configure an instance of a Redundant DI Object
Create a deployment model for a Redundant DI Object
op
Force a failover on a redundant DI system
C
ot
N
o
D
y
op
C
ot
Wonderware Training
Lab 12 – Configuring the Redundant DI Object 5-43
y
op
C
ot
N
The Server name shown in this example is for the Modbus simulator used in the training
rooms. This will be different for the data source in your plant.
y
op
8. Click the Topic tab.
9. In the Available topics section, click the ScanGroupList button to add a topic.
C
10. In the Topic field, enter Topic1 and press Enter.
ot
N
o
11. Save and close, and then check in the object with an appropriate comment.
D
12. In the Model view, assign the R_ProdPLC2 instance to the ControlSystem area.
Wonderware Training
Lab 12 – Configuring the Redundant DI Object 5-45
y
op
C
Now, you will create the Redundant DI Object.
14. In the Template Toolbox, Training\Global toolset, create a new instance of
$gRedundantDIObject and rename the instance ProdPLC.
ot
N
o
D
16. On the General tab, in the Primary DI source drop-down list, select R_ProdPLC1.
17. In the Backup DI source drop-down list, select R_ProdPLC2.
18. On the Scan Group tab, click the Copy Common Scan Groups button.
The Copy Common Scan Groups dialog box appears and displays Topic1 in the Identically
named area.
y
op
C
ot
N
o
D
Wonderware Training
Lab 12 – Configuring the Redundant DI Object 5-47
In the Available scan groups area, Scan Group column, Topic1 appears.
y
20. Save and close, and then check in the object with an appropriate comment.
op
Now, you will deploy the objects.
21. In the Model view, assign the ProdPLC instance to the ControlSystem area.
C
ot
N
o
D
y
op
23. In the IO Devices pane, expand ProdPLC.
C
24. Expand R_ProdPLC1\Topic1, if necessary.
Notice that the objects are all undeployed.
ot
N
o
D
Wonderware Training
Lab 12 – Configuring the Redundant DI Object 5-49
25. Select all the objects in R_ProdPLC1\Topic1 and drag them to ProdPLC\Topic1.
y
26. Select all undeployed objects.
op
C
ot
N
o
D
Using the Shift key to select all objects will include some objects that are already deployed.
Application Server will be able to determine which objects are already deployed.
y
op
C
View the Redundancy Functionality and Data in Runtime
Now, you will return to Object Viewer to add Redundant DI Object attributes to a new watch
ot
window. Then, you will force a failover condition and observe the behavior.
28. In the Deployment view, open ProdPLC in Object Viewer.
29. Verify data in the Mixer100 watch window.
N
o
D
Wonderware Training
Lab 12 – Configuring the Redundant DI Object 5-51
y
op
C
ot
N
You will now force a failover and observe that the active DI source changes from R_ProdPLC1 to
R_ProdPLC2.
o
33. In the Modify Boolean Value dialog box, click the True option.
y
op
35. Click the Mixer100 tab to verify that all of the data is still displaying good quality.
36. On the DIO Redundancy tab, trigger ProdPLC.ForceFailoverCmd again to switch back to
R_ProdPLC1 as the active DI source.
C
ot
N
o
D
Wonderware Training
Lab 12 – Configuring the Redundant DI Object 5-53
Now, you will trigger a failover by setting the DI object off scan. For this section, DISourceActive
should be R_PRODPLC1.
37. Select R_ProdPLC1 and add ScanStateCmd to the watch list.
y
op
C
ot
N
o
D
39. In the Modify Boolean Value dialog box, click the False option.
y
op
C
ot
N
41. Click the Mixer100 tab and verify that all data is still displaying good quality.
42. On the DIO Redundancy tab, set the R_ProdPLC1.ScanStateCmd value to True.
Notice that Failover does not change. This is because the Redundant DIO Object does not
o
Wonderware Training
Lab 12 – Configuring the Redundant DI Object 5-55
y
44. Save the watch list and minimize Object Viewer.
op
C
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
y
op Module 6 – History
C
Section 1 – Historizing Data for Application Server 6-3
ot
Module Objectives
Configure the $AppEngine object to store Historian to a Historian Server
Configure history in objects
Retrieve process history in Insight
y
op
C
ot
N
o
D
Wonderware Training
Section 1 – Historizing Data for Application Server 6-3
This section describes how Historian historizes data. It explains how to configure engines and
platforms for historization and describes how to configure objects to historize attributes. It also
discusses how to retrieve historical data with Insight.
Historization Background
You can configure application objects to store process data in the Historian. Historical data from
Application Server can be retrieved and viewed using standard Historian database utilities. Also,
you can use historical data to produce reports shown from your client applications.
y
environment, the Historian should be installed on a dedicated computer.
op
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.
C
ot
N
o
D
A single Historian installation can receive historical data from a single Galaxy. A push model is
used to send and save new historical updates to Historian. Each system Object Engine (Platform,
AppEngine, ViewEngine) includes a historian primitive that sends all history updates for all hosted
objects to the historian. All Engine objects include an attribute to specify the node name of the
computer hosting Historian.
The figure shows a single Historian. This may be a common configuration, but other Application
Server configurations support multiple Historian databases for a Galaxy. However, each Engine
Object only sends its historical data to one Historian.
The following figure shows the major ArchestrA components to save process data from a
production device to the Historian.
There is a one-to-one relationship between a historical Object attribute and a tag in Historian.
y
For storage, the story is similar. When an Object decides to store a new VTQ to Historian, it
op
pushes that storage update message, with the new VTQ, to Historian using a Historian supplied
interface. 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.
SQL Server Database for its configuration data. This SQL Server Database can be the same or
different one used by the Galaxy Repository. More than one Historian can be utilized by a single
Galaxy. However, a single engine sends its history to only one Historian.
N
A single Historian can receive historical data from a single Galaxy only.
If the Historian shuts down or the network connection to it is lost while an application is running,
historical data continues to be stored locally on the computer hosting the WinPlatform Object.
D
When the Historian node recovers, data is forwarded from the local node to the Historian node at a
low priority.
If an AppEngine loses connectivity to the Historian node, the Historian reports bad data quality to
clients. When you undeploy an Object with attributes configured for history, the Historian stores the
final data points with Bad quality.
History Configuration
Wonderware Training
Section 1 – Historizing Data for Application Server 6-5
associated with the attribute value, the current scan time from the AppEngine hosting the Object is
used instead.
y
op
IEEE NaN values for float and double data types are converted to null values prior to being
sent to the historian. NaN values are associated with a Bad OPC data quality.
All numerical attributes sent to the Historian are in the engineering units specified for the
attribute. The Historian does not scale numerical values.
C
Configuration of a Non-Numerical Attribute for Historization
For an Object that has non-numerical historizable attributes, the ArchestrA IDE user can enable
ot
history for each attribute. No other configuration data is provided, except for a Boolean Object, by
the user since these attributes are historized upon change of value. Also, a change in data Quality,
regardless of whether the Value changed too, always causes a new record to be historized/stored.
N
for each attribute. Once enabled, certain configuration settings can be specified. These settings
determine how often data is historized.
D
The following are advanced configuration settings that require a knowledge of Historian Server
and will not be discussed in this course:
Interpolation Type
Rollover Value
Sample Count
Enable Swinging Door Rate Deadband
y
Reconfiguration of Historian at Object Redeploy Time
op
When an AutomationObject that has been historized is redeployed, the Object causes a
reconfiguration of any changes that were caused by the redeploy to be changed in the Historian
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.
C
Reconfiguration of Historian at Object Undeploy Time
When an AutomationObject that has been historized is undeployed, the Object does not cause
ot
any dynamic reconfiguration of the Historian product. In other words, the Historian tag and all its
history is left in the Historian. This means the history data can still be examined in the future even
if the AutomationObject is no longer deployed.
N
NaN Handling
For Float and Double attributes, a potential value is the IEEE NaN encoding for the float or double
o
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
D
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.
Wonderware Training
Section 1 – Historizing Data for Application Server 6-7
y
in the VTQ packet. Both Application Server and Historian use UTC time.
op
C
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
Section 1 – Historizing Data for Application Server 6-9
Note: Except for Late Data, the ViewEngine Object contains the same historical attributes as the
AppEngine Object.
Insight
y
Historian Insight provides web-based access to Historian Server. It is installed with Historian as an
on-premise application. It helps to retrieve historical data through the web browser and present
op
data in different formats, such as trends and tables. On a remote client node, you can connect to
Historian Insight using a web browser.
C
ot
N
o
D
With Historian Insight, you can present your data in a chart, work with data using dashboards,
save and share content, and view and reuse content. You can search for specific saved-content,
tags, or keywords and view the results in a chart. You can choose the chart type, add or remove
tags from the chart, and fine-tune how content is displayed. You can save, download, and share
the content. You can also embed the content in a web page or other HTML-based document.
y
op
C
ot
N
o
D
Wonderware Training
Lab 13 – Configuring and Retrieving History 6-11
Introduction
In this lab, you will configure the Galaxy for historization to the Historian Server. Specifically, you
will configure the AppEngine Object to store historical data to a Historian Server.
Additionally, you will configure the object attributes to be historized.
Objectives
Upon completion of this lab, you will be able to:
Configure the AppEngine object to store historical data on a Historian Server
Configure objects to historize attributes
Retrieve historical process data with Insight
y
op
C
ot
N
o
D
y
op
C
3. Save and close, and then check in the object with an appropriate comment.
ot
7. Save and close, and then check in the object with an appropriate comment.
Wonderware Training
Lab 13 – Configuring and Retrieving History 6-13
y
op
C
ot
11. Scroll down and unlock Trend high and Trend low.
12. Save and close, and then check in the object with an appropriate comment.
The Check In dialog box reappears with an Object 1 of 1 completed message.
y
op
C
ot
Notice that the change was also propagated to the mixer instance.
13. Click Close.
N
o
D
Wonderware Training
Lab 13 – Configuring and Retrieving History 6-15
14. In the Template Toolbox, Training\Project toolset, open the $Mixer.Level configuration
editor.
15. Scroll down to the History group.
16. In the Trend high field, enter 100.0 and lock it.
y
op
C
17. Save and close, and then check in the object with an appropriate comment.
The Check In dialog box reappears with an Object 1 of 1 completed message.
ot
N
o
D
Notice that the change was also propagated to the Level_001 instance.
18. Click Close.
21. Save and close, and then check in the object with an appropriate comment.
y
The Check In dialog box reappears with an Object 1 of 1 completed message.
op
C
ot
N
o
Notice that the change was also propagated to the Temperature_001 instance.
D
Wonderware Training
Lab 13 – Configuring and Retrieving History 6-17
23. In the Template Toolbox, Training\Project toolset, open the $Valve configuration editor.
24. In the attributes list, select OLS.
y
26. Lock the History group.
op
C
ot
N
o
D
27. Save and close, and then check in the object with an appropriate comment.
Notice that the change was propagated to other instances.
28. When the Check In dialog box displays the Object 1 of 1 completed message, click Close.
29. In the Template Toolbox, Training\Project toolset, open the $Mixer.Agitator configuration
editor.
30. Select the Speed.PV attribute.
y
op
C
ot
N
o
D
Wonderware Training
Lab 13 – Configuring and Retrieving History 6-19
31. Click the History button, and then lock the History group.
32. In the History group, Trend high field, enter 100.0.
y
op
C
ot
N
o
33. Save and close, and then check in the object with an appropriate comment.
D
The Deployment view now displays several objects that need to be redeployed.
y
op
C
36. Deploy ProdPlatform and keep the default options.
37. When the Deploy progress displays 100% completed, click Close.
ot
N
o
D
Wonderware Training
Lab 13 – Configuring and Retrieving History 6-21
y
op
C
39. In the Search field, enter Level and wait for Data to appear.
ot
40. Click the arrow to the right of whichever entry you would like to see.
In this example, we use name includes Level (1).
Level_001.PV and other level attributes appear.
N
o
D
The Insight Trend appears for the selected tag. You may have to scroll to the right to see the
trend.
42. Click the blue trend.
y
op
C
ot
Wonderware Training
Lab 13 – Configuring and Retrieving History 6-23
y
44. Set the time to the last hour.
op
C
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
y
op
Module 7 – Alarms and Events
C
Section 1 – Alarms and Events Overview 7-3
ot
Module Objectives
Configure alarms in objects
Interact with alarms in Object Viewer
View historical alarms in Insight
Query for historical alarms in MS SQL Server
y
op
C
ot
N
o
D
Wonderware Training
Section 1 – Alarms and Events Overview 7-3
This section describes alarms and events. It explains alarms and events reporting of objects
through areas, the alarm options for attributes, and how to monitor alarm attributes and states
with Object Viewer. It discusses the historization of alarms and events with Historian, as well as
how to retrieve alarm history from SQL Server.
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 and events. Alarms and events are occurrences 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, are a special type of
event that represent the occurrence of a condition that is considered abnormal (generally bad) in
y
nature and requiring immediate attention from a user. The system handles the real-time reporting
of alarms in a special manner and provides special clients for their viewing.
op
Examples of alarms include:
A process measurement has exceeded a predefined limit, such as a high temperature
alarm. C
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.
ot
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.
o
The system engineer has started or stopped a system component; for example, stopping
an engine.
D
y
op
C
ot
The Platform is responsible for routing all alarms and events for all Areas subscribed to by that
N
Platform to the distributed alarming infrastructure. The Platform acts as a router between all Alarm/
Event Notification Distributors that are running in the subscribed Areas throughout the Galaxy
(inside every Area, Platform, Engine, DI Device, etc.) and the distributed alarming infrastructure.
The Platform also routes alarm acknowledgments, enables and disables received from distributed
o
Server contains fields that are generated by the alarm functions inside the AutomationObject.
Wonderware Training
Section 1 – Alarms and Events Overview 7-5
Types of Alarms
Application Server supports the following types of alarms:
Limit alarms
Deviation alarms
Diagnostic alarms
Rate of change alarms
Bad value alarms
y
The type of alarm that you can configure is based on the data type of the attribute’s value.
op
Limit Alarms
A limit alarm compares the current value to one or more predetermined alarm limits within the
attribute’s full range of values. If the value exceeds a limit, an alarm occurs.
C
ot
N
o
In the AnalogDevice Object, these limit alarms are configured in the Level alarms area.
You can individually select and configure values and priorities for the LoLo, Lo, Hi, and HiHi alarm
D
limits. You can set individual messages for each alarm limit.
You can also configure alarm and time deadbands for limit alarms. The alarm deadband is
expressed as engineering units of the attribute’s full value range. The deadband range sets the
percentage of the total range that the attribute value must change to reset a limit alarm to the
inactive state. For example, if the HiHi alarm limit is 80 and the alarm deadband is 5, then the
attribute value must decrease below 75 to reset a HiHi alarm to an inactive state.
The time deadband sets the length of time that an attribute value must continuously remain in an
alarm or unalarmed condition. The process variable must remain above or below the indicated
limit for at least the indicated deadband time before the application Object updates the status of
the alarm CONDITION Boolean. Then, standard Alarm Primitive logic determines whether to take
that updated alarm condition and report changes to the alarm state or not.
The timestamp when a limit alarm becomes active or inactive is the most current timestamp of the
corresponding input value. If there is no timestamp associated with the alarmed value, the
AppEngine timestamp is used instead.
Deviation Alarms
A deviation alarm compares the current attribute value to a target Engineering Units value. Then,
y
the absolute value of the difference is compared to one or more alarm deviation limits expressed in
EngineeringUnits.
op
C
ot
N
You can individually select and configure values and priorities for the minor deviation limit and the
major deviation limit. You can set individual messages for the minor and major deviation alarm
limits.
o
D
The deviation alarm’s settling period is the time allowed for the attribute value to reach an
expected target value after a device starts. No alarm can occur during the settling period.
You can also configure a value for a deviation deadband, which is expressed in Engineering Units.
The deadband range sets a threshold that an attribute value must change from a deviation limit to
reset the alarm to the inactive state.
Wonderware Training
Section 1 – Alarms and Events Overview 7-7
The timestamp when a deviation alarm becomes active or inactive is the most current timestamp
of the corresponding input value. If there is no timestamp associated with the alarmed value, the
AppEngine timestamp is used instead.
y
op
C
ot
Alarm limits are expressed in the Engineering Units of the attribute’s value over an interval, which
can be per second, minute, hour, or day.
N
o
D
You can select and configure the value and priority for the upward and downward ROC limits. You
can set individual messages for ROC alarms that exceed the upward or downward limits.
The timestamp when a rate of change alarm becomes active or inactive is the most current
timestamp of the corresponding input value. If there is no timestamp associated with the alarmed
value, the AppEngine timestamp is used instead.
y
Plant State Available Alarm States
Alarm State
op
Running Enable Enable
Maintenance Disable Enable / Disable / Silence
Startup Silence Enable / Disable / Silence
Shutdown Disable Enable / Disable / Silence
Testing Silence
C
Enable / Disable / Silence
ot
N
o
D
You can define new plant states, rename plant states, or remove existing plant states, except the
“Running” state (you can, however, rename “Running”). The alarm state for Running is read-only
and cannot be changed from Enable.
Wonderware Training
Section 1 – Alarms and Events Overview 7-9
After you have defined plant state-based alarm configurations for the Galaxy, you can assign plant
state-based alarming to area objects in the Galaxy. This is done by setting the PlantState attribute
for each area Object that will use plant state-based alarming. The area Object will automatically
update its PlantAlarmMode attribute to match the alarm state that is set for the PlantState currently
assigned to it.
Attribute Definition
PlantState The name of the currently assigned plant state (InProduction,
Maintenance, etc.).
PlantStateAlarmMode The alarm state of the assigned plant state (enable, silence, or disable).
This attribute is read-only at runtime.
y
Enabled: All alarms for an Object are reported to client applications and saved as historical data.
The enabled state is less restrictive than the silenced or disabled alarm states.
op
To enable an Object’s alarms, you must ensure that the AlarmModeCmd and AlarmInhibit
attributes are enabled for the Object, its container, and its area. An event, including the user’s
name, is generated indicating the Object’s alarms are enabled. When Object alarms are enabled,
you can enable, silence, or disable an individual alarm.
C
Silenced: All alarms for an Object are detected, saved to history, and sent to alarm clients. But,
alarm clients do not show the alarms. The silenced alarm state is more restricted than the enabled
state, but less restrictive than the disabled state.
ot
When Object alarms are silenced, an individual alarm that is enabled or silenced is forced to be
silenced. When Object alarms are silenced, an individual alarm can be disabled.
Disabled: No alarms for the Object are detected. The alarm is return-to-normal until the alarm is
N
re-enabled. The disabled state is more restrictive than the silenced and enabled alarm states. A
disabled alarm does not require acknowledgment.
When Object alarms are disabled, an individual alarm that is enabled or silenced is forced to be
o
disabled.
When Object alarms are enabled and an individual alarm is enabled or silenced, the individual
D
AlarmModeCmd Attribute
AlarmModeCmd is a writeable attribute that sets the current commanded alarm mode for the
Object. You can set the AlarmModeCmd to enabled, silenced, or disabled with a script, user input,
or from an input extension.
AlarmInhibit Attribute
The AlarmInhibit attribute disables one or more alarms when set to TRUE. The value of the
AlarmInhibit attribute is typically set by a script, manually by the user, or from an input extension. If
the AlarmInhibit attribute is set TRUE, all alarms of the Object and of any contained objects are
disabled.
When the AlarmInhibit attribute is set to FALSE, alarms are not inhibited and the Object
AlarmMode and parent Object AlarmMode determine whether alarming is enabled, silenced, or
disabled.
AlarmMode Attribute
y
The AlarmMode is a calculated attribute that identifies the Object alarm mode and is based upon
the current values of an Object’s:
op
AlarmModeCmd attribute
AlarmInhibit attribute
C
ot
N
Application Server checks the AlarmModeCmd and AlarmInhibit attributes of an Object and the
o
AlarmMode status of the parent Object. Application Server then updates the Object's AlarmMode
attribute to reflect the most restrictive setting.
D
All individual alarms use the Object's AlarmMode status to determine whether they are enabled,
silenced, or disabled.
You can set individual alarms within an Object for each type of alarm. For example, you can set
alarms for each of the limits of a level alarm. The calculated AlarmMode attribute value of an
individual alarm uses the same inputs an Object alarm. The parent AlarmMode attribute is from the
Object itself. As with Object alarms, the individual alarm mode is set to the most restrictive input
state. For example, if the Object's AlarmMode state is disabled and the individual alarm's
AlarmInhibit is FALSE, the individual alarm is disabled.
Each individual alarm is autonomous from other individual alarms in an Object. The AlarmMode of
an individual alarm is not propagated to other alarms. Unlike inhibit for the entire Object, inhibit of
an individual alarm does not affect the alarms of any contained objects. You can selectively
enable, silence, or disable an individual alarm and not set other alarms to the same value within
the Object hierarchy.
Wonderware Training
Section 1 – Alarms and Events Overview 7-11
Alarm Attributes
Attribute Description
<Attribute>.Acked Used to specify whether an alarm has been acknowledged. This attribute is
updated when the AckMsg attribute is set. This attribute is always set to
FALSE when a new alarm condition is detected (when the InAlarm attribute
changes from FALSE to TRUE).
<Attribute>.AckMsg The operator comment at the time the alarm is acknowledged. Any received
text is stored, and the Acked attribute is set to TRUE. Also, the
TimeAlarmAcked attribute is set to the current time. The maximum length is
256 characters.
<Attribute>.AlarmMode The current alarm mode setting. Valid values are: Enable, Disable, Silence.
<Attribute>.AlarmModeCmd The command to set the alarm mode. Valid values are: Enable, Disable,
Silence.
<Attribute>.Category The category of the alarm. The label of each alarm category is fixed.
<Attribute>.DescAttrName The description of the alarm. The description must be of typeStringof
InternationalizedString, with a maximum length of 329 characters. The
y
DescAttrName attribute can contain a static alarm description or a reference to
another string attribute within the same Object containing the alarm
op
description. The reference must be in the form: “me.AttrName”. If the reference
is invalid, the actual reference string is used for the description, if nothing is
supplied for the DescAttrName attribute, the Object’s ShortDesc attribute is
used at runtime.
<Attribute>.InAlarm The alarm state. This is exactly the same as the attribute in the host primitive
C
that represents the alarm condition, except when the alarm state is disabled, in
which case, InAlarm is set to Off, regardless of the actual condition state.
The quality is set during execute to the quality of the attribute, except when the
ot
<Attribute>.TimeAlarmAcked The timestamp indicating the last time this alarm was acknowledged. The date
format reflects the current locale setting for the operating system.
D
<Attribute>.TimeAlarmOff The timestamp indicating the last time this alarm (as represented by the
InAlarm attribute) went off. The date format reflects the current locale setting
for the operating system.
<Attribute>.TimeAlarmOn The timestamp indicating the last time this alarm (as represented by the
InAlarm attribute) went on. The date format reflects the current locale setting
for the operating system.
Alarm Severities
Alarm Severities are rankings with a descriptive label that can be mapped to a customizable
priority range at the Galaxy level. By default, starting with the most important are:
Default
Severity Description
Priority Range
1 Critical 1 - 250
2 High 251 - 500
3 Medium 501 - 750
4 Low 751 - 999
y
op
C
ot
N
o
The most important alarm has the lowest severity number, but other criteria are taken into account
when ranking alarms by urgency at runtime.
Wonderware Training
Section 1 – Alarms and Events Overview 7-13
You can view alarm aggregation statuses in runtime clients such as Object Viewer. You can model
alarm aggregation in Managed InTouch applications by using animations such as the alarm border
animation with Situational Awareness Library symbols or with ArchestrA symbols.
Alarm aggregation functionality can be described for an Object, Area, or attribute.
Attribute Aggregation represents the alarms on a specific attribute, within any Object.
If the Area’s AlarmMode is silenced, all alarms on all Objects in that Area
will be silenced.
Note: Alarm aggregation on an attribute applies only to Analog Attributes.
Object Aggregation represents all alarms on the Object, on all contained objects,
and on their descendents down to the lowest level of the Model view.
Alarm aggregation values on child objects are added to the values of the
parent Object or objects.
All objects have this alarm aggregation functionality.
y
Area Aggregation represents the alarms on the Area Object itself, on all objects
assigned to the area, and on all sub-Areas, down to the lowest level of the
op
Model view.
If the Area’s AlarmMode is silenced, all alarms on all Objects in that Area
will be silenced. C
Alarms are aggregated if they are in one of three states:
UNACK_ALM
ACK_ALM
ot
UNACK_RTN
Alarms in the ACK_RTN state are not aggregated.
Alarms in silenced mode are aggregated, even though they do not appear in the runtime client.
N
o
D
Runtime
Attribute Description
Access
<Attribute>.AlarmCntsBySeverity Array of counts of all alarms that are in Read-Only
UNACK_ALM, ACK_ALM, or UNACK_RTN states
on the Object, aggregated by severity levels 1-4.
<Attribute>.AlarmMostUrgentAcked TRUE (default) indicates that no alarms are in the Read-Only
InAlarm state or waiting to be Acked.
A value of TRUE also indicates that the most urgent
alarm(s) on the Object and its descendants in the
y
InAlarm state have been acknowledged, whether or
not they are currently InAlarm.
op
<Attribute>.AlarmMostUrgentInAlarm FALSE (default) indicates that no alarms are in the Read-Only
InAlarm state or waiting to be Acked.
A value of FALSE indicates whether the most urgent
alarm(s) on the Object and its descendants are in
C
the InAlarm state, whether or not they have been
acknowledged.
<Attribute>.AlarmMostUrgentMode The AlarmMode of the most urgent alarm(s) on this Read-Only
ot
Wonderware Training
Section 1 – Alarms and Events Overview 7-15
y
op
C
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
Section 1 – Alarms and Events Overview 7-17
Shelving Alarms
You can shelve alarms to temporarily hide them from displays for a fixed period of time. Alarms
continue to be historized, even when they are shelved. Shelving typically is used to reduce alarm
“noise”, or to temporarily suppress alarms that might be triggered during system modifications or
repairs, allowing you to focus on correcting other more urgent alarms.
Shelving is similar to silencing an alarm, but shelved alarms differ from silenced alarms in the
following ways:
Shelved alarms have a built-in associated timeout. Shelved alarms are automatically
unshelved when the configured shelving period expires. You can also manually unshelve
alarms and return them to an active, displayed state.
Alarm shelving must be enabled at an area level, but shelving applies only to individual
alarms. You cannot shelve a hierarchy of alarms for an entire area or for an entire Object.
You cannot propagate alarm shelving through the Model View hierarchy.
The system enforces role-based limitations on permission to shelve alarms, alarm severity
levels that can be shelved, and the total number of alarms a user can shelve.
y
The system tracks who shelved the alarm, from what workstation, the reason for shelving the
alarm, when shelving began, and when shelving will expire. Shelved alarms aggregate in similar
op
fashion to silenced alarms.
A set of seven attributes provide runtime alarm shelving information and control:
alarm is unshelved.
Default value: False
AlarmShelveStartTime A read-only date/time stamp indicating when alarm shelving began,
N
based on the engine time when the shelving request was received.
Default value: Blank
AlarmShelveStopTime A read-only date/time stamp equal to the AlarmShelveStartTime plus
o
y
op
C
Shelving is enabled on the Area Object as shown in the image on page 7-15.
ot
The six read-only alarm shelving attributes will display the current shelving status information and
the AlarmShelveCmd attribute can be used to change the status.
Wonderware Training
Section 1 – Alarms and Events Overview 7-19
y
Mapping Alarm Severity to Priority
op
Use the IDE to map each of four alarm severities to priorities expressed as numeric ranges.
Alarms can then be aggregated and displayed with the specified severity at runtime.
Note: Mapped alarm severities are not shared across galaxies in a multi-Galaxy environment.
C
Each Galaxy in the environment will have its own priority to severity mapping.
The Alarms and Events Configuration dialog allows you to map alarm severities to priority ranges,
to enable alarm shelving by priority range, and to enable or disable historization of both alarm
severities and event types.
N
1 Critical N Y 1 250
2 High N Y 251 500
D
Alarm Features
Alarm configuration choices can be added to a template or instance on the Attributes tab for the
following three Data types:
Boolean
Float
Integer
Double
The configuration Available features and Advanced choices will be different depending on the
data type selected.
If you select a Boolean data type for an attribute, you will be able to select either a Bad value
alarm or a State alarm. If you select a State alarm, you will be able to select from the following
configuration Categories:
Discrete
Value LoLo
y
Value Lo
op
Value Hi
Value HiHi
DeviationMinor
DeviationMajor
ROC Lo
C
ROC Hi
SPC
Process
ot
System
Batch
Software
N
Alarms and events detected by the Application Server at runtime are saved as historical data to
the Historian for the host engine. In addition, alarm-related events such as Acknowledge are also
saved as historical alarm data.
Wonderware Training
Section 1 – Alarms and Events Overview 7-21
What alarms and events are to be historized to Historian is configured in the Alarms and Event
Configuration dialog box.
y
op
C
Configuring an Area Object to Save Alarm Counts as Historical Data
ot
An Area Object represents a plant area to group objects for modeling and report alarms. You can
configure a set of attributes to save the counts of an area’s alarm states to the historian. An Area
Object contains a set of attributes to save the counts of the following alarm states to the historian:
N
Active alarms
Unacknowledged alarms
Disabled or silenced alarms
o
In runtime, when you hover your mouse over the chart, a cursor appears with values for all tags.
You can move the cursor along the x-axis to see values for specific points in time.
D
When the associated tags in the InSightApp have alarms and events, the trend displays with
additional indicators.
For alarms, the trend lines display with highlights. You can click on the highlighted area on the
trend line to see additional information about that alarm.
y
op
For events, trend lines display with event icons. You can click on an icon to see additional
information related to that event.
C
ot
N
o
D
Wonderware Training
Lab 14 – Configuring and Interacting with Alarms 7-23
Introduction
In this lab, you will add a high- and a low-level alarm to the mixer level and a new attribute to
monitor an alarm condition triggered from the PLC. You will interact with alarm attributes in Object
Viewer and use Insight and Microsoft SQL Server Management Studio to view the latest recorded
alarms.
Objectives
Upon completion of this lab, you will be able to:
Configure alarms in objects
y
Interact with alarm attributes in Object Viewer
View alarm and process history in Insight
op
Retrieve alarm history from SQL Server
C
ot
N
o
D
y
op
C
3. Scroll down and configure the Limit alarms group as follows:
Wonderware Training
Lab 14 – Configuring and Interacting with Alarms 7-25
4. Save and close, and then check in the object with an appropriate comment.
5. In the Training\Project toolset, open the $Mixer configuration editor.
6. Add an attribute named Alarm.Condition and configure it as follows:
y
op
C
ot
N
o
D
7. Save and close, and then check in the object with an appropriate comment.
You may configure other data points for alarming.
In the Deployment view, notice that the Mixer100 object now has changes that have not been
deployed.
y
op
C
8. Deploy Mixer100.
ot
N
o
D
Wonderware Training
Lab 14 – Configuring and Interacting with Alarms 7-27
y
Level_001.PV.Hi.Limit
Level_001.PV.Lo.Limit
op
Level_001.PV.Hi.AckMsg
Level_001.PV.Lo.AckMsg
C
ot
N
o
D
y
op
C
14. Click OK.
ot
N
o
D
Wonderware Training
Lab 14 – Configuring and Interacting with Alarms 7-29
y
op
17. Click OK.
When an alarm has been acknowledged, the severity count for the object should decrease.
C
ot
N
o
The message must change if you wish to acknowledge the alarm again later.
D
y
op
C
20. Click Refresh to refresh the trend to the most recent data.
ot
N
o
D
Wonderware Training
Lab 14 – Configuring and Interacting with Alarms 7-31
21. Hover over the trend and use your mouse wheel to zoom in until the trend shows a red
highlight color for the peak of Level_001.PV.
The zoom level must be detailed enough to show the alarm limit colors associated with alarm
severity. For Level, this is configured as Alarm Hi limit set to a priority of 100, which is Severity
1 (red color) and Alarm Lo limit of 500, which is Severity 2 (yellow color).
y
op
C
Note: Since Mixer.Alarm.Condition has no historized process data, it cannot be added to
the trend to view alarm states.
ot
Now, you will use Microsoft SQL Server Management Studio to view the latest recorded alarms
and events.
22. Open Microsoft SQL Server Management Studio.
o
Note: You can find this in the Windows menu, under Microsoft SQL Server 2014.
D
y
23. Keep the default settings and click Connect.
op
24. On the File menu, click Open | File.
C
ot
N
Wonderware Training
Lab 14 – Configuring and Interacting with Alarms 7-33
y
The data appears in the bottom-middle pane.
op
C
ot
N
o
D
28. Scroll to the right and down to view all the data.
29. Exit Microsoft SQL Server Management Studio.
y
op
C
ot
N
o
D
Wonderware Training
y
op
Module 8 – Object Management
C
Section 1 – Object Export and Import 8-3
ot
Module Objectives
Export objects
Import Objects
Upgrade objects
Revert to previous versions
y
op
C
ot
N
o
D
Wonderware Training
Section 1 – Object Export and Import 8-3
y
backup. Also, the backup process retains security model settings for objects while exporting them
does not.
op
When exporting an object instance, it will also include the parents of that object all the way back to
and including the base template.
C
Note: When exporting an object that uses a script function, the script function is not transferred
with it. You must ensure that the script function libraries are transferred separately.
ot
N
o
D
Export Objects
To export an object, select an object in the Template Toolbox or Application Views pane, and then
on the Galaxy menu, select Export | Object(s).
y
op
C
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 the objects in the Galaxy, click Export, and then
ot
Wonderware Training
Section 1 – Object Export and Import 8-5
The Export Automation Object(s) dialog box appears. In the dialog box, browse to the path and
add a file name (.aaPKG extension) for the export file.
y
op
Click Save. Click Cancel to terminate the export function. If you click Save, a progress box is
displayed.
C
ot
N
o
D
Note: Export maintains containment and hierarchy 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.
When the export process is finished, click Close. The resulting .aaPKG file can be used to import
the chosen objects into another existing Galaxy.
Import Objects
To import Automation objects, on the Galaxy menu, select lmport | Object(s).
y
op
C
ot
N
o
D
Wonderware Training
Section 1 – Object Export and Import 8-7
y
op
Browse for the file with either a .aaPKG or a .aaPDF extension. You can select more than one file.
Click Open.
C
ot
N
o
D
y
op
C
In the Objects with same Tagname and Codebase as an existing object area, select one of the
following:
Skip: Do not import leaves the existing object unchanged.
ot
Wonderware Training
Section 1 – Object Export and Import 8-9
y
Note: If you import a new version of an existing instance, the new version is marked as requiring
deployment if the existing object is already deployed.
op
C
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
Lab 15 – Exporting and Importing Objects 8-11
Introduction
In this lab, you will use the Export Objects and Import Objects features of the ArchestrA IDE.
Specifically, you will use these features to upgrade and downgrade object versions. Then, you will
make copies of objects within the Galaxy.
Objectives
Upon completion of this lab, you will be able to:
Use the Export Objects and Import Objects features of the ArchestrA IDE
y
op
C
ot
N
o
D
y
op
C
ot
N
Wonderware Training
Lab 15 – Exporting and Importing Objects 8-13
y
op
C
ot
Now, you will make changes to the $Storage object and view the version changes.
7. Open the $Storage configuration editor.
o
11. Save and close, and then check in the object with an appropriate comment.
12. Right-click $Storage and select Properties.
13. Click the Attributes tab.
y
The ConfigVersion has changed to version 2.
op
C
ot
N
o
D
The ConfigVersion increases by 1 each time changes to the object are checked in.
14. Click Close.
Wonderware Training
Lab 15 – Exporting and Importing Objects 8-15
Next, you will save a copy of the object by exporting the object.
15. Ensure $Storage is selected.
16. On the Galaxy menu, select Export | Object(s).
y
op
C
The Export Automation Object(s) dialog box appears.
ot
y
20. Click Close.
op
21. Open the $Storage configuration editor.
22. Add and configure two new attributes as follows:
Attribute
Name Data type Category
C
Viscosity Integer User writeable (default)
Hardness Integer (default) User writeable (default)
ot
23. Save and close, and then check in the object with an appropriate comment.
Wonderware Training
Lab 15 – Exporting and Importing Objects 8-17
y
op
C
ot
Now, you will export this version of the object by using an alternative method of right-clicking
directly on the object.
27. Right-click $Storage and select Export | Object(s).
y
op
C
28. In the Export Automation Object(s) dialog box, File name field, enter $StorageV3.
ot
N
o
D
Wonderware Training
Lab 15 – Exporting and Importing Objects 8-19
Next, you will delete the $Storage object and import the previously exported $StorageV2.
31. Right-click $Storage and select Delete.
y
The Delete dialog box appears.
op
C
ot
N
y
op
C
ot
N
o
D
Wonderware Training
Lab 15 – Exporting and Importing Objects 8-21
y
op
35. Click Open.
The Import Preferences dialog box appears.
C
ot
N
o
D
y
37. Click Close.
$Storage appears again in the Project toolset.
op
C
ot
N
o
D
Wonderware Training
Lab 15 – Exporting and Importing Objects 8-23
y
op
C
ot
Upgrade Objects
Now, you will import the $StorageV3.aaPKG file.
41. On the Galaxy menu, select Import | Object(s).
42. In the Import Automation Object(s) dialog box, select $StorageV3.aaPKG.
y
op
C
43. Click Open.
44. In the Import Preferences dialog box, leave the default options and click OK.
ot
Wonderware Training
Lab 15 – Exporting and Importing Objects 8-25
y
op
C
48. Click Close.
ot
49. In the $Storage configuration editor, verify that all four attributes are now visible in the
attributes list.
N
o
D
Downgrade Objects
Now, you will downgrade the $Storage object by importing a previous version of the object.
51. Use the Galaxy menu to import $StorageV2.aaPKG.
52. In the Import Preferences dialog box, Objects with same Tagname and Codebase as an
existing object area, select the Overwrite objects regardless of configuration version
option.
y
op
C
ot
N
overwritten.
D
Wonderware Training
Lab 15 – Exporting and Importing Objects 8-27
55. Open the $Storage properties, and on the Attributes tab, verify configuration version 2 was
imported.
y
op
C
ot
Duplicate an Object
Next, you will import an object to create a duplicate of the object.
59. Right-click $Storage and rename the object $Storage1.
y
60. Use the Galaxy menu to import $StorageV2.aaPKG file.
op
61. In the Import Preferences dialog box, keep the default options and click OK.
The Import Automation Object(s) progress shows that $Storage was not found, so the
object was created. C
ot
N
o
D
Wonderware Training
Section 2 – Galaxy Dump and Galaxy Load 8-29
This section describes how to use the Galaxy Dump and Galaxy Load features of the ArchestrA
IDE. It explains how to use these features to modify and create instances of objects.
Galaxy Dump
Object instances and their configuration data can be exported to a comma-delimited format Galaxy
dump file (.csv extension).
The Galaxy Dump 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-writable, one column per attribute. Attributes
that are locked or runtime writable only are not saved to the file. The following are not exported:
Scripts libraries are not exported. Scripts within an object are exported.
y
Attributes that are not text based are not exported.
For example, type QualifiedStruct is not exported.
op
Custom object online help files are not exported.
To export objects to a Galaxy dump file, 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.
C
On the Galaxy menu, select Export, and then click Galaxy Dump.
ot
N
o
D
y
op
C
Click Save to continue or Cancel to end the export function.
ot
After the Galaxy dump process is finished, click Close. A .csv file has been created containing the
selected objects and configuration data. Note that attribute properties that have been locked will
not be part of the Galaxy dump CSV file.
Wonderware Training
Section 2 – Galaxy Dump and Galaxy Load 8-31
Note: Carriage returns in scripts associated with dumped objects are replaced with "\n" in the .csv
file. If you edit the dump file, do not delete the "\n" characters. If you edit scripts in the dump file,
use "\n" for a carriage return. This character set is interpreted as a carriage return when the dump
file is used in a Galaxy Load function. When editing a script in a dump file, use "\\n" if you want to
include the character "\" followed by the character "n" in a script. This character set is not
converted to a carriage return in a Galaxy Load function.
y
op
C
ot
N
o
D
Galaxy Load
Object instances and their configuration data in an existing Galaxy can be exported to a comma-
delimited format Galaxy dump file (.csv extension). A .csv file can be edited in most text editors
and spreadsheet programs.
Note: The contents of the .csv file is determined by the original Galaxy dump. A load file contains
only instances. Templates cannot be dumped and loaded.
Using editing functions like copy and paste, you can create quantities of already configured
objects ready to be imported into your Galaxy.
Important: The Dump contains only Object Instances. For the Load to succeed, the templates
from which those objects were derived must already exist in the Galaxy.
To import a .csv file, on the Galaxy menu, select Import, and then click Galaxy Load.
y
op
C
ot
N
o
D
Wonderware Training
Section 2 – Galaxy Dump and Galaxy Load 8-33
y
op
C
Select the file and click Open to continue or Cancel to end the import function.
If Open is chosen, the Galaxy Load Conflict Resolution dialog box is displayed.
ot
N
o
D
Use it to resolve conflicts that occur if objects you want to load already exist in the Galaxy.
The options are:
Replace entire instance if an instance of an object with the same name already exists and
you want to replace it entirely with the object in the import file.
Only update changed attributes if an instance with the same name already exists and you
want to replace only the attributes of the object where the values are different.
Skip if an instance with the same name already exists and you want to keep the version
already in the Galaxy.
Stop Galaxy Load if an instance with the same name already exists and you want to cancel
the Galaxy Load.
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 quotation marks.
y
op
C
ot
N
o
D
Wonderware Training
Lab 16 – Configuring Instances Using a .CSV File 8-35
Introduction
In this lab, you will use the Galaxy Dump and Galaxy Load features of the ArchestrA IDE to
change the configuration of the mixer instance, including its contained objects. You will also use
the Galaxy Load feature to create a new mixer from an existing .csv file.
Objectives
Upon completion of this lab, you will be able to:
Use Galaxy Dump and Galaxy Load features to modify instances
Use a .csv file to make configuration changes to an object
y
op
C
ot
N
o
D
y
op
2. On the Galaxy menu, select Export | Galaxy Dump.
C
ot
N
o
D
Wonderware Training
Lab 16 – Configuring Instances Using a .CSV File 8-37
y
op
4. Click Save.
When the Galaxy Dump is complete, the progress displays 100% processed.
C
ot
N
o
D
5. Click Close.
Note: The following process will vary depending on your version of Microsoft Excel.
7. On the File menu, click Open, and then in the Open dialog box, navigate to C:\Training.
8. Using the file type drop-down list, select All Files, and then select the Mixer file name.
y
op
C
ot
9. Click Open.
N
o
D
Wonderware Training
Lab 16 – Configuring Instances Using a .CSV File 8-39
y
op
C
11. Leave all other default options and click Next.
The Text Import Wizard - Step 2 of 3 dialog box appears.
ot
12. Uncheck the Tab check box, and then check the Comma check box.
N
o
D
y
op
C
ot
15. For the Mixer100 instance, ShortDesc attribute (cell G6), enter Mixing Tank.
N
o
D
Wonderware Training
Lab 16 – Configuring Instances Using a .CSV File 8-41
y
op
C
ot
N
o
D
17. On the File menu, click Save As, and then navigate to C:\Training.
18. In the File name field, enter Mixer1.
19. In the Save as type drop-down list, select CSV (Comma delimited).
y
20. Click Save.
op
C
The Microsoft Excel dialog box appears, confirming if you are sure you want to keep the
format.
ot
Note: This dialog box will vary depending on your version of Microsoft Excel.
N
o
Wonderware Training
Lab 16 – Configuring Instances Using a .CSV File 8-43
24. In the ArchestrA IDE, on the Galaxy menu, select Import | Galaxy Load.
y
op
25. In the Galaxy Load dialog box, select the Mixer1 file.
C
ot
N
o
D
y
op
C
ot
N
Wonderware Training
Lab 16 – Configuring Instances Using a .CSV File 8-45
The Model view now displays that the objects that were imported have pending changes that
need to be redeployed. You will redeploy these later in this lab.
y
op
30. For the following objects, open the configuration editor, click the Object Information tab and
C
verify the Description fields match those you entered in Microsoft Excel:
Mixer100: Mixing Tank
ot
Pump1_001: Pump 1
Pump2_001: Pump 2
D
32. In the Deployment view, deploy Mixer100, and then verify the Cascade Deploy option is
checked.
y
33. Leave all other default options and click OK.
op
34. When the Deploy progress is 100% completed, click Close.
36. If necessary, use the file type drop-down list to select the All Files option, and then select the
Mixer1 file.
N
o
D
Wonderware Training
Lab 16 – Configuring Instances Using a .CSV File 8-47
Now, you will rename the tagname from Mixer100 to Mixer200 and rename all the contained
objects. This will create new instance names for a new mixer and all its contained objects. The
most efficient and complete way to do this is using the Find and Replace feature.
38. Expand Column A so you can see all its contents.
39. Use the Find and Replace feature to rename Mixer100 to Mixer200.
Note: You can use the Replace All feature to make these changes.
y
op
40. Rename the objects ending in _001 to end in _002.
Note: You can use the Replace All feature to make these changes.
C
ot
N
o
43. Verify that the object tagnames were changed with the Replace All feature.
44. Verify that the area is now Line2 and the object names for the Container names were
changed with the Replace All feature.
y
op
C
ot
N
o
D
Wonderware Training
Lab 16 – Configuring Instances Using a .CSV File 8-49
45. On the File menu, click Save As and navigate to the C:\Training folder.
46. In the File name field, enter Mixer2.
47. In the Save as type drop-down list, verify that CSV (Comma delimited) is selected.
y
48. Click Save.
op
C
The Microsoft Excel dialog box appears, confirming if you are sure you want to keep the
format.
ot
N
52. In the ArchestrA IDE, on the Galaxy menu, select Import | Galaxy Load.
53. In the Galaxy Load dialog box, select Mixer2.
y
op
54. Click Open.
The Galaxy Load Conflict Resolution dialog box appears.
C
ot
N
o
D
Wonderware Training
Lab 16 – Configuring Instances Using a .CSV File 8-51
When the Galaxy Load is complete, the progress displays 100% processed.
y
57. In the Model view, expand Line2 and note that the new Mixer200 instance has been added to
the Line2 area.
op
58. Expand Mixer200 to view the new contained objects.
C
ot
N
Note: Since the Line2 area was assigned to ProdPLC:Topic1 for autobind purposes (in
o
Lab 12), all objects assigned to that area will automatically be autobound to the same IO
source.
D
60. In the Deploy dialog box, leave the default options and click OK.
y
Agitator_002.CMD
Agitator_002.PV
op
Agitator_002.Speed.PV
Agitator_002.Speed.SP
Inlet and Outlet CMDs and OLSs
Pump CMDs and PVs
C
ot
N
o
D
Wonderware Training
y
op Module 9 – Security
C
Section 1 – Security Overview 9-3
ot
Module Objectives
Configure Security Classifications for attributes in objects
Configure security in a Galaxy
View the security audit trail
y
op
C
ot
N
o
D
Wonderware Training
Section 1 – Security Overview 9-3
ArchestrA security is designed to prevent users from performing unauthorized activities. This
includes users of:
IDE for configuring and managing objects
ArchestrA System Management Console (SMC) for performing maintenance and system
administration functions.
Any runtime operations.
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. When using the
Galaxy security authentication mode, 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
y
the system.
op
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.
C
The ArchestrA Security Model
ot
See the image below for a visual hierarchical overview of the ArchestrA security model. This
shows the relationships of the objects in the Security Model to each other and to the rest of the
ArchestrA System.
N
o
D
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
y
Operational 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.
op
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. C
The final aspect of the Security Model is the User. This describes the access to the system allowed
by a User. The User can be granted as many Roles as needed to perform their job.
ArchestrA's security system is configured in the Configure Security dialog box by:
ot
Enabling Security
Defining your Security Model
Mapping Users to the Security Model
N
Wonderware Training
Section 1 – Security Overview 9-5
Authentication Mode
y
op
C
ot
N
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
D
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.
y
op
Note: When you select Authentication Modes, note the messages relevant to your ArchestrA
installation that are displayed in the Note box.
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
N
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.
o
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
D
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.
Wonderware Training
Section 1 – Security Overview 9-7
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.
y
the functions of the Windows operating system, particularly its user permissions, groups and
security features. ArchestrA OS Group Based security leverages those Windows features.
op
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
C
do writes. To enable remote writing capabilities, log on to the remote node at least once.
If you log in to ArchestrA on a workstation that belongs to Domain A and Domain
Controller A fails, locally cached login data is used on subsequent logins. When the
ot
domain controller returns to operation, your login will fail during the time period that trusts
are being reestablished by the controller. If during the controller outage, your username/
password data was changed, you may be able to use the old login data if you intend to
work locally. If you want to perform remote operations, you should attempt to log in with
N
the new login data. If that fails, the trusts are being reestablished by the controller, and you
should retry at a later time.
The user's full name is not available to any client (for instance, an InTouch window) if the
o
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
D
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.
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.
User Authentication
Client utilities like ArchestrA IDE, SMC, and InTouch for System Platform 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.
y
defined on each machine and imported into the Galaxy Repository (GR) and defined as
Local Host.
op
Logon Dialog Box
If security is enabled within the Galaxy, a client utility Logon dialog box will appear. Application
C
Server provides a standard login dialog. The login appears:
The user explicitly chooses a Log On option from within the user interface. It is not
necessary to explicitly Log Off before logging on using a different User Profile. The
previous user will be implicitly logged off.
ot
Security Roles
o
You can create and manage user roles that apply to your organization’s processes and work-
based authorities. Two roles are defined by default: Administrator and Default.
D
Security Users
If you select either of the OS-based authentication modes, users with local accounts are added to
the Authorized Users Available list in the following format: .\<username>. If you select the OS
Group based authentication mode, the local account must exist on each node in the Galaxy for
successful authentication of that user on any computer in the Galaxy.
Two users are defined by default when a new Galaxy is created: Administrator and DefaultUser.
These cannot be deleted in an open security setting and they are both associated with the default
roles.
Wonderware Training
Section 1 – Security Overview 9-9
Security Permissions
You can specify General and Operational Permissions for each role:
General permissions relate to application configuration and administration tasks
Operational permissions relate to the security groups listed on the Security Groups page;
by default, the Administrator has all permissions
Note: You cannot modify the General permissions for the role of Administrator.
y
which requires that the user first put the object Off scan; writing to these attributes is
considered a significant configuration change, for example, a PLC register that defines a
op
DiscreteDevice input
Can Acknowledge Alarms: Allows users to manually acknowledge an alarm in the
runtime environment C
Can Shelve Alarms: Allows users to manually shelve and unshelve alarms
Can Modify Alarm Modes: Allows users to modify the mode of an alarm
Can Modify Plant States: Allows users to modify plant states for state-based alarming
ot
Can Verify Writes: Allows users to provide an authentication signature for attributes
configured with Verified Writes security classification. Only users with this permission can
verify a task performed by users with the Can Modify "Operate" Attributes permission.
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
Lab 17 – Configuring Security 9-11
Introduction
Your Galaxy security is disabled, so you have been able to perform any action during configuration
and runtime without having to log in to the ArchestrA IDE or Object Viewer. In this lab, you will
enable security in the Galaxy to use operating system user groups (OS Groups) as the
authentication method.
For this example, you will create security groups based on the areas of the plant and add several
user groups from the network domain or local computer (depending on your setup) to represent
the different security roles in the Galaxy. You will add roles for administrators, developers,
maintenance, supervisors, and operators. Each role will have a different set of permissions, both
for configuration (General permissions) and runtime (Operational permissions).
Objectives
y
Upon completion of this lab, you will be able to:
op
Configure security in a Galaxy
Enable OS Group security
Create and use security groups
Add security roles and assign permissions to them
C
Configure general permissions
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
Lab 17 – Configuring Security 9-13
Note: Increasing the amount of Login time here will allow for a more seamless logging in
and testing of different users later in the lab.
y
op
C
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
Lab 17 – Configuring Security 9-15
y
op
C
ot
N
o
D
9. In the Objects for Security Group ‘Default’ list, select the following instances and drag them
to the Line1 security group:
Agitator_001
Inlet1_001
Inlet2_001
Level_001
Mixer100
Outlet_001
Pump1_001
Pump2_001
Temperature_001
y
op
C
ot
N
o
D
Wonderware Training
Lab 17 – Configuring Security 9-17
Notice that the instances moved are no longer in the Default security group.
y
op
C
ot
N
11. Move the following instances from the Default security group to the Line2 security group:
Agitator_002
Inlet1_002
Inlet2_002
Level_002
Mixer200
Outlet_002
Pump1_002
Pump2_002
Temperature_002
y
op
C
ot
N
o
D
Wonderware Training
Lab 17 – Configuring Security 9-19
y
op
C
ot
N
o
D
13. Move the following instances from the Default security group to the ControlSystem security
group:
AppEngine1
ControlSystem
GRPlatform
ProdPlatform
ProdPLC
R_ProdPLC1
R_ProdPLC2
Simulator
y
op
C
ot
N
o
D
Wonderware Training
Lab 17 – Configuring Security 9-21
y
After the assignments, the Default security group will contain only the objects that were not
moved.
op
C
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
Lab 17 – Configuring Security 9-23
16. Click the Add new Role button to add a new role.
The Select Groups dialog box appears.
y
op
C
ot
N
17. In the Select in drop-down list, select the domain name ('CLOUD' in the graphic below) or
o
Note: Your instructor will provide you with the correct domain name.
The operating system’s groups are now displayed in the Available OS Groups list.
y
op
C
ot
Application Developers 1
Plant Maintenance 1
Plant Operators 1
o
Plant Operators 2
Plant Supervisors 1
D
Wonderware Training
Lab 17 – Configuring Security 9-25
y
op
C
ot
N
o
D
Next, you will configure permissions for the built-in Default and Administrator security roles.
22. In the Roles available list, select the Default security role.
23. In the General permissions list, uncheck:
IDE Permissions (This will uncheck all its sub-permissions)
SMC Permissions\Can Start the SMC
SMC Permissions\Can Start/Stop Engine/Platform
The only permission checked will be Can Write to GObject Attributes using ObjectViewer.
Important: All users will inherit the permissions assigned to the built-in Default security role.
Assigning the Can Write to GObject Attributes using ObjectViewer permission to this role
is not a good practice. It is done here to allow testing of the security features through Object
Viewer in a later lab.
24. In the Operational permissions list, uncheck the Default security group.
y
op
C
ot
N
o
D
Wonderware Training
Lab 17 – Configuring Security 9-27
25. Select the Administrator role and configure the General permissions and Operational
permissions as follows:
General permissions:
IDE Permissions checked (default)
SMC Permissions checked (default)
Operational permissions:
Default checked (default)
Line1 checked
Line2 checked
ControlSystem checked
y
op
C
ot
N
o
D
You will now configure permissions for the added security roles.
26. Select the Application Administrators role and configure the General permissions and
Operational permissions as follows:
General permissions:
IDE Permissions checked
SMC Permissions checked
Operational permissions:
Default checked
Line1 checked
Line2 checked
ControlSystem checked
y
op
C
ot
N
o
D
Wonderware Training
Lab 17 – Configuring Security 9-29
27. Select the Application Developers 1 role and configure the IDE Permissions and SMC
Permissions as follows:
General permissions:
IDE Permissions checked
User Configuration unchecked
SMC Permissions checked
Can Start/Stop Engine/Platform unchecked
y
op
C
ot
N
o
D
28. With the Application Developers 1 role selected, configure the Operational permissions as
follows:
Operational Permissions:
Default
Can Modify "Operate" Attributes checked
Line1
Can modify "Configure" attributes checked
Can modify "Operate" attributes checked
Line2
Can modify "Configure" attributes checked
Can modify "Operate" attributes checked
ControlSystem
Can modify "Configure" attributes checked
y
Can modify "Operate" attributes checked
op
C
ot
N
o
D
All currently deployed objects belong to the Default security group. The application
developers need Operate permissions for this group to be able to place the object off scan for
redeployment.
Wonderware Training
Lab 17 – Configuring Security 9-31
General permissions:
SMC Permissions checked
Can Start/Stop Engine/Platform unchecked
Operational permissions:
Line1
Can modify "Configure" attributes checked
Can modify "Tune" attributes checked
Line2
Can modify "Configure" attributes checked
Can modify "Tune" attributes checked
ControlSystem
Can modify "Configure" attributes checked
y
Can modify "Tune" attributes checked
op
C
ot
N
o
D
Operational permissions:
Line1
Alarms
Can acknowledge Alarms checked
Can modify "Operate" attributes checked
y
op
C
ot
N
o
D
Wonderware Training
Lab 17 – Configuring Security 9-33
Operational permissions:
Line2
Alarms
Can acknowledge Alarms checked
Can modify "Operate" attributes checked
y
op
C
ot
N
o
D
Operational permissions:
Line1
Alarms
Can acknowledge Alarms checked
Can modify "Operate" attributes checked
Can Verify Writes checked
Line2
Alarms
Can acknowledge Alarms checked
Can modify "Operate" attributes checked
Can Verify Writes checked
ControlSystem
y
Alarms
Can acknowledge Alarms
op
checked
Can modify "Operate" attributes checked
Can Verify Writes C checked
ot
N
o
D
Wonderware Training
Lab 17 – Configuring Security 9-35
Because security has been enabled in the Galaxy, after a few moments, you are prompted to
log into the ArchestrA IDE. Your instructor will provide any passwords different from those
listed below.
34. In The Change User dialog box, log in as one of the members of the Plant Maintenance 1
security role:
Role First, Last User name Password Domain
Plant Maintenance 1 Kevin Green KevinG ww CLOUD
Monica Reed MonicaR ww CLOUD
y
op
Since maintenance personnel were not given permissions to access the ArchestrA IDE (Can
Start the IDE permission), an access denied message is displayed.
C
ot
N
The ArchestrA IDE closes and reopens with the user logged in.
Notice that most of the objects need changes to be deployed because they were assigned to a
different Security Group, which modified their SecurityGroup attribute.
y
op
Note: You will deploy the objects in the next lab.
C
ot
N
o
D
Wonderware Training
Section 2 – Object Security 9-37
On the Attributes tab, security icons must be enabled before you can set security for an
attribute or any of its features in a template. To enable security, click the Show/Hide Security icon
to the right of the description field.
y
op
C
ot
N
When security is enabled, security symbols will appear next to values for which security is
configurable. Security symbols are not visible in the template or its derived instances unless
enabled in the parent template. If an attribute's security classification is configurable, click the
o
If an attribute’s security is shown in gray, its security classification is locked in its parent object and
cannot be changed or it requires the enabling of a group attribute.
Group Locking/Security
y
The lock and security controls associated with option groups and features quickly set those
op
conditions for all options in the group.
The group control typically reflects the setting for all options in the group or feature set. But, if at
least one option in the group has a lock or security control that is different from the other options,
the group control shows an indeterminate icon.
C
In addition to the undefined controls, the group controls for locking and security are the same as
those for individual options.
ot
You can lock or unlock all of the attributes associated with a feature by selecting the lock icon next
to the feature name, after you activate the feature. This will lock or unlock all of the attributes for
the feature, unless an attribute was locked at a higher level. For example, if you locked an attribute
in a template, and then created another derived template, the attribute that was locked in the
N
objects
D
Wonderware Training
Section 2 – Object Security 9-39
Tag description, which is a short description of the object. For Secured and Verified writes,
this will contain the following:
Type of write (Secured or Verified)
Comment from the user, if any
Reason description, if any
FieldAttribute description, if the attribute is a FieldAttribute and has a description;
otherwise, this is the Object description.
Area, which is the name of the area that contains the object generating the event.
UserEngine, which is the name of the view engine or other user engine requesting the
operator change.
Operator1, which is the full name of the primary operator requesting a change. The full
name is an attribute of the UserProfile.
Operator2, which is the full name of the secondary operator validating the change, if any.
Old value, which is the previous value of an attribute. o New Value, which is the new value
of an attribute.
y
Security Query
op
As a part of the security audit trail, you can use Microsoft SQL Server Management Studio to view
security-related events. When you log in to Microsoft SQL Server Management Studio, be sure to
verify the Server name is the same as the Historian computer.
C
You can create a query to show events for a set period of time. In the screen below, you are
querying for the last hour. After you create your query, on the toolbar, click Execute.
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
Lab 18 – Implementing Object Security 9-41
Introduction
In the last lab, you configured security roles and permissions. In this lab, you will configure the
security classifications in some of the automation objects. The valves command attribute (Cmd)
has an Operate security classification by default. The temperature maximum engineering units
(EngUnitsMax and EngUnitsRangeMax) have a Configure security classification by default. The
agitator’s speed setpoint (Speed.SP) will be set with a Secured Write security classification, and
the outlet valve command (Outlet.CMD) will be changed to a Verified Write security classification.
You will use Object Viewer to test the different security classifications against the permissions
assigned to the security roles and view the recorded security-related events in the alarm database.
Objectives
Upon completion of this lab, you will be able to:
y
Configure security classifications for object attributes
op
Perform secured and verified writes with Object Viewer
View the security audit trail
C
ot
N
o
D
2. In the ArchestrA IDE, Template Toolbox, Training\Project template toolset, open the
$Mixer.Agitator configuration editor.
3. On the Attributes tab, in the attributes list, select the Speed.SP attribute.
y
op
C
ot
N
4. To the right of the Initial value field, click the shield icon and change the security classification
o
to SecuredWrite.
D
Wonderware Training
Lab 18 – Implementing Object Security 9-43
5. Click the lock icon to propagate the security classification to the derived instances.
6. Save and close the $Mixer.Agitator template, and then check in the object with an
appropriate comment.
Notice that the change propagates to both agitators.
y
op
C
ot
7. Click Close.
Now that the security classification has been propagated to the instances, the Speed.SP attribute
N
11. Save and close the $Mixer.Agitator template, and then check in the object with an
appropriate comment.
Notice that the change propagates to both agitators.
y
12. Click Close.
op
Next, you will change the security classification of the $Mixer.Outlet attribute in the mixer to
VerifiedWrite.
13. In the Template Toolbox, open the $Mixer.Outlet configuration editor.
C
14. On the Attributes tab, in the attributes list, ensure the CMD attribute is selected.
ot
N
o
D
Wonderware Training
Lab 18 – Implementing Object Security 9-45
15. To the right of the Initial value field, click the shield icon and change the security classification
to VerifiedWrite.
16. Click the lock icon to propagate this change to the derived instances.
y
op
17. Save and close the $Mixer.Outlet template, and then check in the object with an appropriate
comment.
18. When check in is complete, click Close.
C
19. Reopen the $Mixer.Outlet configuration editor.
20. On the Attributes tab, in the attributes list, ensure the CMD attribute is selected.
ot
21. To the right of the Initial value field, unlock the attribute.
N
o
D
22. Save and close the $Mixer.Outlet template, and then check in the object with an appropriate
comment.
23. When check in is complete, click Close.
y
op
C
ot
N
o
D
Wonderware Training
Lab 18 – Implementing Object Security 9-47
Now, you will test the security classifications and permissions in runtime using Object Viewer.
29. In the Deployment view, select Outlet_001 and view it in Object Viewer.
Object Viewer opens and automatically logs in the user who is logged in to the ArchestrA IDE.
y
op
C
30. In Object Viewer, on the Options menu, select Change User.
ot
N
o
D
32. Load the watch list that was saved earlier and switch to the Mixer200 watch window.
y
33. Double-click Inlet2_002.CMD.
op
C
ot
Wonderware Training
Lab 18 – Implementing Object Security 9-49
Since Plant Operators 1 personnel were not given permissions to operate Line 2 objects, an
access denied message appears.
y
37. On the Mixer100 watch window, double-click Inlet1_001.CMD.
op
C
ot
N
o
This time the command was executed because Plant Operators 1 have Operate permissions
over Line 1 objects.
y
Next, you will test the Configure Security classification.
op
40. Use Change User to log in as one of the members of the Plant Maintenance 1 security role:
Role First, Last User name Password Domain
Plant Maintenance 1 Kevin Green KevinG ww CLOUD
Monica Reed
C
MonicaR ww CLOUD
ot
N
o
D
Wonderware Training
Lab 18 – Implementing Object Security 9-51
y
op
C
42. Save the watch list.
ot
Since the attribute has a security classification of Configure, an error message appears that
the object needs to be placed off scan first.
y
46. Double-click Temperature_001.ScanStateCmd and change the value to False.
op
C
ot
N
o
D
Wonderware Training
Lab 18 – Implementing Object Security 9-53
y
49. Log in as one of the members of the Plant Operators 1 security role:
op
Role First, Last User name Password Domain
Plant Operators 1 John Johnson JohnJ ww CLOUD
Lisa Young LisaY ww CLOUD
C
50. Double-click Temperature_001.ScanStateCmd and change the value to False to place the
object off scan.
ot
This time the change takes effect. The ScanState now displays false.
N
o
D
51. Log in as one of the members of the Plant Maintenance 1 security role:
Role First, Last User name Password Domain
Plant Maintenance 1 Kevin Green KevinG ww CLOUD
Monica Reed MonicaR ww CLOUD
y
op
C
ot
Wonderware Training
Lab 18 – Implementing Object Security 9-55
54. Log in as one of the members of the Plant Operators 1 security role:
Role First, Last User name Password Domain
Plant Operators 1 John Johnson JohnJ ww CLOUD
Lisa Young LisaY ww CLOUD
55. Double-click Temperature_001.ScanStateCmd and change the value to True to place the
object on scan.
y
op
C
ot
y
op
Now, you will test the VerifiedWrite security classification by first making it fail, and then you will
log in with Plant Supervisor credentials. C
60. Double-click Outlet_001.CMD, change the value to True, and click OK.
The attribute has a security classification of VerifiedWrite, so you are prompted for your
password and the credentials of a different user with Can Verify Writes permissions over the
ot
Important: For this authentication dialog box, the second user name must be entered in the
form of domain\userid.
o
Wonderware Training
Lab 18 – Implementing Object Security 9-57
The second user entered does not have Can Verify Writes permissions over the object, so an
access denied message is displayed.
y
64. Double-click Outlet_001.CMD, change the value to True, and click OK.
65. Enter ww as your password and the credentials of one of the following users in the Plant
op
Supervisors 1 security role.
Important: For this authentication dialog box, the second user name must be entered in the
form of domain\userid.
C
Role First, Last User name Password
Plant Supervisors 1 Michael Jones CLOUD\MichaelJ ww
ot
The second user entered does have Can Verify Writes permissions over the object, so the
value is written to the attribute.
y
op
67. Use the same credentials to change Outlet_001.CMD back to false.
C
View the Security Audit Trail
Now, you will use Microsoft SQL Server Management Studio to view the security-related events for
ot
69. Verify the Server name is the same as the Historian computer and click Connect.
Wonderware Training
Lab 18 – Implementing Object Security 9-59
y
op
71. In the Open File dialog box, navigate to C:\Training, and select SQLQuery2.
C
ot
N
o
D
y
op
C
ot
N
Wonderware Training
y
op
Module 10 – Introduction to
C
QuickScript.NET
ot
Module Objectives
Introduce basic concept of scripting
Introduce the scripting tools used in ArchestrA
Create scripts in objects with multiple execution types
Apply scripting tools to real examples using the System Platform
y
op
C
ot
N
o
D
Wonderware Training
Section 1 – Introduction to Scripting 10-3
y
White space rules apply for space and indention. Indent using spaces, or the Tab key. Individual
statements are indicated by a semicolon marking the end of the statement.
op
Required Syntax for Expressions and Scripts
The syntax in scripts is similar to the algebraic syntax of a calculator.
C
Most statements are presented using the following form:
a = (b - c) / (2 + x) * xyz;
This statement places the value of the expression to the right of the equal sign (=) in the variable
ot
Simple Scripts
Simple scripts implement logic such as assignments, math, and functions. An example of this type
of scripting is:
React_temp = 150;
ResultTag = (Sample1 + Sample2)/2;
{this is a comment}
y
op
C
ot
Scripts list: Shows all scripts currently associated with the object. The columns indicate
which kind of trigger the script uses: Startup, On Scan, Execute, Off Scan and Shutdown.
Click the Add button to add a new script.
o
Inherited scripts name list: Shows all scripts associated with the object's parent. The
columns indicate which kind of trigger the script uses: Startup, On Scan, Execute, Off
D
Wonderware Training
Section 1 – Introduction to Scripting 10-5
Basics area: Provides a location in which you set the expression, triggering conditions,
and other settings that run the script in the runtime environment. This area includes:
Configure Execution Order: Sets the execution order of multiple scripts (inherited
and local) associated with this object.
Historize script state: Select to send the state of the script to a Historian Server
historian, the ArchestrA historian.
Script Editor box: Shows the script you are writing.
Attribute Browser
From within the Script Editor the user can leverage the Attribute-Picker tool to browse through the
attribute namespace of the hosting object and other objects to pick a certain attribute to be
included in the script code. The tool does not distinguish between attributes of on-engine and off-
engine objects.
y
op
Script Function Browser
Like the InTouch script editor, the name of the selected script function and its calling syntax will be
added to the script text when the user picks it in the script function browser. In addition to being
able to insert the function call, the user can also enter a type declaration statement for object
C
names. In addition, the browser provides the user the ability to distinguish between properties and
methods.
Similar to browsing for script functions, the user can also browse for .NET / COM objects that have
ot
Syntax Validation
N
Script language syntax validation is performed by selecting the red check mark above the script
window.
This operation will identify and inform/warn the script developer of any syntax errors in the script. It
o
does not evaluate the logic, but rather only the syntax of the script. A script with syntax errors can
be saved. However, an object leveraging such a script cannot be deployed.
D
y
op
C
ot
N
o
D
Wonderware Training
Section 1 – Introduction to Scripting 10-7
Startup
Startup scripts are called when an object containing the script is loaded into memory, such as
during deployment, platform, or engine start.
Startup instantiates COM objects and .NET objects. Depending on load and other factors,
assignments to object attributes from the Startup method may fail. Attributes that reside off-object
are not available to the Startup method.
OnScan
OnScan scripts are called the first time an AppEngine calls this object to execute after the object’s
scan state changes to OnScan. The OnScan method initiates local object attribute values or
provides more flexibility in the creation of .NET or COM objects. Attributes that are off-engine are
not available to the OnScan method.
Execute
Execute scripts are called each time the AppEngine performs a scan and the object is OnScan.
y
The Execute script method is the workhorse of the scripting execution types. Use the Execute
method for your run-time scripting to ensure that all attributes and values are available to the
op
script.
If the quality check-box is checked, the Execute method is similar to InTouch scripts with the
following conditional trigger types:
C
Periodic: Executes whenever the elapsed time evaluates as true.
Data Change: Executes when a data value or quality changes between scans.
For the following trigger types, data changes between each scan are not evaluated, only the value
ot
at the beginning of each script is used for evaluation purposes. For example, if a Boolean attribute
changes from True to False to True again during a scan cycle, this change is not evaluated as a
data change as the value is True at the beginning of each scan cycle.
N
OnTrue: Executes if the expression validates from a false on one scan to a true on the
next scan.
OnFalse: Executes if the expression validates from a true on one scan to a false on the
next scan.
o
These scripts also have time-based considerations. A trigger period of 0 means that the script
D
OffScan
OffScan scripts are called when the object is taken OffScan. This script type is primarily used to
clean up the object and account for any needs to address as a result of the object no longer
executing.
If an object is taken OffScan, either directly, or indirectly because its engine is taken OffScan, all
in-progress asynchronous scripts for that object are requested to shut down by setting a Boolean
shutdown attribute for the script to true. A well-written script checks this attribute before and after
time-consuming operations. If the script takes more than 30 seconds to complete, a warning
appears in the logger that the script is not responding to the shutdown command. However, the
script is allowed to complete and is not terminated by force. This all takes place on the engine’s
main thread and could potentially hang the engine. During this time, the script might also time out
and as a result exits before executing all its logic.
Shutdown
Shutdown scripts are called when the object is about to be removed from memory, usually as a
result of the AppEngine stopping. Shutdown scripts are primarily used to destroy COM objects and
y
.NET objects and to free memory.
op
Language Definition
All QuickScript .NET keywords and variable name identifiers are not case sensitive. However, the
case is preserved throughout editor sessions.
C
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.
ot
Examples:
Dim A; 'This is a single line comment
N
end of a statement.
D
Wonderware Training
Section 1 – Introduction to Scripting 10-9
Autocomplete
QuickScript autocomplete is active by default in the Script Editor and incorporates several features
for use while authoring object and client scripts:
Provides an autocomplete Attribute reference when you type a generic object name, such
as "me." Runtime attributes appear in an autocomplete list box.
Provides method parameter help in an autocomplete list box including context-specific
suggestions covering definitions, keywords, script elements, and programmatic constructs
such as try ... catch or while ... endwhile.
Automatic word completion of Attribute references, methods, programmatic constructs,
and other script elements.
These features serve as convenient documentation of method parameters and scripting syntax as
well as an enhanced input method.
Autocomplete displays a context-sensitive list of options for script elements, keywords, object and
attribute names, and programmatic constructs. Press Ctrl + space to display all available
autocomplete options and variables for the selected location in the script. You can identify the
y
context from the icons displayed with the list items.
op
Attribute References
Relative References
C
References that go up the hierarchy to parent objects are called relative references.
Relative references, such as Me, are valid reference strings. A valid reference string must always
contain at least a relative reference or one substring.
ot
The following are valid relative references that refer to the current object:
N
o
D
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:
y
op
C
ot
N
o
D
Wonderware Training
Lab 19 – Adding Auto Reconnect to the DDESuiteLinkClient Object 10-11
Introduction
In this lab, you will configure the $gDDESuiteLinkClient to automatically reconnect to the data
source when the connection is lost. To do this, you will extend the object by adding attributes and
scripts. Using an attribute/script combination, you will also add additional diagnostic information
that will indicate the number of disconnects the object has experienced since it last went on scan.
Objectives
Upon completion of this lab, you will be able to:
Create scripts in an object
y
Create scripts with multiple execution types
Add reconnect functionality to a $DDESuiteLinkClient object
op
C
ot
N
o
D
y
op
2. On the Scripts tab, click the Add Script button.
3. Name the new script Reconnect and press Enter.
C
ot
N
o
D
Wonderware Training
Lab 19 – Adding Auto Reconnect to the DDESuiteLinkClient Object 10-13
Aliases: locked
Declarations: locked
Scripts: Execution type: Execute (default) and locked
Basics: locked
Expression: Me.ConnectionStatus <> 2
Trigger type: WhileTrue (default)
Trigger Period: 00:00:05.0000000
Script body: Me.Reconnect = true;
y
op
C
ot
N
This script will attempt to reconnect every 5 seconds, when not connected to the data source.
Now, you will validate the script syntax by using the Validate feature. If the script has a syntax
error, it will appear in an error message.
o
5. To the right of the Execution type drop-down list, click the Validate Script button.
D
Name: Disconnect.Cnt
Data type: Integer
Writeability: Calculated
y
7. On the Scripts tab, add a script named Disconnect.Monitor.
op
8. Configure the Disconnect.Monitor script as follows:
Aliases: locked
Declarations: locked C
Scripts: Execution type: Execute (default) and locked
Basics: locked
Expression: Me.ConnectionStatus <> 2
ot
This script will increase a counter by one every time the condition is true.
o
D
Wonderware Training
Lab 19 – Adding Auto Reconnect to the DDESuiteLinkClient Object 10-15
Now, you will add code within the same script under a different execution type that will run when
the object goes on scan.
10. While still in the Disconnect.Monitor script, change the Execution type to OnScan.
11. In the script body, enter:
Me.Disconnect.Cnt = 0;
This script will reset the counter to zero every time the object goes on scan.
y
Notice that the locking of the Aliases and Declarations did not change because you are still
in the same script.
op
12. Validate the script.
Notice the list of scripts on the left now lists the two scripts associated with this object and
displays an “x” in the column representing each execution type that contains a scripts.
C
ot
N
13. Save and close, and then check in the object with an appropriate comment.
o
The Check In dialog box reappears with an Object 1 of 1 completed message. Notice that
the changes propagated to both R_ProdPLC instances.
D
y
op
C
When complete, the progress displays 100% completed.
ot
N
o
D
Wonderware Training
Lab 19 – Adding Auto Reconnect to the DDESuiteLinkClient Object 10-17
y
op
C
ot
N
o
D
y
op
A confirmation message appears.
C
ot
Notice that the SMC now displays a red indicator icon, indicating the server has stopped.
o
D
Wonderware Training
Lab 19 – Adding Auto Reconnect to the DDESuiteLinkClient Object 10-19
In Object Viewer, the watch list now indicates that the R_PRODPLC1 object is currently
disconnected (R_PRODPLC1.ConnectionStatus), the object has disconnected once
(R_PRODPLC1.Disconnect.Cnt), and how many times the object has tried to reconnect
(R_PRODPLC1.Reconnect.ExecutionCnt).
y
op
C
ot
N
After a few seconds, your watch list will display that the data is once again connected.
o
D
y
op
C
26. Click OK.
The ScanState now displays false.
ot
N
o
D
Wonderware Training
Section 2 – Variables and Control Statements 10-21
This section describes the usage of variables and control statements in a script.
QuickScript.NET Variables
QuickScript .NET variables must be declared before they can be used in QuickScript .NET scripts.
Variables can be used on both the left and right side of statements and expressions.
Local variables or attributes can be used together in the same script. Variables declared within the
script body lose their value after the script is executed. Those declared in the script body cannot
be accessed by other scripts.
Variables declared in the Declarations area maintain their values throughout the lifetime of the
object that the script is associated with.
Each variable must be declared in the script by a separate DIM statement followed by a
semicolon. Enter DIM statements in the Declarations area of the Script tab page. The DIM
y
statement syntax is as follows:
DIM <variable_name> [ ( <upper_bound>
op
[, <upper_bound >[, < upper_bound >]] ) ]
[ AS <data_type> ];
where: C
DIM Required Keyword
<variable_name> Name that begins with a letter (A-Z or a-z) and whose remaining characters can
be any combination of letters (A-Z or a-z), digits (0-9) and underscores (_). The
ot
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 (for example, attribute name, alias or name of an object
leveraged by the script), the variable name takes precedence over the other named entities. If the
variable name is the same as an alias name, a warning message appears when the script is
validated to indicate that the alias is ignored.
The syntax for specifying the entire array is “[ ]” for both local array variables and for attribute
references. For example, to assign an attribute array to a local array, the syntax is:
locarr[] = tag.attr[];
DIM statements can be located anywhere in the script body, but they must precede the first
referencing script statement or expression. If a local variable is referenced before the DIM
statement, script validation done when you save the object containing the script prompts you to
define it.
Important: The validation mentioned above occurs only when you save the object containing the
script. This is not the script syntax validation done when you click the Validate Script button.
Do not cascade DIM statements. For example, the following examples are invalid:
DIM LocVar1 AS Integer, LocVar2 AS Float;
y
DIM LocVar3, LocVar4, LocVar5, AS String;
To declare multiple variables, you must enter separate DIM statements for each variable.
op
When used on the right side of an equation, declared local variables always cause expressions on
the left side to have Good quality. For example:
dim x as integer;
dim y as integer;
C
x = 5;
ot
y = 5;
me.attr = 5;
me.attr = x;
N
me.attr = x+y;
In each case of me.attr, quality is Good.
When you use a variable in an expression to the right of the operator, its Quality is treated as Good
o
You can use null to indicate that there is no object currently assigned to a variable. Using null has
the same meaning as the keyword "null" in C# or "nothing" in Visual Basic. Assigning null to a
variable makes the variable eligible for garbage collection. You may not use a variable whose
value is null. If you do, the script terminates and an error message appears in the logger. You may,
however, test a variable for null. For example:
IF myvar == null THEN ...
It is not possible to pass attributes as parameters for system objects. To work around this issue,
use a local variable as an intermediary or explicitly convert the attribute to a string using an
appropriate function call when calling the system object.
Float constants are applicable as values for variables of type float or double. For example, float
constants do not take the number of bytes into account. Script validation detects an overflow when
a float or double variable has been assigned a float constant that exceeds the maximum value.
Wonderware Training
Section 2 – Variables and Control Statements 10-23
y
[ ELSE;
[statements] ];
op
ENDIF;
where Boolean_expression is an expression that can be evaluated as a Boolean.
Depending on the data type returned by the expression, the expression is evaluated to constitute a
C
True or False state according to the following table:
Example:
IF value == 0 Then
Message = "Value is zero";
ELSEIF value > 0 Then;
Message = "Value is positive";
ELSEIF value < 0 then;
Message = "Value is negative";
ELSE;
{Default. Should never occur in this example};
ENDIF;
The following syntax is also supported:
IF <Boolean_expression> THEN;
[statements];
[ { ELSEIF;
[statements] } ];
[ ELSE;
[statements] ];
ENDIF;
y
ENDIF;
This approach nests a brand new IF compound statement within a previous one and requires an
op
additional ENDIF.
If the Attribute has the quality BAD and only the value needs to be copied, use a temporary
variable to hold the value. For example:
Dim temp as Integer;
N
temp = me.Attribute1;
me.Attribute2 = temp;
If there is a comparison such as Attribute1 <> Attribute2 and one of the Attributes has the quality
BAD, then the statements within the IF control block are not executed. For example, assuming
o
me.Attribute2 = me.Attribute1;
endif;
In this script, the statement me.Attribute2 = me.Attribute1 is not executed because Attribute1 has
the quality BAD and comparing a BAD quality value with a good quality value is not defined/not
possible.
A better approach is to first verify the quality of Attribute1, as shown in the following example:
if(IsBad(me.Attribute1)) then
LogMessage("Attribute1 quality is bad, its value is not copied to Attribute2");
else
if me.Attribute1 <> me.Attribute2 then
me.Attribute2 = me.Attribute1;
endif;
endif;
Wonderware Training
Section 2 – Variables and Control Statements 10-25
y
this holds true if loop is incrementing up, otherwise, if loop is decrementing, loop
termination occurs if analog_var is less than end_expression
op
change_expression is an expression that defines 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
C
end_expression or the statements in the loop do 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
ot
If STEP is not set, then change_expression defaults to 1 for increasing increments, and
defaults to -1 for decreasing increments
Exit the loop from within the body of the loop with the EXIT FOR statement.
N
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. If so, program execution exits the loop.
D
3. The statements in the body of the loop are executed. The loop can potentially be exited via the
EXIT FOR statement.
4. analog_var is incremented by 1,-1, or by change_expression if it is specified.
5. Steps 2 through 4 are repeated.
Note: FOR-NEXT loops can be nested. The number of levels of nesting possible depends on
memory and resource availability.
y
TRY ... CATCH
op
TRY ... CATCH provides a way to handle some or all possible errors that may occur in a given
block of code, while still running rather than terminating the program. The TRY part of the code is
known as the try block. Deal with any exceptions in the CATCH part of the code, known as the
catch block.
C
The general format for TRY ... CATCH is as follows:
TRY
[try statements] ’guarded section
ot
CATCH
[catch statements]
N
ENDTRY;
where:
tryStatements
o
Statement(s) where an error can occur. Can be a compound statement. The tryStatement is a
guarded section.
D
catchStatements
Statement(s) to handle errors occurring in the associated Try block. Can be a compound
statement.
Note: Statements inside the Catch block may reference the reserved ERROR variable, which is a
.NET System.Exception thrown from the Try block. The statements in the Catch block run only if
an exception is thrown from the Try block.
Wonderware Training
Section 2 – Variables and Control Statements 10-27
If a runtime error occurs, the rest of the try block does not execute.
When a runtime error occurs, the program immediately jumps to the CATCH statement
and executes the catch block.
The simplest kind of exception handling is to stop the program, write out the exception message,
and continue the program.
The error variable is not a string, but a .NET object of System.Exception. This means you can
determine the type of exception, even with a simple CATCH statement. Call the GetType() method
to determine the exception type, and then perform the operation you want, similar to executing
multiple catch blocks.
Example:
dim command = new System.Data.SqlClient.SqlCommand;
dim reader as System.Data.SqlClient.SqlDataReader;
command.Connection = new System.Data.SqlClient.SqlConnection;
try
y
command.Connection.ConnectionString = "Integrated Security=SSPI";
command.CommandText="select * from sys.databases";
op
command.Connection.Open();
reader = command.ExecuteReader();
while reader.Read()
me.name = reader.GetString(0);
LogMessage(me.name);
C
endWhile;
catch
ot
LogMessage(error);
endtry;
if reader <> null and not reader.IsClosed then
N
reader.Close();
endif;
if command.Connection.State == System.Data.ConnectionState.Open
o
then
command.Connection.Close();
D
endif;
WHILE Loop
WHILE loop performs a function or set of functions within a script several times during a single
execution of a script while a condition is true. The general format of the WHILE loop is as follows:
WHILE <Boolean_expression>
[statements]
[EXIT WHILE;]
[statements]
ENDWHILE;
where Boolean_expression is an expression that can be evaluated as a Boolean as defined in the
description of IF…THEN statements.
It is possible to exit the loop from the body of the loop through the EXIT WHILE statement.
Note: WHILE loops can be nested. The number of levels of nesting possible depends on memory
and resource availability.
y
While the extended object is On Scan, it behaves as follows: If an external set (for example, from a
op
user) to the extended attribute causes either the value or quality to change, then a write of the
extended attribute’s value to the destination occurs during the next execute phase.
The quality must be Good or Uncertain for a write to occur. For writes to occur because of a quality
change, the quality change must be a transition from Bad or Initializing to Good or Uncertain. The
C
attribute called WriteValue is publicly exposed.
When the extended object is Off Scan, quality is always Bad and user sets are accepted.
ot
N
o
D
Wonderware Training
Lab 20 – Scripting Valve Status 10-29
Introduction
In this lab, you will add a script to the $Valve template to report all of the stages of the valve:
Open, Closed, and Traveling. You will create an attribute with an Array value that holds the list of
possible states of the valve and you will also add an integer value of the valve state.
Objectives
Upon completion of this lab, you will be able to:
Use a script to calculate the state of a valve
Create an attribute with an Array value
y
op
C
ot
N
o
D
y
op
C
ot
N
o
2. In the Attributes list, select OLS and modify the configuration as follows:
D
Wonderware Training
Lab 20 – Scripting Valve Status 10-31
3. With OLS selected, click the Duplicate button, and then configure the new attribute as
follows:
Name: CLS
Description: Close Limit Switch and locked
'False' label: Not Closed and locked
'True' label: Closed and locked
I/O: checked (default)
y
op
C
4. Create and configure a new attribute as follows:
ot
Name: PV
Description: Valve State and locked
Data type: String
N
Writeability: Calculated
o
D
Name: PVStates
Description: List of Valve States and locked
Data type: String (default)
Array: checked
# of elements: 4
Writeability: Object writeable
Initial value: locked
1 Closed
2 Open
3 Traveling
4 Fault
y
op
C
ot
Name: PVState
N
unchecked
Writeability: Object writeable (default)
D
Wonderware Training
Lab 20 – Scripting Valve Status 10-33
y
Add Script to Calculate Valve State
op
C
Now, you will add a script to the $Valve template that will calculate the state of the valve based on
the values of the Open Limit Switch (OLS) and Close Limit Switch (CLS).
ot
7. On the Scripts tab, click the Add Script button, and then name the new script ValveStatus.
8. Configure the ValveStatus script as follows:
N
Aliases: locked
Declarations: locked
Execution type: Execute (default) and locked
o
Basics: locked
Expression: Me.OLS or Me.CLS
D
Note: For your convenience, you can find the script body in
C:\Training\Lab 20 – Scripting Valve Status.txt.
y
op
Me.PV = Me.PVStates[Me.PVState];
C
ot
N
o
Wonderware Training
Lab 20 – Scripting Valve Status 10-35
11. Save and close, and then check in the object with an appropriate comment.
The Check In dialog box reappears with an Object 1 of 1 completed message. Notice that
the changes have been propagated to the inlet and outlet valves.
y
op
12. Click Close.
The valves all indicate they have configuration changes that need to be deployed.
C
ot
N
o
D
Test in Runtime
Now, you will use Object Viewer to test the script in runtime.
14. In Deployment view, open Inlet1_001 in Object Viewer.
15. Add a new watch window and name it ValveStatus.
16. Add the following attributes to the watch window:
CLS
OLS
PV
17. Verify the results as the valve opens and closes.
y
18. Save the watch list and minimize Object Viewer.
op
C
ot
N
o
D
Wonderware Training
Lab 21 – Scripting Custom Alarms 10-37
Introduction
In this lab, you will configure two new attributes with Alarm features to monitor the flow to the
transfer pumps within the $Mixer template. Additionally, you will add a script to monitor the inlet
valves and transfer pumps to make sure they are operating correctly and, if they are not, trigger an
alarm.
Objectives
Upon completion of this lab, you will be able to:
Use attributes and scripting to determine custom alarm conditions
y
op
C
ot
N
o
D
Name: Flow.Alarm.Pump1
Description: Transfer Pump 1 - Faulty Flow Condition and locked
Data type: Boolean (default)
Writeability: Calculated
State alarm: checked and locked
Category: Process
Priority: 500 (default)
Active alarm state: True (default)
y
op
C
ot
N
o
D
Wonderware Training
Lab 21 – Scripting Custom Alarms 10-39
y
op
C
ot
Aliases: locked
Declarations: locked
Execution type: Execute (default) and locked
Basics: locked
Expression: Me.Inlet1.PVState == 1 or Me.Inlet2.PVState == 1 or Me.Pump1.PV or
Me.Pump2.PV
Trigger type: While True (default)
y
op
C
ot
N
o
D
Wonderware Training
Lab 21 – Scripting Custom Alarms 10-41
Note: For your convenience you can find the script body in
C:\Training\Lab 21 – Scripting Custom Alarms.txt.
y
Else
Me.Flow.Alarm.Pump2 = false;
op
Endif;
C
ot
N
o
D
This script separately checks the operation of the transfer pumps by checking if the inlet valve
is closed and the transfer pump are running at the same time, in which case there is a flow
problem.
7. Validate the script.
Note: For your convenience you can find the script body in
C:\Training\Lab 21 – Scripting Custom Alarms.txt.
Me.Flow.Alarm.Pump1 = false;
Me.Flow.Alarm.Pump2 = false;
y
10. Validate the script.
op
Notice that the Flow.Alarm.Condition script now has OnScan and Execute scripts.
C
ot
N
11. Save and close, and then check in the objects with an appropriate comment.
The Check In dialog box reappears with an Object 1 of 1 completed message. Notice that the
changes were propagated to both mixers.
o
D
Wonderware Training
Lab 21 – Scripting Custom Alarms 10-43
Test in Runtime
Now, you will test the new script in runtime.
14. In the Deployment view, open Mixer100 in Object Viewer.
15. Add a new watch window and name it Custom Alarms.
16. Add the following attributes to the watch window:
Inlet1_001.PV
Pump1_001.PV.Msg
Pump1_001.CMD
Mixer100.Flow.Alarm.Pump1
Mixer100.Flow.Alarm.Pump1.InAlarm
Inlet2_001.PV
Pump2_001.CMD
Pump2_001.PV.Msg
y
Mixer100.Flow.Alarm.Pump2
Mixer100.Flow.Alarm.Pump2.InAlarm
op
C
ot
N
y
op
C
ot
N
o
D
Wonderware Training
y
op
Module 11 – Galaxy Backup and Restore
C
Section 1 – Galaxy Backup and Restore 11-3
ot
N
o
D
11-2 Module 11 – Galaxy Backup and Restore
Module Objectives
Use the System Management Console to back up and restore a Galaxy
y
op
C
ot
N
o
D
Wonderware Training
Section 1 – Galaxy Backup and Restore 11-3
This section briefly describes the SMC and explains how to back up and restore operations using
the Galaxy Database manager. It includes a discussion on how to create a new Galaxy from a
backup file.
y
op
C
ot
N
o
D
All objects should be undeployed before beginning to restore a Galaxy. During the restore, no
clients can use the Galaxy Repository. If these conditions are not acceptable, you should restore
at a later time.
Galaxy Backup/Restore
Be sure to back up your Galaxies so that if a Galaxy becomes corrupted, you can restore the
Galaxy. You can choose a backup file to overwrite an existing, corrupted Galaxy or to reproduce a
Galaxy in another Galaxy Repository.
The Galaxy Database Manager is automatically installed on every Galaxy Repository node.
Backup
When running a Galaxy backup, no other applications may write to the GR node. Be sure to
perform the backup operation when no database-write operations will occur.
To back up a Galaxy, expand Galaxy Database Manager. Select the Galaxy to backup, and then
on the Action menu, select Backup.
y
op
C
ot
N
o
A warning appears.
D
Wonderware Training
Section 1 – Galaxy Backup and Restore 11-5
y
Click Save.
op
C
The Galaxy Database Manager progress appears.
ot
N
o
D
Restore
When you restore a database from backup, any information saved to the database since the
backup was performed is overwritten with the restored information. All changes to the database
since the backup are lost. Also, any transactions in progress when the backup was performed are
rolled back.
Select the existing Galaxy, and then on the Action menu, click Restore.
y
op
C
ot
N
Wonderware Training
Section 1 – Galaxy Backup and Restore 11-7
y
op
C
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training