ApplicationServer 2017 RevA Manual DoNot
ApplicationServer 2017 RevA Manual DoNot
W O N D E R W A R E T R A I N I N G
y
Training Manual
Revision A
op
March 2018
Part Number 11-GM-10075
C
ot
N
y
op
C
ot
N
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
y
Section 6 – System Requirements and Licensing ........................................... 1-49
op
Section 1 – Application Server Project Workflow............................................... 2-3
Section 2 – Case Study ..................................................................................... 2-5
Module 4
C
Section 4 – The Runtime Environment ............................................................ 3-35
Lab 4 – Using Object Viewer ........................................................................... 3-43
Section 5 – Data Simulation............................................................................. 3-55
Lab 5 – Configuring for Data Simulation .......................................................... 3-57
DI Object....................................................................................................... 5-41
Module 6 History..........................................................................................6-1
Section 1 – Historizing Data for Application Server ........................................... 6-3
Lab 13 – Configuring and Retrieving History ................................................... 6-11
y
Lab 18 – Implementing Object Security ........................................................... 9-41
op
Lab 19 – Adding Auto Reconnect to the DDESuiteLinkClient Object............. 10-11
Section 2 – Variables and Control Statements............................................... 10-21
Lab 20 – Scripting Valve Status ..................................................................... 10-29
Lab 21 – Scripting Custom Alarms ................................................................. 10-37
C
ot
N
o
D
Wonderware Training
y
op
C
Section 1 – Course Introduction
Module 1 – Introduction
1-3
ot
Section 2 – System Platform Overview 1-9
Section 3 – Application Server Overview 1-13
Lab 1 – Creating the Galaxy 1-17
N
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 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 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
y
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,
op
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.
Objectives
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
Work with alarm and history configurations in an application
Maintain application functionality using import and export
Define the security model for the application
Implement .NET Scripting to enhance application functionality
Back up and restore an application
N
Audience
Individuals who need to configure or modify Application Server applications
Prerequisites
o
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,
y
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
op
and how to create one.
Section 4 – The ArchestrA IDE
This section describes the ArchestrA IDE, including the layout, its key functions, toolboxes and
how to create them, and the application views available.
Section 5 – Automation Objects
This section describes automation objects, templates, and instances. It discusses the Object
C
Editor, explains the different states of automation objects and operations when editing objects,
and gives a brief explanation of Object Wizards.
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
ot
licensed.
Wonderware Training
Section 1 – Course Introduction 1-5
y
Section 1 – Introduction to Application Objects
This section describes the application objects in the Galaxy and discusses the basic
op
configuration of the $UserDefined object.
Section 2 – Object Attributes
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.
Section 3 – Change Control and Propagation
This section describes attribute locking and unlocking. It also discusses how template
Section 4 – Containment
C
changes can propagate to previously derived objects.
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 5 – Device Integration
Section 1 – Device Integration Servers
This section describes available DI servers, discusses OI servers, and explains the
configuration of an OI Server to a Controller.
Section 2 – Device Integration Objects
N
Module 6 – History
Section 1 – Historizing Data for Application Server
This section describes how Process 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
Section 1 – Object Export and Import
This section describes how to export and import objects from and to a Galaxy. It also explains
how to upgrade objects to new versions or revert to previous configurations.
op
Section 2 – Galaxy Dump and Galaxy Load
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.
Module 9 – Security
Section 1 – Security Overview
This section describes the security classifications for object attributes and discusses the
security audit trail.
ot
Module 10 – Introduction to QuickScript.NET
Section 1 – Introduction to Scripting
This section describes the scripting environment and basic scripting syntax. It also discusses
the execution types and triggers.
N
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.
D
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
y
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,
op
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.
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
services for the multi-user, object-oriented platform.
C
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.
ot
N
o
D
y
op
System Platform components are as follows:
C
Application Server is the heart of System Platform. It provides an object-oriented
framework with tools for developing and deploying applications.
Process 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.
ot
Device Integration Servers are drivers for communicating with third-party controllers.
These 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:
Supervisory clients run the operator interface and provide real-time access to
Application Server data, alarms, and events. There are two supervisory client products,
N
based on different technologies. Both can coexist in the same System Platform solution.
Operations Management Interface for System Platform has a rapid-design
visualization framework with tools, and provides the ability to automatically navigate
and display graphics based on the application's data model.
InTouch for System Platform is based on traditional development tools to create
displays and corresponding navigation.
o
Process Historian Client is a collection of tools for accessing and reporting on data
historized with Process Historian. This client includes a Trend application for plotting data
on a graphical display, a Query application for constructing SQL queries through a point-
D
and-click interface, and add-ins to Microsoft Excel and Word for generating reports.
Insight is a browser-based tool for quick data query, trending, and analysis. Pulling data
from Process Historian, it enables visualization of how your operations are performing.
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
y
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
op
web service by means of a script.
ArchestrA Technology
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-
oriented design. It is built on .NET and leverages the Microsoft Framework for the industrial
automation world.
C
ArchestrA provides the following system services:
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
Centralized security services with support for multi-user environments for development
and runtime
N
Version management for every object in the application, including logging of development
operations
Most of these services are exposed, configured, and managed by Application Server.
o
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
y
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.
op
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
allows the extension and enhancement of your application through integration with the .NET
Framework, particularly through a powerful scripting engine.
Applications created with Application Server have distributed capabilities by nature. Going from
configurations.
C
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
Security features to prevent users from performing unauthorized activities within the
development and runtime environments
Redundancy capabilities for the application and for I/O communications
Diagnostics tools for troubleshooting the application
Extensibility through a scripting engine with .NET capabilities
Out of the box graphic libraries; one of them designed to create Situational Awareness
o
HMIs
D
y
The Galaxy Repository is a Windows Service that manages the development and
deployment of the application; the computer running the Galaxy Repository software hosts
the configuration project database
op
The Galaxy and the Galaxy Repository
A Galaxy is the entire application. It is the project database and configuration information, as well
as the single logical name space of your deployed application (runtime environment). It is
composed of:
A collection of objects that represent all your physical and logical entities in your
C
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
A common set of system-level policies that all components and objects comply with, such
as security, alarm, and communications settings
ot
The Galaxy Repository software, a Windows Service, manages the development and deployment
of the Galaxy. The project database is hosted in the same computer where the Galaxy Repository
software is installed.
Important: While a Galaxy Repository can host more than one Galaxy, only one Galaxy can be
deployed and running at any given time.
N
For runtime, the objects in the Galaxy can be deployed to multiple computers for load balancing,
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
Galaxy without specifying the object's location.
One of the main objects in any Galaxy is the WinPlatform object, which represents a computer in
the Galaxy. A WinPlatform object adds a computer to the single namespace on deployment, at
o
which point it is said that the Galaxy "owns" that computer. Only one WinPlatform object can be
deployed to a computer at any given time; therefore, in runtime, a computer can belong to one and
only one Galaxy.
D
Multiple Galaxies deployed on the same network environment are isolated from each other and, by
default, cannot access each other's data. Galaxies can be configured for multi-Galaxy
communication allowing two or more Galaxies on the same network to access each other's data in
runtime.
Wonderware Training
Section 3 – Application Server Overview 1-13
y
op
This dialog box is used to:
C
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.
Create a new Galaxy in the specified Galaxy Repository node.
ot
Delete the selected Galaxy from the specified Galaxy Repository node. As a safety
measure, Galaxies with objects deployed cannot be deleted.
When creating a new Galaxy, you use the Galaxy type to indicate what will be the default content
of the new Galaxy.
N
o
D
y
on a tag-based Managed InTouch application.
Other Galaxy types can be made available using backups of other Galaxies; this allows the
distribution of standards, such as preconfigured objects, graphics, and system-level settings.
op
C
ot
N
o
D
Wonderware Training
Lab 1 – Creating the Galaxy 1-15
Objectives
y
Upon completion of this lab, you will be able to:
Create a Galaxy
Connect to a Galaxy using the ArchestrA IDE
op
C
ot
N
o
D
y
op
The New Galaxy dialog box appears.
C
ot
3. In the Galaxy name field, enter TrainingGalaxy.
4. In the Galaxy type drop-down list, select Default_Empty.cab.
N
5. Click Create.
o
D
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
op
6. When complete, the Create Galaxy progress displays 100% completed.
C
ot
N
7. Click Close.
o
D
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.
C
The Connect To Galaxy dialog box closes and, after a few seconds, the ArchestrA IDE
opens.
ot
N
o
D
You will use the ArchestrA IDE to develop the Galaxy throughout the remainder of this class.
Wonderware Training
Section 4 – The ArchestrA IDE 1-19
y
the ArchestrA IDE allows the configuration of Galaxy-wide settings (such as Security), as well as
the creation and configuration of automation objects (such as a valve) and graphics.
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
y
I/O communication management
Global graphic styles
Time master computer for time synchronization across all Galaxy nodes
op
Alarms and events logging parameters
User preferences
Multi-Galaxy communications
When working with objects, the ArchestrA IDE allows:
Creation of new objects
Configuration of existing objects, such as I/O points, alarm definitions, and process data to
historize
C
Check-out/Check-in functionality for versioning control
Deployment and undeployment of objects
View object properties, such as error and warning messages, as well as cross-reference
information
ot
Upload changes to the runtime version of the object to the configuration database
The ArchestrA IDE also includes import and export capabilities, including:
Objects
Global graphic styles
Script function libraries, such as .NET assemblies to use within a script
N
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
y
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)
op
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
The other views included with the ArchestrA IDE are:
IO Device Mapping – Displays the I/O references configured through the IO Devices
view; it allows validation and override of the references
object templates and instances
C
Operations – Displays the results of manually validating the configuration of automation
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
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
N
View menu
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
Note: The layout of the ArchestrA IDE can be reset to the factory default by using the Reset
Layout option on the View menu.
o
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.
D
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
N
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.
o
Containment relationships between templates can be configured and displayed within this toolbox.
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
D
Template Toolsets
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.
Wonderware Training
Section 4 – The ArchestrA IDE 1-23
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.
y
within automation objects are not displayed in this toolbox.
op
C
ot
N
o
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
D
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
these areas then host the rest of the object instances as they are distributed across the plant. This
relationship is called the Plant Model of the Galaxy.
This application view displays all automation object instances in the Galaxy and none of the
op
templates.
C
ot
N
o
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.
D
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
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
D
y
op
C
ot
The parent-child relationship between objects is represented in a hierarchical view, with the base
templates as the top-level objects.
Base templates and protected derived templates display a small orange lock icon to the left of the
N
object icon. The configuration of these objects is read-only, but you can still create writeable
derived templates and instances from them.
Any base template that has not been derived is located in the Unused Base Templates folder.
The Derivation view helps identify which objects will be impacted by the propagation of changes.
o
D
Wonderware Training
Section 4 – The ArchestrA IDE 1-27
y
op
C
ot
N
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
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.
o
The IO Devices view does not display the containment or hosting relationship between the objects;
contained objects display their hierarchical name in brackets.
D
y
op
C
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).
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
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.
N
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
y
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.
op
C
ot
System Objects – Used to build the infrastructure of the application. They represent the
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
o
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
D
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
All automation objects include the following features and configuration options:
ot
Inputs and Outputs – References to real-time I/O data from the field or other objects in
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
flow rates or defining complex alarm conditions.
N
Historical Configuration – Specify which data points in the object will be historized by the
Process 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
o
(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.
D
Wonderware Training
Section 5 – Automation Objects 1-31
Objects have certain number of built-in attributes and can be enhanced by adding your
own custom attributes
Objects have built-in behaviors or features (things that the object can do) and can be
enhanced by creating custom behavior through scripting
Automation objects are provided in the form of templates and instances. Templates allow the
configuration of reusable standards while instances implement the standards for each individual
equipment. For example, all common configuration for the valves in the application can be
modeled in a $Valve template and then instances for the actual CV101, CV102, and CV103 valves
can be created out of the $Valve template.
y
op
Types of Automation Objects
C
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
automation objects, each serving a distinct function within the Galaxy.
ot
A new Galaxy groups the out-of-the-box objects in template toolsets named after each category;
this is not mandatory and moving an object from one toolset to another does not change the
underlined category the object belongs to. For example, moving the $Area object from the System
toolset to the Device Integration toolset does not make the $Area object a device integration
object.
N
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.
o
D
y
open/transitioning/close valve, to a stop/running forward/running in reverse motor. The
object provides historization and alarm capabilities that are tailored to multi-state devices.
The built-in I/O capabilities of the object cannot take advantage of I/O autobinding; the
op
alarm capabilities will require scripting to duplicate in another object.
Sequencer Object ($Sequencer) – This object allows you to run a series of steps defined
by user-configurable conditions. It is useful to model basic supervisory or manufacturing
procedures with a finite number of steps.
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
commands for all basic database transactions such as select, insert, update and delete
records.
C
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
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
of C# and Visual Studio is required to use the toolkit.
N
DDE, SuiteLink, or OPC protocols. These applications can be OI Servers, legacy IO Servers, OPC
Servers, or any other applications that is a DDE, SuiteLink, or OPC server.
D
Wonderware Training
Section 5 – Automation Objects 1-33
y
to multiple controllers.
Redundant Device Integration Object ($RedundantDIObject) – This object allows the
configuration of redundant communication channels from your Galaxy to the controllers. It
op
will monitor both communication channels and automatically switch to the standby
channel whenever the active channel is not available. Each channel is represented by a
"regular" DI Object; the Redundant DI Object does not communicate directly with the field,
but with your other DI Objects in your Galaxy.
InTouch Proxy Object ($InTouchProxy) – An object useful in "hybrid" installations,
where System Platform coexist with legacy, tag-based InTouch applications. It provides a
way of integrating legacy InTouch applications to your Galaxy; it sits on top of your tag-
C
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
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:
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).
N
o
Area Object ($Area) – One of the simplest objects, which has a two-fold job: on one side,
it represents the logical scheme of the application, usually the physical layout of the plant,
allowing you to organize the rest of your objects; and on the other side, it represents how
alarms are distributed in the Galaxy. For example, if the production area has two
production lines (also modeled by the Area object), 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 object is the basis of the Plant Model.
y
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.
op
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
applications (InTouchViewApp objects) to the operator stations.
InTouch View Application Object ($InTouchViewApp) – This object holds the
operator's graphical interface (HMI). This is your visualization application, which includes
the windows and ArchestrA Graphics that comprise your operator interface. The
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, such as security.
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;
o
Wonderware Training
Section 5 – Automation Objects 1-35
The following is a comparison between the characteristics of all three classifications of automation
objects.
y
environments
Base templates are created with the ArchestrA Object Toolkit while derived templates and
instances are created within the ArchestrA IDE.
op
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.
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
created with the toolkit; device integration and system objects cannot be created with
the toolkit).
C
Base Templates contain predefined, built-in attributes and functionality; these cannot be
removed/deleted. Derived templates and instances inherit all attributes, scripts, and
configuration settings from the parent template; attribute and configuration values might
be modified, but not removed/deleted.
Base Templates are read-only and cannot be changed. Derived templates and instances
ot
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).
N
o
D
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
When deriving objects, note that:
C
Every derivation hierarchy starts with a base template
ot
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
There is no limit on the number of levels of derivation
The parent-child relationship between objects in the derivation hierarchy cannot be broken
N
or rearranged
engineering units of the level are represented by different attributes you configure in the object;
when the object is deployed, the actual value of the level, as well as the average calculation of the
level are represented by different attributes.
D
Some attributes are configuration-only (existing only in the development environment), runtime-
only (existing only in the runtime environment), or both. Attributes that exist in both environments
might be writeable during configuration and read-only in runtime. The documentation of the object
includes the detail information about each attribute.
Wonderware Training
Section 5 – Automation Objects 1-37
Automation objects include their own editor, referred to as the Object Editor. With this editor, you
can configure all options and parameters. Any changes made to an object's template are inherited
by all objects created from it. When you open the Object Editor in non-read-only mode, the object
is checked out. No one else can edit an object while you are working with it. If someone else is
already working on the object, you can open it to view, but you cannot make changes.
y
op
The configuration editor of automation objects group attributes in tabs based on functionality.
C
There are four tabs that are common to all objects:
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,
historization capabilities, and alarm configuration.
Scripts – Allows you to enhance an automation object by adding custom functionality
through scripting. The scripting engine leverages the Microsoft .NET Framework for
ot
advanced capabilities.
Object Information – Includes information about the object, such as a description and the
name of the parent template. This tab also allows you to modify the help file of the object.
Other configuration tabs might be available in the editor depending on the object. For example, the
$Area object includes a fifth tab named 'General' with several area-specific configuration
N
attributes.
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.
o
The following are deployment status indicators for object instances; these overlay icons appear in
the top-left corner of the object's icon:
D
[No Icon] Object is deployed and no configuration changes are pending. This is the
normal scenario for a deployed object.
The following are configuration status indicators for object templates and instances; these overlay icons
y
appear on the bottom-right corner of the object's icon:
op
[No Icon] Normal state of an object. There are no configuration warnings or errors.
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
and the object cannot be deployed.
C
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
object first, to narrow your options.
Editing Objects
ot
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
N
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
o
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
D
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
Wonderware Training
Section 5 – Automation Objects 1-39
Object Wizards
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
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,
or modify existing instances. You open an instance and answer a series of prompts or
questions.
y
Use the Configure New Asset editor to create and configure instances and a
representative symbol by dragging an associated symbol into a graphic, and then
answering a series of prompts or questions.
op
Object Wizards consist of a series of user-selectable choices and options that are used to
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
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
C
of possible configurations of instances.
With an Object Wizard, you can configure instances that contain only the elements needed at
runtime. When an Object Wizard is not used, instances derived from the template may contain a
number of additional attributes, symbols, and scripts that are not used. Object Wizards can be
configured to trim unneeded elements from its derived instances.
Object Wizards can simplify the process of configuring instances. Using an Object Wizard to
ot
configure instances reduces the amount of product knowledge and training that is required.
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
Lab 2 – Creating Global Derived Templates 1-41
y
Objectives
Upon completion of this lab, you will be able to:
op
Create a new template toolset to organize templates
Create a derived template
Hide a template toolset
C
ot
N
o
D
y
op
C
ot
2. Rename the new toolset Training.
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
4. Rename the new toolset Global.
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
Note: The $ is added by default to the name of any template.
N
o
D
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
object, and then dragging the group of objects together.
N
o
D
y
op
12. Create four new derived templates from the following base templates:
Base Template Derived Template
$AppEngine $gAppEngine
$Area $gArea
$ViewEngine
$WinPlatform
$gViewEngine
$gWinPlatform
C
The Template Toolbox now displays the four new derived templates in the System template
toolset.
ot
N
o
Note: You will not create a derived template from $InTouchViewApp or $ViewApp because
D
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
C
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.
14. Right-click the Device Integration template toolset and select Hide.
ot
N
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
based on the software installed and tasks performed on each computer.
The following diagram is an example of a distributed System Platform implementation, where each
computer has been designated a single role. Keep in mind that most of these roles can be
op
combined on a single computer, depending on the size of the application and the hardware
resources available.
C
ot
N
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.
D
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.
Process Historian Server – Runs the Process 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 Process Historian Client
concurrent license, or both.
Workstation – Computer on the business network that can access reports in Information
y
Server through a web browser.
Based on these computer roles, the following diagram illustrates the Application Server
op
components that need to be installed and deployed on each computer.
C
ot
The WinPlatform objects are required on those computers to either host other automation objects
N
in the Galaxy (Application Object Servers, Visualization Stations) or for real-time communication to
those objects (Galaxy Repository, Engineering Stations, Visualization Stations, Information
Server), or both.
o
D
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
y
The following table lists supported and preferred software requirements for various nodes in your
system:
op
Development Galaxy Automation Supervisory
(ArchestrA IDE) Repository Object Server Client
Windows Server Preferred Preferred Preferred Supported
Windows Workstation Supported Supported Supported Preferred
SQL Server --- Required --- ---
.NET Framework Required Required Required Required
C
The following table lists minimum hardware requirements for server nodes, such as Historian, the
GR node, AppEngine host (Application Objects Server), and the ArchestrA IDE (development
environment):
ot
CPU RAM Storage Display Network
(Cores) (GB) (GB) (Resolution) (Mbps)
Small
2 2 100 1024 x 768 100
1-25K I/O per node
Medium
4 8 200 1024 x 768 1000
25K-50K I/O per node
N
Large
8 16 500 1024 x 768 1000
> 50K I/O per node
You can use all products on a single node. An All-in-One node includes Application Server,
InTouch, Process Historian, Process Historian Client, and Licensing components. The following
table lists the minimum hardware requirements for an All-in-One node:
o
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
y
connections. Please contact your sales representative for more information.
System Platform licenses with 25K I/O points or less do not include a Microsoft SQL Server
Standard license.
op
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.
Supervisory Client
A Supervisory Client license enables the use of both Operations Management Interface for
C
System Platform and InTouch for System Platform.
A Supervisory Client license can be used for thick clients (desktop), thin clients (remote access,
such as Remote Desktop Server), or web clients (InTouch Access Anywhere and InTouch Web
Client).
ot
Activated Licensing
System Platform is license-enforced using an activated licensing framework with an activation
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.
N
License Manager: Web-based user interface for accessing and maintaining licenses.
For more information about licensing components, refer to your product documentation.
ArchestrA Network Account. This account enables communication between all computers in the
system that have Wonderware software installed. Some of the things that rely on this account are:
Deployment of objects from the Galaxy Repository
D
Wonderware Training
Section 6 – System Requirements and Licensing 1-53
y
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
op
(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.
C
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
y
op
C
Module 2 – Application Planning
Section 1 – Application Server Project Workflow 2-3
ot
Section 2 – Case Study 2-5
N
o
D
2-2 Module 2 – Application Planning
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
y
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
op
Galaxy.
C
ot
N
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:
o
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
D
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
y
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
security model for the runtime environment. Which users can write to attributes on which
op
objects? (for example, who can open a valve or change a setpoint) Who can acknowledge
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.
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
C
objects necessary to deploy the Galaxy to the production environment. A testing
deployment model will be needed while creating and testing the Galaxy.
ot
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.
y
Factory Layout
The factory example for this training course is divided in four main sections or areas: Receiving,
op
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.
C
ot
N
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
o
y
Two transfer pumps:
Transfer Pump 1 (Pump1): Used in conjunction with Inlet Valve 1 to add the first
material into the tank
op
Transfer Pump 2 (Pump 2): Used in conjunction with Inlet Valve 2 to add the second
material into the tank
One motor:
Agitator (Agitator): Mixes the materials in the tank; the speed of the motor can be set
for this device
Two transmitters:
Level Transmitter (Level): Indicates the current level of the tank
tank
C
Temperature Transmitter (Temperature): Indicates the current temperature of the
ot
N
EU: 0 - 250
Temperature Transmitter MixerX00.Temperature.PV I Float RAW: 0 - 4095 Celsius
EU: 0 - 250
D
Wonderware Training
Section 2 – Case Study 2-7
y
Agitator MixerX00.Agitator.PV I Boolean - -
MixerX00.Agitator.CMD IO Boolean - -
MixerX00.Agitator.Speed.PV I Float EU: 0 - 500 Rpm
op
MixerX00.Agitator.Speed.SP O Float EU: 0 - 500 Rpm
The I/O data source (from the PLC simulator and the OI Server) relies on the above naming
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
scaled to the corresponding engineering units (0 - 100 Liters, 0 - 250 Celsius, respectively).
Each valve has three signals:
C
A Close Limit Switch (CLS) to indicate if the valve is fully closed
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
A Process Value (PV) to indicate if the pump is running or stopped
A Command (CMD) to signal the pump to start or stop the motor
The agitator has four signals:
A Process Value (PV) to indicate if the agitator is running or stopped
A Command (CMD) to signal the agitator to start or stop the motor
N
A Speed Process Value (Speed.PV) to indicate how fast the motor is running, when the
agitator is on
A Speed Setpoint (Speed.SP) to tell the agitator how fast the motor should run, when it is
on
Note: The simulation provided with this training course includes four Mixers named Mixer100,
o
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.
D
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.
y
After the tank is empty, the simulation automatically starts over.
op
the following happens:
C
During the running of a batch, a complete run of the four steps or stages from beginning to finish,
The level and temperature of the tank are available, as well as the temperatures.
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
Section 1 – The Plant Model
C
Module 3 – Application Infrastructure
3-3
ot
Section 2 – The Deployment Model 3-5
Lab 3 – Creating the Plant and Deployment Models 3-11
Section 3 – System Management Console 3-27
N
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
the objects in the Galaxy; and the distribution of alarms within the system.
The automation scheme is usually based on the physical layout of the plant, where each section
and sub-section is represented by an object in the Galaxy.
op
While every plant and factory has its own particular layout, in general terms you could classify the
structure as follows:
Plants and factories are divided in sections
Sections are divided in areas
Areas are divided in production lines
Production lines are divided in manufacturing cells
C
ot
The plant model is also how alarms are distributed in the system; for example, if the production
N
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
inherent in the plant model.
Using the ArchestrA IDE, the plant model is built using the application Model view (for more
information see Module 1, “The Model View”).
o
D
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.
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.
N
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
runtime environment. When an object is deployed, the underlined software that makes the object
(from the base template) and the object's configuration (I/O references, alarms, history, scripts,
and so on) are copied to the target computer; the software also gets installed or registered in that
op
computer and the object is run, or both.
In contrast, undeploying objects will stop them, uninstall them, and finally remove them (software
and configuration) form the computer they were deployed to.
Note: Only automation object instances can be deployed; templates are configuration-only and
cannot be deployed.
C
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
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
attributes, alarms, scripts, and so on) require an undeploy.
In rare occasions, redeployment of the objects might be necessary due to a software upgrade; for
N
example, a new version of a base template will include a new version of its underlined software, so
even if you have not changed the configuration of its instances, redeployment will be necessary to
send the new software to the runtime environment.
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.
o
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
Module 1, “Object States”).
D
To be able to deploy automation objects, you must define the Deployment Model for the Galaxy.
y
deployment model. Afterwards, you distribute the rest of your objects based on a hosting
relationship between all objects.
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.
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
N
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).
D
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 Module 1, “The Deployment View”).
y
op
C
ot
N
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
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
o
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.
D
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
Relays all off-node communications to other platforms in the Galaxy
Can serve as the alarm provider to alarms clients
Includes an embedded engine to handle its own runtime components, such as
op
historization and scripting
It must be running (on scan) for the hosted objects to be on scan also
On the plant model, no objects are assigned to it
On the deployment model, engines are hosted on it
The Galaxy Repository requires a special instance of the WinPlatform object that handles GR-
specific operations. This instance must be the first object to be deployed from the Galaxy, and
C
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
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
computer name or IP address of the target node.
N
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.
The AppEngine object is the primary runtime application engine for the Galaxy; along with the
WinPlatform object, it is a key member of the deployment model.
The main characteristics of the AppEngine object are:
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.
y
op
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
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.
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 class. The Model view will be used to represent the physical
y
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. After building the
op
deployment model, you will use the Deployment view to deploy the instances.
Objectives
Upon completion of this lab, you will be able to:
Create instances
C
Create a plant model for a Galaxy
Create a deployment model for a Galaxy
Deploy instances to the runtime environment
ot
N
o
D
y
op
C
ot
N
o
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
D
operation you are trying to run. Different application views are used throughout the remainder
of this class.
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
C
The instance appears in the Model view with the default name of gArea_001.
ot
4. Rename the instance Receiving.
N
o
D
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
Packaging
Shipping
N
o
D
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.
Wonderware Training
Lab 3 – Creating the Plant and Deployment Models 3-15
7. In the Model view, drag the Line1 area object onto the Production area object.
Line1 is now assigned to the Production area.
y
You can also create an assignment by right-clicking on an instance and assigning it to an area.
op
8. Right-click Line2 and select Assign To.
C
ot
The Assign To dialog box appears.
9. In the drop-down list, select Production.
N
o
D
y
The Model view now shows the logical layout of the plant that will be used throughout the
op
remainder of the class.
C
ot
Create the Deployment Model
Now, you will use the Deployment view, which displays how the application is distributed across
the available networked computers.
11. Click the Deployment tab to display the Deployment view, and then expand TrainingGalaxy
and the Unassigned Host folder, if necessary.
N
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
13. In the Deployment view, rename the new instance GRPlatform.
ot
N
o
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.
D
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
op
You will now configure the newly created platform with the remote computer name.
15. Double-click ProdPlatform to open its configuration editor.
C
In the Deployment view, a red check mark appears next to ProdPlatform indicating that the
object is currently checked out.
ot
N
16. On the General tab, configure the Network address field with the computer name of the
remote PROD node that your instructor provides.
o
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
C
18. In the Comment field, enter Changed Network Address and click OK.
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
Platforms host engines, so you will now move the engine instance to a platform.
21. Drag AppEngine1 to ProdPlatform.
o
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
op
The Deployment view now shows that all objects in the deployment model have been hosted.
Now, you will update the plant model.
C
23. Click the Model tab to display the Model view, and then expand the Unassigned Area folder.
ot
N
24. Assign the three objects in the Unassigned Area folder to the ControlSystem area.
The Model view now shows that all objects in the plant model have been assigned.
o
D
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
y
GRPlatform and then deploy the rest of the platforms in parallel.
op
The Deploy dialog box appears.
C
ot
N
o
D
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
op
28. Click Close.
You will now deploy the second platform.
C
29. Right-click ProdPlatform and select Deploy.
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. Keep the default options and click OK.
C
When complete, the progress displays 100% completed. Notice that nine objects were
deployed.
ot
N
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
The System Management Console (SMC) provides Application Server diagnostics by allowing you
to view the runtime status of some system objects and to perform actions upon those objects. The
SMC is a Microsoft Management Console (MMC) container snap-in for all the diagnostic and
op
management utilities for your Galaxy application. Actions include setting platforms and engines in
an executable or idle mode and starting and stopping platforms and engines.
The System Management Console is used to assist system integrators and system administrators
in performing administrative tasks and diagnostics on an ArchestrA application. It provides
application infrastructure diagnostics by allowing the viewing of runtime status of some system
objects and the ability to perform actions upon those objects.
The console tree shows the items that are available in the console. Other snap-ins that may
C
appear below the ArchestrA SMC node include the Galaxy Database Manager, the Log Viewer,
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)
y
Log Viewer (all Wonderware nodes)
Platform Manager (all Application Server nodes)
op
Other snap-ins (for example, Process Historian Server) will be available when other
Wonderware software is installed
C
ot
N
Each snap-in has its own toolbar, menu options, detail panel, and so on. The contents of these
items will change as you select different items in the console tree.
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
o
other snap-ins.
You use the Galaxy Database Manager to back up and restore a Galaxy. Backing up a Galaxy
creates a single backup file (.cab extension) containing all the files, configuration data, and object
deployment states required to recreate the Galaxy in an empty Galaxy Repository.
During the backup, no write operations are allowed to the Galaxy Repository. If write activity is
occurring, you should back up at a later time.
Restoring a Galaxy uses the backup file to overwrite an existing Galaxy or to create the backed up
Galaxy in a different Galaxy Repository. The restore process prompts you for confirmation before a
Galaxy is overwritten.
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
Operations Integration Server Manager
op
The Operations Integration Server Manager provides the required interface for activation,
configuration, and diagnosis of the installed OI Servers.
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.
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
ot
components. For example, the ArchestrA Log Viewer records the date and time when ArchestrA
components start and any error conditions that occur.
The Log Viewer can:
Monitor messages on any machine in the system
Send a portion of the log to notepad or e-mail
N
Note: If a problem occurs while running an ArchestrA application, always check logged messages
by using the Log Viewer prior to calling Technical Support.
D
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.
y
These commands are also available by right-clicking an item in either the console tree or the
op
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
the console tree or the details pane.
C
ot
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
N
the system. This process occurs without any prompting from or interaction necessary from
the user. The logging process can be customized with the LogFlag Editor Snap-In utility.
The Logger is installed as a system service, and can be configured to be an Auto Service
or Manual Service. 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
o
ArchestrA components. The look-and-feel and the format of the user interface can be
customized to suit individual needs.
D
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
Use the Find command on the View menu to single out messages by message text or
other category of data, or use the Filter command on the View menu to reduce the number
of displayed messages based on message, time range or terminal session criteria.
op
The journey of a Log Message originates with the Application where Log Flags are generated.
These are passed to the Logger where they are then stored in the Log Message Storage. They are
then available for viewing by the LogFlag Viewer. The LogFlag Editor provides the capability to edit
the LogFlags. This is illustrated in the following diagram.
C
ot
N
Using Bookmarks
Bookmarks are unique labels you can apply to individual messages for quick access. They differ
from marks in that bookmarks are associated with specific messages while marks are messages
added below the message that is currently last in the log.
You cannot enter duplicate bookmark names for more than one message, and a message can
o
the Show button to move it to the Columns Shown box and click OK. The Bookmark column is
added at the far right of the column header. Click and drag it to another position if you want. When
the text of a bookmark in the Bookmark column is partially obscured, point to it to display the
entire bookmark like a tool tip.
You can set bookmarks in two ways: adding a regular bookmark that you can name and setting a
fast bookmark that is named for you.
y
number in an ascending sequence). Alternatively, you can set a fast bookmark by selecting the
message and clicking the Fast Bookmark icon on the toolbar. Change the bookmark name to
something more descriptive, if necessary, in the Bookmarks dialog box at a later time. See To
op
manage bookmarks below.
Go to a Bookmarked Message
To go to a bookmarked message, on the View menu, click Go To. In the Go To dialog box, enter
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
bookmarked message above and below, respectively. When you are finished searching, click
Close.
C
Note: You cannot go to bookmarked messages that are currently hidden by a filter. If you cannot
find the desired message, disable filtering and try again.
To Manage Bookmarks
ot
On the View menu, click Bookmarks. In the Bookmarks dialog box, you can manage current
bookmarks and create new ones. The bookmark list shows the current set of bookmark names
and associated Message No. (the same number as the No column in the message window).
The bookmark list provides several functions. For example, to rename a bookmark, select the
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.
N
To go to a bookmarked message, double-click it in the list or select it and click Go To. To remove
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
window and click Add. This function is comparable to a fast bookmark. Rename it by pressing F2.
When you are finished, click Close.
o
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.
D
Wonderware Training
Section 3 – System Management Console 3-33
Platform Manager
The Platform Manager is an extension snap-in to the SMC. It provides Galaxy application
diagnostics by allowing you to view the runtime status of some system objects and to perform
actions upon these objects. Actions include setting platforms and engines in an executable or idle
mode and starting and stopping platforms and engines.
y
op
C
ot
N
o
D
y
op
C
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
the Galaxy. This runtime environment is governed by the AppEngine objects running the
application objects, device integration objects, and areas from the Galaxy.
The AppEngine object execution system is based on a scheduled, scan-based system. The scan
op
period of the engine defaults to 500 milliseconds and can be configured to any value in the 10
millisecond to 1 hour range. The scans are scheduled and all objects hosted in the engine are run
once per scan.
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.
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
N
is spent in housekeeping tasks or idle, or both. This is called a scan overrun and it could span
multiple scans. The AppEngine provides attributes to monitor if scan overruns have occurred:
Scheduler.ScanOverrun.Condition
Scheduler.ScanOverrunsCnt
Scheduler.ScanOverrunsConsecCnt
o
y
At any given scan, the objects are executed in the following order:
op
1. The Device Integration objects are executed first, in alphabetical order.
alphabetical order.
C
2. The Area objects, including their hosted Application objects are executed (by default) in
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
ot
corresponding Area object: X, Y, Z for Area 1; A, B, C for Area 2; and M, N, P for Area 3.
3. Finally, the AppEngine object executes.
N
o
D
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:
y
<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.
op
C
ot
As soon as an attribute reference is submitted from Object Viewer or from a graphic in InTouch,
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.
N
The same behavior occurs when one object requests data from another object, object 1 will have a
reference to an attribute in object 2. The location of object 2 is handled by ArchestrA.
o
D
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
means that from any computer that has a WinPlatform object deployed you will have access to all
deployed automation objects in the Galaxy.
N
You can open the Object Viewer tool from two places:
The ArchestrA IDE, as long as there is a local platform deployed
The Platform Manager, from any computer with a platform deployed
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
o
permissions to, for example, change a setpoint, you will also need this additional permission to do
so from Object Viewer.
D
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
y
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
op
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
both
Quality – Indicates the quality of the current value of attribute; possible values are: Good,
Uncertain, Initializing, and Bad.
C
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
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
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.
N
o
D
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
ot
provided through the local WinPlatform object. This means that from any computer that has a
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
tool, as well as operations within the tool will be dictated by the permissions assigned to the user.
N
Key Functions
Platform Manager provides access to the following deployed objects from the Galaxy:
WinPlatform
AppEngine
ViewEngine
o
Wonderware Training
Section 4 – The Runtime Environment 3-41
y
Remove the platform from the local computer
Platforms and engines can have one of the following statuses:
op
Not Available – The computer is powered off
Shutdown – The object has been shut down normally
Shutdown - Failed – The object has been shut down due to failure
Running On Scan – The object is running and executing
Running Off Scan – The object is running but not available for execution
Various transitional statuses between (for example, Shutting Down)
C
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
the corresponding objects will still show as deployed in the ArchestrA IDE.
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
Lab 4 – Using Object Viewer 3-43
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.
y
Objectives
Upon completion of this lab, you will be able to:
op
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
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
The Object Viewer window appears and displays the ProdPlatform attributes.
ot
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-45
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,
right-click PlatformInfo and select Add to Watch.
y
op
C
ot
The attribute is added to the watch window.
N
o
D
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
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.
o
D
This attribute shows the date and time of the most recent object deployment in the Galaxy.
Wonderware Training
Lab 4 – Using Object Viewer 3-47
y
op
The Rename Tab dialog box appears.
C
8. In the Tab Name field, enter Platforms.
ot
N
9. Click OK.
The watch list tab now displays the new name.
o
D
y
The Save As dialog box appears.
op
11. Navigate to the C:\Training folder, and then in the File name field, enter
My Watch Window.xml.
Note: Adding the .xml file extension is optional. This allows you to edit the file with an XML
editor. Object Viewer does not require a file extension.
C
ot
N
o
Wonderware Training
Lab 4 – Using Object Viewer 3-49
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.
y
Note: You can also select ProdPlatform in the right pane, and then on the toolbar, select
Launch Object Viewer .
op
Object Viewer reappears and displays the ProdPlatform attributes and the engine it hosts.
C
ot
N
o
D
Wonderware Training
Lab 4 – Using Object Viewer 3-51
y
op
20. Navigate to C:\Training and select My Watch Window.
The name will show as My Watch Window.xml if your computer has extensions turned on.
C
ot
N
o
y
op
C
A new tab appears at the bottom of the watch window.
ot
N
o
D
Wonderware Training
Lab 4 – Using Object Viewer 3-53
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
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.
N
y
26. On the File menu, click Save Watch List.
27. Minimize Object Viewer.
op
C
ot
N
o
D
Wonderware Training
Section 5 – Data Simulation 3-55
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
y
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.
op
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.
To gather simulated I/O data, you need to make sure that all the I/O references of attributes in
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
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-57
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.
y
Objectives
Upon completion of this lab, you will be able to:
op
Configure an $OPCClient to the OI.SIM
Monitor the connection status to the OI.SIM
C
ot
N
o
D
y
op
C
ot
2. Rename the instance Simulator.
N
Wonderware Training
Lab 5 – Configuring for Data Simulation 3-59
y
5. On the Scan Group tab, in the Available scan groups section, click to add a scan
op
group.
6. Name the group Fast and press Enter.
y
op
11. Right-click Simulator and select Deploy.
C
ot
12. Keep the default options and click OK.
N
o
D
Wonderware Training
Lab 5 – Configuring for Data Simulation 3-61
y
op
13. Click Close.
Next, you will use the SMC to check the activation status of the OI.SIM.
14. In the SMC, expand Operations Integration Server Manager\TrainingGalaxy\
ProdPlatform.
C
Note that OI.SIM.1 has been activated automatically.
ot
N
o
D
y
op
Object Viewer appears and refreshes.
C
16. Right-click the empty area of the watch window and select Add Watch Window.
17. Right-click the watch window and select Rename Tab.
ot
18. Name the tab Simulator and click OK.
N
o
D
Wonderware Training
Lab 5 – Configuring for Data Simulation 3-63
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
configured in the device integration object and the topics in the Device Integration Server.
20. Add the ScanGroupList attribute to the watch window.
N
y
23. In the Attribute Reference field, enter Simulator.Fast.$Sys$Status.
op
24. Click Go.
C
ot
The Attribute dialog box appears.
The Attribute Reference to display in the watch window has automatically been selected.
N
o
D
Wonderware Training
Lab 5 – Configuring for Data Simulation 3-65
y
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.
op
26. Right-click the empty area in the watch window and select Save.
C
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
y
op
C
Module 4 – Application Objects
Section 1 – Introduction to Application Objects 4-3
ot
Section 2 – Object Attributes 4-7
Lab 6 – Modeling Meters 4-15
Section 3 – Change Control and Propagation 4-29
N
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
y
Server. They can store process data in the Process Historian. Application Server provides the
following Application objects:
AnalogDevice
op
DiscreteDevice
Sequencer
SQLData
UserDefined
AnalogDevice Object
C
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-
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.
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.
N
Sequencer Object
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:
o
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
y
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
op
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.
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.
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.
Wonderware Training
Section 1 – Introduction to Application Objects 4-5
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
y
The Attribute supports the following data types:
Boolean
op
Integer
Float
Double
String
Time
ElapsedTime
InternationalizedString
History C
The Attribute provides the enabling and configuration for the following functionality:
Scaling of Input and Output values
y
such as Rate of Change alarm and Statistics (Min/Max/Avg).
SW100a - Discrete Attribute - Input from a limit switch configured with options such as
State Labels and State alarm.
op
SW100b - Discrete Attribute - Input from a limit switch configured with options such as
State Labels and State alarm.
XV100a - Discrete Attribute - InputOutput to a solenoid valve configured with options such
as State Labels, State alarm, and Statistics (Open/Close time).
XV100b - Discrete Attribute - InputOutput to a solenoid valve configured with options such
as State Labels, State alarm, Statistics (Open/Close time).
C
Use the UserDefined object as a “container” for other objects. An object relationship in which one
object is comprised of other objects is called containment. Containment allows you to group
various objects together to make complex objects. For more details, refer to Section 4 on the
subject of Containment.
ot
N
o
D
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
automatically locked in the child instances.
If attribute parameters such as initial values and security classifications are locked in the template,
they cannot be changed in child instances. If these parameters are unlocked in the template, the
op
initial value and security are editable and lockable in derived templates. When unlocked in either
the base or derived template, the value is editable in instances.
After you add an attribute to an instance, it appears in the Attribute Browser list for use with the
scripting and attribute configuration functions.
On the Attributes tab, you can define the following initial information and parameters for the
attribute:
Add a new attribute to an object.
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,
ot
you can specify the states as “Stopped” and “Running.” Text boxes appear for you to enter
these strings when you select a Boolean data type.
These labels are also shown in the Value and Limit columns of the Alarm and Event
database and InTouch AlarmView control.
Specify the attribute writeability.
Set initial values if the attribute is user writeable.
N
Properties>Attributes dialog box, or the Object Viewer unless you select to view Include
Hidden.
Using the word “quality” as an attribute name is not supported. “Quality” is used by
InTouch HMI in a set of dotfields to show the reliability of data values assigned to an I/O
tag. An attribute named “Quality” cannot be accessed through FS Gateway or InTouch due
to a naming conflict.
y
these attributes in On Scan and Execute scripts. A Calculated retentive attribute retains
the attribute’s current value after a computer restart, redundancy-related failover, or similar
situation in which valid checkpoint data is present.
op
Your Startup script should contain a statement testing the Boolean value of the
StartingFromCheckpoint attribute on the object’s AppEngine. If the value is TRUE, do not
initialize the attribute. If the value is FALSE, initialize the attribute.
features.
C
except for buttons for adding, filtering, duplicating, deleting, and viewing attributes and attribute
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
If you add a feature to an attribute in a derived template that has objects derived from it, all
child objects inherit the feature.
You cannot add a feature to attributes on derived objects that duplicate parent object
op
features in name and type.
You cannot add a feature with the same name as an existing feature.
Renaming a feature on an attribute in the template to which it was originally added
renames all other objects derived from the template. This change happens when the
template is checked in.
You can check in a template with an attribute configured with a new feature with the same
name as an existing feature on an attribute in a derived object. The template definition of
C
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.
Write (Output)
You can also configure advanced properties. The attribute’s data type and I/O type determine what
Advanced I/O properties are available.
Two common types of scripts can be written on an attribute configured with a Read/Write I/O
feature: One can look at the input side and one can look at the output side.
The input side script uses the current value coming from the input source location and performs
D
logic or calculations on it. This script refers directly to the attribute in its expressions. For example,
if the attribute is “me.attribute1”, the script refers directly to “me.attribute1” for data change
conditions and for expressions within the script.
The output side script can modify output or validate a new requested output value. This script
refers to the “WriteValue” attribute configured on the attribute: “me.attribute1.WriteValue”.
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
Using the History Feature
op
Any attribute that exists at runtime and is not already historized can be configured with a history
feature.
A history feature can be added to a template or an instance attribute. If added to a template
attribute, the existence of the history feature is automatically locked in derived objects.
You can configure Writeable and Calculated attributes of the following data types with a history
feature:
Float, Double (stored as a Float)
Integer
Boolean
C
String stored as Unicode, 512 character limit
Custom Enumeration stored as an Integer
ot
ElapsedTime stored as seconds
Lo
LoLo
D
Wonderware Training
Section 2 – Object Attributes 4-11
y
Using the Deviation Alarms Feature
op
Select the Deviation alarms feature to add and configure a Deviation alarm on an attribute of
Integer, Float, or Double data type. You can add a Deviation alarm feature to a template or
instance. If added to a template attribute, the Deviation alarm feature is automatically locked in
derived objects. Deviation alarm features cannot be added to attribute arrays.
You can enable up to two categories of Deviation alarms. When enabled, an alarm will be triggered
when the attribute level deviates from a target value by a configured amount.
Major: The major alarm deviation tolerance
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.
Boolean, Integer, Float, or Double data type. If enabled, alarms will be triggered when the attribute
has bad data value or data quality.
You can add a Bad Value alarm feature to a template or instance. If added to a template attribute,
the Bad Value alarm feature is automatically locked in derived objects. Bad Value alarm features
cannot be added to attribute arrays.
o
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.
D
y
Using the Log Change Feature
op
Select the Log Change feature to log system events for an attribute of Boolean, Integer, Float, or
Double data type.
When enabled, the Log Change feature logs data change events as well as user events.
C
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
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
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
N
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.
D
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.
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
y
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.
op
Validating and Editing I/O Assignments
The IO Device Mapping view is a table that displays I/O auto assignment references for application
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
C
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.
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.
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
N
within the device hierarchy, even though the parent object is selected.
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.
o
You can change how I/O attributes are displayed by sorting, grouping, or filtering the attributes.
y
op
C
ot
N
o
D
Wonderware Training
Lab 6 – Modeling Meters 4-15
y
Objectives
Upon completion of this lab you will be able to:
op
Configure and use object templates
Create instances of application objects
Acquire data from an OI Simulator
Monitor attribute data in Object Viewer
C
ot
N
o
D
y
op
C
ot
N
Wonderware Training
Lab 6 – Modeling Meters 4-17
4. Move the $Meter derived template object to your Training\Project template toolset.
y
op
Now, you will configure the $Meter template.
5. Double-click the $Meter template to open its configuration editor.
C
ot
N
o
D
6. On the Attributes tab, click the Add button to add a new attribute.
7. Configure the new attribute as follows:
Name: PV
Data type: Float
Writeability: Object writeable
y
op
C
ot
8. In the Available features area, click the I/O button.
9. In the I/O area, select Read.
N
o
D
Wonderware Training
Lab 6 – Modeling Meters 4-19
10. Click the Save and Close button to close the editor.
The Check In dialog box appears.
11. 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
12. Click Close.
C
Create Additional Templates and Instances
Now, you will derive additional templates from the $Meter template. These new templates will
ot
inherit the configuration of the $Meter template.
13. Right-click the $Meter template and select New | Derived Template.
N
o
D
Next, you will use the Template Toolbox and the Model view, to create instances of Level and
Temperature.
16. In the Project toolset, right-click the $Level template and select New | Instance.
y
op
C
In the Model view, the new instance appears under the Unassigned Area folder.
17. In the Model view, name the new instance L1.
ot
N
o
D
Wonderware Training
Lab 6 – Modeling Meters 4-21
y
op
19. 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.
C
20. Rename the new instance T1 and assign it to the Production area.
ot
N
o
D
y
op
The IO Devices pane opens on the right side of the ArchestrA IDE.
C
ot
N
Wonderware Training
Lab 6 – Modeling Meters 4-23
The IO Device Mapping pane opens in the center pane of the ArchestrA IDE at the bottom.
y
op
C
23. In the IO Devices pane, expand TrainingGalaxy, Simulator, and Fast.
Note the auto assignment of L1 and T1 to Simulator\Fast.
ot
N
o
D
y
op
C
25. Right-click the instances and select Deploy.
ot
N
o
D
Wonderware Training
Lab 6 – Modeling Meters 4-25
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
26. Click OK to accept the default settings.
C
When complete, the progress displays 100% completed.
ot
N
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
C
Now, you will return to Object Viewer to view the attribute values in runtime.
28. Right-click L1 and select View in Object Viewer.
ot
N
o
D
Wonderware Training
Lab 6 – Modeling Meters 4-27
29. Select L1, and then in the Simulator watch list, add the following attributes:
L1.PV
L1.PV.InputSource
30. Repeat the previous step to add the following attributes for T1:
T1.PV
T1.PV.InputSource
y
op
When the mixer is running, observe the attribute values changing in real time. There is nothing
wrong if the numbers are static for a few moments.
31. Right-click the blank area of the watch window and select Save to save the watch list.
C
ot
N
y
op
C
ot
N
o
D
Wonderware Training
Section 3 – Change Control and Propagation 4-29
This section describes attribute locking and unlocking. It also discusses how template changes
can propagate to previously derived objects.
y
only lock attributes in templates.
Locking an attribute in a template specifies that its value or setting is inherited by all derived
objects, both templates and instances. Locking an attribute also makes the attribute act as a
op
constant during run time.
C
ot
N
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.
o
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
D
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
y
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.
op
Unlocking an Attribute
Unlocking an attribute releases the locking control only one level down.
C
ot
N
Notice that unlocking an attribute within the $Valve template releases the locking control of the
o
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.
D
Wonderware Training
Section 3 – Change Control and Propagation 4-31
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.
lock an entire group of attribute extensions. This adds efficiency, but there are times when not
every item in the group should be locked. You still have the option of locking the group and then
unlocking any specific extension.
When this occurs, the group lock icon will appear as Indeterminate . This icon indicates
different lock states for individual options in the group.
o
D
y
op
C
ot
N
o
D
Wonderware Training
Lab 7 – Configuring Change Control and Propagation 4-33
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
y
scaling values.
Objectives
op
Upon completion of this lab, you will be able to:
Control changes to derived objects by locking attributes
Propagate changes from templates to derived objects
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-35
y
op
6. In the Enable I/O scaling area, in the Maximum: Raw value field, enter 4095.0, and then
y
op
11. Click Close.
C
12. On the Derivation tab, double-click the $Level template to open its configuration editor.
13. Verify that the PV attribute is selected.
ot
N
14. In the Description field, enter Level Indicator and press Enter.
o
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.
D
Wonderware Training
Lab 7 – Configuring Change Control and Propagation 4-37
16. On the right side of the pane, in the Eng units field, enter Gallons and press Enter, and then
lock the field.
y
op
17. In the I/O area, expand Advanced.
Notice that the Enable I/O Scaling check box is unavailable and no changes can be made to
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:
Minimum: EU value:
Minimum: Extended EU range:
C
locked
locked
ot
N
y
op
22. Click Close.
editor.
24. Verify that the PV attribute is selected.
C
23. On the Derivation tab, double-click the $Temperature template to open its configuration
ot
N
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.
o
D
Wonderware Training
Lab 7 – Configuring Change Control and Propagation 4-39
27. On the right side of the pane, in the Eng units field, enter Deg F and press Enter.
28. Lock the field.
y
29. In the I/O area, expand Advanced.
30. Configure the Enable I/O Scaling parameters as follows:
op
Maximum: EU value: 250 locked
Maximum: Extended EU range: 255 locked
C
ot
31. Save and close the configuration editor.
32. In the Check In dialog box, Comment field, enter Locking Attribute Properties.
N
y
37. Configure the Enable I/O Scaling parameters as follows:
op
Maximum: Extended EU range: unlocked
C
ot
38. Save and close the configuration editor.
39. In the Check In dialog box, Comment field, enter Unlocking Attribute Properties.
40. Click OK.
The Check In dialog box reappears with an Object 1 of 1 completed message.
N
Wonderware Training
Lab 7 – Configuring Change Control and Propagation 4-41
y
Notice the new values.
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-43
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
smaller, simpler devices.
In scripts, these objects can be referred to by the name that derives from the containment
relationship. This name is called a hierarchical name.
op
An object can have three kinds of names, depending on if it is contained by another object. The
three names include:
Tagname
Contained Name
Hierarchical Name
Name
Tagname
Contained Name
Description
C
The unique name of the individual object. For example, Valve1.
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
name of the objects that contain it.
Since the object that contains it may also be contained, there are potentially
multiple hierarchical names that refer to the same object.
For example, if:
“Mixer1” contains Tank1 (also known within Mixer1 by its contained name “Tank”).
N
“Tank1” contains Valve1 (also known within Tank1 by its contained name “Outlet”).
Valve1 could be referred to as:
“Valve1”
“Tank1.Outlet”
“Mixer1.Tank.Outlet”
o
Change the contained name of Valve_001 to Inlet1. Now Valve_001 can also be referred to by its
hierarchical name Mixer_001.Inlet1. The name of the contained object can be changed, though,
within the scope of the hierarchy.
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.
y
ApplicationObject Containment
op
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:
2 Inlet Valve
Agitator
Outlet
C
ot
N
o
D
Wonderware Training
Section 4 – Containment 4-45
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
Within the context of each hierarchy, the contained names are unique, in that the names only refer
o
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.
y
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.
op
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
can also right-click an object and select Rename Contained Name.
C
The Derivation View does not show containment relationships. It shows templates and instances
with regard to containment in the follow ways:
Non-contained instances show their tagnames.
Contained instances show their tagnames and hierarchical names.
Non-contained templates show their object name.
ot
Contained templates show their hierarchical name.
Containment of instances is limited to Areas containing other Areas and AppObjects containing
other AppObjects.
Renaming can be done on an instance's tagname and contained name. A template only has a
template name.
N
It is also important to note that adding or removing an element to/from a container at the template
level, does not affect previously created instances.
o
D
Wonderware Training
Lab 8 – Modeling the Mixer 4-47
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.
y
Objectives
op
Upon completion of this lab, you will be able to:
Create a containment relationship using templates
Create instances of contained objects
View the attribute data of contained objects in Object Viewer
Use the Area model to handle I/O assignments
C
ot
N
o
D
y
op
2. Rename the derived template $Mixer.
C
ot
N
o
D
Wonderware Training
Lab 8 – Modeling the Mixer 4-49
y
op
$Level
$Temperature
C
4. Select the following derived template objects and move them to the $Mixer template to create
a contained mixer object.
ot
N
o
D
y
op
7. On the Attributes tab, click the Add
press Enter.
C
6. Double-click the $Valve template to open its configuration editor.
Wonderware Training
Lab 8 – Modeling the Mixer 4-51
9. With the OLS attribute selected, configure the attribute parameters as follows
(leave all other attributes as default):
y
op
C
ot
10. Click the Add button and name the new attribute CMD, and then press Enter.
N
11. In the Description field, enter Valve Command and press Enter, and then lock the field.
o
D
12. With the CMD attribute selected, configure the attribute parameters as follows
(leave all other attributes as default):
y
op
C
ot
13. Save and close, and then check in the object with an appropriate comment.
N
Wonderware Training
Lab 8 – Modeling the Mixer 4-53
15. Using the $Valve template, create three new derived templates named:
$Inlet1
$Inlet2
$Outlet
y
op
16. Contain the templates in $Mixer.
C
ot
Create the Motor Template
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.
N
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-55
y
op
C
ot
25. 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.
N
o
D
y
op
28. Open the $Agitator configuration editor.
29. For the CMD attribute, change the Description to Agitator Command and lock the field.
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-57
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
op
32. Save and close, and then check in the object with an appropriate comment.
$Pump1
$Pump2 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:
ot
N
o
D
Wonderware Training
Lab 8 – Modeling the Mixer 4-59
36. For the PV attribute, change the Description to Pump 1 State and lock the field.
y
op
37. Save and close, and then check in the object with an appropriate comment.
38. Open the $Pump2 configuration editor.
39. For the CMD attribute, change the Description to Pump 2 Command and lock the field.
C
40. For the PV attribute, change the Description to Pump 2 State and lock the field.
ot
41. Save and close, and then check in the object with an appropriate comment.
N
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-61
44. In the Deployment view, name the new instance Mixer100 and assign it to Line1.
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
C
proper data points. You will first have to undeploy the objects because you cannot change the
autobind assignment of an object while the object being assigned is deployed.
45. Select Line1 and Line2, and then right-click and select Undeploy.
ot
N
o
y
op
48. Click Close.
49. Expand Mixer100.
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-63
50. In the Deployment view, select Line1, Mixer100 and all its contained objects, and Line2, and
then drag them 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. When an area is assigned to an IO source for autobinding, all objects contained in that
C
area are bound to the same IO source, and all objects that will be assigned to that area in the
future will also be bound to that source.
Now, you will verify the references created using I/O Binding.
51. In the Deployment view, deploy Line1, Mixer100 and all its contained objects, and Line2.
ot
N
o
D
y
op
52. Keep the default options and click OK.
C
When complete, the progress displays 100% completed.
ot
N
Wonderware Training
Lab 8 – Modeling the Mixer 4-65
The Deployment view now displays that Line1, Line2, and all objects in the containment
relationship have been deployed.
y
op
54. Right-click Mixer100 and select View in Object Viewer.
C
55. Load the watch list you saved earlier, if necessary.
56. Add a new watch window and rename the tab Mixer100.
57. Add the following attributes to the watch window:
Level_001.PV
ot
Temperature_001.PV
Agitator_001.CMD
Agitator_001.PV.Msg
Agitator_001.Speed.PV
Agitator_001.Speed.SP
N
y
op
C
ot
N
o
D
Wonderware Training
y
op
C
Module 5 – Device Integration
Section 1 – Device Integration Servers 5-3
ot
Lab 9 – Configuring the OI Server 5-7
Section 2 – Device Integration Objects 5-15
Lab 10 – Configuring the Device Integration Object 5-21
N
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
with controllers, such as PLCs and RTUs. These concepts extend to any automation object in the
Galaxy.
The communication between automation objects in the Galaxy and the controllers is done through
op
device integration objects that reside in the Galaxy and field protocol-specific drivers external to
the Galaxy, such as OI, legacy IO, and OPC servers.
C
The communication between all these components is done through different protocols:
ot
Communication between automation objects in the Galaxy, such as the communication
between an application object (AO) and a device integration object (DIO), is managed by
ArchestrA
Communication between device integration objects in the Galaxy and external drivers
(Windows applications or services) is accomplished by the DDE, SuiteLink, or OPC
protocols
N
The drivers (for example, OI Servers) communicate with the controllers through the
device-specific protocol, such as Modbus TCP or DH+.
OI Servers
The OI Server Manager is a part of the SMC suite of utilities. It enables the configuration,
o
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
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.
N
Since there is a limit of one server group per OI Server per computer node, that server group
effectively is the OI Server.
Where the server group appears in the OI Server Manager depends on what type of OI Server it is
for. For the purpose of this course, the MBTCP is optimized and is contained in the Operations
Integration Supervisory Servers folder.
o
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.
D
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
levels of objects in the hierarchy. For example, a parent object may represent a network channel,
port, or bridge, while a child object may represent an individual device on that network.
op
Configuring Global Parameters
Each OI Server has a unique set of parameters that you can configure for an environment. These
parameters are unique to each type of field device, such as a PLC. For descriptions of these
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
each OI Server. For example, the IP address of the device you are connecting to.
C
Device groups are labels used by client applications when accessing the OI Server.
The Device Group Update Interval determines how often the OI Server polls the device and sends
data to the client application. If this is not specified, all unnamed device groups have an update
ot
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
because a large amount of data is being transmitted between the device and the OI Server. Large
update intervals slow turnaround for data changes.
N
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.
D
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.
y
Objectives
Upon completion of this lab, you will be able to:
op
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
C
ot
N
o
D
y
op
C
ot
2. Right-click Configuration and select Add TCPIP_PORT Connection.
N
o
D
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
is running (your instructor will provide this name).
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
op
9. Rename the topic to Topic1.
C
ot
10. Click the Device Items tab.
11. Right-click inside the table and select Import.
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
Lab 9 – Configuring the OI Server 5-13
y
op
C
ot
N
o
y
op
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.
C
ot
N
o
D
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
Device Integration Products are comprised of:
Device Integration Objects that reside in the Galaxy and provide the connection to the
drivers; a device integration object can communicate with one, and only one driver
op
Device Integration Servers (or "drivers") that are external to the Galaxy and provide the
communication to the controllers; a device integration server can communicate with one
or more controllers
Application Server includes the following device integration objects for communication with the
drivers:
$DDESuiteLinkClient
$OPCClient
$DDESuiteLinkClient
DDE
SuiteLink
C
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:
Product OPC
ot
$OPCClient
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
N
information.
Each Device Integration Server speaks a particular device-specific protocol; for example, to
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:
o
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:
y
Note: For OPC, DA Servers support the OPC DA standard (OPC Classic).
op
Application Communication Protocols
Communication between device integration objects and device integration servers is achieved by
way of an application protocol. Application protocols implement a client-server relationship
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
a server.
The supported application protocols are:
C
DDE (Dynamic Data Exchange) - a Microsoft communications protocol that lets
applications send and receive data and instructions to and from each other. DDE
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
SuiteLink is a TCP/IP-based protocol designed by Wonderware specifically for industrial
applications. It provides data integrity, high throughput, and simple diagnostic procedures.
Application Server supports SuiteLink communication through the $DDESuiteLinkClient
object.
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
N
Important: Communication using the DDE protocol can only be done on the same computer.
o
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.
D
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.
y
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.
op
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
that includes the update interval.
C
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.
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
or their corresponding mnemonic name.
Within the Galaxy, items from a controller will be requested through the corresponding device
integration object. As any other automation object in the Galaxy, data is provided through
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
N
point) requested; the attribute name becomes a compound of these two pieces:
<di object name>.<device group name>.<item name>
The item name can be customized through the device integration objects to accommodate any
necessary naming conventions. Both, device integration objects and device integration servers
allow adding a list of aliases for the item names.
o
Note: Naming conventions for item names are important for automatic I/O binding to work.
D
y
op
The main characteristics of the DDESuiteLinkClient object are:
Support for multiple topics which allows one instance of the object to access multiple
controllers connected to the same device integration server
Allows definition of aliases for item names; this is done on a per topic basis
The rate at which the data items are updated depends on how the topics are configured
within the device integration server
resources
C
Support for advanced communication management to address network traffic and other
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
server on the same computer the object is deployed.
N
o
D
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.
y
op
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.
C
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
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
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
D
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.
y
At least one Scan Group must also be configured for the OPCClient object to establish a
communication channel with the server application.
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.
y
Objectives
op
Upon completion of this lab, you will be able to:
Configure a device integration object
Monitor the connection status of a device integration object
C
ot
N
o
D
y
op
C
ot
2. In the Deployment view, rename the instance ProdPLC.
N
o
D
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.
C
6. In the Available topics section, click the ScanGroupList
7. In the Topic field, enter Topic1 and press Enter.
button to add a topic.
ot
N
8. Save and close, and then check in the object with an appropriate comment.
o
D
9. In the Model view, assign the ProdPLC instance to the ControlSystem area.
y
op
C
10. In the Deployment view, assign the ProdPLC instance to AppEngine1.
ot
N
o
D
Wonderware Training
Lab 10 – Configuring the Device Integration Object 5-25
y
op
C
12. In the Deploy dialog box, click OK to accept the default settings.
When complete, the progress displays 100% completed.
13. Click Close.
ot
View the Attributes in Runtime
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
D
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
op
19. Click OK.
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
op
21. Click OK.
The ProdPLC.Topic1.$Sys$Status attribute reference is added to the watch window.
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.
23. Minimize Object Viewer.
N
o
D
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
Using the I/O Feature
The I/O feature allows you to configure all aspects of data input and output for an attribute.
op
You can configure I/O type and you can specify input sources and output destinations. The I/O
types you can specify are:
Read (Input)
Read/Write (InputOutput)
Write (Output)
You can also configure advanced properties. The attribute’s data type and I/O type determine what
Advanced I/O properties are available.
Note: Note: I/O auto assignment is the default setting for application and other system objects,
N
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
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:
<IODevice>.[ObjectName].[AttributeName].InputSource
o
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:
D
<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---".
y
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.
op
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.
C
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.
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.
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.
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
o
case in the IO Devices view, you do not have to check out objects to change their I/O assignments.
The IO Mapping view is divided into columns, each of which displays information for an I/O
attribute that has been auto assigned.
You can change how I/O attributes are displayed by sorting, grouping, or filtering the attributes.
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.
y
Objectives
Upon completion of this lab, you will be able to:
op
Change the I/O assignment of objects
Connect objects to live controller data
Monitor data acquisition
C
ot
N
o
D
y
op
The Undeploy dialog box appears.
C
ot
N
2. Click OK.
o
D
Wonderware Training
Lab 11 – Connecting the Mixer to the Field 5-33
y
op
3. Click Close.
4. In the IO Devices pane, expand ProdPLC.
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
C
6. Deploy the Production area and all its contained areas and objects.
ot
N
o
D
Wonderware Training
Lab 11 – Connecting the Mixer to the Field 5-35
y
10. In the Value field, change the speed to 50.0.
op
11. Click OK.
C
Wait for the mixer to be full, which causes the agitator to start, and note the
Agitator_001.Speed.PV.
ot
N
o
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.
y
Only one DIObject data source provides field device data through the RedundantDIObject at a
time. Both data sources must have commonly-configured OI Server groups. These must be
reflected in and channeled through the RedundantDIObject, which monitors the two DIObject data
op
sources. It also determines which one is Active at any given time. Both data sources must also
have the same item address space.
RedundantDIObject
The RedundantDIObject provides you with the ability to configure a single object with connections
to two different data sources (proxy objects or DIDevice objects). In the event of a failure of the
C
active data source, this object automatically switches to the standby data source.
This capability allows clients to configure redundant connections to a field device.
The 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
source DeviceIntegration objects.
The RedundantDIObject supports the following operations on I/O points from field devices:
N
Subscriptions, which are implemented via scan groups. Read transactions, which are
implemented via block reads (when available in the source DIObject). Write transactions,
which are implemented via block writes (when available in the source DIObject).
Note: Most ApplicationObjects in the ArchestrA environment write only the last data received in a
scan cycle. DeviceIntegrationObjects, including the RedundantDIObject, operate differently. They
o
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.
D
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
Configuring Data Acquisition Redundancy
Data acquisition redundancy objects involve two DIObjects and the RedundantDIObject. In data
op
acquisition redundancy, you must configure all three components:
Primary DIObject data source
Backup DIObject data source
Redundant DIObject data source
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.
Wonderware Training
Section 4 – Device Integration Redundancy 5-39
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.
y
The three objects in the data acquisition redundancy scheme (RedundantDIObject and its two
DIObject data sources) work like any other ArchestrA object when deploying, alarming, and
op
historizing. They have no special redundancy-related states or restrictions.
During runtime, the RedundantDIObject monitors the status of the DIObject data sources, and
handles the switching from Active to Standby object if failure conditions occur.
C
connection status of the PLC at runtime. If you are using the redundancy feature of the
RedundantDIObject to communicate with DIObjects, you should configure the PingItem attribute
for each scan group.
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
y
redundant DI system.
If you are on a single-node network configuration, you will skip this lab.
op
Objectives
Upon completion of this lab, you will be able to:
Configure an instance of a Redundant DI Object
Create a deployment model for a Redundant DI Object
Force a failover on a redundant DI system
C
ot
N
o
D
First, you will create and configure the DI objects for the redundant DI system. You will then create
the deployment model for the redundant DI objects.
1. In the ArchestrA IDE, Model view, undeploy ProdPLC.
2. Undeploy Production, Line1, Line2, and all their hosted objects.
Notice that the objects display yellow boxes, indicating that the objects have been undeployed.
y
op
C
ot
3. Rename ProdPLC to R_ProdPLC1.
N
o
D
Wonderware Training
Lab 12 – Configuring the Redundant DI Object 5-43
y
op
C
ot
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.
C
9. In the Available topics section, click the ScanGroupList
10. In the Topic field, enter Topic1 and press Enter.
button to add a topic.
ot
N
11. Save and close, and then check in the object with an appropriate comment.
12. In the Model view, assign the R_ProdPLC2 instance to the ControlSystem area.
o
D
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.
y
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
op
named area.
C
ot
N
o
Wonderware Training
Lab 12 – Configuring the Redundant DI Object 5-47
In the Available scan groups area, Scan Group column, Topic1 appears.
y
op
20. Save and close, and then check in the object with an appropriate comment.
Now, you will deploy the objects.
C
21. In the Model view, assign the ProdPLC instance to the ControlSystem area.
ot
N
o
D
y
op
24. Expand R_ProdPLC1\Topic1, if necessary.
C
23. In the IO Devices pane, expand ProdPLC\Topic1.
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
op
26. Select all undeployed objects.
C
ot
N
o
D
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 window.
N
o
D
Wonderware Training
Lab 12 – Configuring the Redundant DI Object 5-51
y
StatusBackupDISource
StatusPrimaryDISource
SwitchCnt
op
SwitchReason
The watch window displays that R_ProdPLC1 is currently the active DI source and
R_ProdPLC2 is the standby DI source.
C
ot
N
You will now force a failover and observe that the active DI source changes from R_ProdPLC1 to
R_ProdPLC2.
32. In the watch window, double-click ProdPLC.ForceFailoverCmd.
33. In the Modify Boolean Value dialog box, click the True option.
o
D
y
op
35. Click the Mixer100 tab to verify that all of the data is still displaying good quality.
C
36. On the DIO Redundancy tab, trigger ProdPLC.ForceFailoverCmd again to switch back to
R_ProdPLC1 as the active DI source.
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
39. In the Modify Boolean Value dialog box, click the False option.
y
40. Click OK.
The watch window now displays R_ProdPLC2 as the active DI source and R_ProdPLC1 as
the standby.
op
Notice that the SwitchCnt is now 3 and the SwitchReason is Offscan.
C
ot
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.
N
Notice that Failover does not change. This is because the Redundant DIO Object does not
automatically switch back to the Primary DI Source.
o
D
Wonderware Training
Lab 12 – Configuring the Redundant DI Object 5-55
y
op
44. Save the watch list and minimize Object Viewer.
C
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
y
op
C Module 6 – History
Section 1 – Historizing Data for Application Server 6-3
ot
Lab 13 – Configuring and Retrieving History 6-11
N
o
D
6-2 Module 6 – History
Module Objectives
Configure the $AppEngine object to store Historian to a Process 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 Process 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
y
You can configure application objects to store process data in the Process Historian. Historical
data from Application Server can be retrieved and viewed using standard Process Historian
database utilities. Also, you can use historical data to produce reports shown from your client
applications.
op
Application Server History Components
To save your process data to a historical database, you must install the Process Historian. A
Process Historian can be installed on any computer outside the Galaxy, but on the same network.
In a production environment, the Process Historian should be installed on a dedicated computer.
Each Engine in the Galaxy is configured with the location of the Process Historian storage node to
C
which its history data is to be sent. This configuration is stored in an attribute within the Engine.
ot
N
o
A single Process Historian installation can receive historical data from a single Galaxy. A push
model is used to send and save new historical updates to Process Historian. Each system Object
Engine (Platform, AppEngine, ViewEngine) includes a historian primitive that sends all history
D
updates for all hosted objects to the historian. All Engine objects include an attribute to specify the
node name of the computer hosting Process Historian.
The figure shows a single Process Historian. This may be a common configuration, but other
Application Server configurations support multiple Process Historian databases for a Galaxy.
However, each Engine Object only sends its historical data to one Process Historian.
The following figure shows the major ArchestrA components to save process data from a
production device to the Process Historian.
y
op
There is a one-to-one relationship between a historical Object attribute and a tag in Process
Historian.
For storage, the story is similar. When an Object decides to store a new VTQ to Process Historian,
it pushes that storage update message, with the new VTQ, to Process Historian using a Process
C
Historian supplied interface. The history primitive uses the previously-returned unique identifier for
the Process Historian tag that corresponds to the historized property to identify the tag being
stored.
A single Process Historian can receive historical data from a single Galaxy only.
Object.
When the Process Historian node recovers, data is forwarded from the local node to the Process
Historian node at a low priority.
D
If an AppEngine loses connectivity to the Process Historian node, the Process Historian reports
bad data quality to clients. When you undeploy an Object with attributes configured for history, the
Process Historian stores the final data points with Bad quality.
Wonderware Training
Section 1 – Historizing Data for Application Server 6-5
History Configuration
y
Historizable Data Types for Attributes
op
For attribute data to be stored in the historian, a host AppEngine must be configured to send
history data to a Process Historian node. For each Object, you can configure attributes of the
following data types to be saved to the Process Historian.
Float (numerical)
Double (numerical)
Integer (numerical)
Boolean (non-numerical)
C
String - Unicode (non-numerical)
CustomEnum (non-numerical) maps to Process Historian Integer
ElapsedTime (numerical) Maps to Process Historian Float, converted to seconds
Arrays or portions of arrays are not supported.
Enum type attributes are saved as Process Historian integer ordinal values.
ot
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 Process Historian are in the engineering units specified
for the attribute. The Process Historian does not scale numerical values.
N
for each attribute. Once enabled, certain configuration settings can be specified. These settings
determine how often data is historized.
The following configuration settings can then be specified:
Value Deadband - Threshold value in engineering units, which is the absolute difference between
the current and most recent saved historical values. The current value must exceed the absolute
deadband to be saved as historical data. The Value Deadband filters out small, momentary value
changes from being saved to the Process Historian. A new value that is within the range of the
deadband is not saved to the Process Historian. The default value of 0.0 disables the Value
Deadband and any change to a value is saved as historical data.
Force Storage Period - Interval in milliseconds in which an attribute value is saved to the Process
Historian, regardless of whether the value exceeds its value deadband setting or not. An attribute
value is saved to the Process Historian at every Force Storage interval. The default value of zero
(0) disables the Force Storage period.
Trend Hi - Initial maximum trend value in engineering units for clients. The default is 10.
Trend Lo - Initial minimum trend value in engineering units for clients. The default is 0.0.
The following are advanced configuration settings that require a knowledge of Process Historian
Server and will not be discussed in this course:
Interpolation Type
y
Rollover Value
Sample Count
op
Enable Swinging Door Rate Deadband
C
If the link to the Process Historian product is down at deploy time, the attempt to dynamically
reconfigure Process Historian is achieved at the time the Process Historian link is recovered. In
other words, automatic retry is built in.
NaN Handling
For Float and Double attributes, a potential value is the IEEE NaN encoding for the float or double
representation. NaN values can be generated for attributes that are to be historized. These NaNs
D
will be accompanied by a Bad OPC Data Quality. In any case, NaN is a valid value that can be
generated for floats and doubles. Unfortunately, Process Historian clients do not handle NaN
properly. Therefore, ArchestrA will convert the NaN value to a Null value representation just prior
to sending to Process Historian.
Wonderware Training
Section 1 – Historizing Data for Application Server 6-7
y
Historian. The quality stored in Process Historian is to be the actual quality of the attribute in
Application Server with no modification. However, Process Historian may insert “artificial” quality
(for example 24) and null value in the database when certain situations such as disconnects occur.
It does this in cooperation with the Process Historian clients to project the right information on the
op
client.
C
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
Section 1 – Historizing Data for Application Server 6-9
y
Note: Note: Except for Late Data, the ViewEngine Object contains the same historical attributes
as the AppEngine Object.
op
Insight
Process Historian Insight provides web-based access to Process Historian Server. It is installed
with Process Historian as an on-premise application. It helps to retrieve historical data through the
web browser and present data in different formats, such as trends and tables. On a remote client
node, you can connect to Process Historian Insight using a web browser.
C
ot
N
o
D
With Process 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
InSightApp
N
InSightApp is an out-of-the-box ArchestrA App for running an active Insight browser session within
a pane of a running ViewApp. The InSightApp provides a visualization of operational data by
retrieving information from the Historian. The InSightApp includes a search engine for retrieving
relevant information from tags that include defined keywords.
InSightApp global settings are configured in the InSightApp Global Editor. You can open the
InSightApp Global Editor by double-clicking the InSightApp from the Graphic Toolbox. From the
editor, you can configure the Historian InSight server URL, the chart duration, and keywords
D
defined for searching tags. You can also use the Test Connection button to verify connection to the
specified InSight server.
InSightApp Properties
To use the InSightApp in a ViewApp, it must be assigned to a layout pane in the Layout Editor or
ViewApp Editor. Once the InSightApp is assigned to a pane, you can customize the properties that
include Historian InSight server URL, chart duration, and keywords defined for searching tags.
Wonderware Training
Lab 13 – Configuring and Retrieving History 6-11
Introduction
In this lab, you will configure the Galaxy for historization to the Process Historian Server.
Specifically, you will configure the AppEngine Object to store historical data to a Process Historian
Server.
Additionally, you will configure the object attributes to be historized.
y
Objectives
op
Upon completion of this lab, you will be able to:
Configure the AppEngine object to store historical data on a Process Historian Server
Configure objects to historize attributes
Retrieve historical process data with Insight
C
ot
N
o
D
y
op
C
3. Save and close, and then check in the object with an appropriate comment.
ot
4. Open the AppEngine1 configuration editor.
5. On the General tab, check the Enable storage to historian check box.
6. In the Historian field, enter the node <instructor will provide (for example, X00Eng)>.
N
o
D
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
10. Scroll down, if necessary, and lock the History group.
N
o
D
11. Scroll down and unlock Trend high and Trend low.
y
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.
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.
y
op
C
ot
N
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.
o
D
y
op
21. 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.
C
ot
N
Notice that the change was also propagated to the mixer instance.
22. Click Close.
23. In the Template Toolbox, Training\Project toolset, open the $Valve configuration editor.
24. In the attributes list, select OLS.
o
D
Wonderware Training
Lab 13 – Configuring and Retrieving History 6-17
y
op
C
ot
27. Save and close, and then check in the object with an appropriate comment.
28. When the Check In dialog box reappears with an Object 1 of 1 completed message, click
Close.
Notice that the change was propagated to other instances.
N
29. In the Template Toolbox, Training\Project toolset, open the $Mixer.Agitator configuration
editor.
30. Select the Speed.PV attribute.
o
D
31. Click the History button, and then lock the History group.
32. In the History group, in the Trend high field, enter 100.0.
y
op
C
ot
N
33. Save and close, and then check in the object with an appropriate comment.
34. When the Check In dialog box reappears with an Object 1 of 1 completed message, click
Close.
o
Wonderware Training
Lab 13 – Configuring and Retrieving History 6-19
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
y
op
C
40. In the Search field, enter Level and wait for Data to appear.
ot
41. 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 appears.
N
o
D
Wonderware Training
Lab 13 – Configuring and Retrieving History 6-21
The Insight Trend appears for the selected tag. You may have to scroll to the right to see the
trend.
43. Click the blue trend.
y
op
C
ot
The tag details appear with another trend indicator.
44. Click the trend indicator in the tag details.
N
o
D
y
op
45. Set the time to the last hour.
C
ot
N
o
D
Wonderware Training
y
op
C
Module 7 – Alarms and Events
Section 1 – Alarms and Events Overview 7-3
ot
Lab 14 – Configuring and Interacting with Alarms 7-23
N
o
D
7-2 Module 7 – Alarms and Events
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 Process Historian, as
well as how to retrieve alarm history from SQL Server.
What is an Alarm/Event
y
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
op
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
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.
Examples of alarms include:
alarm.
stopped. C
A process measurement has exceeded a predefined limit, such as a high temperature
A process device is not in the desired state, such as a pump that should be running has
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
Examples of events include:
A plant process has started; for example, a new batch or campaign starts.
The operator has changed a plant operator parameter; for example, a setpoint on a
temperature controller.
The system engineer has changed the runtime system configuration; for example,
N
y
op
C
ot
The Platform is responsible for routing all alarms and events for all Areas subscribed to by that
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.
N
The Platform also routes alarm acknowledgments, enables and disables received from distributed
alarming back to the appropriate AutomationObject. Alarm acknowledgments, enables, and
disables carry along the User information for security purposes. An alarm generated by Application
Server contains fields that are generated by the alarm functions inside the AutomationObject.
o
D
Wonderware Training
Section 1 – Alarms and Events Overview 7-5
Types of Alarms
y
Application Server supports the following types of alarms:
Limit alarms
Deviation alarms
op
Diagnostic alarms
Rate of change alarms
Bad value alarms
The type of alarm that you can configure is based on the data type of the attribute’s value.
Limit Alarms
C
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.
ot
N
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
limits. You can set individual messages for each alarm limit.
o
D
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.
y
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.
op
Deviation Alarms
A deviation alarm compares the current attribute value to a target Engineering Units value. Then,
the absolute value of the difference is compared to one or more alarm deviation limits expressed in
EngineeringUnits.
C
ot
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
N
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
previous attribute values divided by a specified interval. When the slope (positive or negative)
exceeds a specified value, a rate of change alarm occurs. For example, if a tank volume increases
from 17 to 45 liters over a 5 minute interval, the calculated slope is 5.6 liters per minute. If you set
op
your rate of change alarm limit to 5.0 liters per minute, a rate of change alarm condition exists.
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
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.
D
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
Configuring Plant State-Based Alarms
op
You can map alarm modes on a per-Galaxy basis to different plant states to control how alarms
are reported. Five plant states are pre-defined, and have default alarm states associated with
them:
Default
Plant State Available Alarm States
Alarm State
Running Enable Enable
Maintenance
Startup
Shutdown
Testing
Disable
Silence
Disable
Silence C
Enable / Silence / Disable
Enable / Silence / Disable
Enable / Silence / Disable
Enable / Silence / Disable
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).
y
This attribute is read-only at runtime.
op
Alarms can be enabled, disabled, or silenced while an application is running. An Object's alarm
state can be set at the Area level, at the container Object level, or at the individual Object. In
addition, individual alarms within a single Object can be enabled, silenced, or disabled.
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.
To enable an Object’s alarms, you must ensure that the AlarmModeCmd and AlarmInhibit
C
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.
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
re-enabled. The disabled state is more restrictive than the silenced and enabled alarm states. A
disabled alarm does not require acknowledgment.
N
When Object alarms are disabled, an individual alarm that is enabled or silenced is forced to be
disabled.
When Object alarms are enabled and an individual alarm is enabled or silenced, the individual
alarm can be inhibited. This forces the individual alarm to be disabled.
When Object alarms are silenced and an individual alarm is enabled or silenced, the individual
o
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
y
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
op
disabled.
AlarmMode Attribute
The AlarmMode is a calculated attribute that identifies the Object alarm mode and is based upon
the current values of an Object’s:
AlarmModeCmd attribute
AlarmInhibit attribute
C
ot
N
Application Server checks the AlarmModeCmd and AlarmInhibit attributes of an Object and the
AlarmMode status of the parent Object. Application Server then updates the Object's AlarmMode
attribute to reflect the most restrictive setting.
All individual alarms use the Object's AlarmMode status to determine whether they are enabled,
silenced, or disabled.
o
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
D
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
y
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,
op
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
DescAttrName attribute can contain a static alarm description or a reference to
another string attribute within the same Object containing the alarm
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
<Attribute>.InAlarm
C
supplied for the DescAttrName attribute, the Object’s ShortDesc attribute is
used at runtime.
The alarm state. This is exactly the same as the attribute in the host primitive
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
alarm is disabled, in which case the quality is always GOOD.
<Attribute>.Inhibit If true, the alarm is disabled. This attribute is intended to be written to by a
script or user or input extension. Only the individual alarm is disabled. No other
alarms are disabled in the same Object or in any objects that are assigned to
or contained by this Object.
<Attribute>.Priority The value for the urgency of the alarm. Valid values are 1 through 999, with 1
N
InAlarm attribute) went on. The date format reflects the current locale setting
for the operating system.
D
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
y
4 Low 751 - 999
op
C
ot
N
Wonderware Training
Section 1 – Alarms and Events Overview 7-13
makes it possible to follow a trail from one level to the next to find the underlying cause of a
complex Object’s alarms.
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.
y
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.
op
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.
Area Aggregation represents the alarms on the Area Object itself, on all objects
C
assigned to the area, and on all sub-Areas, down to the lowest level of the
Model view.
If the Area’s AlarmMode is silenced, all alarms on all Objects in that Area
will be silenced.
Runtime
Attribute Description
y
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.
op
<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
InAlarm state have been acknowledged, whether or
not they are currently InAlarm.
<Attribute>.AlarmMostUrgentInAlarm FALSE (default) indicates that no alarms are in the Read-Only
<Attribute>.AlarmMostUrgentMode
C
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
the InAlarm state, whether or not they have been
acknowledged.
The AlarmMode of the most urgent alarm(s) on this Read-Only
ot
Object and its descendants. If no alarms are in the
InAlarm state or waiting to be Acked, the value is the
same as the AlarmMode for the Object.
<Attribute>.AlarmMostUrgentSeverity Severity level expressed as an integer 1-4 of the Read-Only
most urgent alarm(s) on the Object and its
descendants. If no alarm is in the InAlarm state or
waiting to be Acked, the value is 0 (zero).
N
o
D
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
y
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.
op
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.
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
fashion to silenced alarms.
AlarmShelved
C
A set of seven attributes provide runtime alarm shelving information and control:
y
op
C
Shelving is enabled on the Area Object as shown in the image on page 7-15.
ot
Shelving Alarms at Runtime
Use a runtime client to shelve and unshelve alarms. From Application Server, you can use Object
Viewer to monitor and control shelved alarm attributes.
N
o
D
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
Obtain aggregated alarm severity status information by:
Mapping alarm severity levels to priority ranges,
Configuring alarms on objects,
op
Enabling alarm aggregation by Area,
Viewing aggregated alarm status information by means of runtime clients and
applications.
C
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.
Each Galaxy in the environment will have its own priority to severity mapping.
Monitor alarms by severity, expressed as integers 1–4, using clients such as Object Viewer and
InTouch applications in WindowViewer. You can monitor individual alarms and you can monitor
alarms aggregated by containment level.
Typically, alarm priorities and priority to severity mapping are not changed during runtime, but it is
possible to change alarm priority configuration and severity mapping without closing the client
application.
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
y
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
op
configuration Categories:
Discrete
Value LoLo
Value Lo
Value Hi
Value HiHi
DeviationMinor
DeviationMajor
ROC Lo
SPC
Process
System
C
ot
Batch
Software
N
Wonderware Training
Section 1 – Alarms and Events Overview 7-21
What alarms and events are to be historized 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:
Active alarms
Unacknowledged alarms
N
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
C
For events, trend lines display with event icons. You can click on an icon to see additional
information related to that event.
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
y
alarms.
Objectives
op
Upon completion of this lab, you will be able to:
Configure alarms in objects
Interact with alarm attributes in Object Viewer
View alarm and process history in Insight
Retrieve alarm history from SQL Server
C
ot
N
o
D
y
op
Limit alarms: locked
C
3. Scroll down and configure the Limit alarms group as follows:
ot
Hi: checked and locked (default)
Hi: Limit: 80.0 and unlocked
Hi: Priority: 100 and locked
Hi: Alarm message: Mixer Hi Level Alarm and locked
N
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
Read: selected
State alarm: checked and locked
Category: Process and locked (default)
op
Priority: 700 and locked (default)
Alarm message: me.Alarm.Condition.Description (default) and locked (default)
Active alarm state: True (default) and locked (default)
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
8. Deploy Mixer100. C
ot
View the Alarm History in Insight
Now, you will view alarm history in Insight. Alarm history is only visible in Insight for an attribute
that is historized. If an attribute is only alarmed and not historized, the alarm history is not visible in
Insight. If you closed Insight, first see Lab 13, View the Historical Process Data with Insight on
page 6-20.
N
Wonderware Training
Lab 14 – Configuring and Interacting with Alarms 7-27
10. In the timeline at the bottom of the window, set the time to the last hour to refresh the trend to
the most recent data.
y
op
C
You may need to zoom in on the trend by double-clicking the trend line or using your mouse
wheel to zoom in and out. Depending on your zoom level, you may see no alarm information,
alarm limit points only, or highlighted sections of the trend line indicating alarm states.
ot
N
o
D
y
Mixer100.Alarm.Condition.AckMsg
Mixer100.Alarm.Condition.TimeAlarmOff
Mixer100.Alarm.Condition.Time.Alarm.On
op
Level_001.PV.Hi.InAlarm
Level_001.PV.Lo.InAlarm
Level_001.PV
Level_001.PV.Hi.Limit
Level_001.PV.Lo.Limit
Level_001.PV.Hi.AckMsg
Level_001.PV.Lo.AckMsg
C
ot
N
o
D
Wonderware Training
Lab 14 – Configuring and Interacting with Alarms 7-29
y
The Array for Mixer100.AlarmCntsBySeverity dialog box appears.
op
15. In the Enter an array index field, enter -1.
y
op
19. Click OK.
C
The message must change if you wish to acknowledge the alarm again later.
ot
When an alarm has been acknowledged, the severity count for the object should decrease.
N
Wonderware Training
Lab 14 – Configuring and Interacting with Alarms 7-31
y
op
C
After a slight delay, the Connect to Server dialog box appears.
ot
N
y
25. Navigate to C:\Training, and select SQLQuery1.
op
C
ot
N
Wonderware Training
Lab 14 – Configuring and Interacting with Alarms 7-33
y
op
The data appears in the bottom-middle pane.
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
C
Module 8 – Object Management
Section 1 – Object Export and Import 8-3
ot
Lab 15 – Exporting and Importing Objects 8-11
Section 2 – Galaxy Dump and Galaxy Load 8-29
Lab 16 – Configuring Instances Using a .CSV File 8-35
N
o
D
8-2 Module 8 – Object Management
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
associated templates and the configuration state of those objects. The export file can later be
imported into the same or another Galaxy.
Subsequent exports retain the default folder as last used for the duration of the ArchestrA IDE
op
session. If the designated file already exists, you are prompted to confirm overwrite.
If any of the selected objects are currently checked out, only the checked in versions are exported.
Exporting an entire Galaxy is similar to using the Galaxy Database Manager utility to back up the
database. However the change logs for the objects are not exported while they are saved during
backup. Also, the backup process retains security model settings for objects while exporting them
does not.
When exporting an object instance, it will also include the parents of that object all the way back to
and including the base template.
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
ot
(Shift+Click or Ctrl+Click). If you want to export all the objects in the Galaxy, click Export, and
then click All Objects.
N
o
D
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
C
Click Save. Click Cancel to terminate the export function. If you click Save, a progress box is
displayed.
ot
N
o
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.
D
When the export process is finished, click Close. The resulting .aaPKG file can be used to import
the chosen objects into another existing Galaxy.
y
Before starting, you cannot have two objects with the same name or more than one copy of the
same version of an object in the same Galaxy. When you import an object, these conflicts are
identified and you can manage them.
op
Import Objects
To import Automation objects, on the Galaxy menu, select lmport | Object(s).
C
ot
N
o
D
Wonderware Training
Section 1 – Object Export and Import 8-7
y
op
C
Browse for the file with either a .aaPKG or a .aaPDF extension. You can select more than one file.
Click Open.
ot
N
o
D
y
op
following:
C
In the Objects with same Tagname and Codebase as an existing object area, select one of the
In the Base Templates with a different revision number in the Codebase or a different minor
version area, select one of the following:
Skip: Do not migrate does not migrate objects with an older Codebase when a newer
Codebase exists in the Galaxy.
Migrate (default) migrates an older codebase when the replacement object is available.
o
In the Objects with same Tagname but with a different Codebase area, select one of the
following:
Skip: Do not import (default) leaves the existing object unchanged.
D
Rename object in Galaxy imports an object with a matching tagname but a different
codebase from the existing one. The existing object is not overwritten but is renamed.
Rename importing object imports an object with a matching tagname but a different
codebase from the existing one. The existing object is not overwritten. The imported object is
renamed.
Click OK to start the import process. When the import process is complete, you can start using the
objects you imported.
Wonderware Training
Section 1 – Object Export and Import 8-9
y
Area.
If the host to which the object is assigned does not exist, it is assigned to the Unassigned
Host.
op
If you selected from the Import Preferences dialog box, the migrated objects are marked
with “software upgrade required” if they are deployed. These objects will be upgraded
when the objects are redeployed.
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.
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.
y
Objectives
Upon completion of this lab, you will be able to:
op
Use the Export Objects and Import Objects features of the ArchestrA IDE
C
ot
N
o
D
y
op
C
ot
Wonderware Training
Lab 15 – Exporting and Importing Objects 8-13
y
op
C
ot
6. Click Close.
Now, you will make changes to the $Storage object and view the version changes.
N
y
op
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.
The ConfigVersion has changed to version 2. The ConfigVersion increases by 1 each time
changes to the object are checked in.
C
ot
N
o
D
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
17. Navigate to C:\Training.
18. In the File name field, enter $StorageV2.aaPKG,
This corresponds with ConfigVersion 2.
N
o
D
y
op
20. Click Close.
21. Open the $Storage configuration editor.
Name
Viscosity
Hardness
Data Type
Integer
Integer (default)
C
22. Add and configure two new attributes as follows:
Attribute
Category
User writeable (default)
User writeable (default)
ot
All four attributes are now visible in the attributes list.
N
o
D
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
26. Click Close.
N
o
D
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 File name field, enter $StorageV3.aaPKG.
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
op
The Delete dialog box appears.
C
ot
N
y
op
33. On the Galaxy menu, select Import | Object(s).
C
ot
N
o
D
Wonderware Training
Lab 15 – Exporting and Importing Objects 8-21
y
op
35. Click Open.
C
The Import Preferences dialog box appears.
ot
N
o
D
y
op
37. Click Close.
$Storage appears again in the Project toolset.
C
ot
N
o
D
Wonderware Training
Lab 15 – Exporting and Importing Objects 8-23
y
op
C
ot
40. Click Close.
N
o
D
Upgrade Objects
Now, you will import the $StorageV3.aaPKG file.
41. On the Galaxy menu, select Import | Object(s).
42. Select $StorageV3.aaPKG.
y
op
C
ot
43. Click Open.
44. In the Import Preferences dialog box, keep the default options and click OK.
45. Click Close when the import is complete.
46. Open the $Storage properties.
N
o
D
Wonderware Training
Lab 15 – Exporting and Importing Objects 8-25
y
op
48. Click Close.
C
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, click the Overwrite objects regardless of configuration version
option.
y
op
C
ot
53. Click OK.
The Import Automation Object(s) progress appears with an Object 2 of 2 completed
N
message. The import progress displays the objects that were skipped and those that were
overwritten. Specifically, the base template was skipped, while the derived template was
overwritten.
o
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
56. Click Close.
57. In the $Storage configuration editor, verify that the two attributes that were added in version 3
no longer exist.
N
o
D
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
op
60. Use the Galaxy menu to import $StorageV2.aaPKG file.
61. In the Import Preferences dialog box, keep the default options and click OK.
C
The Import Automation Object(s) progress shows that $Storage was not found, so the
object was created.
ot
N
Both objects now appear in the Project toolset. They are identical, except for their tag names.
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).
y
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
op
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.
Attributes that are not text based are not exported.
For example, type QualifiedStruct is not exported.
Custom object online help files are not exported.
C
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.
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
If Save is chosen, the Galaxy Dump progress box is displayed.
N
o
D
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
y
converted to a carriage return in a Galaxy Load function.
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
y
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.
op
To import a .csv file, on the Galaxy menu, select Import, and then click Galaxy Load.
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
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
D
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
y
not contain quotation marks.
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.
y
Objectives
op
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
C
ot
N
o
D
y
op
C
2. On the Galaxy menu, select Export | Galaxy Dump.
ot
N
o
D
Wonderware Training
Lab 16 – Configuring Instances Using a .CSV File 8-37
y
op
4. Click Save.
C
When the Galaxy Dump is complete, the progress displays 100% processed.
ot
N
o
5. Click Close.
D
Note: The following process will vary depending on your version of Microsoft Excel.
7. On the File menu, click Open and navigate to the C:\Training folder.
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. Keep all other default options and click Next.
ot
The Text Import Wizard - Step 2 of 3 dialog box appears.
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 F6), enter Mixing Tank.
N
o
D
Wonderware Training
Lab 16 – Configuring Instances Using a .CSV File 8-41
y
Pump2_001 Pump 2 F34
Temperature_001 Mixer Temperature F38
op
The cells now display the new short description names.
C
ot
N
o
D
y
op
20. Click Save.
C
The Microsoft Excel dialog box appears, confirming if you are sure you want to keep the
ot
format.
Note: This dialog box will vary depending on your version of Microsoft Excel.
N
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. Select the Mixer1 file.
C
ot
N
o
y
op
28. Click OK.
When the Galaxy Load is complete, the progress displays 100% processed.
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
Mixer100:
Agitator_001:
Mixing Tank
Agitator Motor
C
30. For the following objects, open the configuration editor, click the Object Information tab and
verify the Description fields match those you entered in Microsoft Excel:
ot
Inlet1_001: Inlet Valve 1
Inlet2_001: Inlet Valve 2
Level_001: Tank Level
Outlet_001: Outlet Valve
N
Pump1_001: Pump 1
Pump2_001: Pump 2
Temperature_001: Mixer Temperature
o
D
32. In the Deployment view, deploy Mixer100, and then verify the Cascade Deploy option is
checked.
y
op
33. Keep all other default options and click OK.
34. When the Deploy progress is 100% completed, click Close.
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:
C
You can use the Replace All feature to make these changes.
ot
N
42. Verify that the object tagnames were changed with the Replace All feature.
43. 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
44. On the File menu, click Save As and navigate to the C:\Training folder.
45. In the File name field, enter Mixer2.csv.
46. In the Save as type drop-down list, verify that CSV (Comma delimited) is selected.
y
op
47. Click Save.
C
The Microsoft Excel dialog box appears, confirming if you are sure you want to keep the
ot
format.
N
51. In the ArchestrA IDE, on the Galaxy menu, select Import | Galaxy Load.
52. Select Mixer2.
y
op
53. Click Open.
C
The Galaxy Load Conflict Resolution dialog box appears.
ot
N
Wonderware Training
Lab 16 – Configuring Instances Using a .CSV File 8-51
When the Galaxy Load is complete, the progress displays 100% processed.
y
op
55. Click Close.
56. In the Model view, expand Line2 and note that the new Mixer200 instance has been added to
the Line2 area.
57. 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 Lab
12), all objects assigned to that area will automatically be autobound to the same IO source.
59. In the Deploy dialog box, keep the default options and click OK.
y
op
C
ot
N
o
D
Wonderware Training
Lab 16 – Configuring Instances Using a .CSV File 8-53
y
Inlet and Outlet CMDs and OLSs
Pump CMDs and PVs
op
C
ot
63. Save the watch list.
64. Minimize Object Viewer.
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
y
op
Section 1 – Security Overview
C Module 9 – Security
9-3
ot
Lab 17 – Configuring Security 9-11
Section 2 – Object Security 9-37
Lab 18 – Implementing Object Security 9-41
N
o
D
9-2 Module 9 – Security
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
y
ArchestrA System Management Console (SMC) for performing maintenance and system
administration functions.
Any runtime operations.
op
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
the system.
If your application requires a higher level of security, this can be achieved by typical IT
departments using tools provided by Microsoft®. To facilitate a higher level of security, the security
C
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.
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
y
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
op
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
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.
Permissions are required to perform most ArchestrA activities. Usually only one permission is
C
required to perform a given activity, but occasionally, two or more permissions may be required for
operation-critical actions.
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
Mapping AutomationObjects to the Security Model
If the Security is not enabled then Authentication mode is disabled.
N
o
D
Wonderware Training
Section 1 – Security Overview 9-5
Authentication Mode
y
op
C
ot
On the Authentication Mode page, choose the mode of Galaxy security:
None: The default setting for new Galaxies, this mode is considered Open Security. It
leaves all functions open to all users. No authentication is provided for any operations in
N
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
o
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
y
(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
op
Login time option. In other words, even if Login time times out, the role update
operation continues in the background and eventually updates user-to-role
relationships for this user in the local cache.
Note: When you select Authentication Modes, note the messages relevant to your ArchestrA
installation that are displayed in the Note box.
C
Open security gives all users the DefaultUser credentials. No login dialog boxes are
presented to users during configuration, administration or runtime operations. Login dialog
boxes are presented for all other Authentication Modes.
If you have previously configured security under one Authentication Mode and then you
switch authentication modes, only those users created while configuring the new mode
are enabled. Other users are not deleted, just disabled in the new mode.
ot
When you close the Configure Security dialog box after selecting any Authentication
Mode other than None, you must login. This action ensures that the new security model
can be enforced. If you select Cancel on the login dialog box, the ArchestrA IDE closes.
When you switch to None from another Authentication Mode and click OK, the
ArchestrA IDE is shut down.
N
When Galaxy authentication is selected, each user must provide a user name and
password in a login dialog box. The security system authenticates the user's credentials
against Galaxy user data. Access to all operations in the ArchestrA IDE and anywhere in
the ArchestrA environment are granted based on the logged in user's associated roles
and permissions. The ArchestrA IDE customizes the user interface to the user's previous
preferences (for instance, which Application Views are shown). The logged in user's
name is shown in the status bar of the ArchestrA IDE.
o
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.
D
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.
y
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.
op
OS Group Based Security
If you use OS Group Based Authentication Mode, you should first familiarize yourself in depth with
the functions of the Windows operating system, particularly its user permissions, groups and
security features. ArchestrA OS Group Based security leverages those Windows features.
Take note of the following behaviors that are unique to OS Group Based Authentication Mode:
C
A newly-added user working on a computer that has no access to the Galaxy node cannot
write to an attribute on a remote node if that user has never logged on to the remote node.
This is true even if the user has been given sufficient runtime operational permissions to
do writes. To enable remote writing capabilities, log on to the remote node at least once.
If you log in to ArchestrA on a workstation that belongs to Domain A and Domain
Controller A fails, locally cached login data is used on subsequent logins. When the
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
the new login data. If that fails, the trusts are being reestablished by the controller, and you
should retry at a later time.
N
The user's full name is not available to any client (for instance, an InTouch window) if the
domain controller is disconnected from the network when the user logs in to ArchestrA for
the first time. If the user previously logged in to ArchestrA when the domain controller was
connected, the user's full name will still be available to the client from data stored in cache
even if the domain controller is disconnected when the user subsequently logs in to
ArchestrA.
o
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
D
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
Supported Operating System Security Configurations
The following list of OS security configurations will be supported:
op
Machines and users participating in a domain.
Users being drawn from multiple domains.
Machines and users defined within a Workgroup. Note the users/groups have been
defined on each machine and imported into the Galaxy Repository (GR) and defined as
Local Host.
C
If security is enabled within the Galaxy, a client utility Logon dialog box will appear. Application
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
ot
previous user will be implicitly logged off.
Username and Password are entered onto this dialog box.
If OS Authorization is being used, then the user will also be required to select from a list of
accessible domain name for the user being logged in.
N
Security Roles
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.
Security Users
o
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
D
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
Can Modify "Operate" Attributes: Allows users with operational permissions to do
certain normal day-to-day tasks like changing setpoints, outputs, and control modes for a
PID object or commanding a DiscreteDevice object
op
Can Modify "Tune" Attributes: Allows users to tune the attribute in the runtime
environment; examples of tuning include attributes that adjust alarm setpoints and PID
sensitivity
Can Modify "Configure" Attributes: Allows users to configure the attribute’s value,
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
DiscreteDevice input
runtime environment
C
Can Acknowledge Alarms: Allows users to manually acknowledge an alarm in the
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.
y
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
op
for configuration (General permissions) and runtime (Operational permissions).
Objectives
Upon completion of this lab, you will be able to:
Configure security in a Galaxy
Enable OS Group security
Create and use security groups
C
Add security roles and assign permissions to them
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
Important: Do not click OK at this point!
op
C
ot
N
o
D
y
op
C
ot
N
6. In the Security Groups available list, enter Line1 and press Enter.
D
Wonderware Training
Lab 17 – Configuring Security 9-15
y
8. Select the Default security group.
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:
Mixer100
Agitator_001
Inlet1_001
Inlet2_001
Pump1_001
Pump2_001
Outlet_001
y
Level_001
Temperature_001
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:
Mixer200
Agitator_002
Inlet1_002
Inlet2_002
Pump1_002
Pump2_002
Outlet_002
y
Level_002
Temperature_002
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:
ProdPlatform
GRPlatform
AppEngine1
ControlSystem
ProdPLC
R_ProdPLC1
R_ProdPLC2
y
Simulator
op
C
ot
N
o
D
Wonderware Training
Lab 17 – Configuring Security 9-21
y
op
After the assignments, the Default security group will contain only the objects that were not
moved.
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 ('LKF' in the graphic below) or leave
"." if no domain controller is available.
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.
o
D
y
op
C
ot
20. Add the following OS Groups:
Application Developers 1
Plant Maintenance 1
N
Plant Operators 1
Plant Operators 2
Plant Supervisors 1
o
D
Wonderware Training
Lab 17 – Configuring Security 9-25
y
op
C
ot
N
Next, you will configure permissions for the built-in Default security role.
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.
y
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
op
Viewer in a later lab.
24. In the Operational permissions list, uncheck the Default security group.
C
ot
N
o
D
Wonderware Training
Lab 17 – Configuring Security 9-27
You will now configure permissions for the added security roles.
25. Configure the Application Administrators security role as follows:
General permissions:
IDE Permissions (checked)
SMC Permissions (checked)
Operational permissions:
Default (checked)
y
Line1 (checked)
Line2 (checked)
ControlSystem (checked)
op
C
ot
N
o
D
26. 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
Wonderware Training
Lab 17 – Configuring Security 9-29
27. 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)
y
Line2
Can modify "Configure" attributes (checked)
op
Can modify "Operate" attributes (checked)
ControlSystem
Can modify "Configure" attributes (checked)
Can modify "Operate" attributes (checked)
C
ot
N
o
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.
D
General permissions:
SMC Permissions (checked)
Can Start/Stop Engine/Platform (unchecked)
Operational permissions:
Line1
Can modify "Configure" attributes (checked)
Can modify "Tune" attributes (checked)
y
Line2
Can modify "Configure" attributes (checked)
op
Can modify "Tune" attributes (checked)
ControlSystem
Can modify "Configure" attributes (checked)
Can modify "Tune" attributes (checked)
C
ot
N
o
D
Wonderware Training
Lab 17 – Configuring Security 9-31
Operational permissions:
Line1
Alarms
Can acknowledge Alarms (checked)
Can modify "Operate" attributes (checked)
y
op
C
ot
N
o
D
Operational permissions:
Line2
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:
Line1
Alarms
Can acknowledge Alarms (checked)
Can modify "Operate" attributes (checked)
Can Verify Writes (checked)
y
Line2
Alarms
Can acknowledge Alarms (checked)
op
Can modify "Operate" attributes (checked)
Can Verify Writes (checked)
ControlSystem
Alarms
Can acknowledge Alarms (checked)
Can modify "Operate" attributes (checked)
Can Verify Writes
C (checked)
ot
N
o
D
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.
33. 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 LKF
Monica Reed MonicaR ww LKF
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
34. Click OK.
The Change User dialog box reappears.
35. Log in as one of the members of the Application Developers 1 security role:
N
Wonderware Training
Lab 17 – Configuring Security 9-35
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
C
ot
N
o
D
y
op
C
ot
N
o
D
Wonderware Training
Section 2 – Object Security 9-37
y
security control, which is used to modify its run-time security classification.
On the Attributes tab, security icons must be enabled before you can set security for an
op
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.
C
ot
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
N
enabled in the parent template. If an attribute's security classification is configurable, click the
security control to select one of seven possible states:
y
This attribute is never written to at run time, regardless of the user's
permissions.
op
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
The lock and security controls associated with option groups and features quickly set those
conditions for all options in the group.
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
original template cannot be unlocked (locked in parent).
If an attribute is locked in the template, you can change the value in that template, but not in the
N
derived children. If you change the value in the parent template, the change propagates to all child
objects
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
y
operator change.
Operator1, which is the full name of the primary operator requesting a change. The full
name is an attribute of the UserProfile.
op
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.
Security Query
C
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 Process Historian computer.
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
y
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.
op
Objectives
Upon completion of this lab, you will be able to:
Configure security classifications for object attributes
Perform secured and verified writes with Object Viewer
View the security audit trail
C
ot
N
o
D
y
op
C
ot
3. To the right of the Initial value field, click the shield icon and change the security classification
to SecuredWrite.
N
o
D
Wonderware Training
Lab 18 – Implementing Object Security 9-43
4. Click the lock icon to propagate the security classification to the derived instances.
y
5. 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.
op
C
ot
6. Click Close.
Now that the security classification has been propagated to the instances, the Speed.SP attribute
needs to be unlocked to allow changing its value in runtime.
7. In the Template Toolbox, reopen the $Mixer.Agitator configuration editor.
N
10. 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
11. Click Close.
Next, you will change the security classification of the $Mixer.Outlet attribute in the mixer to
VerifiedWrite.
C
12. In the Template Toolbox, open the $Mixer.Outlet configuration editor.
13. 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
14. To the right of the Initial value field, click the shield icon and change the security classification
to VerifiedWrite.
15. Click the lock icon to propagate this change to the derived instances.
y
op
16. Save and close the $Mixer.Outlet template, and then check in the object with an appropriate
comment.
C
17. When check in is complete, click Close.
18. Reopen the $Mixer.Outlet configuration editor.
19. On the Attributes tab, in the attributes list, ensure the CMD attribute is selected.
ot
20. To the right of the Initial value field, unlock the attribute.
N
21. Save and close the $Mixer.Outlet template, and then check in the object with an appropriate
comment.
o
y
op
C
ot
N
o
Wonderware Training
Lab 18 – Implementing Object Security 9-47
y
op
C
ot
29. In Object Viewer, click the Options menu and select Change User.
N
o
30. 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 LKF
Lisa Young LisaY ww LKF
y
op
31. Load the watch list that was saved earlier and switch to the Mixer200 watch window.
32. Double-click Inlet2_002.CMD.
C
ot
33. In the Modify Boolean Value dialog box, select True.
N
o
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
op
35. Click OK.
36. On the Mixer100 watch window, double-click Inlet1_001.CMD.
C
ot
37. In the Modify Boolean Value dialog box, select True.
N
o
This time the command was executed because Plant Operators 1 have Operate permissions
over Line 1 objects.
y
op
Next, you will test the Configure Security classification.
39. 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 LKF
Monica Reed
CMonicaR ww LKF
ot
N
o
D
Wonderware Training
Lab 18 – Implementing Object Security 9-51
y
op
41. Save the watch list.
C
ot
42. Double-click Temperature_001.PV.EngUnitsRangeMax and change the value to 505.0.
N
o
D
Since the attribute has a security classification of Configure, an error message appears that
the object needs to be placed off scan first.
y
op
44. Click OK.
45. Double-click Temperature_001.ScanStateCmd and change the value to False,
C
ot
N
Wonderware Training
Lab 18 – Implementing Object Security 9-53
y
op
47. Click OK.
48. 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
Lisa Young
C JohnJ
LisaY
ww
ww
LKF
LKF
49. Double-click Temperature_001.ScanStateCmd and change the value to False to place the
object off scan.
ot
This time the change takes effect.
N
o
D
50. 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 LKF
Monica Reed MonicaR ww LKF
y
op
C
52. Double-click Temperature_001.PV.EngUnitsMax and change the value to 500.0.
ot
N
o
D
53. 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 LKF
Lisa Young LisaY ww LKF
Wonderware Training
Lab 18 – Implementing Object Security 9-55
54. Double-click Temperature_001.ScanStateCmd and change the value to True to place the
object on scan.
y
55. Double-click Agitator_001.Speed.SP and change the value to 25.0.
op
56. Click OK.
C
Since the attribute has a security classification of SecuredWrite, you are prompted for your
password.
57. Enter the password.
ot
N
y
op
C
Now, you will test the VerifiedWrite security classification by first making it fail, and then you will
log in with Plant Supervisor credentials.
59. 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
object. If it is not a different user, you will receive an error.
60. Enter ww as your password and the credentials of the other user below in the Plant
Operators 1 security role.
Important: For this authentication dialog box, the second user name must be entered in the
form of domain\userid.
N
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
op
62. Click OK.
63. Double-click Outlet_001.CMD, change the value to True, and click OK.
64. Enter ww as your password and the credentials of one of the following users in the Plant
Supervisors 1 security role.
form of domain\userid.
Role
Plant Supervisors 1 Michael Jones
C
Important: For this authentication dialog box, the second user name must be entered in the
The second user entered does have Can Verify Writes permissions over the object, so the
value is written to the attribute.
y
op
View the Security Audit Trail
C
Now, you will use Microsoft SQL Server Management Studio to view the security-related events for
the last hour.
ot
66. Start Microsoft SQL Server Management Studio.
After a slight delay, the Connect to Server dialog box appears.
N
o
D
67. Verify the Server name is the same as the Process Historian computer and click Connect.
Wonderware Training
Lab 18 – Implementing Object Security 9-59
y
op
69. Navigate to C:\Training, and select SQLQuery2.
C
ot
N
o
y
op
The data appears in the bottom-middle pane.
C
ot
N
o
D
Wonderware Training
y
op
C
Module 10 – Introduction to
QuickScript.NET
ot
Section 1 – Introduction to Scripting 10-3
Lab 19 – Adding Auto Reconnect to the DDESuiteLinkClient Object 10-11
Section 2 – Variables and Control Statements 10-21
N
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
actions. Simple scripts are described in this section.
Complex scripts can perform logical operations using conditional branching with IF-THEN-
ELSE type control structures.
op
Both single and multi-line comments are supported. Single-line comments start with an apostrophe
" ’ " in the line but require no ending " ’ " in the line. Multi-line comments start with a
" { " and end with a " } " and can span multiple lines.
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.
C
Required Syntax for Expressions and Scripts
The syntax in scripts is similar to the algebraic syntax of a calculator.
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
location named “a.”
A single entity must appear to the left of the assignment operator =.
The operands in an expression can be constants or variables.
Statements must end with a semicolon (;).
Entities can be concatenated by using the plus (+) operator. For example, if a data change script
N
such as the one below is created, each time the value of “Number” changes, the indirect entity
“Setpoint” changes accordingly:
Number=1;
Setpoint = "Setpoint" + Text(Number, "#");
Where the result is “Setpoint1.”
o
Simple Scripts
Simple scripts implement logic such as assignments, math, and functions. An example of this type
of scripting is:
D
React_temp = 150;
ResultTag = (Sample1 + Sample2)/2;
{this is a comment}
y
op
C
ot
The main areas of the Scripts tab include:
Scripts list: Shows all scripts currently associated with the object. The columns indicate
which kind of trigger the script uses: Startup, On Scan, Execute, Off Scan and Shutdown.
N
that you can use in the script to make the script more readable.
Declarations area: Provides a place to add variable declaration statements, such as
[DIM MyArray[1] as FLOAT];. These declared variables live from the startup to the
shutdown of the object and can be used to hold values that persist from one execution of
D
the script to the next. They apply only to the script in which they are declared.
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 Process Historian
Server historian, the ArchestrA historian.
Script Editor box: Shows the script you are writing.
y
Attribute Browser
op
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.
C
Like the InTouch script editor, the name of the selected script function and its calling syntax will be
added to the script text when the user picks it in the script function browser. In addition to being
able to insert the function call, the user can also enter a type declaration statement for object
names. In addition, the browser provides the user the ability to distinguish between properties and
methods.
Similar to browsing for script functions, the user can also browse for .NET / COM objects that have
ot
been imported using the ArchestrA IDE.
Syntax Validation
Script language syntax validation is performed by selecting the red check mark above the script
window.
N
This operation will identify and inform/warn the script developer of any syntax errors in the script. It
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.
o
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
y
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.
op
Execute
Execute scripts are called each time the AppEngine performs a scan and the object is OnScan.
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
script.
C
If the quality check-box is checked, the Execute method is similar to InTouch scripts with the
next scan.
These scripts also have time-based considerations. A trigger period of 0 means that the script
executes every scan.
Time-based scripts, WhileTrue, WhileFalse, and Periodic are evaluated and executed based on
the elapsed time from a timestamp generated from the previous execution, not on an elapsed time
o
counter. It is possible that a change in the system clock can change the interval between
executions of these scripts.
WhileTrue: Executes scan to scan as long as the expression validates as true at the
beginning of the scan.
D
WhileFalse: Executes scan to scan as long as the expression validates as false at the
beginning of the scan.
For example, a periodic script is set to run every 60 minutes. The script executes at 11:13 AM. We
expect it to execute 60 minutes later at 12:13 PM. However, a time synchronization event occurred
and the node’s time is adjusted from 11:33 AM to 11:30 AM.
The script still executes when the system time reaches 12:13 PM. But because of the time change,
the actual (True) time period that elapsed between executions is 63 minutes.
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
y
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.
op
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
.NET objects and to free memory.
Language Definition
C
All QuickScript .NET keywords and variable name identifiers are not case sensitive. However, the
case is preserved throughout editor sessions.
Both single line and multi-line comments are supported. Single line comments start at a ' in a
source code line that has no matching ending ' in the line. Multi-line comments start with a { and
end with a } and can span multiple lines as the name suggests.
ot
Examples:
Dim A; 'This is a single line comment
Dim B; {This is an example of a multi-line comment}
Spaces and indentation can be used as desired to improve readability, except that at least one
N
space must appear between adjacent identifiers, and spaces and line breaks cannot appear within
identifiers and numbers. Individual statements are distinguished by a semicolon that marks the
end of a statement.
C:\Program Files\ArchestrA\Framework\Docs\1033.
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,
y
and other script elements.
These features serve as convenient documentation of method parameters and scripting syntax as
well as an enhanced input method.
op
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
context from the icons displayed with the list items.
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
y
that will indicate the number of disconnects the object has experienced since it last went on scan.
Objectives
op
Upon completion of this lab, you will be able to:
Create scripts in an object
Create scripts with multiple execution types
Add reconnect functionality to a $DDESuiteLinkClient object
C
ot
N
o
D
y
op
2. On the Scripts tab, click the Add Script C
3. Name the new script Reconnect and press Enter.
button.
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
y
Script body: Me.Reconnect = true;
op
C
ot
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
N
5. To the right of the Execution type drop-down list, click the Validate Script button.
o
D
Name: Disconnect.Cnt
Data type: Integer
Writeability: Calculated
y
op
Now, you will add a script to monitor the connection status.
7. On the Scripts tab, add a script named Disconnect.Monitor.
8. Configure the Disconnect.Monitor script as follows:
Aliases:
Declarations:
Scripts: Execution type:
Basics:
Expression:
locked
locked
C
Execute (default) and locked
locked
Me.ConnectionStatus <> 2
ot
Trigger type: OnTrue
Script body: Me.Disconnect.Cnt = Me.Disconnect.Cnt + 1;
This script will increase a counter by one every time the condition is true.
N
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
op
Notice that the locking of the Aliases and Declarations did not change because you are still
in the same script.
12. Validate the script.
C
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.
ot
N
13. 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 propagated to both R_ProdPLC instances.
o
D
y
op
C
When complete, the progress displays 100% completed.
ot
N
o
Wonderware Training
Lab 19 – Adding Auto Reconnect to the DDESuiteLinkClient Object 10-17
y
Reconnect.ExecutionCnt
op
C
ot
N
o
D
y
op
A confirmation message appears.
C
ot
22. Click Yes to confirm deactivation.
Notice that the SMC now displays a red error icon, indicating the server has stopped.
N
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
23. In the SMC, reactivate the OI.MBTCP.1.
op
C
ot
After a few seconds, your watch list will display that the data is once again connected.
N
o
y
op
C
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.
y
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.
op
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 statement syntax is
as follows:
DIM <variable_name> [ ( <upper_bound>
[, <upper_bound >[, < upper_bound >]] ) ]
[ AS <data_type> ];
where:
DIM
<variable_name>
C
Required Keyword
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
variable name is limited to 255 Unicode characters.
<upper_bound> Reference to the upper bound (a number between 1 and 2,147,483,647,
inclusive) of an array dimension. Three dimensions are supported in a DIM
statement, each being nested in the syntax structure. After the upper bound is
specified, it is fixed after the declaration. A statement similar to Visual Basic’s
ReDim is not supported.
N
DIM LocVar1;
is equivalent to:
DIM LocVar1 AS Integer;
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.
y
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.
op
Do not cascade DIM statements. For example, the following examples are invalid:
DIM LocVar1 AS Integer, LocVar2 AS Float;
DIM LocVar3, LocVar4, LocVar5, AS String;
To declare multiple variables, you must enter separate DIM statements for each variable.
When used on the right side of an equation, declared local variables always cause expressions on
dim x as integer;
dim y as integer;
x = 5;
C
the left side to have Good quality. For example:
ot
y = 5;
me.attr = 5;
me.attr = x;
me.attr = x+y;
In each case of me.attr, quality is Good.
N
When you use a variable in an expression to the right of the operator, its Quality is treated as Good
for the purpose of data quality propagation.
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,
o
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
IF … THEN … ELSEIF … ELSE … ENDIF
IF-THEN-ELSE-ENDIF conditionally executes various instructions based on the state of an
op
expression. The syntax is as follows:
IF <Boolean_expression> THEN;
[statements];
[ { ELSEIF;
[statements] } ];
[ ELSE;
[statements] ];
ENDIF;
Data Type
Boolean
Mapping
C
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
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:
y
IF <Boolean_expression> THEN;
[statements];
[ { ELSEIF;
op
[statements] } ];
[ ELSE;
[statements] ];
ENDIF;
ENDIF;
This approach nests a brand new IF compound statement within a previous one and requires an
additional ENDIF.
C
IF … THEN … ELSEIF … ELSE … ENDIF and Attribute Quality
When a Attribute value is copied to another Attribute value of the same type, the Attribute’s quality
is also copied. For example, the following two statements copy both value and quality:
me.Attribute2 = me.Attribute1;
me.Attribute2.value = me.Attribute1.value;
ot
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;
temp = me.Attribute1;
me.Attribute2 = temp;
If there is a comparison such as Attribute1 <> Attribute2 and one of the Attributes has the quality
N
BAD, then the statements within the IF control block are not executed. For example, assuming
Attribute1 has the quality BAD:
if me.Attribute1 <> me.Attribute2 then
me.Attribute2 = me.Attribute1;
endif;
In this script, the statement me.Attribute2 = me.Attribute1 is not executed because Attribute1 has
o
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:
D
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
where:
analog_var is a variable of type Integer, Float, or Double
start_expression is a valid expression to initialize analog_var to a value for execution of
op
the loop
end_expression is a valid expression. If analog_var is greater than end_expression,
execution of the script jumps to the statement immediately following the NEXT statement;
this holds true if loop is incrementing up, otherwise, if loop is decrementing, loop
termination occurs if analog_var is less than end_expression
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
C
If change_expression is positive, start_expression must be less than or equal to
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.
The FOR loop is executed as follows:
1. analog_var is set equal to start_expression.
N
Note: FOR-NEXT loops can be nested. The number of levels of nesting possible depends on
memory and resource availability.
y
where:
object_variable is a dimmed variable
op
collection_object is a variable holding a collection object
As in the case of the FOR … TO loop, it is possible to exit the execution of the loop through the
statement EXIT FOR from within the loop.
catch block.
C
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
tryStatements
Statement(s) where an error can occur. Can be a compound statement. The tryStatement is a
guarded section.
catchStatements
Statement(s) to handle errors occurring in the associated Try block. Can be a compound
o
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
D
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.
y
Example:
dim command = new System.Data.SqlClient.SqlCommand;
op
dim reader as System.Data.SqlClient.SqlDataReader;
command.Connection = new System.Data.SqlClient.SqlConnection;
try
command.Connection.ConnectionString = "Integrated Security=SSPI";
command.CommandText="select * from sys.databases";
command.Connection.Open();
reader = command.ExecuteReader();
catch
while reader.Read()
me.name = reader.GetString(0);
LogMessage(me.name);
endWhile; C
ot
LogMessage(error);
endtry;
if reader <> null and not reader.IsClosed then
reader.Close();
endif;
N
if command.Connection.State == System.Data.ConnectionState.Open
then
command.Connection.Close();
endif;
WHILE Loop
o
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:
D
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
Quality of Input, InputOutput, and Output Extensions
op
When the object is On Scan, the value and quality of the Inputextended attribute mirrors the quality
of the externally referenced attribute in the case of successful reads. The data quality of the
extended 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 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.
C
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 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.
y
Objectives
Upon completion of this lab, you will be able to:
op
Use a script to calculate the state of a valve
Create an attribute with an Array value
C
ot
N
o
D
y
op
C
ot
2. In the Attributes list, select OLS and modify the configuration as follows:
N
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
Writeability: Calculated
N
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
y
1 Closed
2 Open
op
3 Traveling
4 Fault
C
ot
6. Create and configure another attribute as follows:
Name: PVState
Description: Integer Value of Valve State and locked
Data type: Integer
N
Array: unchecked
Writeability: Object writeable (default)
Initial value: unlocked
o
D
Wonderware Training
Lab 20 – Scripting Valve Status 10-33
y
op
Add Script to Calculate Valve State
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:
Aliases: locked
Declarations: locked
N
Script Body:
Note: For your convenience, you can find the script body in
C:\Training\Lab 20 – Scripting Valve Status.txt.
y
elseif (not me.OLS and not Me.CLS)
then Me.PVstate = 3; 'Travelling
op
else
Me.PVstate = 4; 'Fault
endif;
Me.PV = Me.PVStates[Me.PVState];
C
ot
N
o
D
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.
C
The valves all indicate they have configuration changes that need to be deployed.
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
y
PV
Observe the results as the valve opens and closes.
op
17. Save the watch list and minimize Object Viewer.
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.
y
Objectives
Upon completion of this lab, you will be able to:
op
Use attributes and scripting to determine custom alarm conditions
C
ot
N
o
D
Name: Flow.Alarm.Pump1
Description: Transfer Pump 1 - Faulty Flow Condition and locked
y
Data type: Boolean (default)
Writeability: Calculated
State alarm: checked and locked
op
Category: Process
Priority: 500 (default)
Active alarm state: True (default)
C
ot
N
o
D
Wonderware Training
Lab 21 – Scripting Custom Alarms 10-39
y
op
C
ot
The attributes are now visible in the attribute list.
N
o
D
Aliases: locked
Declarations: locked
Execution type: Execute (default) and locked
y
Basics: locked
Expression: Me.Inlet1.PVState == 1 or Me.Inlet2.PVState == 1 or Me.Pump1.PV or
op
Me.Pump2.PV
Trigger type: While True (default)
C
ot
N
o
D
Wonderware Training
Lab 21 – Scripting Custom Alarms 10-41
Script Body: For your convenience you can find the script body in
C:\Training\Lab 21 – Scripting Custom Alarms.txt.
If (Me.Inlet1.PVstate == 1 and Me.Pump1.PV) then
Me.Flow.Alarm.Pump1 = true;
Else
Me.Flow.Alarm.Pump1 = false;
y
Endif;
op
If (Me.Inlet2.PVstate == 1 and Me.Pump2.PV) then
Me.Flow.Alarm.Pump2 = true;
Else
Me.Flow.Alarm.Pump2 = false;
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.
8. In the Execution type drop-down list, select OnScan.
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
op
10. Validate the script.
Notice that the Flow.Alarm.Condition script now has OnScan and Execute scripts.
C
ot
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.
N
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
y
Pump1_001.CMD
Mixer100.Flow.Alarm.Pump1
Mixer100.Flow.Alarm.Pump1.InAlarm
op
Inlet2_001.PV
Pump2_001.CMD
Pump2_001.PV.MSG
Mixer100.Flow.Alarm.Pump2
Mixer100.Flow.Alarm.Pump2.InAlarm
C
ot
17. Save the watch list.
Now, you will create a condition that will trigger an alarm.
N
y
20. Repeat the steps for Inlet2_001.PV.
op
C
ot
N
o
D
Wonderware Training
y
op
C
Module 11 – Galaxy Backup and Restore
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
perform administrative tasks and diagnostics on an ArchestrA application. Its console tree lists the
items available for these tasks. One of these items is the Galaxy Database Manager used to back
up and restore a Galaxy.
op
C
ot
N
o
You use the Galaxy Database Manager to back up and restore a Galaxy. Backing up a Galaxy
creates a single backup file (.cab extension) containing all the files, configuration data, and object
deployment states required to recreate the Galaxy in an empty Galaxy Repository.
During the backup, no write operations are allowed to the Galaxy Repository. If write activity is
occurring, you should back up at a later time.
Restoring a Galaxy uses the backup file to overwrite an existing Galaxy or to create the backed up
Galaxy in a different Galaxy Repository. The restore process prompts you for confirmation before a
Galaxy is overwritten.
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.
y
Backup
op
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.
C
ot
N
A warning appears.
o
D
Wonderware Training
Section 1 – Galaxy Backup and Restore 11-5
y
op
Click Save.
C
The Galaxy Database Manager progress appears.
ot
N
o
Restore
y
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
op
rolled back.
Select the existing Galaxy, and then on the Action menu, click Restore.
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