W O N D E R W A R ET R A I N I N G Training Manual Revision A April 2009 Part Number 11-GM-10012 System Platform - Part 1 Wonderware Application Server 3.1 and Device Integration Products INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE. © 2009 by Invensys Systems, Inc. All rights reserved. No part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording or otherwise), or for any purpose, without the express written permission of Invensys Systems, Inc. Except where noted, the companies, organizations, products, domain names, e-mail addresses, logos, people, places and events depicted herein are fictitious and no association with any real company, organization, product, domain name, e-mail address, logo, person, place or event is intended or should be inferred. Invensys and the author(s) assume no responsibility for errors or omissions and no liability is assumed for damages resulting from the use of the information contained herein. Use of the Invensys software described in this document is subject to the terms of the applicable Invensys Systems, Inc. / Wonderware license. These terms include provisions that limit your rights such as use restrictions, disclaimers of warranties and limitations of Wonderware / Invensys liability. By installing or using the Invensys software, you agree to accept all of the terms of the applicable Invensys Systems, Inc. / Wonderware license. A copy of the applicable license will be displayed upon initial installation of the software. If a copy of the license is not displayed or you require an additional copy of the license, you may obtain one from Invensys' Wonderware business unit by calling 1.949.727.3200 or by sending an e-mail to
[email protected]. Invensys, Wonderware, ArchestrA, Factelligence, IntelaTrac, InBatch, InControl, IndustrialSQL Server, InSQL, InTouch, InTrack, QI Analyst, SCADAlarm, SuiteLink, SuiteVoyager, WindowMaker, WindowViewer are trademarks and registered trademarks of Invensys plc, its subsidiaries and affiliated companies. All other brands and product names may be the trademarks or service marks of their respective owners. Table of Contents Table of Contents Module 1 Introduction .................................................................................1-1 Section 1 – Course Introduction......................................................................... 1-3 Section 2 – Wonderware System Platform ...................................................... 1-17 Lab 1 – Creating a Galaxy......................................................................... 1-39 Section 3 – The ArchestrA IDE ........................................................................ 1-45 Section 4 – Automation Objects....................................................................... 1-67 Section 5 – System Requirements, Licensing and Support............................. 1-79 Section 6 – Application Planning ..................................................................... 1-89 Lab 2 – Identifying the Mixer ..................................................................... 1-95 Module 2 Application Infrastructure ..........................................................2-1 Section 1 – The Plant Model.............................................................................. 2-3 Lab 3 – Creating the Plant Model ................................................................ 2-5 Section 2 – The Deployment Model................................................................. 2-13 Lab 4 – Creating the Deployment Model ................................................... 2-15 Section 3 – The Runtime Environment ............................................................ 2-25 Lab 5 – Using Object Viewer ..................................................................... 2-29 Section 4 – Connecting to the Field ................................................................. 2-39 Lab 6 – Connecting to the Field ................................................................ 2-49 Module 3 Application Objects ....................................................................3-1 Section 1 – Templates and Instances................................................................ 3-3 Section 2 – The $UserDefined Object ............................................................... 3-9 Lab 7 – Modeling the Heat Exchanger ...................................................... 3-11 Section 3 – Change Control and Propagation ................................................. 3-25 Lab 8 – Configuring Change Control and Propagation ............................. 3-27 Section 4 – The $AnalogDevice Object ........................................................... 3-35 Lab 9 – Modeling a Meter.......................................................................... 3-37 Section 5 – The $DiscreteDevice Object ......................................................... 3-41 Lab 10 – Modeling a Valve, Pump, and Motor .......................................... 3-45 Section 6 – Containment.................................................................................. 3-61 Lab 11 – Creating the Mixer ...................................................................... 3-67 Module 4 Extending the Objects ................................................................4-1 Section 1 – UDAs............................................................................................... 4-3 Section 2 – Extensions ...................................................................................... 4-7 Lab 12 – Configuring the Motor Speed ..................................................... 4-11 Section 3 – Introduction to QuickScript .NET................................................... 4-21 Lab 13 – Adding Auto Reconnect to DDESuiteLinkClient ......................... 4-45 Lab 14 – Configuring Automatic Reference .............................................. 4-53 Module 5 Alarms and History .....................................................................5-1 Section 1 – Alarms............................................................................................. 5-3 Lab 15 – Configuring Alarms ..................................................................... 5-15 Section 2 – Historization .................................................................................. 5-33 Lab 16 – Configuring History ..................................................................... 5-39 Module 6 Security ........................................................................................6-1 Section 1 – Security Overview ........................................................................... 6-3 Lab 17 – Security ...................................................................................... 6-13 System Platform - Part 1 3 4 System Platform - Part 1 Module 7 Galaxy Maintenance ................................................................... 7-1 Section 1 – Exporting and Importing Objects ..................................................... 7-3 Section 2 – Configuring Instances Through a .CSV File .................................. 7-13 Section 3 – System Management Console (SMC) ........................................... 7-21 Section 4 – Network Account Utility ................................................................. 7-35 Module 8 Device Integration Products...................................................... 8-1 Section 1 – Wonderware I/O Servers ................................................................. 8-3 Section 2 – Wonderware Data Access Servers ................................................. 8-9 Section 3 – Device Integration Objects ............................................................ 8-13 Module 9 Multi-Node Applications ............................................................ 9-1 Section 1 – Application Redundancy.................................................................. 9-3 Lab 18 – Configuring Application Redundancy ......................................... 9-15 Section 2 – DI Redundancy.............................................................................. 9-29 Lab 19 – Configuring the Redundant DI Object ......................................... 9-33 Section 3 – Multi Node Application................................................................... 9-45 Lab 20 – Convert to Network Environment ............................................... 9-49 Appendix A Wonderware Application Server Glossary...............................A-1 Appendix B Plant Model Planning Diagrams................................................B-1 Wonderware Training Module 1 Introduction Section 1 – Course Introduction Section 2 – Wonderware System Platform Lab 1 – Creating a Galaxy 1-3 1-17 1-39 Section 3 – The ArchestrA IDE 1-45 Section 4 – Automation Objects 1-67 Section 5 – System Requirements, Licensing and Support 1-79 Section 6 – Application Planning 1-89 Lab 2 – Identifying the Mixer 1-95 1-2 Module 1 – Introduction Module Objective z Introduce the Wonderware System Platform and its architecture, environment, and requirements for installation and licensing. Wonderware Training Section 1 – Course Introduction Section 1 – Course Introduction Section Objective This section identifies the objectives and agenda for the System Platform - Part 1 as well as the key basics of Wonderware Application Server. This section describes System Platform - Part 1 / Wonderware Application Server 3.1 and Device Integration Products, the objective of the course, intended audience, prerequisites, and the course agenda. It also includes a description of Wonderware Products. Agenda Module 1 – Introduction Section 1 – Course Introduction This section describes System Platform - Part 1 / Wonderware Application Server 3.1 and Device Integration Products, the objective of the course, intended audience, prerequisites, and the course agenda. It also includes a description of Wonderware Products. Section 2 – Wonderware System Platform This section provides an overview of the Wonderware System Platform and how critical the architecture of ArchestrA is to plant automation. An overview of the differences between Object-oriented and traditional Tag based HMI and SCADA products is provided, as well as how these differences apply to Wonderware System Platform applications. This section will also provide a description of what a Galaxy is, how it relates to the Galaxy Database and the Galaxy Repository and how a Galaxy is created. Lab 1 – Creating a Galaxy Section 3 – The ArchestrA IDE This section provides an overview of the ArchestrA IDE, the Template Toolbox and Application Views and the object Check-in/Check-out process. Section 4 – Automation Objects This section provides an explanation of the various types of objects utilized in the ArchestrA IDE and an overview of when and how they are used. Additionally, it describes how to create and configure instances of objects and the hosting and containment relationships of objects. Section 5 – System Requirements, Licensing and Support This section provides a detailed explanation of the system requirements necessary for Wonderware System Platform, discusses Licensing details and covers Support services. Section 6 – Application Planning This section provides an explanation of the need for adequately modeling your plant in order to achieve an application implementation that will be optimal for efficiency. Lab 2 – Identifying the Mixer Module 2 – Application Infrastructure Section 1 – The Plant Model System Platform - Part 1 1-3 1-4 Module 1 – Introduction This section provides an explanation of the importance of having a model of the plant facility. Additionally, it explains the concept of how to utilize ArchestrA Application Server to model a specific facility. Lab 3 – Creating the Plant Model Section 2 – The Deployment Model This section provides an explanation of the Deployment Model and demonstrates the structure of the Deployment Model. Lab 4 – Creating the Deployment Model Section 3 – The Runtime Environment This section provides an explanation of the Runtime environment and explains the use of the Object Viewer in monitoring the Runtime environment. Lab 5 – Using Object Viewer Section 4 – Connecting to the Field This section provides an understanding of the Device Integration Objects, I/O Server and DA Server. It also provides an overview of DI Objects. Lab 6 – Connecting to the Field Module 3 – Application Objects Section 1 – Templates and Instances This section introduces you to the concept of templates and explain how to derive a template. Section 2 – The $UserDefined Object This section introduces you to the $UserDefined object and its functionality. Lab 7 – Modeling the Heat Exchanger Section 3 – Change Control and Propagation This section presents the concept of attribute locking and provides an illustrations on how locking attributes can propagate to previously derived instances. Lab 8 – Configuring Change Control and Propagation Section 4 – The $AnalogDevice Object This section introduces you to the concept of the $AnalogDevice object and its functionality. Lab 9 – Modeling a Meter Section 5 – The $DiscreteDevice Object This section introduces you to the concept of the $DiscreteDevice object and its functionality. Lab 10 – Modeling a Valve, Pump, and Motor Section 6 – Containment This section illustrates the concept of containment and how it works with Application Objects and Templates. Lab 11 – Creating the Mixer Module 4 – Extending the Objects Section 1 – UDAs This section introduces and explains UDAs and how they are configured and used. Wonderware Training Section 1 – Course Introduction Section 2 – Extensions This section provides describes the Output Functionality for Application Objects in the Extensions environment. Lab 12 – Configuring the Motor Speed Section 3 – Introduction to QuickScript .NET This section introduces and explains the scripting environment and the various scripting configuration attributes of the ApplicationObject. Lab 13 – Adding Auto Reconnect to DDESuiteLinkClient Lab 14 – Configuring Automatic Reference Module 5 – Alarms and History Section 1 – Alarms This section provides familiarization of the concept of alarms and events and how ArchestrA handles them. Lab 15 – Configuring Alarms Section 2 – Historization This section provides familiarization with the background concept of historization and the details of historizable configuration. Lab 16 – Configuring History Module 6 – Security Section 1 – Security Overview This section provides an understanding of Security as it relates to Application Server. Lab 17 – Security Module 7 – Galaxy Maintenance Section 1 – Exporting and Importing Objects This section provides an understanding of fundamental functions dealing with Galaxy Maintenance. Specifically, it illustrates how to Export for future use and how to Import a galaxy created previously. Section 2 – Configuring Instances Through a .CSV File This section provides an understanding of fundamental functions dealing with Galaxy Maintenance. Specifically, it illustrates how to Export for future use and how to Import a galaxy created previously. Section 3 – System Management Console (SMC) This section provides an understanding of role of the System Management Console and how it can be configured. Section 4 – Network Account Utility This section discusses the role of changing the network account and how to use the Change Network Account and how to configure it. Module 8 – Device Integration Products System Platform - Part 1 1-5 1-6 Module 1 – Introduction Section 1 – Wonderware I/O Servers This section will describe the configuration of a Wonderware I/O Server (Modbus). Section 2 – Wonderware Data Access Servers This section provides familiarization with Wonderware Data Access Server and its use with Application Server. Section 3 – Device Integration Objects This section provides familiarization with DI Objects and their use with Wonderware Application Server. Module 9 – Multi-Node Applications Section 1 – Application Redundancy This section provides an understanding of the concept of redundancy, how it can be configured and key points to more effectively implement this feature. It also provides an understanding of the concept and functionality of Redundant DI Objects Lab 18 – Configuring Application Redundancy Section 2 – DI Redundancy This section provides an understanding of the concept of redundancy, how it can be configured and key points to more effectively implement this feature. It also provides an understanding of the concept and functionality of Redundant DI Objects Lab 19 – Configuring the Redundant DI Object Section 3 – Multi Node Application This section provides an understanding of how to migrate from a standalone configuration to a network configuration. At the conclusion of this section you will have an understanding of the steps necessary to migrate to a network environment. Lab 20 – Convert to Network Environment Wonderware Training GeoSCADA. Wonderware software solutions enable companies to synchronize their production operations with business objectives. and Enterprise Resource Planning (ERP) applications. at a company’s own pace and to the extent that they choose. Over one-third of the world's plants and facilities run Wonderware software solutions in dozens of industries worldwide. Performance Management. such as: z Automotive z Chemical & Pharmaceutical z CPG (Food & Beverage) z Discrete Manufacturing z Electrical Power z Facilities Management z Mining and Metals z Oil and Gas z Process Manufacturing z Water and Wastewater Wonderware software solutions deliver manufacturing and operational performance improvements that help reduce the amount of project-specific work required to develop information and automation applications that are integrated across entire operational enterprises. Production Management. and integration with asset management. System Platform . building. Supervisory HMI. Wonderware delivers significant cost reductions associated with designing. They can be implemented in the context of existing systems. deploying and maintaining secure and standardized applications for manufacturing and industrial operations.Section 1 – Course Introduction Wonderware software solutions Wonderware is the leading supplier of real-time operations management industrial software solutions for Manufacturing Execution Systems (MES). supply and demand chain. obtaining the speed and flexibility to attain sustained profitability. Enterprise Manufacturing Intelligence (EMI).Part 1 1-7 . and displayed using Wonderware EMI software solutions.D at io ring . coupled with the awardwinning ArchestrA technology-based Wonderware System Platform is uniquely positioned to meet these challenges.S Gas M et a ge g p ls P ec . incremental approach to operational improvements where low-risk deployment of increased application functionality can be realized one step at a time. Leveraging the ArchestrA software architecture (see page 1-10). and data storage and analysis. increase production throughput and product quality. aggregated. This enables a unique. process capability. z HMI/SCADA – HMI/SCADA solutions often impose complex demands on software architectures. The HMI/SCADA software solutions are easy to use. costs. implement and configure. z Enterprise Manufacturing Intelligence – Enterprise Manufacturing Intelligence (EMI) software solutions empower companies to analyze their overall operational performance using simple yet powerful data analysis and reporting tools. and virtually unlimited scalability. and renowned open data source connectivity from Wonderware.F iscre t ns o eM . z Data Historian – Wonderware Historian software leverages the state-of-the-art Wonderware System Platform. &W ast ewa t er Con Opetr ol R rato oom r P Suproducti ervis on or Ope Line rato r Ope rat e Mo bile Use r Q Eng uality inee r P Eng rocess inee r Ma Opeintena rato nce r Ma i Evo nt ain lve & IT Ma Sup intena ervis nce or e Machin Ma n O uf a per ct u . layered software architecture that enables a variety of features and capabilities. optimization and control of plant floor data collection. ut ic al ical & Line Sys t Con em & nec Dev t ivi ice ty t en tm par / De Plan t / Sit es Ent er pr ise Wonderware offers the following software solutions: z Manufacturing Execution Systems – Manufacturing Execution Systems (MES) solutions feature a complete set of functional capabilities for consistent and effective execution of operational activities. high security and availability. Wonderware InTouch HMI visualization software. and offer simplified maintenance.T ag sm en .1-8 Module 1 – Introduction These solutions leverage a powerful. Wonderware MES solutions are completely scalable and configurable. Production. and quality and variance data can be collected. industry leading historian technology. Dev Engelopm inee ent r InteSyst em grato r Inf r Ope ast ru .E harm ialt y C ace hem t c. equipment downtime.E at er ort at n ion t c.P acilit ion e ies owe s M Tra an n rG IT Pla Bui n & ld P Eng rocess inee r . The resulting Wonderware Training .F rat ct ur .M od a . Wonderware MES solutions help to substantially reduce lead time and manufacturing costs. and reduce efforts involved in compliance and governance. such as visualization. Web-based reporting capabilities.O ining & Beve nuf ac t r i & l& urin a .W ransp issio erat io emen t n& . A powerful yet secure Web interface helps deliver this information to the full range of plant workers – tailored to their specific information requirements. visit the Wonderware Web site at http://www. z Product Quality Management and SPC – Delivering products with high quality – defined as meeting specifications at the lowest possible cost – is a top priority for manufacturers and industrial operations. z Mobile Solutions – Wonderware mobile solutions feature the industry's leading Mobile Workforce & Decision Support System. broad scalability. highly efficient data storage and retrieval.wonderware. BOM enforcement. Wonderware Historian stores voluminous process data for quality analysis. Wonderware has a solution. z Batch Management – Wonderware batch management solutions perform repeatable and consistent execution of batching processes across all hybrid industries. the Wonderware Historian software has an industry reputation for low total cost of ownership. With blazing speed. For more information on Wonderware software solutions and products. Wonderware ActiveFactory software trends data. and Wonderware software applications meet these quality needs. and application templates can help deliver nearly any quality capability. InBatch software collects information on batch quality and recipe settings. high availability and simple one-click historization setup. System Platform . Preconfigured Web-based reports and data analysis capabilities drive immediate value from data captured by the Wonderware Historian. to the most complex batch processes requiring dynamic allocation of shared equipment. the Wonderware System Platform monitors data levels. Wonderware QI Analyst software provides enterprise-wide SPC. whether it is electronic batch records (EBR) systems in regulated industries. Wonderware IntelaTrac enables the delivery of Best Practices to field workers improving Asset Management for the leading refiners. or automated recipe management for supervisory systems.Part 1 1-9 . chemical manufacturers.Section 1 – Course Introduction historian solution is unlike any other data archiving and reporting solution found in the market today. genealogy. Operations & Performance software provides spec management. where only the formula changes for different products. Each of these solutions ensures reduced lifecycle costs and investment protection by leveraging the ArchestrA architecture. InTouch HMI offers real-time data monitoring and alarming.com. Paper-On-Glass capabilities in paperless production environments. and the list goes on. OEE and Downtime monitoring. and power generators globally. From simple batch processes. and advanced control/ simulation systems. These core services include the following: z Integrated Development Environment (IDE) z Version management z License management and centralized deployment z System diagnostics and system administration z Internationalization z Data visualization and monitoring z Event-based processing. Process Information Management systems (PIM). Distributed Control Systems (DCS). increase efficiency. batch and recipe management systems. The ArchestrA architecture leverages advanced software technologies to fill the gap between ERP systems and control systems. and calculation capabilities z Alarm and event management. including (HMI). The ArchestrA Framework supports core services that are required by most of these different types of supervisory control and manufacturing information systems. and enable integration of distributed automation systems and applications from virtually any vendor.1-10 Module 1 – Introduction ArchestrA technology ArchestrA technology. Supervisory Control and Data Acquisition systems (SCADA). or architecture. This architecture provides the following: z Framework which supports common services and a core set of system objects z Domain Objects which are industry-specific objects z Object Development Toolkit which enables third parties to create new domain objects customized for specific needs The supervisory control and manufacturing information environment is served by a variety of systems. and from a single node to hundreds of stations) can be rapidly and securely implemented. These components are installed just like any other Windows application and include the following: Centralized object repository (called Galaxy Repository) Integrated Development Environment (IDE) Object deployment services (called Bootstrap) Runtime Components that are centrally deployed and administered. provide optimization and standardization. historization and security z Data acquisition and field device integration z Inter-object communications and name service z Reporting and ad-hoc query capability z Support for industry standards such as OPC and SQL The ArchestrA architecture consists of the following: z z Configuration and Deployment Related Components that are required for centralized deployment of the runtime components. scripting. helps reduce application engineering effort and deployment. These components include the following: PCs with core infrastructure (called Platforms) Key software applications (Engines) Objects (Framework Objects) that expose framework related functionality Wonderware Training . Manufacturing Execution Systems (MES). Geographically dispersed applications (from a few hundred to one million I/O. Wonderware System Platform Wonderware System Platform provides a single platform for all the SCADA. Plant knowledge workers using ActiveFactory information can quickly troubleshoot problems. Adobe Acrobat (PDF). Within the System Platform is a high-performance process historian with production history archiving. process.Part 1 1-11 . integrating the office with the factory floor or any industrial operation. The Wonderware Historian is designed to collect a wide variety of plant data. and eliminate the timeconsuming process of locating the data. third-party HMI applications and database systems. at full resolution and very high data rates. The reports can be printed or generated as Microsoft Excel. and EMI software solutions needs of industrial automation and information personnel. OLE DB. and optimization to a whole new level.Section 1 – Course Introduction Wonderware individual software products Wonderware software solutions offer robust. real-time database for historical information. comprehensive data reporting using Microsoft Word. No other HMI can match InTouch software for industry-leading innovation. unequaled device integration and connectivity. best-of-breed software components that empower customers to effectively develop and manage their automation and information applications in continuous. or shared over the Internet or intranet through the HMI Reports Web portal. and ODBC standards. visually appealing reports containing real-time process data or information extracted from InTouch HMI. and truly legendary ease of use. efficient data compression. discrete. and an industrial Web information server that dramatically simplifies the organization and delivery of operations information for use across all functions in an organization. and the capability to publish real-time and historical plant information to the Web or company intranet site using Wonderware Information Server. and HTML formats and distributed automatically by e-mail. Wonderware Historian. All the latest Wonderware software offerings leverage the latest ArchestrA technology and offer increased functionality and flexibility as well as extensive connectivity. Wonderware InTouch HMI Wonderware InTouch software is a human machine interface (HMI) for process visualization and control. It combines the power and flexibility of a relational database with the speed and compression of a true process historian. System Platform . Wonderware HMI Reports Wonderware HMI Reports is an easy-to-use and powerful reporting tool for creating and delivering usable. At the center of the Wonderware System Platform is the “plant model. control. Wonderware ActiveFactory The Wonderware ActiveFactory software provides data-trend analysis. Supervisory HMI. architectural integrity. Wonderware Historian The Wonderware Historian component of the System Platform is a high-performance. The InTouch HMI reputation stands above all the rest.” which is the logical representation of the physical equipment and processes being controlled and supervised. MES. and auto-configuration of historical archiving that helps eliminate duplicate effort. uninterrupted software version migration path. stored on a network share. sophisticated numericaldata analysis using Microsoft Excel. hybrid. It takes operations management. study potential process inefficiencies. Reports can be generated on-demand or automatically on-event or on a regular schedule. and batch manufacturing environments. or almost any data source that supports OPC. improved reliability. Performing both online and historical SPC. large amounts of process data can be aggregated into highly informative production reports tailored to the information needs of plant personnel. as well as historical reports to view process “health” over any period of time. users can leverage enterprise-wide SPC to reduce variation. and production steps. Web-based reporting. It provides an incremental. and repeatability of equipment setup. manufacturing responsiveness. low-risk approach to building Manufacturing Execution systems that can be implemented in steps. and increase productivity. which offers many benefits as a result of the underlying ArchestrA technology. helping to make existing corporate IT portals more informative and valuable. Wonderware Equipment Operations Module Wonderware Equipment Operations Module helps manufacturers capture complete “as-built” records for rapid response to unforeseen production events such as product recalls. data collections. from basic MES functionality including bill of materials. it enables consistent execution of unit/line operations. Using Wonderware Information Server. It helps deliver critical equipment downtime and efficiency information to operators and decision-makers who can take immediate action to improve plant performance. and the ability to facilitate the design and implementation of systems that are compliant with FDA 21 CFR Part 11 regulations. and traceability to enhanced capabilities such as inventory management. Consistent with the ISA S88 flexible batching standard. InBatch software automates recipe management using a graphical procedure environment featuring Sequential Function Charts (SFC). and reporting are equally easy. stringent security. reduce costs of manufacturing. specifications. and communicating real-time equipment performance information. Wonderware InBatch Software Wonderware InBatch flexible batch management software optimizes the management of any batch process. InBatch software offers comprehensive batch execution and equipment history. Wonderware Training . certifications. analysis. Wonderware QI Analyst Wonderware QI Analyst Statistical Process Control (SPC) software is an important part of any quality management program. By storing process data in the QI Analyst database and linking to external data sources. Wonderware Operations Software Wonderware Operations Software provides a scalable and configurable Manufacturing Execution System (MES) designed to improve operational efficiency. labor. QI Analyst supports real-time process monitoring and alarms. Wonderware Performance Software Wonderware Performance Software provides a highly scalable and functionally rich solution for collecting. tracking. The software is highly configurable and leverages the Wonderware System Platform. and brand integrity. Real-time SPC.1-12 Module 1 – Introduction Wonderware Information Server The Wonderware Information Server offers an easy solution for aggregating and presenting plant production and performance data over the Web or company intranet. Content from the Wonderware Information Server can be incorporated into other Web portals. Leveraging the ISA-95 standard. material genealogy. Wonderware provides the largest selection of connectivity options to hundreds of control systems and other hardware devices. resources.Part 1 1-13 . Wonderware offers the following Toolkits: Toolkit DAServer Toolkit ArchestrA Object Toolkit Historian Toolkit Alarm Toolkit Wizard Toolkit Script Toolkit GRAccess Toolkit MXAccess Toolkit Enables developers to: Build custom device integration servers more easily Extend the ArchestrA architecture with objects that provide specific application or device integration functionality Create high-value industrial applications that integrate with data sources from the System Platform and other data sources Produce custom distributed alarm providers and consumers Produce their own Wizards for inclusion in InTouch HMI Develop custom InTouch scripts Create programmatic access to and interaction with System Platform Galaxy configuration data Create programmatic access to runtime data in a System Platform Galaxy Wonderware Device Integration Servers Device Integration Objects (DI Objects) within the Wonderware System Platform provide seamless connectivity to any data source. The Toolkits promote adherence to industry standards. and the DAServer Toolkit allows developers to create custom connectivity servers. It enables the operational execution of production plans with accurate tracking and control of work-in-process (WIP) information related to inventories. operations. provide additional customization and intellectual property protection. Wonderware has also fully embraced the openness of OPC technology. and bills of materials – as well as their relationship.Section 1 – Course Introduction Wonderware Manufacturing Execution Module Wonderware Manufacturing Execution Module empowers Wonderware customers to define logical manufacturing models in terms of routes. It seamlessly integrates with the comprehensive Wonderware product family and has built-in browsers to enable fast configuration of information from Wonderware System Platform and InTouch HMI software. exposing data via OPC from Wonderware products as an OPC Client and also providing the means to connect to any third party OPC Server. resource utilization. Wonderware SCADAlarm SCADAlarm alarm and event-notification software provides a telecommunications link to industrial automation software systems. Wonderware Toolkits Wonderware Toolkits provide powerful extensibility to InTouch HMI and System Platform applications by enabling developers to extend the capabilities of Wonderware products to meet specific system integration needs. System Platform . In collaboration with more than 100 third-party interface developers. and enhance the ability to interface Wonderware products with other software and hardware. and conformance to specifications. Supervisory Control and Data Acquisition systems (SCADA). and advanced control/ simulation systems.1-14 Module 1 – Introduction Wonderware Enterprise Integration Application Wonderware offers powerful capabilities to complete the manufacturing supply chain by linking the manufacturing system to business applications like ERP. including (HMI). Wonderware Enterprise Integration Application provides a scalable and configurable solution designed to accommodate even the most complex requirements for tightly aligning business and manufacturing systems. and production tracking and compliance applications to mobile field workers. maintenance management. and administration of distributed automation applications. supports core services that are required by most of the different types of supervisory control and manufacturing information systems mentioned above. and security z Data acquisition and field device integration z Inter-object communications and name service z Reporting and ad-hoc query capability z Support for industry standards such as OPC and SQL The ArchestrA Framework consists of: z Configuration and Deployment Related Components: which include the centralized object repository (called Galaxy Repository). procedural and general task management capabilities typically focused around plant operations. or Framework. ArchestrA leverages advanced software technologies to fill the gap between ERP systems and the control systems. Wonderware IntelaTrac Wonderware IntelaTrac is a suite of configurable software and ruggedized mobile hardware products that provides workflow management. deployment. Distributed Control Systems (DCS). scripting. batch and recipe management systems. The supervisory control and manufacturing information environment is served by a variety of systems. and LIMS systems. PLM. Process Information Management systems (PIM). historization. lifecycle maintenance. Manufacturing Execution Systems (MES). These core services include the following: z ArchestrA IDE z Version management z License management and centralized deployment z System diagnostics and system administration z Internationalization z Data visualization and monitoring z Event based processing. This architecture provides the following: z Framework: supports common services and a core set of system objects z Domain Objects: are industry-specific objects z Object Development Toolkit: allows 3rd parties to create new domain objects customized for specific needs The ArchestrA infrastructure. ArchestrA IDE and object deployment Wonderware Training . and calculation capabilities z Alarm and event management. Wonderware System Platform Framework ArchestrA provides an infrastructure for simplifying the development. SCM. key software applications (Engines) and objects (Framework Objects) that expose framework related functionality. System Platform . These components are centrally deployed and administered. These components are installed just like any other Windows® application.Part 1 1-15 . z Runtime Components: which include PCs with core infrastructure (called Platforms).Section 1 – Course Introduction services (called Bootstrap). They are required for centralized deployment of the runtime components. 1-16 Module 1 – Introduction – Intentionally left blank – Wonderware Training . The Wonderware System Platform contains an integral core set of capabilities and services to support sustainable production and operations performance improvement via a comprehensive set of six capability areas: z Industrial domain services z Software and device connectivity services z Information and data management services z Information-delivery and visualization services z Application development services z System management and extensibility services System Platform . An overview of the differences between Objectoriented and traditional Tag based HMI and SCADA products is provided.Part 1 1-17 . Its diverse functionality extends Wonderware customers’ software investments and encourages flexibility in application development. It provides a common and strategic industrial application services platform on top of virtually any existing system. how it relates to the Galaxy Database and the Galaxy Repository and how a Galaxy is created. This section will also provide a description of what a Galaxy is.Section 2 – Wonderware System Platform Section 2 – Wonderware System Platform Section Objectives z Introduce the concept of ArchestrA and how it relates to the manufacturing environment z Describe the benefits of migrating to an ArchestrA architectural environment z Clarify how Object Oriented tag-based products relates to SCADA z Explain the difference between Object Oriented development process and Tag Based development process z Explain what a Galaxy is and how it relates to the Galaxy Database and the Galaxy Repository z Demonstrate how a Galaxy is created This section provides an overview of the Wonderware System Platform and how critical the architecture of ArchestrA is to plant automation. and Production and Performance Management needs of industrial automation and information personnel. It supports consistent and reliable operations across industrial operations and manufacturing facilities as well as promotes sustainable production and operational performance improvements. and is built upon the industry-standards based. System Platform The Wonderware System Platform provides a single platform for all the SCADA. as well as how these differences apply to Wonderware System Platform applications. Supervisory HMI. ArchestrA real-time SOA technology. The Wonderware System Platform is designed to make it easier for manufacturers to adjust to the ever-changing needs of customers and the overall market. control systems and HMIs Historians and relational databases Quality and maintenance systems Enterprise resource management (ERP) and business systems Manufacturing execution systems (MES) Wonderware Training . It provides a powerful infrastructure that enables Wonderware customers to leverage lower-cost commercial PC hardware and operating systems in industrial applications.1-18 Module 1 – Introduction Industrial Domain Services The Wonderware System Platform offers industrial domain services that are not provided by commercial operating systems or generic IT products. the System Platform can empower you to conveniently interact with process systems from any remote location. Industrial Domain Services provide: z Real-time. The result is a reduction of personnel costs and improved response times because the software continuously monitors and deploys messages. enabling instant responses z High computing availability and redundancy for critical applications z Centralized alarm. Software and Device Connectivity Services provide: z Integration of manufacturing and business systems z Easy importing and migration of legacy systems and external system configurations z Conversion of non-structured devicecommunication models into structured systems to increase the maintainability of applications and systems z Connectors and communication servers for control devices. without tag limitations z Plant information and supervisory functions to script special behavior and responses z Support for slow and/or intermittent data networks Software and Device Connectivity Services The Wonderware System Platform enables cost-effective communication to virtually any plant information source. 24/7. Whether you have no knowledge of computer programming or consider yourself an expert software engineer. applications and systems including: Automation devices. PA system and e-mail alerts for unattended operational monitoring z A single global Namespace to access data elements anywhere.and event-monitoring for operational conditions z Data-level security to protect plant equipment z Audit logging and extended security protection for developers and system-maintenance personnel z Pager. mobile phone. peer-to-peer communications and messaging. Integrating business and manufacturing activities can also increase plant profitability. Application functions are quickly customized. Unifying diverse systems can improve operations and information management. SPC.Section 2 – Wonderware System Platform Information and Data Management Services Furthermore. real-time production monitoring and access to MES data. live data calculations. the Wonderware System Platform facilitates the management of all real-time and historical information — including data transformation and storage. The platform also enhances batch management. which reduces disk storage and makes more data available online An historical archive that’s auto-configured. event and alarm notifications. This information management capability can increase a plant’s profitability because it enables immediate access to key performance indicators (KPIs). and historical data. More effective information and content management can also improve production management and enhance plant performance. For instance. but actionable control.Part 1 1-19 . downtime and OEE information. Information and Data Management Services provide: z Content management tools z Streaming real-time data (available to all authorized users) z A high-performance process historian and production database that offer: z A production history archive for a single production line. an entire facility or the complete enterprise Data compression. eliminating duplicate work Off-line and late data handling for: Manual data Labs and quality systems Remote terminal unit (RTU) environments z Correlation of events and alarms with production history z Data transformation and normalization z Data Buffering and Store & Forward features z Simple and fast configuration with powerful process event monitoring System Platform . the reliable information that the Wonderware System Platform enables not only data visualization. Capabilities z Multiple client interfaces [i. even if you have no SQL database knowledge. Terminal Services Edition (TSE) or Web Client] z Visualization and HMI z Expansive graphical user interface (GUI) Access-level Windows authentication and data security. The Wonderware System Platform can even help you achieve regulatory compliance with simple and accurate automated reports. Quickly access real-time and historical information using the open and easy-to-use HMI solution that seamlessly integrates with legacy and new plant systems. and in the form in which they expect it is a key service provided by the Wonderware System Platform. downtime and batch analysis tools z Automatic data retrieval calculations . at the right time. SPC.1-20 Module 1 – Introduction Information-Delivery and Visualization Services Delivering the right information. Wonderware customers can concurrently visualize manufacturing and business information. enabling simplified data queries with powerful retrieval modes z Secure access across firewalls z Multi-language client support Wonderware Training .e. as well as enhanced password encryption Comprehensive alarm troubleshooting tools Information Analysis and Reporting Integration with trending tools and Microsoft Office products Production.. and dynamically implement changes to reach their business objectives. Create queries and run reports. Proactively enhance your plants profitability by taking action on information in real time. obtaining real-time and historical data from beyond the boundaries of the secured process network.reduction and aggregate methods z Open SQL access. to the right user. Thick. comprehensive software development capabilities for HMI and/or MES applications z Advanced ArchestrA technology. enabling the creation of re-usable graphics z Different development views. you can drive standards by developing applications once and using them everywhere. modifying. validation and audit trails z Unification with Microsoft products including: Microsoft Windows operating systems The Visual Studio development system SQL Server. maintaining and standardizing software applications. deploying. which show: How the application is related to the facility or plant How the application is distributed across the network Parent-child relationships for templates and runtime components z Multi-Developer Environment for concurrent development z Modeling . Application Development Services provide: z Flexible.Section 2 – Wonderware System Platform Application Development Services The Wonderware System Platform and its underlying ArchestrA technology provide easy and intuitive development of modular industrial software solutions. and offer common security.Applications can be structured based on a plant model. BizTalk server SharePoint services Microsoft Office Internet Explorer internet browser System Platform . The result is a decrease in the amount of time and costs associated with creating. As a result. which facilitates the assembly of applications that are component-based and generated from standard templates z SmartSymbol technology. which can be easily changed to meet Wonderware customers¡¦ future needs.Part 1 1-21 . are self-documenting. Wonderware Training . Decrease lifecycle costs for plant IT solutions. production processes or intellectual property. It empowers Wonderware customers to extend their systems in virtually any direction to meet their current and future needs. Leverage the flexible and scalable ArchestrA software architecture for small and large systems — systems that can be easily expanded to meet future requirements. Peer-to-Peer or Web-centric z Easy redistribution of server load z Remote application installation and administration z An online configuration database that centrally maintains software z Remote change propagation z Centralized computer diagnostics and distributed PC network management In essence. Its open-development platform and tools uniquely enable Invensys and third parties such as OEMs. without abandoning prior investments in automation systems. These services provide a range of architectural choices.1-22 Module 1 – Introduction System Management and Extensibility Services Furthermore. The ArchestrA vision is to provide a unified and robust architecture that is the basis for collaborative production systems in support of industrial enterprises. maintenance and replication of automation applications. ArchestrA is the comprehensive industrial automation and information architecture that orchestrates a new way to run or expand older plants more efficiently. modification. In the ArchestrA environment. ArchestrA's complete approach to industrial architecture significantly reduces a plant's total cost of ownership through easy installation. ArchestrA ArchestrA is a comprehensive plant automation and information architecture designed from the outset to extend the life of legacy systems by leveraging the latest software technologies. Change and expand your system as a whole without disruption. the Wonderware System Platform facilitates the easy management..e. both during the initial system design phase and throughout the lifetime of an installed system. End-users and suppliers will benefit from ArchestrA's unified platform. the Wonderware System Platform facilitates consistent and reliable operations across manufacturing and industrial operations to protect brand integrity. Client/Server. and an optimal way to build new plants. which enables the instant integration of application information. Offerings built upon this architecture empower decision-makers to achieve their business goals. software applications can be rapidly assembled rather than programmed. Leverage Wonderware’s technological evolution and increased protection for operating systems and databases. System Management and Extensibility Services provide: z The ability to re-architect systems at any time to support different system topologies (i. New applications also can be created simply through the reassembly of existing applications. expansion and modification of applications or the host computing architecture. Single Node. Improve system troubleshooting. operation. machine builders and system integrators to build domain knowledge and add significant value to the solutions they provide. That’s why today a variety of computer-based systems are used to operate plants as well as to improve their efficiency.Part 1 1-23 . Those that have successfully integrated have done so at great cost in terms of money and resources. many highly engineered consumer and industrial products simply would not exist. the choice for manufacturers is between agility and finality. they are vital for any plant. or enterprise to survive. New or enhanced products must be commercialized at breakneck speed. or risk rapid failure.Section 2 – Wonderware System Platform The Need for ArchestrA Quality. managers still find it difficult to quantify resulting tangible benefits. As general technology lifecycles shorten. Again. and cost efficiency have always been necessary for any plant or factory that wishes to surpass the competition. In other words. responsiveness. Moreover. factory. In the past. multiple varieties of hardware and software systems provide machine and process control. and decision support. even today. Unfortunately. in most plants these systems operate independently. this has been an expensive and time-consuming process. Without these systems. Product cycles become shorter and more complex. as these markets grow ever more economically efficient. These systems enable manufacturers to operate their businesses more effectively and add value to the raw materials they process. manufacturers are pressed to procure and integrate new technologies with everincreasing speed — making the ultimate goal of productivity improvement even more difficult to achieve. System Platform . The most compelling aspect of the problem now facing manufacturers is that the underlying technology of these systems is rapidly becoming obsolete. The pace of change accelerates. unified infrastructure. because of the complexities involved in their manufacture. despite the huge investments made by companies in these systems over the years. This hinders a plant manager’s ability to synchronize and control production and business processes in a realtime environment. information management. Such offerings must also be quickly customizable for use in today’s global business spaces. the majority of manufacturers have not successfully integrated the functionalities of automation/business/information systems into a single. In most plants. Today. without the need to expand the plant or build new capacity z Ensure the greatest possible return on assets. and systems infrastructures to become more market-driven and customer-centric. while enabling the plant to easily integrate important new technologies over the longer term. In fact. and improve profitability. Their overall objectives have been straightforward and consistent: z Become more responsive to market shifts and the increased competition brought on by globalization z Develop greater agility and a more collaborative. “islands of automation” within business and manufacturing systems hinder the plant manager’s ability to synchronize business processes in real time. Building on ArchestrA research and technology. managers know they can no longer simply "invest in technology" and expect improvements to come about automatically. because Wonderware Training . in the face of continuing manpower reductions To achieve these goals.1-24 Module 1 – Introduction In most plants today. management cannot afford to stand still. data-driven environment• z Synchronize the manufacturing process with planning and scheduling functions to optimize enterprise performance z Empower operators with critical information to foster improved plant performance z Utilize existing assets more efficiently to increase production. However. Manufacturing Goals For approximately a decade. A powerful new infrastructure for industrial applications. manufacturers have been revising business practices. millions of dollars have already been invested with only marginal returns. Recognizing this challenge. ArchestrA promises to provide an information and control superstructure that will increase the productivity of a plant’s existing systems. Invensys has developed a solution. organization charts. ArchestrA automation and information architecture (ArchestrA). the recently released I/A Series A2 system (I/A Series A2) has taken the first major step toward reducing the risk of automation obsolescence and protecting manufacturers’ investments far into the future. The pace of change has increased to a point at which it is difficult for manufacturers to execute a new strategy before market conditions change once again. Compounding the problem. Further.Section 2 – Wonderware System Platform there are significant rewards to be reaped by those who develop improved responsiveness. and efficiency of operation. many manufacturers are working toward a rational. This allows manufacturers to: z Preserve a significant portion of their existing automation and information infrastructures z Integrate and synchronize existing production systems and new applications z Move ahead into the future. customer satisfaction. and information systems.Part 1 1-25 . failing to offer the agility or rapid response that today’s producers require. and will remain so for the foreseeable future. Response times have now become the cornerstones of manufacturing competitiveness. cost-effective solution that does not require enormous investment and allows for the preservation of as much existing infrastructure as possible. Such an architectural infrastructure is available through ArchestrA. greater agility. while facilitating quick response and easy reengineering. existing investments in hardware and software. and a higher return on assets. They are identifying optimal long-term strategies based on total cost of ownership. must have the ability to respond to challenges that are virtually unanticipated. But the original investment in these systems was so extensive — and so visible to owners and investors — that it is understandably difficult to broach the subject of "bulldozing" and starting over with the latest generation of technology. namely automation systems. however. And to identify and deploy a plant information superstructure that embraces existing systems while providing expansion capabilities for the long term. many of yesterday’s automation and information systems are beginning to show their age. System Platform . Synchronization of Systems Today’s collaborative manufacturing environment requires that manufacturers synchronize automation systems with business/information systems to accomplish total supply chain management. thereby fulfilling these systems’ original promise of improved manufacturing efficiency. They are preserving. long-term strategy that will remain in a leadership position for the life of the plant. they actually impede the organization’s forward progress as they increasingly require greater amounts of maintenance and the corresponding expansion of infrastructure support. business systems. it means not only eliminating extensive hardware infrastructure. confident of shorter project execution times. They are working to synchronize the various informational elements within the manufacturing domain. Today’s manufacturer. and a proven. The challenge has been to develop an architectural infrastructure that optimizes quality. Acting as a massive anchor. reduced total cost of ownership. as well as in intellectual properties contained in application-specific software. To facilitate this collaborative environment. but also destroying an asset that is even more valuable — the intellectual capital unique to the manufacturing mission. to the maximum extent feasible. Wonderware Training . both current and emerging. Incorporating ArchestrA will considerably reduce the cost and time involved in executing strategic change. allowing the rapid generation of new applications. it offers manufacturers the promise of extending the lifecycle of an entire plant’s information and control system infrastructure. and customer internal applications. third-party. It comprises a unique combination of new toolsets and new applications infrastructure services. and to foster their ongoing adaptation and improvement. ArchestrA facilitates the next logical extension of enabling software architecture designed to accommodate emerging technologies and to ease the reuse of engineering from one project to another. is a software infrastructure designed to unify combinations of Invensys. products. and services. into a synchronized. Because it enables easy upgrades via integration of existing systems with these new technologies. developed by Invensys. The objective of this unique technology is to dramatically reduce engineering and maintenance time and expense when a manufacturer must modify or expand his company’s process. plant-level application model.1-26 Module 1 – Introduction ArchestrA Architecture ArchestrA. and calculation services z Alarm and event subsystems with reliable delivery z Built-in distributed architecture services for scalability z Integration with various types of field devices z Inter-object communication and name service management z Version management services z Security model services z Centralized license management and deployment services z Centralized system diagnostics and administration z Internationalization of objects and application services z Graphical user interface (GUI) editing services System Platform .Part 1 1-27 .Section 2 – Wonderware System Platform ArchestrA enables manufacturers to synchronize the various informational elements within the manufacturing domain and supply the information required by business systems in real time. scripting. and are able to apply their time to functions in which they have more expertise. ArchestrA provides a number of key functions designed to free users from the complexities of dealing with current underlying technologies. So users require only assembly skills. By embedding common application services directly into a common infrastructure. The key elements of the software infrastructure are the following: z Common design and development environment z Deployment. application engineers can design and reuse solutions that are instantly integrated. not sophisticated programming knowledge. Plant Floor Connectivity 2. Manufacturing Collaboration The following page illustrates these segments as they relate to the Automation Information Pyramid. Production and Plant Intelligence solutions. The Automation Information Pyramid illustrates these points. it extends functionality across the enterprise enabling true manufacturing collaboration. Wonderware Training . It is the basis for Supervisory.1-28 Module 1 – Introduction Automation Information Pyramid ArchestrA supports all layers of industry standard models. In addition. Production 4. It displays the complete effectiveness of ArchestrA across all levels of the manufacturing environment: 1. Plant Intelligence 5. Supervisory 3. Section 2 – Wonderware System Platform Manufacturing Collaboration Plant Intelligence Production Supervisory Plant Floor Connectivity System Platform .Part 1 1-29 . with built in relationships and interdependencies. Tag Based Supervisory Control There are several fundamental differences between Object-oriented and traditional Tag based HMI and SCADA products. with no inherent ability to link elements together into more intelligent structures. alarming and data analysis has been based on the concept of tags. a tag-based environment has the downfall of a flat Namespace. New workstations and any data points defined are automatically integrated into the initial application through the plant model. The common distributed peer-to-peer Namespace means that all information is shared between the nodes without the user having to perform any additional engineering or configuration. the development of data access. Reuse in a tag-based system is commonly instituted through dynamic or client-server referencing. Process Structure Graphics Development Background Process Promotion of Standards Global Application Change Data Represented By Object Oriented Hierarchical Done Last Developed in Objects Strictly Enforced Progagated from Templates Physical Devices as Objects Tag Based Flat Done Early Developed in Tags Not Strictly Enforced Changed in Tools like Excel Data Types and communication Bits as Tags From the inception of PC-based HMI and Supervisory products. While simple and very portable from one project to another. that allows a common graphic to be created. Tag Based systems. in tools like Microsoft Excel or as a text file and then re-imported into the application. simple applications all the way up to highly challenging manufacturing information management systems. Object Oriented vs. The following table illustrates the differences in how various processes are managed in Object Oriented vs. Furthermore. Then a script is executed to switch the tags being viewed in run-time. Global changes to a tag database are typically done externally to the development environment.1-30 Module 1 – Introduction Scalability Wonderware Application Server provides a scalable and integrated architecture to meet the needs of small. Wonderware Application Server resolves the problems associated with scaling automation applications because there are no limitations on system size and performance issues are easily addressed through the introduction of new nodes. Wonderware Training . changes need to be sought out and analyzed as to the affect on the rest of the application. because of the flat structure of the application. scripting. along with the graphics as objects. the majority of work that goes into a supervisory application is for things like: z Alarm Monitoring z Animation Scripts z Security Scripts z Supervisory Scripts z Historical data storage z Integration with other applications and Databases z Event Detection z Flow and movement calculations z Device integration In order to fully realize the benefit of an Object-oriented architecture. System Platform . a SCADA System today needs to depict all of these things. It is mostly used today to refer to the ability to build graphics and draw pictures based on classes or a hierarchy. This is useful functionality.Part 1 1-31 . For example. This is referred to as Object Oriented Graphics.Section 2 – Wonderware System Platform Use of the word "Object-oriented" with SCADA The phrase "Object-oriented SCADA" has been with us since the early 1990's. but SCADA applications are more than just pretty pictures. This allows you to build a symbol and replicate it across a screen or HMI application and have visual changes made to all the similar symbols at the same time. For example. ERP data transfer operations and many more things that you want the plant information system to do. Key Performance Indicators (KPIs). let's say that there is a standard way your organization calculates and initiates a maintenance work order for a pump. it is possible to use it with any pump in the application. Using object-oriented tools in manufacturing applications Manufacturing applications typically have a lot of common components.1-32 Module 1 – Introduction Types of objects In object-oriented SCADA. security. Because these operations are modular. condition monitoring events. They can also model common calculations. objects contain the aspects or parameters associated with the device they represent. alarms. a valve object can contain all the events. These include common types of: z Plant devices and equipment z Operating procedures z Process measurements z Calculations z Graphics displays This leads to a cookie cutter approach. database access methods. Wonderware Training . communications and scripting associated with a device. Where an objectoriented SCADA System is different. For example. By encapsulating this function as an object. where typically small software programs are developed as objects/code modules that can be stamped out and joined together to form an application. and all of the cookies you already made are automatically changed. is that after the cookies are stamped out. it is easy to add them to any and all parts of the application. Almost all of the automation vendors have this capability today with their software. you can change the stamp. Objects don't just represent plant equipment. 10. it has the notion of a parent-child relationship. where parent templates are developed and then "Child Objects" are replicated or instantiated from the parent templates. Windows or displays are created for the application 3. Tags are linked to graphic elements 7. the application is rearchitected to centralize alarming.Section 2 – Wonderware System Platform This is possible because when a SCADA package is truly object-oriented. System Platform . history archiving. Graphics are created for the windows 4. users have built operator graphics and linked them to tags. which represented addresses in a PLC or a control system. Changes to the system require shutting down the application. so a change in the parent can be replicated to all of the children. A new HMI application is created on a single computer 2. Graphics animation scripts or links are created 8. IO Tags are defined and linked to the application 9. If the application is to be deployed in a client-server environment. making changes to the many scripts and tag database references to enable the new functionality. and reloading the new HMI application on each workstation. This is an extremely powerful development capability in that: z Application creation is optimized by using parent Templates and automated child object replication z Project change orders are easily accommodated by making changes in the parent template and having the child objects inherit the changes via change propagation z Ongoing system changes and expansions are easier and more cost effective because of automated object replication and change propagation Traditional. Alarm and Event Detection Scripts are defined for each tag 6.Part 1 1-33 . Here is an example of how a traditional tagbased SCADA application is developed. 1. The concentration was on the computer and the software application. Tag Based SCADA Development Process From the inception of PC based HMI and SCADA software. graphics and IO servers. event detection. Now all of the children are tied back to the parent. Tag definitions are imported from the PLC or manually configured 5. These security groups have common permissions.graphics are created last Wonderware Application Server and the ArchestrA IDE have brought a new era to SCADA Software development through the ability to create a complete plant device model. like common types of motors.0 SP 2 which allows a graphic element to be created and linked to a template in the ArchestrA IDE. which can reside on a single computer or on hundreds of computers. A list is developed of similar pieces of equipment. Objects are then assigned to security groups. which provides incredible power when it comes time to modify anything in the system. valves. control loops. drives. The developer is abstracted from the complexities of the computing environment and allowed to concentrate on "modeling" how the production facility is laid out and the different manufacturing cells and processes that comprise plant-wide supervisory control. 5. The ten easy steps to creating a supervisory application using the Application Server are: 1. Device templates have attributes which represent real I/O available in the PLC or control system. These attributes are then linked to the I/O through Device Integration Objects. there may be 100 transmitters of a particular type that can be modeled as a single device template. 4. a mixer may contain a level transmitter. This can be done on an individual basis or by area of the plant. 6. etc. In addition. These templates will be used to develop objects which represent a specific device. such as Platforms and Engines. Piping and Instrument Diagrams (P&ID) can also be referenced to understand the specific equipment in use. A site survey is conducted to understand the layout of the manufacturing operation or process. the world's most popular HMI software package. This offers a great amount of flexibility in changing user permissions and in managing the security model. Standard system objects. Device templates can be contained within each other to build-up a more complicated device. 9. templates contain all of the logic. 2. scripting. for example. A small investment in creating Templates yields big results in engineering productivity. Templates are configured for each common device or component in the facility. For example. Roles are created to map rights onto each security group. This is the "Object-Oriented" nature of the Application Server. Users can be given one or more roles. The application can then be assembled by using a simple drag and drop capability inside if the ArchestrA IDE. Notice that absolutely no consideration needs to be given to how the supervisory stations are going to be laid-out or which computer needs to have a specific part of the system running on it. transmitters. The software does all the work as the user is simply configuring templates that represent the equipment in the plant. inlet / drain valves and agitator. it is easy to implement supervisory control functions. input/outputs. pump. Distinct areas of operation are also identified.1-34 Module 1 – Introduction Object oriented Development Process. This process sets up the standards for the supervisory application and for any applications that are created in the future. such as a level transmitter LIC101. security and alarms and events for the device. As templates are dropped into their individual plant areas. The Application Server is a fully distributed system. Wonderware Training . The model created in the ArchestrA IDE can now be deployed to the computers that will host the application. history configuration. 8. 3. This can also be done using the Smart-Symbol functionality contained in InTouch 9. Graphics are then configured using InTouch®. represent specific computers that are used to host objects when they are deployed. That way the display graphics are also object-oriented and tightly coupled to the plant model. 7. Once the plant model is captured. an object instance is created that is linked back to the template. Changes made to Templates can be propagated to the "Child Objects" linked to the Templates. this can be done once in the template. and the changes can automatically propagate to all the operator displays in the plant.Part 1 1-35 . if the units associated with a level transmitter need to change from gallons to liters. maintenance of the system is easy. For example. Once the application is developed.Section 2 – Wonderware System Platform 10. System Platform . One or more networked PC’s that constitute an automation system. Wonderware Training . you have not yet created a Galaxy on the computer shown in the GR Node Name box.1-36 Module 1 – Introduction What is a Galaxy? It’s important to understand what a Galaxy is before one is created. A Galaxy is the entire application. In other words. This dialog box is comprised of three groups of options: z Galaxy Repository/Galaxy connect selections: This consists of the GR Node Name and Galaxy Name boxes. z Licensing information If the Galaxy Name box is empty. the ArchestrA IDE cannot be started in a Galaxy-neutral state. Before you can start the ArchestrA IDE. z Action buttons: Connect. Delete Galaxy. About and Cancel. And a Galaxy Repository is the software sub-system consisting of one or more Galaxy Databases. the Connect to Galaxy dialog box is displayed. When you attempt to start the ArchestrA IDE. Creating a Galaxy Each ArchestrA IDE session requires connection to a specified Galaxy. It defines the name space that all components and objects live in and defines the common set of system level policies that all components and objects comply with. A Galaxy Database is the relational database containing all persistent configuration information for all objects in a Galaxy. you must either browse for a Galaxy on another node or create a new Galaxy. the complete ArchestrA system consisting of a single logical name space and a collection of WinPlatforms. New Galaxy. AppEngines and objects. cab: Creates a Galaxy that includes only the object needed for tag-based Managed InTouch applications. both with full access to everything). If you previously created more than one Galaxy on the GR node shown.cab) at the end of the process and makes it available to this list.cab: Same as Default Galaxy.Section 2 – Wonderware System Platform All new Galaxies are created with no security. It does not creates a backup at the end. the Galaxy’s name is automatically shown. Reactor_Demo_Application_Server.cab) to create the galaxy.Part 1 1-37 . System Platform .cab: Creates a Galaxy with the Reactor Demo based on a System Platform application. but uses the backup file (. both with full privileges) and one security group (Default). Base_InTouch. making the process faster. When creating a new Galaxy. It also creates a backup file (. They also have the following characteristics: two users (DefaultUser and Administrator.cab: Creates a Galaxy with the Reactor Demo based on a tagbased Managed InTouch application. Base_Application_Server. Click Connect to start the ArchestrA IDE and to connect to that Galaxy. two security roles (Default and Administrator. If you previously created one Galaxy on the GR node shown. Choose the desired Galaxy from the Galaxy Name list and click Connect to start the ArchestrA IDE and to connect to that Galaxy. you must select the appropriate Galaxy type: Default Galaxy: Creates a Galaxy that includes all objects needed for a System Platform application. Reactor_Demo_InTouch. the most recently accessed Galaxy name is shown. 1-38 Module 1 – Introduction – Intentionally left blank – Wonderware Training . Lab 1 – Creating a Galaxy Lab 1 – Creating a Galaxy Introduction This lab illustrates the steps necessary to create a Galaxy and connect to it with the ArchestrA IDE. Objectives Upon completion of this lab you will be able to: z Create a Galaxy z Use the ArchestrA IDE to connect to your Galaxy System Platform .Part 1 1-39 . Throughout this class you will use this Galaxy to develop a sample application. Create a new Galaxy named TrainingGalaxy. please refer to the Detailed Lab Instructions on subsequent pages. b. For detailed instructions. Create and Connect to a new Galaxy a.1-40 Module 1 – Introduction Summary Lab Instructions Following is a summary of the general steps you will complete for this lab. Connect to TrainingGalaxy. See the next page for Detailed Lab Instructions Wonderware Training . 3. The GR node name field will reflect the name of the local computer. Start the ArchestrA IDE by selecting Start / All Programs / Wonderware / ArchestrA IDE. The New Galaxy dialog box is displayed. 2. Click the New Galaxy button to create a new Galaxy. System Platform .Part 1 1-41 .Lab 1 – Creating a Galaxy Detailed Lab Instructions Following are detailed lab instructions for completing this lab. please refer to the Summary Lab Instructions on the previous page(s). The Galaxy name drop-down list is initially empty since there are no Galaxies created in this node. Create a Galaxy 1. This will display the Connect To Galaxy dialog box. For a summary of instructions. 1-42 Module 1 – Introduction 4. 5. This must be the node that contains the Galaxy Repository (the name of the Host computer). Enter TrainingGalaxy in the Galaxy name field. 7. Wonderware Training . Verify Base_Application_Server.cab is selected in the Galaxy Type field. Click the Create button to continue. Click Close. 6. The Create Galaxy dialog box will display indicating the Galaxy creation progress. When the galaxy creation process is complete the Close button will enable. Lab 1 – Creating a Galaxy At the Connect To Galaxy dialog box the name of the newly created Galaxy. System Platform . TrainingGalaxy. 8. is displayed in the Galaxy name drop-down list. This closes the Connect To Galaxy dialog box and displays the ArchestrA IDE. Click the Connect button.Part 1 1-43 . 1-44 Module 1 – Introduction – Intentionally left blank – Wonderware Training . Section 3 – The ArchestrA IDE Section 3 – The ArchestrA IDE Section Objectives z Discuss ArchestrA IDE z Introduce the Template Toolbox and Application Views z Discuss the object Check-in/Check-out process. This section provides an overview of the ArchestrA IDE, the Template Toolbox and Application Views and the object Check-in/Check-out process. The ArchestrA IDE User Interface The ArchestrA IDE is the integrated design and development tool from which all ArchestrA objects are configured and deployed to target PCs. It is used to maintain and configure the objects that comprise your application and the underlying infrastructure that supports your application. Using the ArchestrA IDE, you can import new types of objects in to the Galaxy Repository, configure new ones, and deploy them to PCs on your network. Multiple users can work concurrently on different sets of objects from different ArchestrA IDEs. The ArchestrA IDE can be installed on any PC that has ArchestrA’s Bootstrap software installed. System Platform - Part 1 1-45 1-46 Module 1 – Introduction Key Functions of the ArchestrA IDE The Main Window is the user interface in which you can create your application and deploy it to your enterprise. This main window provides the key platform where a wealth of functionality capability can be accessed and configured. Some of these key functions include the following. z z z z Galaxy Configuration Connect to an existing Galaxy on the network Create a new Galaxy Destroy a Galaxy Import/Export Objects (aaPackage, .csv) Import/Export script function libraries (.dll, .tlb, .olb, .wdf, .aaSLIB) Security Configuration Configure User security Configure Object security Object Configuration Create new objects Check out objects Edit objects Configure Historization through objects Configure objects for Alarms and Events Extending object functionality Check in objects with comments Deploy/undeploy objects Propagate changes to runtime objects View object’s configuration errors/warnings Upload runtime changes to Galaxy database IDE Configuration Set user preferences Create a Tool Box As the main aspects of the ArchestrA IDE Main View (for example, Menu options, Toolbars, Template Toolbar and Application Views, etc.) are identified and discussed, they are elaborated on in greater detail as to how these Key Functions can be used Wonderware Training Section 3 – The ArchestrA IDE The ArchestrA IDE User Interface Main View The Main Window of the ArchestrA IDE is composed of the following components: z Title bar z Menu bar z Toolbar z Template Toolbox z Application Views z Object Editor Area z Operations View z Status bar When you first log in to the ArchestrA IDE, the Main Window displays the Template Toolbox and Application Views docked on the left, the Toolbar docked at the top, and the Object Editor Client Area on the right. Upon subsequent logins by the same user, the Main Window displays the positions for these controls as they were at the end of the last log in session. The Title Bar displays the name of the utility. The other elements of the Main Window are described below. System Platform - Part 1 1-47 1-48 Module 1 – Introduction Menu Bar The ArchestrA IDE Menu Bar is a dynamic element that includes the following menus: Galaxy, Edit, View, Object, Window, and Help. Depending on what object or Main Window element is in focus, what condition it is in, or whether certain functions are logically permitted, some menu commands may be deactivated. The following is a description of menu commands. Galaxy menu – Providing Galaxy or user-level global commands, the Galaxy menu includes the following: z New – For creating a new Instance, Derived Template, or Template Toolset. z Open – For opening the editor of the object in focus. The editor appears in the Object Editor Client Area of the Main Window. z Open Read-Only – For opening the editor of the object in focus, but only in read-only mode. There are several conditions that can place this restriction on opening an object’s editor. One example would be when the object is checked out to someone else. Additionally, if you do not have configuration permissions for the object in question. z Close – For terminating the object edit session in focus. This command is available only if the editor for one or more objects is open. If the object has been modified, you are prompted to save the new data to the Galaxy Repository. The same validation scenario applies as described in the Save menu command. z Import – For importing Automation Objects, Script Function Library, and Galaxy Loads. z Export – For exporting Automation Objects, All Automation Objects, Script Function Libraries, and a Galaxy Dump. Wonderware Training Section 3 – The ArchestrA IDE z Save – For saving the currently-opened object’s configuration, which is persisted to the Galaxy Repository. This command is available only if the editor for at least one object is open and configuration data has been modified in at least one of them. Validation occurs on the editor level; if errors or warnings are identified during validation, they are displayed in a message box and the user is given the choice to continue saving or cancel the save. z Save All – For saving ALL the currently-opened object’s configuration, which is persisted to the Galaxy Repository. This command is available only if the editor for at least one object is open and configuration data has been modified in at least one of them. Validation occurs on the editor level; if errors or warnings are identified during validation, they are displayed in a message box and the user is given the choice to continue saving or cancel the save. z Configure – For configuring Security, the Time Master, or to Customize Toolsets. z Galaxy Status – For viewing information relating to the Galaxy such as the total number of instances, total number of templates and other related Galaxy information. z Properties – For viewing the properties of the object in focus. z Change Galaxy – For selecting a Galaxy repository that is different from the one to which you are currently connected, this command opens the Select Galaxy dialog box. z Change User – For changing the logged in user of this ArchestrA IDE, this command opens the ArchestrA IDE Login dialog box. Edit menu – providing edit capabilities, the Edit menu includes the following commands: z Rename – For renaming the object in focus. z Rename Contained Name – For renaming the contained name of the object in focus. z Delete – For deleting the object in focus. z Find – For locating specific items of information based on a variety of configurable search criteria. z User Information – For viewing the Prompts, Initial Scan State, Scan State Defaults, and User Defaults. System Platform - Part 1 1-49 1-50 Module 1 – Introduction View menu – similar to a standard Microsoft View menu, this menu provides commands for controlling the Main Window display. On your initial ArchestrA IDE login, all four Main Window components listed below are visible (checked) and the client language is set to the one chosen during installation. Subsequent logins by the same user implement the previously saved ArchestrA IDE settings. This menu includes the following commands: z Model – For bringing focus to the Model view of the Main Window. z Deployment – For bringing focus to the Deployment view of the Main Window. z Derivation – For bringing focus to the Derivation view of the Main Window. z Template Toolbox – For bringing focus to the Template Toolbox of the Main Window. z Graphic Toolbox – For bringing focus to the Graphic Toolbox of the Main Window. z Operations – For displaying the progress and results of a set of Galaxy database operations that can be done at the same time as other application-building operations. z Synchronize Views – For specifying that a selected object stay selected as you move through the views. z Reset Layout – For resetting everything back to its original default locations. z Toolbars – For toggling on/off the Toolbar of the Main Window. z Status Bar – For toggling on/off the Status Bar of the Main Window. Wonderware Training Section 3 – The ArchestrA IDE Objects menu – the Objects menu includes the following commands: z Check-Out – For checking out an object from the Galaxy Repository so that you can maintain sole authority to configure that object. Nobody else connected to the Galaxy can affect the configuration of the object until you have checked it back in to the Galaxy. z Check-In – For checking in to the Galaxy Repository an object which was previously checked out. This command opens the Check-In Object dialog box. z Undo Check-Out – For reversing a previous check-out without affecting the configuration of the object in question. The result of this command is the object can be checked out by anyone connected to the Galaxy. z Override Check Out – Use this command to disable the checked out flag on the selected object. This command typically requires special security permissions and should be used only in those circumstances in which it is certain that object configuration is not being done by the user who originally checked out the object. If the object’s editor is currently open, the override function fails. z Validate – For checking allowable attribute value ranges, compiling its scripts, updating and binding its references, validating its extensions, updating its status, and validating other configuration parameters that may be unique to the object. Note: See “Validating Objects” on page 1-54 for additional information regarding this feature. z View in Object Viewer – For allowing the evaluation of attributes and conditions when the objects are deployed. It provides a visual display of the actions being executed. z Deploy – For deploying the object or objects currently in focus to the nodes their configurations denote, this command opens the Deploy Object dialog box. z Undeploy – For undeploying the object or objects currently in focus from the nodes that currently host them, this command opens the Undeploy Object dialog box. z Assign To – For assigning objects to a different platform. z Unassign – For unassigning objects to a different platform. z Set As Default – For setting a System Object, such as WinPlatform or AppEngine, as the default for assigning appropriate objects. System Platform - Part 1 1-51 1-52 Module 1 – Introduction z Upload Runtime Changes – For uploading a deployed object’s configuration to the Galaxy Repository. This function is useful when changes to certain attributes (Writeable_UC, Writeable_UC_Lockable, Writeable_USC, Writeable_USC_Lockable) are made in the configuration environment, but at a later time, the runtime object’s configuration is determined to be preferred. Select the desired object and click Upload. The runtime configuration overwrites the configuration environment data in the Galaxy Repository. Window menu – For manipulating the Object Editor Client Area of the Main Window, this menu is available if at least one object’s editor is open. This menu includes the following commands: z Cascade – Standard Windows command for cascading (layering) multiple object editors. z Tile Horizontally – Standard Windows command for displaying the editors horizontally. z Tile Vertically – Standard Windows command for displaying the editors vertically. z Close All – For closing all open object editors. If any data was changed on any editor, you are prompted to save those changes individually for each editor. z Windows – For selecting through a separate dialog box which editors to activate or how they are to be displayed. Help menu – similar to a standard MS Help menu, the ArchestrA IDE Help menu includes the following commands: z Help Topics – Standard Help command, used for opening the ArchestrA IDE’s HTML Help documentation system. z Object Help – Provides information about the object in focus. z About ArchestrA IDE – Opens the About ArchestrA IDE dialog box which provides software version and copyright information. Operations Pane The Operations pane displays the progress and results of a set of Galaxy database operations that can be done at the same time as other application-building operations. Currently, validating the configuration of objects is the only operation that uses this pane. Important! Validation can be done on both templates and instances, but only on those that are checked in. Wonderware Training Section 3 – The ArchestrA IDE Validating an object checks its configuration; that includes checking allowable attribute value ranges, compiling its scripts, updating and binding its references, validating its extensions, updating its status, and validating other configuration parameters that may be unique to the object. Note: A primary use of validation is to validate objects that were configured prior to the importing of relevant script libraries. Such objects would have a status of Bad. Validating these Bad objects corrects references to the script libraries and updates their status to Good. To display the Operations pane, either z Right-click on an object (multi-select is allowed) and click Validate on the shortcut menu. z Click Operations on the View menu. The following pane is then displayed in the Main Window. To hide the Operations pane, click the X close button. During the validation of an object, its icon and name are displayed along with the status of the operation. The status of the object (Status column) is dynamically represented by an icon: no icon indicates Good status, an Error or Warning icon indicates either of those states. When validation is complete, the Command Result column displays either a "Succeeded" or "Failed" message, which may contain additional information about the validation results. Note: You can validate all objects in the Galaxy by running the Validate operation on the Galaxy object. In that case, Command Result messages are displayed after all objects in the Galaxy are validated. If multiple objects are validated, the list of objects is sorted by object name. You can click a column heading to re-sort according to alphanumeric or icon groupings. Use the check mark column heading to sort for objects that are checked out and, therefore, cannot be validated. The object’s icon indicates checked out status with a check mark. You can perform any operation on an object listed in the Operations pane that is possible in the Template Toolbox or Application Views. Right-click on the object and select commands from the shortcut menu. You can open an object's editor from the Operations pane by double-clicking it. To view an object’s properties (particularly, the Errors/Warnings page of the Properties dialog box), double-click its status icon. You can also copy a line of text in the Operations pane list by clicking Copy from the shortcut menu (or Ctrl+C). The Operations pane, like the Template Toolbox and Applications Views, is also updated as the status and conditions of objects in the Galaxy change. System Platform - Part 1 1-53 1-54 Module 1 – Introduction Validating Objects Each object in a Galaxy has a set of possible configurations that authorizes its proper use in an application. That set of configuration possibilities is validated by the object either while you are configuring it or when you save that configuration to the Galaxy database. Validation of an object’s configuration includes checking allowable attribute value ranges, compiling its scripts, updating and binding its references, validating its extensions, updating its status, and validating other configuration parameters that may be unique to the object. Typically, each option on an object’s editor that requires a string or numeric input has an allowable range of inputs. If you type an input outside the allowable range and then attempt to change editor page, close the editor or save the object’s configuration, a message is displayed about the input error indicating the allowable range. Some configuration settings are dependent on associations with external components, such as script function libraries and relative references to other objects’ attributes. The status of these external components can change, perhaps rendering some capability of the object inoperative. For instance, an object may refer to a value of an attribute of another object, which is subsequently deleted. That scenario would break the configuration of the remaining object. Objects may be configured prior to the importing of associated script function libraries. In each case, the object would have a status of Bad. You can verify that an object’s configuration is valid and reset its status to Good by manually validating it with the Validate command on the Object menu. Manual Validation To manually validate one or more objects, select the object(s) and click Validate on the shortcut menu (by right-clicking the object) or on the Object menu. You can select objects from the Template Toolbox, the Application Views or the Find dialog box. Important! Manual validation can be done on both templates and instances, but only on those that are checked in. Using the Find dialog together with the Validate command is an especially useful tactic. For instance, you can find objects in Error state, select them all, right-click on one of them, and click Validate on the shortcut menu. The Validate command opens the Operations pane in the ArchestrA IDE. See section on Operations Pane for more information. Only one validation operation can be run at a time. But you can multi-select more than one object for each validation operation. The set of objects are validated serially. Note: Validation operations cannot be canceled. Continue using the ArchestrA IDE to perform other operations, if necessary, while validation is ongoing, including work on objects in the validation set. If an object is not available for validation when the command is initiated on it, validation is not be performed. Also, if validation is in process on an object, other operations initiated by you on the object fail. Failure to perform validation on an object is indicated in the Command Results column of the Operations pane. To validate all objects in the Galaxy, validate the Galaxy object. Wonderware Training This command opens the standard Microsoft Open dialog box with the default file extension (. is described afterwards. System Platform . if errors or warnings are identified during validation. One or more files can be selected at a time. This command is available only if the editor for at least one object is open and configuration data has been modified in at least one of them. this command opens the Select Galaxy dialog box.aapdf). Import Automation Object – For importing a template definition file (. Afterwards. Open – For opening the editor of the object in focus.aapdf). It is shown below. Nobody else connected to the Galaxy can affect the configuration of the object until you have checked it back in to the Galaxy. they are displayed in a message box and the user is given the choice to continue saving or cancel the save.Part 1 1-55 . Validation is done with regard to the selected file(s) being a valid template definition file. one or more new objects is added to Galaxy Repository and the Template Toolbox displays the new object(s). Undo Check-Out – For changing an object’s status from checked out to checked in. After the file(s) is imported. which is persisted to the Galaxy Repository. Properties – For accessing the properties of the object in focus. from left to right. Check-In – For checking in to the Galaxy Repository an object which was previously checked out. The description titles associated with each below are based on the tool tip that appears when you hover over each Toolbar icon. A progress indicator then provides a visual view of the importing process. Check-Out – For checking out an object from the Galaxy Repository so that you can maintain sole authority to configure that object. Undo Check Out places a notation in the object’s change log. Find – For locating specific objects based on a variety of configurable search criteria. any user can check out and configure the object. and each icon. Changes you made to the object when it was checked out are backed out. Change Galaxy – For selecting a Galaxy repository that is different from the one to which you are currently connected. Validation occurs on the editor level.Section 3 – The ArchestrA IDE Toolbar The ArchestrA IDE Toolbar consists of icons for quick access to frequently used commands. This command opens the Check-In Object dialog box. Save – For saving the currently-opened object’s configuration. An error message is displayed when the object’s configuration editor is open. The editor appears in the Object Editor Client Area of the Main Window. Delete – For deleting the object in focus. Template Toolbox – For displaying the Template Toolbox in the Main Window. used for opening the IDE’s HTML Help documentation system. The availability of the previously described icons is dynamic depending on which part of the ArchestrA IDE’s Main Window is in focus. this command opens the Customize Toolsets dialog box. Model View – For displaying the Model view in the Main Window. Depending on these conditions. or whether something has been changed in the configuration environment. IDE Help – Standard Help command. Operations View – For displaying the Operations View in the Main Window. some icons may be unavailable. whether a particular action is allowed. Wonderware Training . this command opens the Deploy Object dialog box. Using this command opens the Configure User Information dialog box. Derivation View – For displaying the Derivation view in the Main Window.1-56 Module 1 – Introduction Deploy – For deploying the object or objects currently in focus to the nodes their configurations denote. User Information – For configuring global user preferences for the ArchestrA IDE. Graphic Toolbox – For displaying the Graphic Toolbox in the Main Window. Undeploy – For undeploying the object or objects currently in focus from the nodes that currently host them. Galaxy Status – For accessing the status of the current Galaxy. Customize Toolsets – For maintaining the toolset categories displayed in the Template Toolbox. this command opens the Undeploy Object dialog box. Deployment View – For displaying the Deployment view in the Main Window. Click the toolset bar to open that toolset and display the object templates contained in the chosen toolset.Part 1 1-57 . Once a user has logged in to the Galaxy Repository. which contain object Templates.Section 3 – The ArchestrA IDE Template Toolbox This part of the Main Window hosts object template toolsets. System Platform . the Template Toolbox is loaded with the toolset that was displayed during the last login session. the default toolset with default object templates is opened. The Template Toolbox contains separate toolset bars for each toolset in the Galaxy Repository. When you first log in. from which instances are created or other object templates are derived. An example of a Template Toolbox view is as follows: The items with “$” prefixes are templates or templates which were derived from other templates. All Object instances belong to one and only one area. z Derivation View . Areas can be hierarchical. To unassign an object currently assigned to another object. This represents the area based relationships of each of the objects. valves. This is displayed using the name that was given to the Galaxy when it was created. The Objects are organized into Areas to represent the physical plant layout.. z Deployment View . The above diagram represents the tree view that is displayed within the model view.This view defines the Object instance relationship to the PC that the Object code is running on. so an Area can host Application objects. drag-and-drop it.and Objects that contain Objects If the instance does not have a defined host then the instance will be displayed under the "Unassigned Area" root of the tree. Subsequent ArchestrA IDE sessions retain the user’s last setting. This means that an area can contain an area and the parent area collects the statistics for all its Objects and its sub-areas. tanks. DeviceIntegrationObjects.1-58 Module 1 – Introduction Application Views The Application Views pane displays the galaxy configuration based on how an object is related to other objects: z Model View . Model View The Model view presents objects in terms of their physical or containment relationships. The diagram is read left to right and top to bottom.This view displays what the derivation path is from Base Template to Instance. This view most accurately represents an application perspective of the processes that users are emulating: for instance. An example of a Model view is as follows: Galaxy Name This view is used to display the assignment of Object Instances to their area. drag-and-drop it to the Unassigned Area folder. The Model view is the default display when the ArchestrA IDE is first started. The top of the tree is the GalaxyObject. pumps and their relationships based on containment. and allows you to organize them through a folder structure. To assign one object to another. All templates and instances are displayed in this view. specific process areas. Wonderware Training .This defines the Object relationship to the automation scheme layout. “The Deployment Model”. The diagram is read left to right and top to bottom. The deployment view is used to display the assignment of the automation scheme to physical machines and process engines. Conversely. Also. If the instance does not have a defined host then the instance will be displayed under the "Unassigned Host" root of the tree. to unassign an object. This represents the topology view based on which PC and Engines the objects run on. an AppEngine can host an Area. This view does not represent your physical plant environment. To assign an object to another. so a Platform can host an AppEngine. drag-and-drop it onto the host object. Section 2. This view describes where the objects are running. page 2-13.Section 3 – The ArchestrA IDE Deployment View Note: More detail of the Deployment View is discussed in Module 2. An example of a Deployment view is as follows: This diagram represents the tree view that is displayed within the deployment view. An inappropriate assignment match is not allowed. drag-and-drop it to the Unassigned folder. System Platform .Part 1 1-59 . Unlike the Model and Deployment views. Default objects are displayed in bold. The base templates created within the ApplicationObject Toolkit is on the left. child objects are listed in alphabetical order. Under each branch of the tree. An example of a Derivation view is as follows: This view contains all templates and instances. The derivation view is the only tree view that shows both templates and instances. You can perform other commands on objects in this view.1-60 Module 1 – Introduction Derivation View The Derivation view presents objects and templates in terms of their genealogy relationships. and derived templates and object instances are appropriately indented based on their relationship with parent objects. Templates with no associated instances are grouped together under Unused Templates. The tree is displayed in alphabetical order at each level within the tree. as all other templates and instances are derived from these an extra level will be added to the tree. you cannot drag-and-drop objects from one branch to another in the Derivation view. The parent-child relationship between a template and a downstream object cannot be changed dynamically. Wonderware Training . Base templates are shown in the second level of the tree structure. The purpose of this view is to display to the user from which templates and derived templates an instance inherits its properties. The items with “$” prefixes are templates or templates which were derived from other templates. there are several states that are reflected in the way the icons for that particular object are represented. It allows you to define graphics as a standard that you can re-use. Symbols in the Graphic Toolbox can later be used by Automation templates and instances. The Graphics Toolbox shows a treeview of toolsets which contains ArchestrA Symbols and Client Controls. For instance. called Toolsets. such as a generic valve symbol. It lets you organize your symbols in special folders. You can store ArchestrA Symbols here. An example of a Graphic Toolbox is as follows: Object Icons When viewing the objects. if you only want to use them in InTouch and not in any other Automation object content.Part 1 1-61 . notice the different types of icons in the following example: System Platform .Section 3 – The ArchestrA IDE Graphic Toolbox The Graphic Toolbox contains the global ArchestrA graphics that can be used in the Galaxy. InTouch status indicator: Icon Description Applies to InTouchViewApp deployment when files are being transferred.1-62 Module 1 – Introduction Three Types of Status Indicators There are three kinds of indicators that accompany object icons: z deployment status (for instances only) z configuration status (for templates and instances) z redundancy status (for instances only). its redundant pair not deployed pending required software update. its redundant pair not deployed. Deployment status indicators include: Icon Description Undeployed (see AnalogDevice_001 and DDESuiteLinkClient_001 in example above) (no indicator) Deployed (see AppEngine_002 in previous example) Deployed with configuration changes (see AppEngine_001 in example above) Deployed with software update required (see WinPlatform_001 in example above) Configuration status indicators include: Icon Description Configuration warning Configuration error (no indicator) Configuration good Redundancy status indicators include: Icon Description AppEngine undeployed. AppEngine deployed. AppEngine deployed. its redundant pair deployed. Wonderware Training . its redundant pair not deployed pending configuration updates. AppEngine deployed. right-click on the object and select Check Out. On the Object menu.Part 1 1-63 . If any of the objects you attempt to check out are already checked out to other people then a dialog appears indicating their status. Optionally. and a change history for each object can be reviewed. Note: All ArchestrA IDEs connect to a Galaxy display current status for each object in the Galaxy. b. You can also back out changes made to the object through the undo check out feature.Section 3 – The ArchestrA IDE Checking Out/Checking In Objects Users of the ArchestrA IDE reserve an object for making private changes by checking it out. click Check Out. the operation is ignored. To check out unreserved objects a. A check mark is shown next to an object’s icon in the ArchestrA IDE. System Platform . making them unavailable for check out to other users. The Galaxy marks the objects as checked out to you. Select them in the Template Toolbox or Application Views. you can open its editor only in read-only mode. an object is automatically checked out to you when you open its configuration editor. Also. Or. if some of the objects you attempt to check out are already checked out to you. and it updates the object’s revision history. If the object is already checked out. The user can then modify the object and save private versions of it before releasing it to the Galaxy (check in) for others to see and use. on the Object menu. The user responsible for an operation at a specific date and time is listed on the Change Log page. click Check In Wonderware Training .1-64 Module 1 – Introduction To determine an object’s status and history. To check an object in to the Galaxy database a. open the Properties dialog box. Select it and. Comments typed by a user in the Check In dialog box (see image later) are listed under the Comment heading. b. The Check In dialog box is displayed. right-click on the object and select Check In.Part 1 1-65 . Enter a comment (optional) and click OK to finish checking in the object. click User Information on the Edit menu and select Ask for Check In Comments in the Configure User Information dialog box. Changes you made to the object when it was checked out are backed out. Click Cancel to terminate the check in process. The check out/ check in function places a notation in the object’s change log. If you close the editor without making any changes to the object’s configuration. The Check In dialog box enables you to provide comments about configuration changes made while the object was checked out. It is comprised of the following options: z Comment: Use this box to enter your comments about configuration changes made to the object. the check in function can be combined with the save and close functions of the editor. Afterwards. Override Check Out Two other ArchestrA IDE commands related to the concept of check out and check in include: z Undo Check Out: Use this command to change an object’s status from checked out to checked in. Undo Checkout. the override function fails. check in is ignored.Section 3 – The ArchestrA IDE Or. z Don’t Prompt for Check-In Comments in the Future: Use this check box to turn off the comment feature when checking in objects in the future. Use Undo Check Out to effectively check in the object without affecting the change log. This command typically requires special permission. System Platform . If you decide to reinstate this feature. If the object’s editor is currently open. If an object you are attempting to check in already is checked in. This command is not allowed when the object’s configuration editor is open. a check in operation effectively does an undo check out (no change log recorded). Note: If the object was originally checked out to you when you opened its configuration editor. any user can check out and configure the object. and should be used only in those circumstances in which it is certain that object configuration is not being done by the user who originally checked out the object. The Galaxy indicates whether any of the objects you are attempting to check in are check-out to other people. z Override Check Out: Use this command to disable the checked out flag on the selected object. To add an object to the Object Viewer Watch list. Determining Galaxy Status You can see an overview of the condition of your Galaxy before you deploy. This lets you know if you have objects that are in warning or error status. click Galaxy Status. you can select all or some of them and save them to an XML file. You can also add a second Watch window that shows as a separate tab in the bottom of the Viewer. undeployed instances with changes. b. The Galaxy Status dialog box appears: You see information about total instances. Once you have a list of attributes in the Watch Window. total templates. Refer to the Platform and Engine documentation for information about attributes that may indicate system health. Connect to the Galaxy. page 2-25 The Object Viewer monitors the status of the objects and their attributes and can be used to modify an attribute value for testing purposes. Click OK. When prompted to enter the Attribute Type. and object you have checked out. You can save a list of items being monitored. deployed instances with changes. Section 3. On the Galaxy menu. Right-click on the Watch window to save the selection or load an existing one. objects that are checked out. To determine the status of a Galaxy a.”. These attributes provide alarm and statistics on how much load a platform or engine may have when executing application objects or communicating with I/O servers and other platforms. Wonderware Training . c. you can manually type the object and attribute names into the Attribute Reference box in the menu bar and select Go. objects that have an error or warning state.1-66 Module 1 – Introduction Object Viewer Note: The Object Viewer is explained in more detail when the Runtime Environment is discussed in Module 2. “The Runtime Environment. press the OK key. "): ObjectName. holding tanks.Section 4 – Automation Objects Section 4 – Automation Objects Section Objectives z Introduce the various objects in the ArchestrA IDE z Identify when and how they are used z Explain how to create and configure instances of objects z Introduce and explain the hosting and containment relationships of objects This section provides an explanation of the various types of objects utilized in the ArchestrA IDE and an overview of when and how they are used.Part 1 1-67 . security/access control and graphics. constructs or simply system parts of the Galaxy z Instance objects: these are the runtime objects and represent the specific items in the environment. scripting.AttributeName An object reference cannot exceed 32 characters (including the $ character used in template names) and must contain at least one non-numeric character. history. This self-contained approach dramatically reduces the engineering time associated with the initial creation and maintenance of objects. and so on There are Domain objects and System objects: z z Domain objects: z Application objects: represent the physical equipment or logical constructs in the Galaxy z Device Integration objects: represent the communication with the external devices System objects: represent the parts of a Galaxy and not the domain they are monitoring and/or controlling Attributes and Attribute References Every piece of configuration and data available within an object is called an attribute. alarm/event configuration. There are Template objects. Additionally. By keeping all object configuration tightly related and contained within the object itself. it consists of an object's reference string plus an attribute's reference string. such as I/O definitions. is done through the attributes of the specific object. logic (scripting). separated by a dot (". history configuration. Objects Automation Objects An automation object allows the encapsulation of all configuration elements of each piece of your system. there is no need to use multiple editors to make sure that the alarming. I/O definitions. Attribute references refer to data within an object's attributes. Interaction with objects. like processes. System Platform . and Instance objects: z Template objects: these are high-level definitions of the objects: equipment. in configuration or runtime. it describes how to create and configure instances of objects and the hosting and containment relationships of objects. and security are consistent for an object. devices. valves. where A1 is the container of B2. A1 and B2. Object Categories Within the Template Toolbox there are three main categories of objects. and object A1 has an attribute named B2. For example. if you have two objects. or the B2 object contained in A1.B2 could either refer to the B2 attribute within A1.1-68 Module 1 – Introduction You should avoid assigning objects and attributes the same names because this may result in an attribute reference can refer to two different things. the reference string A1. These are: z z z Application objects AnalogDevice Boolean DiscreteDevice Double FieldReference Float Integer Sequencer SQLData String Switch UserDefined Device Integration objects DDESuiteLinkClient InTouchProxy OPCClient RedundantDIObject System objects AppEngine Area InTouchViewApp ViewEngine WinPlatform Wonderware Training . z Supports Rate of Change (ROC) alarming on PV for both positive-slope and negativeslope ROC. manual). These devices represent real objects in your environment. When configured as an AnalogRegulator. with the difference that the SP value for deviation alarms is based on the SP value read from the controller. bad PV alarming. the Archestra AnalogDevice configured as type Analog can be configured as an analog input (with no output capability) or as an analog output (with output capability). The Analog supports the basic alarming capabilities of level alarms.Part 1 1-69 . It provides SP output capability with an optional separate feedback address for the SP. both linear and square root conversions. this Template is very similar in functionality to the Analog Tag within InTouch today. Lo. z Supports minor and major deviation alarming when PV deviates from SP. allows the PV to be written by a user if the PV mode is set to Manual. not the requested SP that is output to the external controller. ROC alarms and deviation alarms from a SP target value. All the alarm capabilities of the more basic AnalogDevice object are included. this Template provides both PV and SP monitoring of an external PID controller. z Supports HiHi. Hi. and LoLo level alarms on PV with both value and time deadbanding. In addition.Section 4 – Automation Objects Application Objects Application Objects are used to create devices in your Galaxy. z PV Override – when true. and separate output reference capability. Other controller-oriented features include controller mode (manual vs. Some of the common features of the AnalogDevice regardless of type (Analog or AnalogRegulator) are: z Supports optional scaling of input and output. cascade). For data integrity. PV mode (auto. Just as the InTouch Analog can be configured for Read or ReadWrite. System Platform . The AnalogDevice can be configured to have a personality of one of the two basic types: z Analog – a basic Analog Input or Analog Output z AnalogRegulator – an analog controller that represents an external PID controller When configured as Analog. z Adds SP read and write capability with optional separate read-back address. the value of SP always represents the value read from the external controller. AnalogDevice Object This object can act as either an Analog Input (with optional Output) or as an AnalogRegulator that provides an external representation of a PID controller that exists elsewhere (typically a PLC or DCS). the Analog in ArchestrA provides additional functionality such as PV override enable. z CtrlTrack allows a PLC to notify the Discrete Device that the PLC is in control of the state of the actual physical device. and ‘Active2’) plus two additional states ‘Fault’ and ‘InTransition’ which cannot be commanded. When its monitored discrete inputs change. If configured this way. This object will automatically display the state as “Bad” if the quality of any of the inputs is bad or the inputs are in an invalid combination determined at configuration time by the application developer. All those states with the exception of ‘InTransition’ and 'Passive' can trigger a state alarm. ‘Manual’. These devices have two or more physical states (for example Open. z Supports the three input modes ‘Auto’. ‘Active1’. Some of the features of the Discrete Device object are as follows: z Input and Output states of the DiscreteDevice object are totally independent of each other and can be configured as required by the user’s application. anything can write to it. Double Object The Double object is derived from the FieldReference object. z Input and Output can be linked by alarms. When a Discrete Device is commanded to a new state. Their actual state is monitored via a combination of discrete inputs. FieldReference Object The FieldReference object is the generic object for accessing data from an external device. the Command attribute of the DiscreteDevice object just tracks PV (i. often coded 1 and 0 respectively. since its state is represented by a continuous signal rather than discrete signal. Note that a control valve has a continuous position represented by 0 to 100% and is not typically represented with a Discrete Device. the Discrete Device determines the new actual state of the equipment and sets the “PV” (process variable) appropriately. When in Manual. z Supports devices with two to three commandable states (‘Passive’. which allow the object to detect CommandTimeout and UncommandedChange alarms. while for a valve they might be configured as “Open”. z Control Tracking – optional capability to read a Boolean control track flag from an external device or object. the state indicated by its inputs).e. it sets an appropriate combination of discrete outputs for that state. motors. the SP can only be written by other objects. In the case of a pump. When tracking is on. DiscreteDevice Object A Discrete Device is a general purpose Object that is used to represent a large class of physical equipment common in manufacturing such as pumps. and is no longer accepting commands. when devices unexpectedly change. “Closed”. When None. Boolean Object The Boolean object is derived from the FieldReference object and is used for evaluations that result in either of the truth values of ‘true’ of ‘false’.. Moving).1-70 Module 1 – Introduction z Initial Control Mode – When in Cascade. or “Moving”. Wonderware Training . z Supports the two control modes ‘Manual’ and ‘Cascade’. valves. Closed. or fail to change when commanded. and ‘Simulate’. The meaning of the states depends on the kind of Discrete Device. Through the use of the Discrete Device the operator is guaranteed that a value displayed on the screen is a good and reliable value. and conveyors. the SP is pure read-only and cannot be changed. This object can act as both the field input and a field output. the states might be configured as “Off” and “On”. and are optionally controlled using a combination of discrete outputs. a user can write the SP. com. execute. it only allows the value to be historized. This object can act as both a discrete input and a discrete output. The Switch Object can be configured into three basic access modes: z ReadOnly – Input object z ReadWrite – Output object with scanned Feedback z WriteOnly – Output The PV value can be historized.Part 1 1-71 . see the ArchestrA IDE documentation. You can use the UserDefined object in the following ways: z As a "container" for other objects. For detailed information on object containment. Integer Object The Integer object is derived from the FieldReference object. An object relationship in which one object is comprised of other objects is called containment. String Object The String object is derived from the FieldReference object. Sequencer Object The Sequencer object allows you to configure. SQLData The SQLData Object is an ArchestrA application object that can be used to store data to. You can use it to automate: z repetitive manufacturing procedures with a finite number of steps z supervisory processes with a finite number of steps Note: There is an Online Seminar available for the ArchestrA Sequencer Object. visit www. Containment allows you to group various objects together to make complex objects.com/training or call 1-866-WW-TRAIN (1-866-998-7246) or email Wonderware Training at training@wonderware. Float Object The Float object is derived from the FieldReference object. System Platform . and alarmed when abnormal. and retrieve data from a SQL Server database. UserDefined Object The UserDefined object is an empty object that you can use to create customized objects. and manipulate a sequence of operations associated with ArchestrA attributes within a Wonderware Application Server application. logged as an event.Section 4 – Automation Objects The FieldReference Object can be configured into three basic access modes: z ReadOnly – Input object z ReadWrite – Output object with scanned Feedback z WriteOnly – Output This object is very simple. To register. Switch Object The Switch object is the object for accessing data from a simple discrete (0/1) device.wonderware. The SQLData Object provides the means to map data in a SQL database to attributes in a Galaxy. You could create two DiscreteDevice object instances called "Inlet" and "Outlet" and configure them as valves. Note: A UserDefined object can only contain ApplicationObjects.statealarm = true. you could add a Boolean UDA called "StateAlarm.statealarm = false. you simply create an instance of the object. You would now have a UserDefined object that forms the complex Tank object. Section 4. and levels. see the common editor documentation. and include DINetwork Objects and DIDevice Objects. you might create a UserDefined object called "Tank" and use it to contain ApplicationObjects that represent aspects of the tank. and add ApplicationObjects to it while in the Model View. For example. endif. The containment hierarchy would be as follows: --Tank --V101 (Inlet) --V102 (Outlet) --LT103 (Level) The Tank object derived from the UserDefined object can be customized to raise an alarm when both the Inlet and Outlet valves are open. For example. Device Integration Objects A DeviceIntegration object (DIObjects) is an AutomationObject that represents communication with external devices. DIObjects run on an AppEngine. To edit the configuration of any contained objects. and add the following script: if me. a PLC or RTU) that is associated with a DINetwork Object.outlet == "Open" then me. The only indication of this containment structure is in the tree structure in the Template Toolbox or Model View. and create an AnalogDevice object instance called "Level" and configure an alarm to be triggered when it overflows.inlet == "Open" and me. A DIDevice Object is a representation of an actual external device (for example. which uses containment and has been extended to raise a specific process alarm. you must open the individual editors of those objects. The UserDefined object editor does not provide any indication of this containment relationship. For detailed information how to customize an object using these features. A more detailed discussion of the Device Integration Objects will take place later in this course in Module 2. such as pumps. else me. scripting. “Connecting to the Field” on page 2-39 Wonderware Training . valves. and attribute extensions. “Application Infrastructure”. z As a base object to extend through user-defined attributes (UDAs)." extend it with an alarm extension.1-72 Module 1 – Introduction To use the UserDefined object as a container object. A DINetwork Object is a representation of a physical connection to a DIDevice Object via the Data Access Server. when they’re undeployed. System Platform . Area Object The Area Object plays a key role in alarm and event distribution. check-out. This object is very simple. The key functionality of this object includes: z Calculating various statistics related to the node it’s deployed to. The InTouchVewApp object manages the check-in. One ViewEngine object can handle several InTouchViewApp objects. deletion. z Monitoring various statistics related to the node it’s deployed to. Areas can contain sub-Areas. when they’re deployed. These monitored attributes can be alarmed as well has historized. and deployment of an InTouch application. All AutomationObjects belong to an Area. startup and shutdown. You then create the application the same way you would if WindowMaker had been started from the InTouch Application Manager. These statistics are published in attributes. ViewEngine Object The ViewEngine object is used to host InTouchViewApp objects. it only allows the value of three attributes to be historized: z Active alarm counter z Unacknowledged alarm counter z Disabled (or silenced) alarm counter InTouchViewApp Object The InTouchViewApp object represents an InTouch for System Platform application. startup. z containing the logic to remove objects from the engine. z determines the scan time within which all objects within that particular engine will execute. In general the AppEngine contains no added value other then to support the creation. The key functionality of this object includes: z hosting application objects. AppEngine Object The AppEngine Object must have a Platform on which to run. and shutdown of objects. WinPlatform Object The WinPlatform platform object is a key base object. device integration objects and areas z containing the logic to setup and initialize objects. WindowMaker is started by the ArchestrA IDE. Areas provide a key organizational role in grouping alarm information and assigning it to those who use alarm/event clients to monitor their areas of responsibility. The ViewEngine object supports common engine features such as deployment.Section 4 – Automation Objects System Objects System objects are used to define system instances. undeployment. When you create an InTouchViewApp for a new InTouch application.Part 1 1-73 . security. Templates exist only in the development environment. You cannot change these templates. There is a special instance of the platform object called the galaxy platform. Wonderware Training . scripts. z Monitoring the running state of engines deployed to it. simpler devices. and historical data for an object. or contain them. A template can specify application logic. You define a template for an object. A reactor is a good candidate of containment. Wonderware Application Server comes with predefined templates. alarms. one time and then use that template when you need to define another instance of that item. Template names have a dollar sign ($) as the first character of their name. If the platform detects an engine has failed it can (optionally based on the value of the engine’s restart attribute) restart the engine. You can also nest templates. Templates are like a cookie cutter from which you can make many identical cookies. You can extend and customize a template by adding User Defined Attributes (UDAs). Contained templates consist of nested object templates that represent complex devices consisting of smaller. based on the engines startup type. or extensions to meet the specific needs of your environment. called base templates. All templates you create are derived from base templates. which are deployed to it. Objects inherit attributes from their parents. This platform instance: z Exists on the galaxy node. z Is used by message exchange to bind unresolved attribute references Templates and Instances Templates Templates are high-level definitions of the devices in your environment. such as a valve.1-74 Module 1 – Introduction z Starting and stopping engines. including valves. A template can also define an area of your environment. Instances Instances are the run-time objects created from templates in Wonderware Application Server. Creating a Template Right-click on the appropriate type of object. holding tanks. System Platform . In your environment. and so on). Instances are the specific things in your environment like processes. For example. Instances can get information from sensors on the real-world device or from application logic in Wonderware Application Server. Creating and Deleting Instances ApplicationObject instances are created from the templates provided by the Template Toolbox. Many of these instances may be similar or identical. Creating a new valve object from scratch when you have several thousand identical valves is time-consuming. such as valves or holding tanks. you can quickly create an Diaphragm valve instance when you need another Diaphragm valve in your application. use the $UserDefined object to create a $Mixer template as a container for the mixer’s various components (agitator. That's where templates come in. Object instances can be deleted from this view if the Object does not have any other Objects assigned to it. inlet valves. valves. A default name is given to the new instance. you may have a few instances or several thousand. This platform can then be renamed. pumps. and select New / Derived Template. By default the first instance of the Platform object will be configured with the name of the Galaxy Repository node name.Section 4 – Automation Objects Using the Diaphragm valve template. and sensors. Instances exist during run time. This view also allows the Object instance to be edited.Part 1 1-75 . conveyer belts. The newly created Object instance is put into focus and set to rename mode. 1-76 Module 1 – Introduction There are two ways to create an instance of a template. right-click on it and select Delete. Wonderware Training . or. Notice you are looking at the Model View. To delete an instance of the Platform object highlight it and click on the Delete icon in the menu icon bar .Method 1 Drag and drop the template object from the Template Toolbox to the Application View. This is indicated as follows: Creating an Instance . Then from the Galaxy menu.Method 2 Highlight the object in the Template Toolbox for which you desire an instance. System Platform . select Galaxy/New/Instance or use the short cut which is Ctrl+N.Part 1 1-77 . Creating an Instance .Section 4 – Automation Objects Once the instance has been created it displays as follows: It can now be renamed using the naming convention as designated by your instructor. 1-78 Module 1 – Introduction – Intentionally left blank – Wonderware Training . microsoft.Part 1 1-79 . z Network interface card z CD-ROM or DVD drive z Keyboard z Mouse or a compatible pointing device Development and Application nodes z 2 GHz or faster processor z Minimum 1 gigabyte (GB) RAM. or a 3 GHz or faster single core processor.1 on a computer running Windows Vista. For Galaxies with more than 500 objects. Licensing and Support Section 5 – System Requirements. For improved performance 4 GB RAM is strongly recommended z 30 GB of available disk space z Super VGA (1024 x 768) or higher resolution video adapter and monitor z Network interface card z CD-ROM or DVD drive z Keyboard z Mouse or compatible pointing device The hardware requirements for using the Alarm Client and Trend Client at run time are the same as for the InTouch HMI version 10.com/windows/products/windowsvista/editions/systemrequirements. Licensing and Support Section Objectives z Describe the necessary system requirements for a successful installation z Discuss Licensing requirements z Discuss Support services This section provides a detailed explanation of the system requirements necessary for Wonderware System Platform. A dual core processor is strongly recommended for optimal performance z Minimum of 2 gigabytes (GB) RAM. The Windows Vista operating system imposes hardware requirements that may exceed the minimum requirements for Application Server version 3. If you intend to install Application Server 3. z Galaxy Repository (GR) node z 2 gigahertz (GHz) or faster dual core processor. 4 GB RAM is recommended in the GR node z 30 GB of available disk space z Super VGA (1024 x 768) or higher resolution video adapter and monitor. see the following Microsoft web site for hardware requirements: www. System Requirements for Wonderware Application Server/Galaxy Repository Minimum Hardware Requirements The following list shows the minimum computer hardware requirements to host Application Server version 3.Section 5 – System Requirements.1 run time.1. discusses Licensing details and covers Support services.1 components.mspx System Platform . and Galaxy Repository are supported by the following language versions of Microsoft operating systems: English. Chinese.1. and GR nodes. and French.1. 3. z Windows XP Professional SP3 is the recommended operating system for computers running client components. The Bootstrap. z Operating Systems z SQL Server Database Requirements z Other Software Requirements Operating Systems z Windows Server 2003 Standard Edition SP2 is the recommended operating system for computers running server components. 2. and other software requirements to install Application Server version 3. z Windows XP SP3 is the supported XP version for this release. The Windows 2000 Professional. See Note 2. German. Wonderware Training . Windows Server 2003 is the recommended operating system for the GR node. Operating Systems Windows Vista Business (See Vista Restrictions) Windows Vista Business SP1 (See Vista Restrictions) Windows Vista Enterprise (See Vista Restrictions) Windows Vista Enterprise SP1 (See Vista Restrictions) Windows Vista Ultimate (See Vista Restrictions) Windows Vista Ultimate SP1 (See Vista Restrictions) Windows Server 2003 Standard Edition SP2 Windows Server 2003 Enterprise Edition SP2 Windows Server 2003 Standard Edition R2 SP2 Windows Server 2003 Enterprise Edition R2 SP2 Windows XP Professional SP3. IDE. An error occurs if you attempt to install or upgrade Application Server version 3.1 on a computer running any edition of the Windows 2000 operating system. The following table lists the supported operating systems that can be installed on computers running as Application Server development. Japanese. Development and application nodes are considered to be clients of the server GR node. The computer designated as the Galaxy Repository node can run on Windows XP Pro only as a single-node configuration of Application Server. You cannot run Application Server on a computer running a 64-bit operating system. 4. Windows 2000 Server. You can run Application Server only on computers running a 32-bit operating system.1-80 Module 1 – Introduction Software Requirements This section describes the operating system. database. Japanese. and French versions of Microsoft SQL Server 2005. The Galaxy Repository is also supported by the English. German. Windows XP Tablet Wonderware Application Server Components ArchestrA IDE ArchestrA Run Galaxy (Development Time Repository Node) (Application (GR Node) Node) x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x See Note 2 x Notes: 1. Chinese. application. and Windows 2000 Advanced Server operating systems are not supported for Application Server version 3. Part 1 1-81 . version 9.5 must be installed on every computer that hosts an Application Server version 3. The Trend Client is compatible with the following Wonderware products: z InTouch 10.5. z You also cannot install and use Application Server on a computer that has both Microsoft SQL Server 2000 and Microsoft SQL Server 2005 installed.NET Framework 3.0 z ActiveFactory 9. The Application Server installation program halts if .5 z Microsoft . nor the Workgroup editions of SQL Server 2005 can be used as the Galaxy Repository.1 z Wonderware Application Server 3. Microsoft Visual Studio 2005 z Microsoft Visual Studio 2005 is required only by the MXAccess and GRAccess toolkits distributed with Application Server.NET Framework 3.5. If you click Install Prerequisites.1 Using Application Server with Windows Vista This section describes specific restrictions when using the Windows Vista operating system with Application Server and how to configure multiple Network Information Cards on a computer running Windows Vista.NET Framework 3. A dialog box appears requesting that you install . z TCP/IP must be enabled on the computer hosting a SQL Server 2005 database. the installation program automatically installs . Alarm Client and Trend Client Requirements The software requirements for using the Alarm Client and Trend Client at run time are the same as for the InTouch HMI version 10. Express. z The Galaxy Repository locks the SQL Server maximum memory usage to 65% of the computer's physical memory. Licensing and Support SQL Server Database Requirements Microsoft SQL Server 2005 with SP2 is the only database supported by Application Server version 3.1.NET Framework 3.Section 5 – System Requirements.5 is not installed on the target computer.2 z QI Analyst 8.0 or later is required.1 z Wonderware Historian 9. Microsoft . If you want to trend data from the Wonderware Historian (formally known as IndustrialSQL Server). Neither the Compact.1.NET Framework 3. You must use the Standard or Enterprise editions of SQL Server 2005. Other Software Requirements The following list describes other third-party software required for Application Server version 3. z SQL Server 2005 SP2 must be installed on the computer designated as the ArchestrA Galaxy Repository node prior to installing Application Server. The TCP/ IP protocol setting can be verified from the SQL Server 2005 Network Configuration under SQL Server Configuration Manager. z The Microsoft SQL Server 2005 login for BUILTIN\Administrators group must be present and enabled.1 component. System Platform .1 run time. its settings and the settings of whatever the NIC is connected to. or Windows Vista Ultimate SP1. As a result.1-82 Module 1 – Introduction Vista Restrictions z Application Server version 3. the IP address on the computer to which you are connected changes. and each time a connection changes. for example. When Application Server 3. z Windows Vista does not support NetDDE. Windows Server 2003 is the recommended operating system for the Galaxy Repository node. The Windows Vista Business Edition is recommended for use with Application Server. The Windows Vista Home Basic and Home Premium editions are not supported. Network discovery is turned off for the Public profile. the connection on your computer can change if.1 is installed on a computer running Vista. Vista goes through an "Identifying" process to determine which profile should be assigned to the connection. z The Windows Vista User Account Control (UAC) must be disabled when running Application Server.1 can run under Windows Vista SP1. SP2 must be applied to SQL Server 2005 installed on the same computer. ArchestrA Symbols that use the client layer when accessing InTouch tags. Wonderware Training . z Windows Vista does not support a traditional Application Server single-node configuration that includes Wonderware Historian (formerly IndustrialSQL Server). you must configure certain settings for the firewall or else a remote Vista node cannot connect to the Galaxy Repository node. Under certain circumstances. Windows Server 2003 and Windows XP Pro still support NetDDE. z A computer running on Vista cannot be configured to be an alarm provider and also have InTouch WindowViewer on the same computer configured to generate alarms. ArchestrA symbols cannot communicate with InTouch tags. z The Galaxy Repository is supported on Vista only for a single-node configuration of Application Server. z The Domain profile is assigned automatically to a connection if a domain controller for the domain to which the computer is a member is found on the connection.1. z The Public profile is designed to keep the computer from being visible to other computers on the network. Windows Vista Business SP1. You cannot run Application Server as a Windows Vista standard user or power user. Windows Vista prevents these functions from interacting with desktop objects to start Windows programs or send keystrokes to these programs. Using Multiple Network Interface Cards with Windows Vista If you are using multiple network interface cards (NICs). Your computer's connection can be affected by external factors. There are three profiles currently defined in Vista: "Domain". you must restart the computer before attempting to install the ArchestrA IDE or Wonderware Application Server. "Public" and "Private". z Windows Vista security prevents started Windows services from interacting with desktop objects. A profile is a collection of firewall settings that can be applied to a connection. and appear as a third-party client trying to access WindowViewer as a data server. Only one of the two will function properly as an alarm provider. A connection in Vista is a term used to define a network interface card (NIC). scripts do not run correctly if they include the InTouch ActivateApp() and SendKeys() functions. z When you disable Windows Vista UAC. Refer to Microsoft Windows Vista documentation for instructions to disable UAC. z You must log on as a Windows Vista administrator to run Application Server version 3. During computer startup. A Galaxy connection error occurs if you attempt to install the ArchestrA IDE or Wonderware Application Server and you did not restart the computer after you disabled the UAC. For multiple-node Galaxies. Windows Vista Enterprise SP1. z If the computer that hosts the Galaxy Repository runs on Windows Vista. You must set the second connection to the Private profile for any of the firewall exceptions to work. can change your connection back to the Public profile. z If the second NIC is connected. Licensing and Support z The Private profile is used for a more trusted environment.Part 1 1-83 . If you have two NICs follow the actions below: z If the second NIC is not physically connected to anything (that means no wire in it).0. The profiles and firewall rules are automatic. Vista will assign a profile of Public to this NIC and cause all of the Wonderware product firewall exceptions to be deactivated on all NICs. Usually these addresses will be the internal. The firewall calls these settings "Profiles" but the network calls them "Location types. This is done through the "Network and Sharing Center". As previously noted. Click on the Network icon in the right side of the task bar and then click on one of the networks that is shown. You'll have to change the connection back to the Private profile after each restart or a restart of the connected computer.x or the 10. The second NIC is typically assigned the Public profile. So if the second connection was assigned a profile of Public. For the NIC to be configured properly. The profiles and firewall rules are automatic. the first NIC is normally connected to the domain and is assigned the Domain profile automatically. You can change a connection from a Public profile to a Private profile. To avoid these NIC issues and prevent the "Identifying" process from taking place on a connection and changing the assigned profile." On computers using dual NICs. The exceptions were set for Domain and Private only. Once again the firewall exceptions will not be effective. it MUST be configured. The first issue is that your entire computer (all connections) is restricted to the most restrictive of the profiles assigned to any connection.x range. Firewall exceptions and rules can be created on any or all of these profiles. certain items must be present in the definition of the connection. Vista will identify this NIC and assign it a Private profile. none of the firewall exceptions set by the OS Configuration or Vista Firewall utilities will be allowed. The second issue is that it appears that a restart of your computer.Section 5 – System Requirements. not Public.x. give it an IP address. non-routable addresses like 192.168. Network discovery is turned on for a Private profile. The gateway address can be the same as the IP address. Follow the rules for configuring a normal redundancy setup.x. or even a restart of a computer to which you are connected. no action is required. sub net mask and gateway address. If you have only one NIC. 2. no action is required. you can specify which profile you want assigned to a connection as long as that connection is not a Domain connection. This is important because the OS Configuration utility and the Vista Firewall utility apply their firewall exceptions to the Domain and Private profiles only. make sure all connected NICs are configured with an IP address and default gateway address and have been assigned a profile of private. If the NIC is not configured. System Platform . z If you have more than two NICs. Follow the rules below: 1. ActiveFactory Count Number of dedicated ActiveFactory nodes in the application. The Wonderware System Platform license is available in different sizes. it is necessary that you understand and gather the following information: Application Server IO Count Number of I/O points accessed by the Galaxy. each one offered as a unique combination of the following: z Application Server IO-count z Historian Server Tag-count z the number of Application Server Platforms included Wonderware Training . Development Studio Count Number of development workstations in the application. Application Server Platform Count Number of dedicated Application Object Server nodes in the application. Device Integration Server Count Number of Device Integration Server nodes in the application. InTouch for System Platform Count Number of visualization nodes required in the application. Wonderware System Platform The Wonderware System Platform is licensed as a single product that includes the following individual features: z 1 Application Server license sized by IO-count z 1 Historian Server Standard Edition license sized by Tag-count z 1 Information Server license z 1 Information Server Advanced Client license z 1 Device Integration Server license z n Application Server Platform licenses (where n is 2. 3 or 4) for the purpose of hosting: z an Application Object Server z the Historian Server z the Device Integration Server z the Information Server Note: Note: An Application Server Platform for a dedicated Galaxy Repository node is not included.1-84 Module 1 – Introduction Wonderware System Platform Licensing Licensing To calculate the licenses needed to implement an application based on the Wonderware System Platform. Information Server and Clients Count Number of Information Server nodes in the application and number of nodes that are going to access the servers remotely. Historian Server Count Number of Historian Server nodes in the application. Wonderware Development Studio To develop applications for the Wonderware System Platform one or more Wonderware Development Studio licenses are required. InBatch and QI Analyst integration. listed below. The Wonderware Development Studio license includes a single-node license to run the following products: z ArchestrA Integrated Development Environment (IDE) z Application Server sized by IO-count z Application Server Platform for testing System Platform-based applications z InTouch Development and Runtime z Device Integration Products z Historian Server Standard Edition limited to 24 hour data retrieval and sized by Tagcount z Microsoft SQL Server System Platform .Part 1 1-85 . are added to this license as needed. The Information Server Client license is available in two different versions: z Information Server Advanced Client z Information Server Standard Client. Licensing and Support Wonderware System Platform Options licenses. which lacks InTouch Write Back. The ActiveFactory license supports Terminal Services Server applications (except with a Per Device license). as follows: z InTouch for System Platform with Trend/Analysis* z InTouch for System Platform without Trend/Analysis* z InTouch for System Platform Read-only with Trend/Analysis* * Trend/Analysis refers to an ActiveFactory license. depending on the size of the system and requirements: z additional Historian Servers with Platform available at different Tag-counts z additional Information Servers with Platform z additional Device Integration Servers z additional Application Server Platforms Wonderware Clients In addition to the Wonderware System Platform. one or more of the following Wonderware Clients are usually required: z InTouch for System Platform (also available as Terminal Services Edition if needed) z Information Server Client z ActiveFactory The InTouch for System Platform license includes an Application Server Platform and is available in different flavors.Section 5 – System Requirements. each one offering a unique combination of: z Application Server IO-count z InTouch Tag-count z Historian Server Tag-count Wonderware Training . plus: z Information Server z Information Server Client z ActiveFactory z InControl The Wonderware Development Studio license is available in different sizes.1-86 Module 1 – Introduction An Unlimited version of the Wonderware Development Studio license includes all the above products. Wonderware eLearning training options are located at http://www.wonderware. Also on the Technical Support site is the Technical Support Policies.com/support/mmi/ You will find a variety of information on the Technical Support site including the Wonderware Developer Network (WDN) Library. training. contact your local distributor or access the Wonderware Technical Support site online at http://www. refer to the “Wonderware Software Installation” series of online seminars where a session corresponding to Wonderware Performance Softwqare 3. see the installation document located in the root folder of the installation CD. Additionally.5 may be available. award-winning teams of specialists committed to delivering world-class customer support. Licensing and Support Installation For instructions on installing Wonderware Performance Software.wonderware.Section 5 – System Requirements.Part 1 1-87 . Documentation. Tech Notes. Terms & Conditions guide which provides information on how to contact Technical Support. When you first enter the site. you will have limited access. Tech Articles. you must first register. FAQs. Tech Alerts. and much more. and Tech Support Forums. and consulting services. System Platform . To gain access to the different areas and services.com/training Product support Wonderware provides responsive. For information on the various customer support programs. information on the support policies and procedures. 1-88 Module 1 – Introduction – Intentionally left blank – Wonderware Training . Introduction In order to successfully implement a project for the Wonderware System Platform environment. The suggested project workflow is designed to help plan and implement projects.Section 6 – Application Planning Section 6 – Application Planning Section Objectives z Explain a project workflow and area devices and why they are needed z Identify functional requirements and naming conventions z Expand on the concept of ArchestrA and how it relates to the manufacturing environment. you should start with careful planning to come up with a working model of your plant or plant area. Identify Field Devices and Functional Requirements Define Naming Conventions Define the Area Model Plan Templates Define the Security Model Define the Deployment Model System Platform . the work flows more smoothly enabling completion of the project to be accomplished much easier. A six-step project workflow is provided that describes how to complete different tasks in a logical and consistent order. The following flow chart summarizes the logical steps to project completion. so that you minimize the engineering effort. z Explain the benefits of migrating to an ArchestrA architectural environment. The better your project plan. the less time it will take to create the application. and with fewer mistakes and rework.Part 1 1-89 . The project information that you define will become your guide when actually creating your industrial application using the ArchestrA IDE. You may develop your own workflow for implementing projects based on your experiences. Suggested Project Workflow Just as there are many different criteria for Wonderware A2 projects. This section provides an explanation of the need for adequately modeling your plant in order to achieve an application implementation that will be optimal for efficiency. By providing this workflow. there are many different ways to design and implement a supervisory and control system. you should start with your piping and instrumentation diagram (P&ID). Identifying Field Devices When identifying field devices. You should verify that your P&ID is correct and up-to-date before starting the planning process. you should determine how you want to document the results of your project planning. pumps.1-90 Module 1 – Introduction Before you start this process. agitators. For example. this diagram shows all of the field devices and illustrates the flow between them. a motor is a device that may be part of an agitator or a pump. Typically. process areas to which the devices belong. rakes. the application planning process will take less time and go more smoothly. totalizers. you will then need to determine the functionality for each. Field devices include components such as valves. After you have identified all of your field devices. Some devices are made up of more base-level devices. the functionality of each device. One good way is to use a spreadsheet application such as Microsoft Excel to document the list of devices. Proportional-Integral-Derivative (PID) controllers. Identifying Field Devices and Functional Requirements The first step in project planning is to identify the field devices that you want to include in your application. If you have a good P&ID. and so on. Wonderware Training . and so on. 9( &7 The key for this P&ID is as follows: FIC = Flow controller PT = Pressure transmitter TT = Temperature transmitter FT = Flow transmitter CT = Concentration transmitter LT = Level transmitter LIC = Level controller FV = Flow valve Examine each component in your P&ID and identify each basic device that is used. A motor. The number of device types in your final list will help you to determine how many object templates you will need to create for your application.” System Platform .& )9 37 77 ).Part 1 1-91 . and so on. which is a concept known as “containment. Each basic device is represented in the ArchestrA IDE framework as an “object. such as valves.& )9 '5. Consolidate any duplicate devices into common types so that only a list of unique basic devices remains.9( /. Once you have created the complete list.& )7 &7 /7 37 )7 )9 )9 '5. however. You can group multiple basic objects to create more complex objects. may be comprised of multiple basic devices. For example.Section 6 – Application Planning The following diagram shows a simple P&ID: ). and then document them in your project planning worksheet.” An instance of an object must be derived from a defined template. pumps. a simple valve can be a basic device. group the devices according to type. but allow read-write access for a supervisor.1-92 Module 1 – Introduction Identifying Functional Requirements For each unique device. instances.9?2/6 2/6 <<. you may grant a group of operators read-only access for a device. Auto. you will need to define the functional requirements.9 2XW <<.9?0DQ 0DQ .9?&/6 &/6 <<. does the device require any indirect calculations? z Historization. What scripts will be associated with the device? For example. which includes: z Inputs and outputs. CLS. Are there process values associated with this device that you want to historize? How often do you want to store the values? Do you want to add change limits for historization? z Alarms and events. For example. you might have an instance tagname of: YY123XV456 with the following attributes: OLS.QGLYLGXDO7DJV Wonderware Training 2EMHFW 2EMHFW $WWULEXWHV For more information refer to the InTouch to IAS Migration document .) z Security. and object attributes.9?$XWR $XWR <<.V $UFKHVWU$ <<.9?2XW <<. Which users do you want to give access to the device? What type of access do you want to give? For example. Defining Naming Conventions The second step in the workflow is to define the naming conventions for templates. What values require alarms? What values do you want to be logged as events? (ArchestrA IDE alarms and events provide similar functionality to what is provided within InTouch. Man The following illustration shows how the naming convention in a traditional Human-Machine Interface (HMI) is different from the naming within ArchestrA IDE: +0. You can set up different security for each attribute of a device. How many inputs are required for the device? How many outputs are required? z Scripting. Naming conventions should adhere to: z Conventions that you use within your company. z ArchestrA IDE naming restrictions. Out. System Platform . Templates are instantiated to represent specific objects within the application. When building an Area hierarchy." Unless you specify otherwise. the changes can be propagated to the instances.OLS Defining the Area Model The third step of the project workflow is to define the Area model. z It is helpful to create a System Area to which you can assign instances of WinPlatform and AppEngine objects. Planning Templates A template is an element that contains common configuration parameters for objects that are used multiple times within a project.Part 1 1-93 . Additional information on how to actually develop objects using templates is covered in Module 3. change the default to the new Area. An Area is a logical grouping within your application that represents a portion of the layout of your plant. Each object will need to be assigned to a particular Area. If you use this approach. The following are a few tips for creating Areas: z If you create all of your Areas first. otherwise. so you would create a valve template that has all of the required properties. It is at the Area level that alarm displays can easily be filtered. z Areas can be nested. When you install Application Server. keep in mind that the base Area that is assigned to a Platform determines how the underlying objects will be deployed. If a plant area (physical location) is going to contain two computers running AutomationObject Server platforms. This allows you to define once and reuse multiple times. you will have to move them out of the unassigned Area later. Packaging Area and Discharge Area. called "Unassigned. If you change the template. then two logical Areas will have to be created for the one physical plant area. and do not necessarily need to belong to a plantrelated Area or any Area for that matter. WinPlatform and AppEngine objects are used to support communications for the application. One approach for creating instances of an object is to create an instance for one Area at a time. a single placeholder is created by default. z Alarms will be grouped according to Areas. then mark the Area as the default.Section 6 – Application Planning For ArchestrA IDE. you would define the following Areas: Receiving Area. You will need to define and document all of the Areas of your plant that will be part of your application. all object instances will be assigned to this placeholder location. you might need multiple instances of a valve within your application. “Planning for Object Templates” on page 3-5.<attributename> For example: YY123XV456. In a typical manufacturing plant. For example. so that each instance is automatically assigned to the selected Area. you can easily assign an object instance to the correct Area if you set that particular Area as the Default Area. Before you begin to create instances in another Area. Process Area. A final consideration for constructing Areas is that the various Areas equate to alarm groups. references are created using this naming convention: <objectname>. You can use simple drag-and-drop within the ArchestrA IDE to create instances from templates. defining the security model. Define Deployment Model: The Deployment Model view shows which objects instances reside on which computers. the physical location of object instances is not required to approximate the real-world environment it models. Wonderware Training . This provides the ability to define who can write to attributes of an object. The Deployment view does not need to reflect your physical plant environment. are done once the initial Plant Model is in place.1-94 Module 1 – Introduction The next two steps. These are steps are detailed in subsequent modules in this training course. In the ArchestrA environment. Define Security Model: Each attribute of an AutomationObject is given a security classification. Please refer to additional information which is available in the Wonderware A2 Deployment Guide. and defining the deployment model. This lab will help familiarize you with the plant processes on which the remaining labs are based.Lab 2 – Identifying the Mixer Lab 2 – Identifying the Mixer Introduction This lab provides several detailed diagrams which identify components of a simulated factory layout for this training scenario. Objectives Upon completion of this lab you will be able to: z Collect the proper information needed before proceeding to develop a Galaxy z Use the naming convention and device structure defined for this class in subsequent labs System Platform . The following diagrams provided in this lab will be used as references: z Factory Layout z Heat Exchanger: Process Diagram & Field I/O Signals z Mixer: Process Diagram & Field I/O Signals Your instructor will assign you a student number that you will use to create the unique identifiers for each heat exchanger and mixer assigned to you. as well as the main pieces of equipment that you will model and develop during this course.Part 1 1-95 . please refer to the Detailed Lab Instructions on subsequent pages. This lab contains several intricate parts that are not easily summarized.1-96 Module 1 – Introduction Summary Lab Instructions Following is a summary of the general steps you will complete for this lab. For detailed instructions. See the next page for Detailed Lab Instructions Wonderware Training . Please refer to the Detailed Lab Instructions on the next page. Add second material to the tank 3. which is used in conjunction with Pump 2. In this lab you will study and discuss the diagrams on the following pages with your instructor. For a summary of instructions. Identify the Sample Application This lab is an instructor-led group discussion and therefore does not have specific steps. which is used in conjunction with Pump 1 adds the first material into the tank z Inlet 2: Inlet 2. Description of the Mixer System The mixer system consists of the following devices and functionality: 3 valves: z Inlet 1: Inlet 1. which is used in conjunction with Inlet 2. please refer to the Summary Lab Instructions on the previous page(s). Mix the material in the tank 4. adds the second material into the tank z Outlet: drains the tank 2 pumps: z Pump 1: Pump 1.Lab 2 – Identifying the Mixer Detailed Lab Instructions Following are detailed lab instructions for completing this lab. adds the second material into the tank 1 motor: z Agitator: Mixes the materials in the tank 2 meters z LIT: Current level of the tank z TT: Current temperature of the tank Description of the Process In this class a simulated mixer system process continuously executes batches (runs) with the following steps: 1.Part 1 1-97 . and create the IDs for the heat exchangers and mixers assigned to you. Add first material to the tank 2. which is used in conjunction with Inlet 1 adds the first material into the tank z Pump 2: Pump 2. Drain the tank System Platform . and it fluctuates from 35% to 90%. the LIT and TT devices will continuously indicate the current level and temperature of the tank respectively. Note: The simulation uses randomization to ensure the LIT and TT meter values differ from batch to batch. the higher the temperature. and vice versa. The temperature is in direct proportion with the level of the tank: the higher the level. Wonderware Training . within the actual range.1-98 Module 1 – Introduction Specifically. the devices of the mixer system are automatically operated by the simulation to perform the steps indicated previously through the following sequence: Throughout the execution of each batch. Lab 2 – Identifying the Mixer System Platform .Part 1 1-99 . 1-100 Module 1 – Introduction Wonderware Training . Part 1 1-101 .Lab 2 – Identifying the Mixer System Platform . 1-102 Module 1 – Introduction – Intentionally left blank – Wonderware Training . Module 2 Application Infrastructure Section 1 – The Plant Model Lab 3 – Creating the Plant Model Section 2 – The Deployment Model Lab 4 – Creating the Deployment Model Section 3 – The Runtime Environment 2-3 2-5 2-13 2-15 2-25 Lab 5 – Using Object Viewer 2-29 Section 4 – Connecting to the Field 2-39 Lab 6 – Connecting to the Field 2-49 . z Explain Galaxies and introduce you to the ArchestrA IDE z Explain Plant Modeling as it relates to Objects and Object Instances Wonderware Training .2-2 Module 2 – Application Infrastructure Module Objective z Explain the concept and describe the need of developing a Plant Model before configuring the Wonderware Application Server z Identify key factors necessary for building successful applications. The ArchestrA plant application model allows you to organize a distributed computing application by: Plant Section Area Production Line Manufacturing Cell Once a plant application model has been developed. Additionally. it provides the ability to build industrial applications that ensure consistent engineering quality and operational best practices. It will also provide the ability to create objects representing your actual plant. Having this model will enable you to implement a structured naming convention that will facilitate the coordination of all the processes and areas. System Platform . it explains the concept of how to utilize ArchestrA Application Server to model a specific facility. configure them to your own specifications and create templates from them which will enable you to propagate one area to another.Section 1 – The Plant Model Section 1 – The Plant Model Section Objectives z Explain the importance of having a model of the plant facility z Examine the concept of how to utilize ArchestrA Application Server to model a specific facility This section provides an explanation of the importance of having a model of the plant facility. applications can be easily extended or replicated based on the structure you have provided. Additionally. Modeling of the Facility With the Wonderware Application Server it is possible to create a working model of the plant manufacturing environment which will utilize the product. With this Facility Model you can: z Rapidly create application standards z Deploy applications across multiple plants or projects This provides universal application development capabilities.Part 1 2-3 . This allows alarm clients to receive alarm notifications without any dependencies on Area AutomationObjects. These alarm and event distributors include: • Area AutomationObjects All AutomationObjects and Area objects report detected alarms through the Area. Using the Area model will become a filtering mechanism for alarms when we cover the Module on Alarms and History. the condition is reported to its alarm and event distributor. AppEngines and Device Integration objects do not report their alarms and events to Area AutomationObjects even though they belong to Areas. which is running on the same AppEngine. a deployed and running WinPlatform can report alarms even though its Area is not deployed and running. For example. Wonderware Training . or an event occurs.2-4 Module 2 – Application Infrastructure Reporting Alarms Based on Area Model When an alarm is detected. which distributes them to alarm and event clients. • WinPlatform AutomationObjects Report their own alarms and events • AppEngine AutomationObjects Report their own alarms and events • Device IntegrationObjects Report their own alarms and events WinPlatforms. You will create an additional $Area instance named ControlSystem to accommodate future system objects created throughout the rest of this class. “Identifying the Mixer”. you will develop a custom toolset named Training to hold the templates created in the class. Objectives Upon completion of this lab you will be able to: z Create new template toolsets z Create derived templates z Create instances z Use the $Area object to create a plant model for the Galaxy System Platform . To help organize the templates.Part 1 2-5 .Lab 3 – Creating the Plant Model Lab 3 – Creating the Plant Model Introduction This lab illustrates the steps necessary to create the plant model for the Galaxy based on the information gathered in Lab 2. c. Create a new Template Toolset named Training under the Galaxy. please refer to the Detailed Lab Instructions on subsequent pages. For detailed instructions. Create the following instances out of the new $tArea template: z Discharge z Intake z Production z Line1 z Line2 z ControlSystem d. Create a derived template from the $Area object named $tArea and assign it to the Training template toolset. Create a Template Toolset a.2-6 Module 2 – Application Infrastructure Summary Lab Instructions Following is a summary of the general steps you will complete for this lab. Create the Plant Model b. See the next page for Detailed Lab Instructions Wonderware Training . Arrange the new $tArea instances to model the factory layout defined in Lab 2. Part 1 2-7 . Create a Template Toolset 1. please refer to the Summary Lab Instructions on the previous page(s). right-click on the Galaxy and select New Template Toolset. For a summary of instructions. System Platform . In the Template Toolbox.Lab 3 – Creating the Plant Model Detailed Lab Instructions Following are detailed lab instructions for completing this lab. expand System / $Area to create a derived template of the $Area object by right-clicking the $Area template and selecting New / Derived Template. Name the new template toolset Training.2-8 Module 2 – Application Infrastructure 2. In the Template Toolbox. A new template toolset is created. Wonderware Training . Create the Plant Model 3. Move the $tArea object into the Training template toolset. 5. System Platform . 6. A new template is created. Name the new template $tArea.Part 1 2-9 . Ensure that the Model view is selected.Lab 3 – Creating the Plant Model 4. 2-10 Module 2 – Application Infrastructure 7. Repeat the previous 2 lab steps to create the following Areas: z ControlSystem z Intake z Line1 z Line2 z Production The ControlSystem Area will be used in this example to accommodate future system objects created throughout the rest of this class. Wonderware Training . 8. Create a new instance of the $tArea template by dragging and dropping the $tArea object from the Template Toolbox to the Model view. 9. Name the new instance Discharge. Lab 3 – Creating the Plant Model 10. Drag-and-drop the newly created objects to assign areas Line1 and Line2 to the Production area.Part 1 2-11 . The final plant model should look like the following illustration: System Platform . 2-12 Module 2 – Application Infrastructure – Intentionally left blank – Wonderware Training . Planning for Deployment Deploying your Galaxy copies the objects from the development environment to the run-time environment. z Demonstrate the structure and organizational execution of the Deployment Model. use Object Viewer or InTouch. it's time to deploy the Galaxy.Part 1 2-13 . Deploying the Galaxy You can deploy and test your objects at any time during development. Objects deploy from the configuration environment to the run-time environment as follows: IDE Configuration Environment deploys to Object Viewer. This section provides an explanation of the Deployment Model and demonstrates the structure of the Deployment Model. This makes your objects "live" and functional. changes you make in the ArchestrA IDE do not appear in the run-time environment. When you are ready to test or move the application into production. Run-time environment Galaxy database : [Does not exist in run-time environment] Templates : [Does not exist in run-time environment] Instance Objects : Instance objects [Run-time configuration and behavior] Security: General permissions : [Does not exist in run-time environment] Security: Operational permissions : Run-time permissions to acknowledge alarms and modify attributes Scripts configuration : Scripts execution Alarms configuration : Alarms generate and acknowledge History configuration : History Logs [Wonderware Historian] System Platform . Until you deploy your ArchestrA IDE configuration environment to the run-time environment.Section 2 – The Deployment Model Section 2 – The Deployment Model Section Objectives z Explain the concept of the Deployment Model. To see runtime data associated with your objects. That means the object changed since it last deployment. The redeploying process undeploys the object and then deploys it back. This deploys an object's host before the object is deployed. A cascade deploy operation. You may have an object whose deployment state is Pending Update. and checked in objects to the Galaxy z Objects are assigned to a host z The object's host is already deployed. Before you delete or restore a Galaxy. which deploys a hierarchy of objects. deploys all objects in the correct order. Before you start. Note: Undeploying can fail if the target object has objects assigned to it. When you deploy those changes. Undeploying Objects You may need to undeploy one of more objects. the new object is marked as the last deployed version in the Galaxy. Make sure you select Cascade Undeploy in the Undeploy dialog box. Redeploying Objects Redeploying is similar to deployment.2-14 Module 2 – Application Infrastructure Deploying Objects You deploy object instances for three reasons: z Testing z Place the application into production to process field data z Update an existing application with changes you made When you are ready to deploy. you need to select the object or objects you want to undeploy in the ArchestrA IDE. Wonderware Training . configured. While you are testing. you frequently redeploy your application to see changes you make. Undeploying removes one or more objects from the run-time environment. undeploy all objects in the Galaxy. make sure the following conditions are met: z Bootstrap software is installed on the target computer(s) z The objects being deployed are not in an error state in the Galaxy database z You created. after creating the deployment model. Objectives Upon completion of this lab you will be able to: z Use the $WinPlatform. You will begin by organizing the system objects using the plant model created in the previous lab.Lab 4 – Creating the Deployment Model Lab 4 – Creating the Deployment Model Introduction This lab illustrates the steps necessary to create a deployment model for the Galaxy based on a standalone setup and a single $AppEngine. Then.Part 1 2-15 . $AppEngine and $Area objects to create a deployment model for the Galaxy z Deploy instances to the runtime environment System Platform . you will send the complete Galaxy to the runtime environment by deploying all objects. Create the AppEngine Object c. please refer to the Detailed Lab Instructions on subsequent pages. Deploy the Objects f. host the AppEngine object on the GRPlatform object and all areas on the AppEngine object. Using the Deployment view.2-16 Module 2 – Application Infrastructure Summary Lab Instructions Following is a summary of the general steps you will complete for this lab. Create an instance of the $tWinPlatform template named GRPlatform and assign it to the ControlSystem area. d. b. Cascade deploy the GRPlatform. Create a derived template from the $AppEngine object named $tAppEngine and assign it to the Training template toolset. Create a derived template from the $WinPlatform object named $tWinPlatform and assign it to the Training template toolset. Create the WinPlatform Object a. See the next page for Detailed Lab Instructions Wonderware Training . Create an instance of the $tAppEngine template named AppEngine and assign it to the ControlSystem area. Create the Deployment Model e. For detailed instructions. Lab 4 – Creating the Deployment Model Detailed Lab Instructions Following are detailed lab instructions for completing this lab. create a derived template of the $WinPlatform object by rightclicking the $WinPlatform template and selecting New / Derived Template. In the Template Toolbox. Create the WinPlatform Object 1. please refer to the Summary Lab Instructions on the previous page(s). Name it $tWinPlatform. Move the $tWinPlatform object to your Training template toolset.Part 1 2-17 . For a summary of instructions. A new template is created. 3. 2. System Platform . Note: Notice the color of the bottom right icon changes to yellow. Name the new instance GRPlatform. and is therefore the GR Platform. Wonderware Training . 6. the first Instance of a platform will be the GR platform and will use its Node name.2-18 Module 2 – Application Infrastructure 4. assign the GRPlatform instance to the ControlSystem area. In the Model view. By default. 5. This indicates the object is the first Platform. Using the Template Toolbox and the Model view. create a new instance of the $tWinPlatform template by dragging the $tWinPlatform template to the Model view. In the Template Toolbox. create a new instance of the $tAppEngine template. 10. Name the new template $tAppEngine. Move the $tAppEngine template to the Training template toolset.Part 1 2-19 . A new template is created. create a derived template of the $AppEngine object by rightclicking the $AppEngine template and selecting New / Derived Template. 8. 9. Using the Template Toolbox and the Model view. System Platform .Lab 4 – Creating the Deployment Model Create the AppEngine Object 7. Name the new instance AppEngine.2-20 Module 2 – Application Infrastructure 11. Wonderware Training . In the Model view. 12. assign the AppEngine instance to the ControlSystem area. Part 1 2-21 .Lab 4 – Creating the Deployment Model Create the Deployment Model 13. 14. Select the Deployment view. System Platform . Assign the AppEngine instance to the GRPlatform. and it will set all instances On Scan as soon as the objects are deployed.2-22 Module 2 – Application Infrastructure 15. The Deploy dialog box displays. In Deployment view. right-click the GRPlatform instance and select Deploy. Wonderware Training . By default the system will perform a Cascade Deploy with a Deploy Object Count of 8 instances. Deploy the Objects 16. Assign all remaining areas to the AppEngine instance. The Deployment and Model views now display the instances in their deployed state: System Platform . Leave the default settings and click OK. the Close button is enabled. This will display a second Deploy dialog box indicating the deployment progress. Click Close to return to the ArchestrA IDE. As soon as the process is complete.Lab 4 – Creating the Deployment Model 17. 18.Part 1 2-23 . 2-24 Module 2 – Application Infrastructure – Intentionally left blank – Wonderware Training . The load is based on the number of I/O points. Once you have a list of attributes in the Watch Window. value change. a node may be executing more objects than it can easily handle. System Platform . For example. the number of user-defined attributes (UDAs). To view the activity in the Runtime database the Object Viewer is used. In order to create the Runtime database. Object Viewer The Object Viewer monitors the status of the objects and their attributes and can be used to modify an attribute value for testing purposes.Section 3 – The Runtime Environment Section 3 – The Runtime Environment Section Objectives z Explain the concept of the Runtime Environment z Illustrate the differences in the Development environment and the Runtime environment z Explain the use of the Object Viewer in monitoring the Runtime environment This section provides an explanation of the Runtime environment and explains the use of the Object Viewer in monitoring the Runtime environment. The more complex the object. the deployment model defines which nodes will host the various AutomationObjects. It displays the current value of all of the objects and object attributes in the database. and so on.Part 1 2-25 . To add an object to the Object Viewer Watch list. You can also add a second Watch window that shows as a separate tab in the bottom of the Viewer. the Runtime environment facilitates the activity generated by the objects. right-click the attribute from the Attribute Name panel and select Add to Watch. Runtime Environment The previous workflow task defined the deployment model that specifies where objects are deployed. You can save a list of items being monitored. and it will be necessary to deploy one or more objects to another computer. A previously saved Watch window can also be loaded to monitor previously saved attributes. you can select all or some of them and save them to an XML file by right-clicking on the Watch window and selecting Save. In Application Server the Object Viewer is used to monitor the Runtime environment. After deployment. Application Server requires information about all of the variables being created. the changes are reflected in Runtime and monitored via the Object Viewer. In other words. The objects deployed on particular platforms and engines define the objects' “load” on the platform. configuration change). The Object Viewer is used to check communications between nodes and determine if the system is running optimally. As object and object attribute values change (for example created. the higher the load required to run it. Then you deploy the object. That version number matches the version in the configuration database. The values of certain attributes can be set in the configuration environment. you create an object with a UDA myInteger. Uploading Run-time Configuration You can upload run-time configuration changes to the Galaxy database. you specify an initial value of 30. At run time. the original value of 30 overwrites any value assigned during run time. the values of these attributes can differ between the run-time and configuration environments. As a result. This lets you keep any attribute values that changed during run time. If you redeploy this object. For example. In the Object Editor. If you want to upload run-time changes to the Galaxy. The run-time object’s version number also has a new version number. make sure the selected objects are: z Not edited and checked in since last deployment or upload z Not in Pending Update state z Checked in Objects whose configuration are successfully uploaded have a new version number and a change log entry for the upload operation. you write a new value to myInteger of 31. Wonderware Training . Attributes section Individual attributes of the object. Attribute Monitoring section Location for monitoring attribute activity.2-26 Module 2 – Application Infrastructure Deployed Objects section Objects deployed on the Platform. but they can also be changed by the user at run time. Note: You cannot upload run-time changes for objects checked out to other users.Section 3 – The Runtime Environment If you select an object that is currently checked out to you.Part 1 2-27 . Select one or more objects in the Model view or Deployment view. a warning appears during run-time upload. System Platform . The run-time attributes of the selected objects are copied over those in the Galaxy database. To upload run-time changes to the Galaxy a. you could select an entire hierarchy from AppEngine down. you lose all configuration changes you made to the checked out object. In the Object menu. The Galaxy performs an Undo Check Out operation on it before the run-time attributes are copied to the Galaxy database. If you continue. For example. b. click Upload Runtime Changes. 2-28 Module 2 – Application Infrastructure – Intentionally left blank – Wonderware Training . Part 1 2-29 . The watch windows are then saved in a single file for future use. Different watch windows are added to organize the attributes to be monitored. Objectives Upon completion of this lab you will be able to: z Open Object Viewer from the ArchestrA IDE z Add attributes to watch windows to get a live feed z Create and rename watch windows within Object Viewer z Save watch windows to disk System Platform .Lab 5 – Using Object Viewer Lab 5 – Using Object Viewer Introduction This lab illustrates the steps necessary to use Object Viewer to monitor live data from your Galaxy’s runtime environment. ScanPeriod AppEngine ScanState AppEngine ScanStateCmd d. For detailed instructions. Open Object Viewer from within the ArchestrA IDE. Create a new watch window called Engine Info and add the following attribute references: Instance Attribute Name AppEngine Scheduler. See the next page for Detailed Lab Instructions Wonderware Training . Save the watch list to your training folder (C:\Wonderware Training) with the name My Watch Windows. b.2-30 Module 2 – Application Infrastructure Summary Lab Instructions Following is a summary of the general steps you will complete for this lab. please refer to the Detailed Lab Instructions on subsequent pages. Rename the default watch window to Platform Info and add the following attribute references: Instance Attribute Name GRPlatform CPULoad GRPlatform DiskSpaceFree[1] GRPlatform RAMAvailableAvg c. Using ObjectViewer a. open Object Viewer by right-clicking the GRPlatform instance and selecting View in Object Viewer. In Model view. System Platform .Part 1 2-31 . Using ObjectViewer 1.Lab 5 – Using Object Viewer Detailed Lab Instructions Following are detailed lab instructions for completing this lab. please refer to the Summary Lab Instructions on the previous page(s). For a summary of instructions. Individual attributes of the object. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to rename the default Watch List 1 tab. Wonderware Training . Deployed Objects section.2-32 Module 2 – Application Infrastructure The Object Viewer application opens displaying the attributes of the selected object on the right panel. Attribute Monitoring section. Objects deployed on the Platform. Location for monitoring attribute 2. Attributes section. System Platform .Part 1 2-33 . The Rename Tab dialog box is displayed. Enter Platform Info for the Tab Name field. Click OK. 4.Lab 5 – Using Object Viewer 3. 5. The tab is now labeled Platform Info. Note: You can sort the Attribute Name column by clicking the Attribute Name column heading. Wonderware Training . On the Attribute List (right section of Object Viewer) locate and right-click on the CPULoad attribute and select Add to Watch to add the attribute to the watch list.2-34 Module 2 – Application Infrastructure 6. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch Window to add a new tab to the watch list. enter 1 as the array index which represents drive C z RAMAvailableAvg 8.Part 1 2-35 . Repeat the previous step for the following attributes: z DiskSpaceFree When prompted. System Platform .Lab 5 – Using Object Viewer 7. Enter Engine Info for the Tab Name field and click OK. The Rename Tab dialog box displays. 11. Wonderware Training . Right-click in the new Watch List 1 and select Rename Tab to rename the default Watch List 1 tab. On the Object List (left section of Object Viewer) select the AppEngine object to display its attributes. 10.2-36 Module 2 – Application Infrastructure 9. Lab 5 – Using Object Viewer 12.ScanPeriod z ScanState z ScanStateCmd 13. On the Attribute List (right section of Object Viewer) locate the following attributes.Part 1 2-37 . z Scheduler. and select Add to Watch to add them to the watch list. You can also multipleselect by holding the Ctrl key and clicking each one. System Platform . rightclick on them. Right-click in the Watch List (bottom section of Object Viewer) and select Save As to save the watch list to disk. Wonderware Training . 14.2-38 Module 2 – Application Infrastructure The Save As dialog box displays. Click Save to save the watch list to the selected location. Navigate to the C:\Wonderware Training folder and enter My Watch Windows in the File name field. 15. It also provides an overview of DI Objects. SuiteLink is the recommended communication protocol for use with Wonderware sources. System Platform . Note: NetDDE. an older protocol previously used for communication over the network to Wonderware and non-Wonderware sources. I/O Server and Data Access Server z Overview of DI Objects This section provides an understanding of the Device Integration Objects. Introduction The server application provides the data and accepts requests from any other application interested in its data. is strongly discouraged and has been phased out by Microsoft. Requesting applications are called clients. Dynamic Data Exchange (DDE) Dynamic Data Exchange (DDE) is a communication protocol developed by Microsoft to allow applications in the Windows environment to send/receive data and instructions to/from each other. Some applications such as InTouch and Microsoft Excel can simultaneously be both a client and a server. It implements a client-server relationship between two concurrently running applications. I/O Server and DA Server.Section 4 – Connecting to the Field Section 4 – Connecting to the Field Section Objectives z Become familiar with Device Integration Objects.Part 1 2-39 . Application: Name of the source program or service that provides I/O data to the client application. such as data integrity. Topic: It's an application-specific sub-group of data elements. the following conditions must be satisfied. Wonderware Training . If for some reason SuiteLink has been stopped. high-throughput. SuiteLink is Not a Replacement for DDE. For example. see your Microsoft Windows operating system's documentation. regardless of whether the applications are on a single node or distributed over a large node count. z Value Time Quality (VTQ) places a time stamp and quality indicator on all data values delivered to VTQ-aware clients. computer resource consumption. DDE and SuiteLink I/O Addressing DDE and SuiteLink identifies an element of data in an I/O data source program by using a threepart naming convention that includes the application name. the application name is "Excel". Wonderware recommends that DDE be used for internal client communication. This protocol standard is supported for Windows 2000. and Windows XP. and SuiteLink for communication over the network. the topic name is the name of the specific spreadsheet that contains the data and the item name is the identification of the cell on the spreadsheet to/from which the data is to be read/written. SuiteLink provides the following benefits: z Consistent high data volumes can be maintained between applications.2-40 Module 2 – Application Infrastructure Wonderware SuiteLink Wonderware SuiteLink uses a TCP/IP-based protocol. z The network transport protocol is TCP/IP using Microsoft’s standard Winsock interface. in the case of Excel as a server program. a node name must be specified too. Each connection between a client and a server depends on your network situation. To use the SuiteLink Communication Protocol. server loading. the client program opens a communication channel to the server program by specifying these three items. z You must have Microsoft TCP/IP configured and working properly. and network transport are made accessible through the Microsoft Windows NT® operating system performance monitor. Node: Name of the computer the I/O data source program or service is running on. Item: Name of the actual individual data point to be access once the communication channel is opened. if the communication channel is between applications running in different computers. (SuiteLink is automatically installed as a Common Component when you install InTouch. you will need to start it again. z You must use computer names (Node Names) of no more than 15 characters. This is the name of the executable file without the extension. Additionally. To obtain data from another application. Windows 2003 Server. z Wonderware SuiteLink must be running as a service. topic name and item name. and easier diagnostics. It is configured to startup automatically as a Windows Service). This feature is critical for the scheme and maintenance of distributed industrial networks. z Extensive diagnostics of the data throughput. For more information on installing and configuring Microsoft TCP/IP. SuiteLink is designed specifically to meet industrial needs. Standards for Alarms & Events. System Platform . OPC interface products are built once and reused many times. The COM/DCOM technologies provided the framework for software products to be developed. The first standard (originally called simply the OPC Specification and now called the Data Access Specification) resulted from the collaboration of a number of leading worldwide automation suppliers working in cooperation with Microsoft. Originally based on Microsoft's OLE COM (component object model) and DCOM (distributed component object model) technologies. These benefits are real and tangible. not just their own). For the users. technical reliability is assured. And WordPerfect wrote the WordPerfect application and the printer drivers. Under DOS the developer of each application had to also write a printer driver for every printer. interfaces and methods for use in process control and manufacturing automation applications to facilitate interoperability. Now one printer driver served all the applications! And these were printer drivers that the printer manufacturer wrote (not the application developer). Adding the OPC specification to Microsoft's OLE technology in Windows allowed standardization. and on and on. It was quickly realized that communicating other types of data could benefit from standardization. There are now hundreds of OPC Data Access servers and clients. one industrial device manufacturer wrote their Human Machine Interface (HMI) software and a proprietary driver to each industrial device (including every PLC brand). hence. The original specification standardized the acquisition of process data. And their cost is lower. They could now choose software suppliers based on features instead of "Do they have the driver to my unique device?" They don't have to create a custom interface that they must bear the full cost of creating and upgrading through operating system or device vendor changes. Interoperability is assured through the creation and maintenance of open standards specifications. Another industrial device manufacturer wrote their HMI and a proprietary driver to each industrial device (including every PLC brand. they undergo continuous quality control and improvement. Windows provided the infrastructure to allow the industrial device driver's solution as well. Because the OPC standards are based in turn upon computer industry standards. the benefit was flexibility. Historical Data. The resulting selfish benefit to the software suppliers was the ability to reduce their expenditures for connectivity and focus them on the core features of the software.Section 4 – Connecting to the Field OPC OPC is open connectivity in industrial automation and the enterprise systems that support industry. Now the industrial devices' manufacturers could write the OPC DA Servers and the software (like HMIs) could become OPC Clients. The user's project cycle is shorter using standardized software components. the specification defined a standard set of objects. Users were also assured of better quality connectivity as the OPC DA Specification codified the connection mechanism and compliance testing. and Batch data were launched. In the industrial automation world. Windows solved the printer driver problem by incorporating printer support into the operating system. So AutoCAD wrote the AutoCAD application and the printer drivers. A typical analogy for needing the original Data Access Specification is printer drivers in DOS and then in Windows.Part 1 2-41 . They had to write a separate printer driver for every printer they wanted to support: one for an Epson FX-80 and one for the H-P LaserJet. all items that the Galaxy application requires for a Wonderware Training . There is a one-to-one relationship between an instance of the DDESuiteLinkClient object and a running I/O Server. A DIDevice Object is a representation of an actual external device (for example. you must configure and deploy more than one DDESuiteLinkClient object. a PLC or RTU) that is associated with a DINetwork Object. At run time. If you want to reference data points in more than one I/O Server.2-42 Module 2 – Application Infrastructure Device Integration Objects A DeviceIntegration object (DIObjects) is an AutomationObject that represents communication with external devices. Note: The DDESuiteLinkClient object is compatible with all Wonderware I/O Servers and components. you would need to configure one DDESuiteLinkClient object to communicate to an TCP I/O Server and another one to talk to the GEHCS I/O Server. DIObjects run on an AppEngine. The DDESuiteLinkClient object is a DeviceIntegration object that allows access to a running I/O Server. and include DINetwork Objects and DIDevice Objects. DDESuiteLinkClient The DDESuiteLinkClient object is a key member of the core set of AutomationObjects within the ArchestrA system infrastructure. For example. When you configure the DDESuiteLinkClient object. A DINetwork Object is a representation of a physical connection to a DIDevice Object via the Data Access Server. you can specify one or more I/O Server topics to which access is required. A DDE or SuiteLink I/O Server can provide data points to Galaxy application objects through the DDESuiteLinkClient object. The InTouch node effectively serves as the data provider (supporting the SuiteLink communication protocol) by providing data points to Galaxy application objects through the InTouchProxy object. specify the item address and associate it with a userdefined attribute name (alias). From other objects and from scripts. make sure that InTouch WindowMaker is not running on the InTouch node. the Object Viewer watch window). if these attributes are added in the client (for example. Note: Before using the tagname browser to browse for tags. For example. Thus. For example.Section 4 – Connecting to the Field specified topic are updated with the latest values from the I/O Server. There is a one-to-one relationship between an instance of the InTouchProxy object and a running InTouch node. specify login information that the DDESuiteLinkClient object uses to connect to the I/O Server. you might want to specify one or more existing InTouch tagnames (items) to use as object attributes. you must configure and deploy more than one InTouchProxy object. you would need to configure one InTouchProxy object to get data from an InTouch application running on Computer1 and another one to get data from an InTouch application running on Computer2. If you want to reference data points in more than one InTouch node. Creating the item list is not required in order to reference data from the I/O Server. The rate at which the values are updated depends on how the topics were configured within the target I/O Server. InTouchProxy The InTouchProxy Object is a gateway between Galaxy application objects and data that is available through an InTouch application. however.<attributename> The <objectname> is the name that you choose to give to the DDESuiteLinkClient object. they are updated with the latest values from the InTouch items. The InTouchProxy object is a DeviceIntegration object that represents a running InTouch node.<topicname>. Note: This object is compatible with InTouch v7. If you want to connect to a DDE I/O Server. To do this.<itemname> OR <objectname>. you might configure the input source for a FieldReference object to reference an item for one of the topics. The reference syntax for a DDESuiteLinkClient object data point is: <objectname>. can be running. When you configure the InTouchProxy object. you can reference the topics you configured for the DDESuiteLinkClient object." Run-time object attributes allow you to monitor errors related to the data quality for item values in a scan group. Each I/O topic for a DDESuiteLinkClient object is also known as a "scan group. An InTouch "node" is a unique combination of the computer name and InTouch application. Also. then read these attributes from the InTouch application at run time.11 and later applications. The InTouchProxy object allows you to browse a selected InTouch application tagname dictionary.Part 1 2-43 . the FieldReference object input source is receiving data from an I/O Server through the DDESuiteLinkClient object.X file. add selected tags as attributes in the Galaxy application. To aid in rapid application development. WindowViewer. The InTouchProxy object is a key member of the core set of AutomationObjects within the ArchestrA system infrastructure. At run time. be sure that you have given share permission of Read to the InTouch folder that contains the Tagname. InTouch sends a new data value for an item to the InTouchProxy object System Platform .<topicname>. you can create a list of topic items that appear in the ArchestrA Attribute Browser. If you want to reference data points in more than one OPC DA Server. Disconnected. the ProtocolFailureReasonCode attribute that reflects a failure in communication by a DAS DIObject with a field device. Thus.2-44 Module 2 – Application Infrastructure each time the value changes. 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). respectively. In the event of a failure of the active data source. For example. Note: If you are using this object to communicate with an OPC DA Server. which are implemented via block reads. this object automatically switches to the standby data source. you must configure and deploy more than one OPCClient object. you would need to configure one OPCClient object to communicate to an TCP OPC Server and another one to talk to the CIP OPC Server. and the ScanState attribute common to all ApplicationObjects. Run-time object attributes within the scan group allow you to monitor errors related to the data quality for InTouch item values in a scan group. Wonderware Training . which are implemented via scan groups. Read transactions. For example. Any items that you configure for an InTouchProxy object automatically becomes available within the ArchestrA Attribute Browser. you can reference the attributes you created for InTouch items. The RedundantDIObject is a DeviceIntegration object that makes redundant connections to a field device possible. z Write transactions.05 or later standards." Only one scan group exists in the InTouchProxy object. OPCClient The OPCClient object is a key member of the core set of AutomationObjects within the ArchestrA system infrastructure.<InTouchTagName> The <objectname> is the name that you choose to give to the InTouchProxy object. the RedundantDIObject automatically switches to the other source object for continued data acquisition. When those attributes are. you must properly configure the OPC DA Server before deploying this object. There is a one-to-one relationship between an instance of the OPCClient object and a running OPC DA Server. which are implemented via block writes. the FieldReference object's input source would be receiving data from a tag in an InTouch node through the InTouchProxy object. The way the RedundantDIObject determines that a data source is in Bad state by monitoring the ConnectionStatus attribute common to all DIObjects. This capability allows clients to configure redundant connections to a field device. From other objects and from scripts. A third-party OPC DA Server can provide data points to Galaxy application objects through the OPCClient object. If one of the source objects is unable to provide connection to the field device. Note: The OPCClient object is compatible with all OPC Servers that are compliant with OPC Data Access v2. The OPCClient object is a DeviceIntegration (DI) object that allows access to a running OPC Data Access (DA) Server. The reference syntax for an InTouchProxy object data point is: <objectname>. An OPCClient object supports the following operations on I/O points for the OPC DA Server: z Subscriptions. you might configure the input source for a FieldReference object to reference one of these InTouchProxy object attributes. The group of specified InTouch items for an InTouchProxy object is also known as the "scan group. which are implemented via block reads (when available in the source DIObject). or the current time provided by the hosting AppEngine is used. or ActiveAll. including the RedundantDIObject.Section 4 – Connecting to the Field non-zero. the status of the corresponding data source object is changed and a switchover attempt is made to the other data source. Note: Most ApplicationObjects in the ArchestrA environment write only the last data received in a scan cycle. There is a one-to-two relationship between an instance of a RedundantDIObject and a pair of source DeviceIntegration objects. Time and Quality Propagation When a dynamic attribute is poked. an attribute is always in the active scanning state. During runtime. But they must support the same type of DAGroups and must have the same item address space. For the ActiveOnDemand mode. These are just the starting points. If the connection to the Active object fails. the RedundantDIObject must be configured to have the DAGroups that are common to both source DIObjects. the attribute is not deleted. the time stamp is associated with the value and quality used to update the attribute. Scan Mode The scanning mode for the scan group. This switching between Active and Standby objects can be repeated multiple times depending on the configured switch attributes. For complete redundancy coverage. Note: The RedundantDIObject checks the state of its source DIObjects on every scan cycle. the time stamp is updated to the timestamp passed in with the value if available. They queue all data received in a scan cycle and write them all in the order received. System Platform . If either DIObject has unique DAGroups. one DIObject is set as the Primary DI source and the other is set as Backup DI source. Note: During configuration. When the last reference to the attribute is unregistered (unadvised). For ActiveAll. Quality (VTQ) triplet of data in the callback. For the Active mode.Part 1 2-45 . all items are unsubscribed from the Active DIObject and new subscriptions are made to the Standby DIObject. it is important that the RedundantDIObject should not be configured to use those uncommon DAGroups. but when the last reference to the attribute is unregistered (unadvised). either ActiveOnDemand. an attribute is always in the active scanning state. When the connection fails to the Active DIObject. operate differently. DeviceIntegrationObjects. or Offscan. you must: z Select Advanced Communication Management for your Galaxy. The two source DIObjects do not have to be the same type. then the Standby becomes the Active one and the other becomes the Standby. Active. attributes that are not actively being referenced by any client or object are not scanned. 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. The RedundantDIObject supports the following operations on I/O points from field devices: z Subscriptions. RedundantDIObjects belong to a family of objects called DINetwork objects. To enable Advanced Communication Management. the terms Active and Standby apply. If the data provider passes in a Value. the attribute is deleted. Write transactions. Time. which are implemented via scan groups. which are implemented via block writes (when available in the source DIObject). Read transactions. and I/O read-writes can be easily handled by the computer. They can reside on either a standalone or workstation node. I/O Servers can run on Workstations. device additions and device. and InTouchProxy objects must be deployed to an AppEngine on a Platform. DAServers support the OPC Data Access 2. This implementation expedites the data transfer between the two components (the I/O Server and the object instance). Wonderware's current DA Servers offering also includes support for: z Allen-Bradley's CIP protocol for ControlLogix z Allen-Bradley's TCP protocol z Allen-Bradley's DH Plus protocol z Siemens' Simatic Net S7 Wonderware Training . Run the I/O Server and the corresponding DI Object on the same node where most or all of the object instances (that obtain data from that DI Object) are deployed. including powerful diagnostics and remote configuration capabilities. I/O Server Different I/O data sources have different requirements.05 z Stand-alone operation mode z Support for hot configuration. Each DAServer is designed to provide simultaneous connectivity between client applications based on Wonderware SuiteLink. However. OPCClient object.and server-specific parameter modifications z A wide range of DA Servers support connectivity to numerous protocols and products. provided the requirements for visualization processing. the DI Objects used to communicate with those data sources such as the DDESuiteLinkClient object. and OPC Servers) do not require a platform on the node on which they run. OPC and DDE protocols that run on Microsoft's Windows® operating systems and the data devices supported by the specific protocol being translated. Two main groups are identified: z Legacy I/O Server applications (SuiteLink. data processing. This implementation also minimizes network traffic and increases reliability. including: z Compliance with OPC version 2. DDE. since they both reside on the same node. Several standard features are available with each DA Server.05 specification and offer additional features beyond the standard. both the DAServer and the corresponding DI Objects must reside on the same computer hosting an AppEngine. it is highly recommended in order to optimize communication throughput. it is good practice to evaluate the overhead necessary to run each Data Access Server (DA Server) DAServers. are designed to provide simultaneous connectivity between plant floor devices and modern DDE. z For Device Integration objects like CIP and TCP DINetwork objects. Although it is not required that these DI Objects be installed on the same node as the data server(s) they communicate with. SuiteLink and/or OPC based client applications. They offer enhanced communication diagnostics and performance.2-46 Module 2 – Application Infrastructure z Set the scan mode for each scan group that belongs to your device integration objects within the Galaxy. However. Part 1 2-47 . OPC DAServer technology also has drawbacks. System Platform . or FactorySuite Gateway can be placed on the same machine as the OPC DAServer and SuiteLink can be used to link the server to devices. a DAServer might use OPC to access data remotely in one machine. for instance. it also transfers a timestamp and quality codes.Section 4 – Connecting to the Field z Modbus® Serial protocol The DAServer is like a driver: it can receive data from different controllers simultaneously. data may be lost briefly without the user realizing the loss has occurred. but some topologies are more efficient than others. For example. Of the two topologies. When a DAServer transfers data. The DAServer is flexible enough to be used in a variety of topologies. For example. the DAServer can connect to the OPC Server directly across the network. using FactorySuite Gateway is more efficient than connecting the DAServer directly to the OPC Server. and use InTouch to communicate with another machine. 2-48 Module 2 – Application Infrastructure – Intentionally left blank – Wonderware Training . Objectives Upon completion of this lab you will be able to: z Create and configure a $DDESuiteLinkClient object to connect to an IO Server or DA Server using SuiteLink as the communication protocol z Monitor the connection status of the $DDESuiteLinkClient object on runtime System Platform .Lab 6 – Connecting to the Field Lab 6 – Connecting to the Field Introduction In this lab the $DDESuiteLinkClient object is used to create a connection to an InControl application running the simulation that will feed your Galaxy for the rest of this class. The InControl application effectively simulates the functionality of a regular IO Server or DA Server connected to a real PLC.Part 1 2-49 . b. Create an instance of the $tDDESuiteLinkClient template and name it InControl.csv file from the C:\Wonderware Training folder. c. In Deployment view. e. Deploy the Object f. name it $tDDESuiteLinkClient. please refer to the Detailed Lab Instructions on subsequent pages. See the next page for Detailed Lab Instructions Wonderware Training . Open Object Viewer from within the ArchestrA IDE. On the Topic tab. create a new watch window called InControl and add the following attribute references from the InControl instance: i. and assign it to the Training template toolset. add a topic called tagname and import the InControl Items List. Derived a new template from the $DDESuiteLinkClient object. In Model view. assign the InControl instance to the ControlSystem area. Using the watch list created in Lab 5. Create the Device Integration object a. z ConnectionStatus z Reconnect z ServerNode z ServerName z CommunicationProtocol z ScanGroupList (enter 1 as the array index) Save the watch list. assign the InControl instance to the AppEngine object and deploy the object. For detailed instructions. Configure the General tab of the new instance as follows: z Server node: <ask your instructor> z Server name: RTEngine z Communication protocol: SuiteLink d. h. Verify the Connection on Runtime g.2-50 Module 2 – Application Infrastructure Summary Lab Instructions Following is a summary of the general steps you will complete for this lab. Lab 6 – Connecting to the Field Detailed Lab Instructions Following are detailed lab instructions for completing this lab. Expand the Device Integration toolset. In the Template Toolbox. Name the new template $tDDESuiteLinkClient. 4. Move the $tDDESuiteLinkClient object to your Training toolset. 2. create a derived template of the $DDESuiteLinkClient object by right-clicking the $DDESuiteLinkClient template and selecting New / Derived Template. please refer to the Summary Lab Instructions on the previous page(s).Part 1 2-51 . For a summary of instructions. Create the Device Integration object 1. System Platform . 3. Double-click on the InControl instance to open its configuration editor. Configure the Instance 6. create an instance of the $tDDESuiteLinkClient template. Wonderware Training . Name the new instance InControl.2-52 Module 2 – Application Infrastructure 5. Using the Template Toolbox and the Model view. z Server name: RTEngine z Communication protocol: SuiteLink 8.Part 1 2-53 . In the General tab. Select the Topic tab. In the Available topics section. configure the object as follows: z Server node: <ask your instructor>. . click the Add button and press the Enter key. type tagname as the Topic name System Platform . 9.Lab 6 – Connecting to the Field 7. The following figure uses ‘TRAININGPC’ as an example. Navigate to the C:\Wonderware Training folder. select the InControl Items List. in the Associated attributes The Open dialog box displays. 12. Wonderware Training . Click the Open button.csv file.2-54 Module 2 – Application Infrastructure 10. With the topic tagname selected. 11. click the Import button for tagname section. 14. System Platform .Lab 6 – Connecting to the Field 13. Click the Save and Close button and check in the object.Part 1 2-55 . The content of the CSV file is loaded within the InControl object. 2-56 Module 2 – Application Infrastructure 15. Assign the InControl instance to the AppEngine object. In the Model view. Click the OK button. 17. The Check In dialog box appears. assign the InControl instance to the ControlSystem area. Select the Deployment view. Deploy the Object 18. 16. Enter Initial configuration and setup in the Comment field. Wonderware Training . 19. 22.Lab 6 – Connecting to the Field 20.Part 1 2-57 . System Platform . The Deploy dialog box is displayed. Leave the default settings and click the OK button. This will display a second Deploy dialog box indicating the deployment progress. Right-click the InControl instance and select Deploy. 21. By default the system will set the instance On Scan as soon as the object is deployed. 23.2-58 Module 2 – Application Infrastructure As soon as the process is complete. The different views now display the instance in its deployed state. Click the Close button to return to the ArchestrA IDE. the Close button will enable. Wonderware Training . The Object Viewer application opens to display the attributes of the selected object in the right panel.Part 1 2-59 . open Object Viewer by right-clicking the InControl instance and selecting View in Object Viewer.Lab 6 – Connecting to the Field Verify Connection in Runtime 24. 28. Right-click in the Watch List and select Rename Tab to rename the default Watch List 1 tab. 27. In Model view. 29. System Platform . Always select View in Object Viewer in the context menu to refresh and reload of instances in Object Viewer. Note: If Object Viewer is already open and you switch to it without selecting the context menu item View in Object Viewer. Right-click in the Watch List and select Add Watch Window to add a new tab to the watch list. new instances may not display. Name the new tab InControl. If you closed Object Viewer. 26. The Rename Tab dialog box is displayed. open your watch list by right-clicking the Watch List (bottom section of Object Viewer) and select Open to open the My Watch Windows file. 25. Right-click in the Watch List (bottom section of Object Viewer) and select Save to save the watch list.ConnectionStatus Value is Connected.2-60 Module 2 – Application Infrastructure 30. z ConnectionStatus z CommunicationProtocol z Reconnect z ServerName z ServerNode z ScanGroupList (enter 1 as the array index) Verify that the InControl. Wonderware Training . In the Attribute List (right section of Object Viewer) locate the following attributes. and select Add to Watch to add them to the watch list. 32. 31. You may also click and drag each attribute to the InControl watch list. right-click on them. Click OK. Pump. and Motor Section 6 – Containment Lab 11 – Creating the Mixer 3-27 3-35 3-37 3-41 3-45 3-61 3-67 .Module 3 Application Objects Section 1 – Templates and Instances 3-3 Section 2 – The $UserDefined Object 3-9 Lab 7 – Modeling the Heat Exchanger 3-11 Section 3 – Change Control and Propagation 3-25 Lab 8 – Configuring Change Control and Propagation Section 4 – The $AnalogDevice Object Lab 9 – Modeling a Meter Section 5 – The $DiscreteDevice Object Lab 10 – Modeling a Valve. 3-2 Module 3 – Application Objects Module Objectives Be able to z Identify and work with templates z Derive and configure templates Wonderware Training . Note: You should avoid creating instances directly from base templates. Base templates cannot be modified. Templates are like a cookie cutter from which you can make many identical cookies. called base templates. These requirements reflect information such as number of Inputs and Outputs. and security. You can extend and customize a template by adding User Defined Attributes (UDAs). Objects inherit attributes from their parents. a group of field devices (skids. stations). This section introduces you to the concept of templates and explain how to derive a template. Contained templates consist of nested object templates that represent complex devices consisting of smaller. A template is an entity that represents the common functional requirements of a field device (valves. scripts. alarm conditions. Templates are high-level definitions of the devices in your environment. since you will not be able to take advantage of advanced configuration and maintenance capabilities. Working with templates is the best way to illustrate such capability. Wonderware Application Server comes with predefined templates.Part 1 3-3 . and historical data for an object. System Platform . or a user function (algorithms). All templates you create are derived from base templates. including valves. Template names have a dollar sign ($) as the first character of their name. Templates only exist in the development environment.Section 1 – Templates and Instances Section 1 – Templates and Instances Section Objectives This section: z Introduces you to the concept of templates and explain how to derive a template. simpler devices. Templates One of the major benefits of Application Server is that it allows you to re-use existing engineering. A template can specify application logic. A template is created either from a base template or from another derived template. history needs. one time and then use that template when you need to define another instance of that item. security. You cannot change these templates. You can also nest templates. like a valve. A reactor is a good candidate for containment. You define a template for an object. A template can also define an area of your environment. pumps). Base templates are the objects provided with the Application Server. alarms. or contain them. or extensions to meet the specific needs of your environment. One object template performs the equivalent functions of multiple InTouch tags and scripts. conveyer belts. This makes it easy to maintain and update your application. Wonderware Training . Instances are the specific things in your environment like processes. Instances Instances are the run-time objects created from templates in Wonderware Application Server. Instances exist during run time. valves.3-4 Module 3 – Application Objects Using the Diaphragm valve template. you may have a few instances or several thousand. holding tanks. such as valves or holding tanks. Many of these instances may be similar or identical. and sensors. assuming the attributes are locked in the parent template. Creating a new valve object from scratch when you have several thousand identical valves is time-consuming. you can change the template for the diaphragm valve and all diaphragm valves in your application inherit the changes. you can quickly create an Diaphragm valve instance when you need another Diaphragm valve in your application. In your environment. Instances can get information from sensors on the real-world device or from application logic in Wonderware Application Server. Propagation If you need to change something about all diaphragm valves. That's where templates come in. For example. For your project planning. Templates are instantiated to represent specific objects within the application.Part 1 3-5 . and reuse multiple times. You can use simple drag-and-drop within the ArchestrA IDE to create instances from templates. This allows you to define once. Both the templates and the instances created from them are called ApplicationObjects. A template is an element that contains common configuration parameters for objects that are used multiple times within a project. the changes can be propagated to the instances. A child template that you derive from a parent template can be highly customized. you might need multiple instances of a valve within your application. Wonderware Application Server is shipped with a number of pre-defined templates to help you create your application quickly and easily. Review these templates and determine if any of their functionality match the requirements of the devices on your list. scripting. you can create (derive) new templates from the supplied UserDefined templates.Section 1 – Templates and Instances Planning for Object Templates The fourth step in the workflow is to determine the templates that you will need. System Platform . so you would create a valve template that has all of the required properties. document which existing template can be used for which objects. and what templates you will need to create yourself. If not. and alarm and history extensions. If you change the template. You can implement user-defined attributes (UDAs). Upon derivation the new template is created within the default toolset. When deriving a template an instance of the template is created that takes on all of the attributes of the template from which it was created. However. Base templates cannot have their attributes configured. The new template will inherit all attributes and associations of the original template that were locked. Deriving a Template Templates are either derived from Base Objects. instances of it can be created. existing templates or created within the ObjectToolkit and imported. Each instance will have all the attributes of the derived template. which you can then modify using a text editor and load back into the galaxy repository.3-6 Module 3 – Application Objects Note: You can use the Galaxy Dump and Load Utility to create a . Wonderware Training . This propagation of objects of a like kind can have a tremendous impact on the ability to create multiple instances of template derived objects containing fully replicated attributes. Once that derived template is configured. a template can be derived from one of the base templates. The new template is created and placed into rename mode. This allows you to make bulk edits to the configuration quickly and easily. Creating a derived template is available from the Template Toolbox and the Derivation view as well as by using keyboard shortcut keys. That derived template can then be configured and customized for attributes unique to the object it is modeling. If the default toolset does not exist then the system will create it when the derived template is created.CSV file. When creating an instance of an object that object instance will need to be configured independently. placed in the same toolset as the original Template. Select the Template in the ArchestrA IDE the new Template is to be derived from. Right-click the selected Template and click Derived Template on the Create submenu of the context menu. Note: The new Template is created in the Galaxy in a checked in state. b. Rename the derived Template. do the following: a. The new Template is created.Section 1 – Templates and Instances Leveraging of Template Instances To derive a Template from another one. and set in rename mode. System Platform . It can be viewed in the Template Toolbox or in the Derivation View of the Application Views pane.Part 1 3-7 . c. 3-8 Module 3 – Application Objects – Intentionally left blank – Wonderware Training . The Field Attribute only sends output. The Field Attribute writes to the specified output destination. User Defined Attributes (UDAs). unstable behavior with the Field Attribute value will occur. The Analog Field Attribute supports the following data types: z Integer z Float z Double The Analog Field Attribute provides the enabling and configuration for the following functionality: z Scaling of Input and Output values z History z HiHi. z Output. The Field Attribute is updated based on the value that is read from the configured input address. The UserDefined object provides this functionality as Field Attributes.Section 2 – The $UserDefined Object Section 2 – The $UserDefined Object Section Objectives This section: z Introduces you to the $UserDefined object and its functionality. If the value is extended. This section introduces you to the $UserDefined object and its functionality. Lo and LoLo Limit Alarms z Rate of Change Alarms z Target Deviation Alarms z Bad Value Alarm z Statistics System Platform . The Field Attribute only accepts input. The InputOutput mode supports the User writeable and Object writeable attribute categories. $UserDefined Object The UserDefined object provides the basic functionality you need to develop an ArchestrA supervisory application. scripts. Hi. z InputOutput.Part 1 3-9 . You can configure Field Attributes as an Analog or Discrete type with one of the following access modes: z Input. The Output mode supports the following categories: Calculated Calculated retentive User writeable Object writeable Note: We recommend you do not extend the Field Attribute value with an Input. and attribute extensions. or Output extension. The Field Attribute accepts input and sends output. The output destination can optionally differ from the input source address. InputOutput. Input from a level transmitter configured with options such as: Scaling. State alarm. You can use the UserDefined object as a template. for example: The “Tank” can be customized to raise an alarm when both XV100a and XV100b valves are open.InputOutput to a solenoid valve configured with options such as State Labels. Wonderware Training . z XV100a .ValueOpenAlarm = false. you can add a Boolean UDA called “ValueOpenAlarm”.Analog Field Attribute . and Statistics (Open/Close time). ENDIF.Discrete Field Attribute . An object relationship in which one object is comprised of other objects is called containment. Statistics (Open/Close time). ELSE me.Discrete Field Attribute . As a “container” Use the UserDefined object as a “container” for other objects.InputOutput to a solenoid valve configured with options such as State Labels. State alarm. For example. or as a container.XV100a == "Open" AND me. z SW100b . and then add the following OnExecute script: IF me.Input from a limit switch configured with options such as State Labels and State alarm. you might create a UserDefined object called “Tank” and configure Field Attributes that represent variables associated to the tank system: z LT100 .3-10 Module 3 – Application Objects The Discrete Field Attribute provides the enabling and configuration for the following functionality: z State Labels z History z State Alarm z Bad Value Alarm z Statistics The UserDefined object is an object that you can use to create customized objects. In this case. Limit alarms and Statistics (Min/Max/Avg). z SW100a .ValueOpenAlarm = true. the object provides a simple and manageable structure as all the variables are contained in the same object. extend it with an Alarm Extension.Discrete Field Attribute .Input from a limit switch configured with options such as State Labels and State alarm. z TT100 .Analog Field Attribute .XV100b == "Open" THEN me.Discrete Field Attribute .Input from a temperature transmitter configured with options such as Rate of Change alarm and Statistics (Min/Max/Avg). References between attributes in the object can be accomplished by using relative reference. Containment allows you to group various objects together to make complex objects. As a template Use the UserDefined object as a template containing Field Attributes associated to multiple variables in a system. For example. z XV100b . The InControl object created in the previous lab provides the connection to the live values for the four temperature transmitters within the heat exchanger.Part 1 3-11 . Objectives Upon completion of this lab you will be able to: z Configure and use object templates to create instances that will inherit configurations z Use the Field Attributes functionality provided by the $UserDefined object z Use the Galaxy Browser to build references to instance attributes within the Galaxy System Platform .Lab 7 – Modeling the Heat Exchanger Lab 7 – Modeling the Heat Exchanger Introduction In this lab the $UserDefined object is used to model the heat exchanger device identified in Lab 2. Maximum: 250. Create the Heat Exchanger Template a. Wonderware Training .0 EU value . Open Object Viewer from within the ArchestrA IDE. and assign it to the Training template toolset. where XX is your student number: Field Attribute Instance Attribute Name T1 InControl tagname. T3 and T4. Configure the Input source of each one of the four field attribute references.HE1XX_TC2 T3 InControl tagname. For detailed instructions.Maximum: 4095. g. name it $HeatEx. Save the watch list. Configure each field attribute as follows: Access mode: Input Data type: Float Engineering units: Deg F Enable I/O scaling: checked Raw value .0 EU range value . Using the watch list created in Lab 5. Add to the $HeatEx template four analog field attributes named T1. Derived a new template from the $UserDefined object.3-12 Module 3 – Application Objects Summary Lab Instructions Following is a summary of the general steps you will complete for this lab.HE2XX_TC3 e. T2. View the Heat Exchanger Data in Runtime f.Minimum: -5. please refer to the Detailed Lab Instructions on subsequent pages.0 Create and deploy a Heat Exchanger Instance c.Maximum: 255.HE1XX_TC1 T2 InControl tagname.HE1XX_TC3 T4 InControl tagname. Deploy the object. Create an instance of the $HeatEx template (leave the default name) and assign it to the Intake area. add a new watch window named HeatEx with the following attributes from the HeatEx_001 instance: z T1 z T2 z T3 z T4 h. b.0 EU range value . d. Lab 7 – Modeling the Heat Exchanger See the next page for Detailed Lab Instructions Detailed Lab Instructions Following are detailed lab instructions for completing this lab. 3. 2. Create the Heat Exchanger Template 1. System Platform . A new template is created. For a summary of instructions. In the Template Toolbox. please refer to the Summary Lab Instructions on the previous page(s). Create a derived template of the $UserDefined object by right-clicking the $UserDefined template and selecting New / Derived Template. expand the Application toolset. Name it $HeatEx.Part 1 3-13 . 3-14 Module 3 – Application Objects 4. Wonderware Training . 5. Move the $HeatEx object to your Training template toolset. Double-click on the $HeatEx template to open its configuration editor. 0 EU value: Maximum: 250.0 EU range value: Maximum: 255. click on the Add Analog button attribute. In the Field Attributes tab. to add a new analog field 7.0 System Platform .0 EU range value: Minimum: -5. Configure the new field attribute as follows: Name: T1 Access mode: Input Data type: Float Engineering units: Deg F Enable I/O scaling: checked Raw value: Maximum: 4095.Lab 7 – Modeling the Heat Exchanger 6.Part 1 3-15 . Name the attributes T2. 9. T3 and T4.3-16 Module 3 – Application Objects 8. Repeat steps 5 and 6 to add three more field attributes. using the same configuration as T1. Enter Initial configuration and setup in the Comment field. Click the Save and Close button to check in the object. As soon as the process is complete. 11. Click OK. Wonderware Training . The Check In dialog box appears. Click the Close button. 13. 10. 12. A second Check In dialog box is displayed indicating the progress of the operation. the Close button will be enabled. Part 1 3-17 . create an instance of the $HeatEx template using the default name of HeatEx_001. Assign the instance to the Intake area. Using the Template Toolbox and the Model view. 15.Lab 7 – Modeling the Heat Exchanger Create a Heat Exchanger Instance 14. System Platform . In the Inherited field attributes section. 16. select the T1 attribute. 17. Double-click on the HeatEx_001 instance to open its configuration editor. In the InControl panel (right) select tagname. In this example. In the Instances panel (left) select the InControl object. The Galaxy Browser window appears.3-18 Module 3 – Application Objects 18. Wonderware Training . 21.HE1XX_TC1 where XX is your student number. 19. 20. the student number is 00. click on the Input source ellipsis button to assign a reference using the Galaxy Browser. In the I/O section. Click OK. 25.HE1XX_TC3 and tagname. Click OK.Part 1 3-19 . T3 and T4 using the tagname. 26. 24. tagname.Lab 7 – Modeling the Heat Exchanger 22. System Platform .HE1XX_TC4 attributes. Click the Save and Close button . Repeat steps 17 through 22 to configure the Input source for attributes T2. The Input source attribute contains the selected reference: 23. The Check In dialog box appears. Enter Initial configuration and setup in the Comment field.HE1XX_TC2. Wonderware Training . This indicates the object is not deployed. right-click the HeatEx_001 instance and select Deploy. 27. Select the Deployment view.3-20 Module 3 – Application Objects Deploy the Object Notice that the HeatEx_001 instance icon includes a yellow square. By default the system will set the instance On Scan as soon as the object is deployed. System Platform .Lab 7 – Modeling the Heat Exchanger The Deploy dialog box appears. A second Deploy dialog box appears indicating the object deployment progress.Part 1 3-21 . 28. Click Close when the deployment is complete. Click OK to accept the default settings. 29. 3-22 Module 3 – Application Objects Notice that the HeatEx_001 icon changes (the yellow box is removed) to indicate its successful deployment: Wonderware Training . Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to rename the default Watch List 1 tab. click File / Load Watch List to open the watch list file you saved earlier. 32. Enter HeatEx for the Tab Name field and click OK. System Platform . If you closed Object Viewer. 34. The Object Viewer application opens displaying the attributes of the selected object. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch Window to add a new tab to the watch list.Part 1 3-23 . The Rename Tab dialog box is displayed. 31.Lab 7 – Modeling the Heat Exchanger View the Heat Exchanger Data in Runtime 30. Right-click the HeatEx_001 instance and select View in Object Viewer to show the HeatEx_001 object and its attributes in Object Viewer. 33. and select Add to Watch to add them to the watch list: z T1 z T2 z T3 z T4 You will observe the attribute values changing in real time. right-click on them. 36. Right-click in the Watch List (bottom section of Object Viewer) and select Save to save the watch list. Wonderware Training .3-24 Module 3 – Application Objects 35. The Quality attribute should reflect Good data. In the Attribute List (right section of Object Viewer) locate the following attributes. but instead share the locked one (it is Locked In Parent – see next item). when the value changes in the template.Part 1 3-25 . that change is propagated to all the derived children of the object. an attribute can have one of three logical lock types: z Unlocked: Both Templates and instances can have these. but references the one in the ancestor in which the attribute is Locked. the logical value of that attribute is updated in all derived objects. the value can be changed in that Template but not in any of the derived children. The object has its own copy of the attribute value and is not shared by derived objects. The object does not have a unique copy of the attribute value. Attribute is read-write. Based on this concept. In other words. By changing the value of a locked attribute. and z Explain how locking attributes can propagate to previously derived instances.Section 3 – Change Control and Propagation Section 3 – Change Control and Propagation Section Objectives z Introduce the concept of attribute locking. Attribute is readonly. Locking an attribute in a Template indicates that its value is to be logically “shared” with all derived objects (Templates or instances). z Locked In Parent: Both Templates and instances can have these. Attribute value is read-write. This section presents the concept of attribute locking and provides an illustrations on how locking attributes can propagate to previously derived instances. Derived objects don’t have a unique copy of the attribute value. z Locked: Only Templates can have these. When an attribute is “locked” in the Template. Locking an Attribute System Platform . 3-26 Module 3 – Application Objects To lock a Template attribute, do the following: a. Select the desired Template in the ArchestrA IDE and start its editor. b. Enter a value in an attribute field in the object’s editor. c. Select the locking mechanism for that attribute. Some editors may have lock icons associated with certain edit fields, but this possibility is within the scope of the developer of the object’s editor. d. Save and close the object editor. The locked attribute in any derived templates and instances created from this template are locked and unavailable. To test this, you can derive a new template or create an instance from the original template, and then check the new object’s editor. The locked attribute is unavailable for editing. Unlocking an Attribute To unlock a Template attribute, do the following: a. Select the desired Template in the ArchestrA IDE and start its editor. b. Select the locking mechanism for the locked attribute in the object’s editor. 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. c. Save and close the object editor. The previously locked attribute in any instances created from this template are now unlocked. The previously locked attribute in any templates derived from this template are still Locked (in me). The previously locked attribute in any instances of derived templates remain in Locked in Parent. Wonderware Training Lab 8 – Configuring Change Control and Propagation Lab 8 – Configuring Change Control and Propagation Introduction This lab illustrates how to modify the template for the heat exchanger to change the engineering units from ‘Deg F’ to ‘Celsius’, locking the attribute so the changes are propagated to the existing instance. It also illustrates that by locking the scaling configuration of the object it cannot be changed on derived objects. Objectives Upon completion of this lab you will be able to: z Lock attributes in templates to control the changes that can be made on derived objects z Propagate changes from templates to derived object by modifying the value of locked attributes System Platform - Part 1 3-27 3-28 Module 3 – Application Objects Summary Lab Instructions Following is a summary of the general steps you will complete for this lab. For detailed instructions, please refer to the Detailed Lab Instructions on subsequent pages. Lock the Attributes a. In the $HeatEx template, modify the configuration of the four field attributes as follows: Engineering units: ‘Celsius’ and locked Scaling section: locked Verify the Changes to the Existing Instance b. Open the configuration editor for the HeatEx_001 instance to verify the changes made in the template. Redeploy the Object c. Redeploy the object. See the next page for Detailed Lab Instructions Wonderware Training Lab 8 – Configuring Change Control and Propagation Detailed Lab Instructions Following are detailed lab instructions for completing this lab. For a summary of instructions, please refer to the Summary Lab Instructions on the previous page(s). Lock the Attributes 1. In the Training template toolset, double-click on the $HeatEx template to open its configuration editor. System Platform - Part 1 3-29 3-30 Module 3 – Application Objects 2. In the Field attributes section, select the T1 attribute and change the configuration as follows: Engineering units: ‘Celsius’ and locked Scaling section: locked Note: You may need to expand the Enable I/O scaling section. Click the section. 3. Repeat step 2 for field attributes T2, T3 and T4. 4. Click the Save and Close button and check in the object. Wonderware Training button to expand the Lab 8 – Configuring Change Control and Propagation The icon in front of the existing HeatEX_001 instance indicates that a change has been made to its configuration since it was last deployed. Verify the Changes to the Existing Instance 5. Double-click the HeatEx_001 instance to open its configuration editor and verify the changes. 6. Select the T1 field attribute and expand the Enable I/O scaling section and verify the changes. System Platform - Part 1 3-31 3-32 Module 3 – Application Objects 7. Save and Close the editor. Redeploy the Object Notice that the InControl instance icon has changed; a square that is shaded with a black triangular shape has been added to indicate the object configuration has changed in the deployed object, but the change is not deployed. 8. Select the Deployment view, right-click the HeatEx_001 instance and select Deploy. The Deploy dialog box appears. Notice by default Deploy Changes is selected, indicating only the objects with changes will be deployed. 9. Leave the default settings and click OK. Wonderware Training Lab 8 – Configuring Change Control and Propagation A second Deploy dialog box appears indicating the progress on deploying the object. As soon as the process is complete, the Close button will enable. 10. Click Close. System Platform - Part 1 3-33 3-34 Module 3 – Application Objects – Intentionally left blank – Wonderware Training Section 4 – The $AnalogDevice Object Section 4 – The $AnalogDevice Object Section Objectives This section: z Introduces you to the concept of the $AnalogDevice object and its functionality. This section introduces you to the concept of the $AnalogDevice object and its functionality. $AnalogDevice Object The AnalogDevice object is an ApplicationObject that can be configured as either a basic analog device, or an analog regulator device. When configured as a basic analog device, the AnalogDevice object follows the traditional model of a basic analog input/output object with alarming and history. When configured as an analog regulator device, the AnalogDevice object provides an external model of a PID controller that exists in a field device, in addition to providing the traditional analog alarming and history capabilities. z AnalogDevice Object as a Basic Analog Input/Output Object z AnalogDevice Object as an Analog Regulator Object AnalogDevice Object as a Basic Analog Input/Output Object When configured as a basic analog device, this object provides a means for reading and optionally writing analog signals from the field or from another object. The basic I/O characteristics are: z The process value (PV) is read from the field (except when the AnalogDevice object is configured to be in Manual mode). z You can configure the AnalogDevice object to enable or disable analog output. If you enable output, you can configure the output destination address to be the same (default) or different from the input source address. Commands to change the PV will result in an output to field. For data integrity, the value of PV represents the value read from the external controller (except when the AnalogDevice object is in Manual mode), not the requested PV that is output to the external controller. z The input and outputs can be optionally scaled between raw counts and engineering unit values using either linear or square-root conversions. The AnalogDevice object supports alarming for PV conditions, such as when the PV: z Exceeds level limits, such as Lo, Hi, LoLo, and HiHi. z Exceeds rate-of-change limits, for both positive and negative directions. z Exceeds major and minor deviations from a target value. z Has a quality value of BAD. In addition, you can configure the AnalogDevice object to allow or disallow the overriding of the PV value. If you enable the PV override, then you can use the PV.Mode attribute to place the AnalogDevice object into either Auto or Manual mode. When the AnalogDevice object is in Auto mode, the PV is updated from the field and matches the value and quality of the PVAuto attribute. When the AnalogDevice object is in Manual mode, the PVAuto attribute continues to be updated from the field, but the PV value does not. Instead, the PV can be set by a user write or a script, and the quality is always set to UNCERTAIN. Finally, you can configure the AnalogDevice object to historize key variables, including PV and PV.Mode. System Platform - Part 1 3-35 the value of SP always represents the value read from the external controller. but the PV value does not. z Exceeds rate-of-change limits. the PVAuto attribute continues to be updated from the field. the PV can be set by a user write or a script. When the AnalogDevice object is in Auto mode. only end users are allowed to command a change in the value of SP. and HiHi. you can configure the AnalogDevice object to allow or disallow the overriding of the PV value. In Cascade mode. not the requested SP that is output to the external controller.Mode attribute to place the AnalogDevice object into either Auto or Manual mode. When tracking is on. A Boolean control track flag can be read from an external device or object. The AnalogDevice object supports alarming for PV conditions. When the AnalogDevice object is in Manual mode. z The SP value is both read from the field and written to the field. but is never written. Hi. Cascade. such as Lo. then you can use the PV. and the quality is always set to UNCERTAIN. z Exceeds major and minor deviations from the SP value. Other controller-oriented features that can be configured for an AnalogDevice object of type analog regulator include: z Controller mode (CtrlMode attribute). z The PV and SP can be optionally scaled between raw counts and engineering unit values using either linear or square-root conversions. including when the PV: z Exceeds level limits. Commands to change SP result in an output to field.3-36 Module 3 – Application Objects AnalogDevice Object as an Analog Regulator Object When configured as an analog regulator device. In addition. If you enable the PV override. if None is specified for the controller mode. Wonderware Training . For data integrity. for both positive and negative directions. You can use the controller mode to govern what types of writes are allowed to the SP value within the system. Finally. LoLo. and None. Controller mode options are Manual. the AnalogDevice object provides a means for reading and optionally writing two separate analog signals from the field or from another object: one PV value and one setpoint (SP) value. only scripts or other supervisory objects are allowed to command a change to SP. the SP is purely read-only and cannot be commanded to be changed and output to the field. the PV is updated from the field and matches the value and quality of the PVAuto attribute. When the object is in Manual mode. Instead. The basic I/O characteristics are: z The process value (PV) is read from the field (except when the AnalogDevice object is configured to be in Manual mode). You can configure the SP output destination address to be the same (default) or different from the input source address. any type of write is allowed for the SP. the external controller "owns" the value of the SP. z Control tracking. z Has a quality value of BAD. no instances will be created yet for this object. The template created in this lab will be integrated later with other templates to form the mixer object. Objectives Upon completion of this lab you will be able to: z Configure an $AnalogDevice object System Platform .Part 1 3-37 .Lab 9 – Modeling a Meter Lab 9 – Modeling a Meter Introduction This lab illustrates how to use the $AnalogDevice object to model a meter template which will be used later to create the objects for the mixer level and temperature transmitters identified in Lab 2. because of this. Derived a new template from the $AnalogDevice object. Configure the object as follows: Type: Analog (locked) Enable analog output: Unchecked (locked) Enable PV override: Unchecked (locked) Enable I/O scaling: checked (locked) Raw value Minimum: 0.0 (locked) Conversion mode: Linear (locked) Clamp input to EU range: unchecked (locked) See the next page for Detailed Lab Instructions Wonderware Training . Create the Meter template a. b. name it $Meter. please refer to the Detailed Lab Instructions on subsequent pages. and assign it to the Training template toolset.3-38 Module 3 – Application Objects Summary Lab Instructions Following is a summary of the general steps you will complete for this lab. For detailed instructions.0 (locked) Raw value Maximum: 4095. Part 1 3-39 .Lab 9 – Modeling a Meter Detailed Lab Instructions Following are detailed lab instructions for completing this lab. Create the Meter Template 1. Double-click the new $Meter template to open its configuration editor. Name the new template $Meter and move it to the Training template toolset. For a summary of instructions. please refer to the Summary Lab Instructions on the previous page(s). 3. System Platform . 2. In the Training template toolset. right-click the $AnalogDevice template and select New / Derived Template to create a derived template of the $AnalogDevice object. Click the Save and Close button and check in the object. Wonderware Training .3-40 Module 3 – Application Objects 4.0 (locked) Conversion mode: Linear (locked) Clamp input to EU range: unchecked (locked) 5. Configure the General tab as follows: Type: Analog (locked) Enable analog output: Unchecked (locked) Enable PV override: Unchecked (locked) Enable I/O scaling: checked (locked) Raw value Minimum: 0.0 (locked) Raw value Maximum: 4095. For example. For example." "Closed." z First Active The first active state (Active1) represents the state of the discrete device when it is considered to be running. Open. or fail to change when commanded to do so. The actual state of a device is monitored using a combination of discrete inputs. the states might be configured as "Off" and "On. or closed (the typical non-running position). $DiscreteDevice Object The DiscreteDevice object is a general purpose ApplicationObject that represents a large class of physical equipment common in manufacturing.Section 5 – The $DiscreteDevice Object Section 5 – The $DiscreteDevice Object Section Objectives This section: z Introduces you to the concept of the $DiscreteDevice object and its functionality. Both of these are enumerations. Control valves are best represented with the AnalogDevice object. Closed. DiscreteDevice Object States The DiscreteDevice object has two key attributes that represent the current state (PV) and the commanded state (Cmd). and Moving). the input and output states can be linked by alarms." Note that a control valve has a continuous position represented by an analog signal of 0 to 100% and is not properly represented with a discrete device. however. Input and output states are totally independent of each other and can be configured as required by your application. The actual meanings of the states are dependent on the equipment: z Passive The passive state represents the state of the discrete device when it is idle. These devices have two or more discrete physical states (for example. When one or more of its monitored discrete inputs change. and a device can be optionally controlled using a combination of discrete outputs. For a pump." while for a valve they might be configured as "Open." You can use outputs to control the first active state.Part 1 3-41 . Finally. Historization of key attributes including the current state (PV) and commanded state (Cmd) can also be configured. The meaning of the states depends on the type of discrete device. This allows the object to detect a command timeout and uncommanded change alarms when devices unexpectedly change. the passive state for a motor might be "Off. it sets the configured combination of discrete outputs for that state." and "Moving. the DiscreteDevice object determines the new actual state of the equipment and sets the process value (PV) appropriately. such as pumps. System Platform . and conveyors. The DiscreteDevice object can have up to five states that can be configured with state names that are appropriate to the equipment being monitored. motors. the DiscreteDevice object supports a rich set of statistics reporting that you can enable during configuration. valves. This section introduces you to the concept of the $DiscreteDevice object and its functionality. stopped. the active state for a motor might be "Forward. The state names are configurable and are mapped to both input and output Boolean combinations in truth-table form. When a DiscreteDevice object is commanded to a new state. z When the object is in Auto mode." You can use outputs to control the second active state (Active2). You would then create references for two field inputs: one for the open position (Valve_Open). the first active state as Opened. the input values are used to update the overall state of the device.3-42 Module 3 – Application Objects Second Active z (Optional) Some discrete devices have more than one active state." or "Broken. Transition z (Optional) The discrete device is in a transition state any time it is changing from one valid state to another. a fault would occur if the Hi and Lo limit is being reached at the same time for a single device. map the different input combinations to the possible states for the device. For example: Valve_Open Valve_Close Mapped State 0 0 Transition 0 1 Closed 1 0 Opened 1 1 Bad where: 1=TRUE 0=FALSE By default. Examples of fault state names are "Error. or Simulate modes using the PVMode attribute. A DiscreteDevice object can have up to four inputs. For example." "Bad. Wonderware Training . You can configure the DiscreteDevice object to allow or disallow overriding of the PV value. a motor might have a second active state of "Backward. and the fault state as Bad. Instead. if you have a valve with a passive state of "Off" and an active state of "On. then the object can be placed in Auto. You then would map the inputs to the defined states. For example. the DiscreteDevice object determines the new actual state of the equipment and updates the value of the process value (PV) appropriately. when the monitored discrete inputs change. You have defined the passive state of the device as Closed." Fault z The fault state occurs when the feedback that is coming from the field is incorrect or impossible based on how the discrete device works." the transition state might be "Moving. PVAuto continues to update from the field but the PV does not. the PV can be set by a user or script and the quality is always marked as UNCERTAIN. you might have a valve on your discrete device that can be either opened or closed. Manual. For example. For example. and one for the closed position (Valve_Close). After defining the inputs. If you enable the PV override. the PV updates from the field and matches the value and quality of PVAuto. z When the object is in Manual mode." Monitoring a Discrete Device through Inputs If you configure the DiscreteDevice object to have inputs (feedback) from the field. Active2 and Passive states. with optional alarming on the Active1 and Active2 total durations. the object could then detect when the valve is actually open or closed. Alarm Capabilities The DiscreteDevice object provides sophisticated alarming capabilities. z The number of transitions into the Active1. System Platform . which indicates that the PV state changed from the expected Cmd state to some other state and the quality of PV is GOOD or UNCERTAIN (not BAD). z Control tracking. z The total accumulated time durations of the Active1. Active2 and Passive states. The transition and fault states are not commandable. A Boolean control track flag can be read from an external device or object. The control mode (Manual or Cascade) determines what types of writes are allowed to the Cmd value within the system. and second active states of the discrete device using the Cmd attribute. Controlling a Discrete Device through Outputs You can control (command) the passive. Manual indicates that only users (operators) are allowed to request a change to Cmd. When you set the Cmd attribute to "Open. the Cmd is purely read-only and is set to the value of PV. indicating the discrete device has been in the state for too long of a time period. the external controller "owns" the value of the Cmd. whereas Cascade indicates that only scripts or other supervisory objects are allowed to request a change to Cmd. Commanding a discrete device to a new state does not directly change the PV unless you have the PVMode set to "Simulate. For example. it sets an appropriate combination of discrete outputs for that state. you might map the first active state of "Open" to a discrete device output reference that will turn a valve to the open position. Active2 and Passive states. including: z Command timeout alarm.Section 5 – The $DiscreteDevice Object z When the object is in Simulate mode. which indicates that the PV state did not change to match the Cmd state within a configurable timeout period. rather than read from the field. z Individual alarms for each of Active1. including: z The most recent time durations of the Active1. first active. Active2." Controller-oriented features for the DiscreteDevice object include: z A configurable control mode. the PV value is set equal to the Cmd value.Part 1 3-43 . and Fault state conditions. z A commandable reset of all statistics. z Uncommanded change alarm. When a DiscreteDevice object is commanded to a new state. z Duration alarms for each of Active1 and Active2 states. Statistical Features The DiscreteDevice object offers advanced built-in state tracking calculations that can be used for equipment monitoring and time-in-use tracking. If inputs (feedback) are configured for the DiscreteDevice object. When tracking is on." the valve is "commanded" to be opened. 3-44 Module 3 – Application Objects – Intentionally left blank – Wonderware Training . Pump.Lab 10 – Modeling a Valve. and Motor Lab 10 – Modeling a Valve. you will extend the motor template to handle the speed associated with the mixer’s agitator. a pump and a motor template which will be used later to create the mixer’s inlet and outlet valves. and Motor Introduction This lab illustrates how to use the $DiscreteDevice object to model a valve. Pump. The templates to be created in this lab will be integrated later with other templates to form the mixer object. the templates for the pump and the motor are quite similar. Initially. no instances will be created for these objects at this time.Part 1 3-45 . Objectives Upon completion of this lab you will be able to: z Configure a $DiscreteDevice object System Platform . as well as the transfer pumps and agitator identified in Lab 2. Later. because of this. please refer to the Detailed Lab Instructions on subsequent pages. Configure the object’s Outputs tab as follows: Number of outputs: 1 (locked) Output Name: (locked) Output 1 Output Name: CmdOpen Closed: Unchecked (locked) Open: Checked (locked) Initial control mode: Manual (locked) Control tracking: (locked) Wonderware Training . For detailed instructions. Configure the object’s Inputs tab as follows: Number of Inputs: 2 (locked) Input Name: (locked) Input 2 Input Name: CLS Input 1 Input Name: OLS Input to PV Map: (locked) 0 0: Traveling 0 1: Open 1 0: Closed 1 1: Fault PV override: (locked) e. Create the Valve Template a. name it $Valve.3-46 Module 3 – Application Objects Summary Lab Instructions Following is a summary of the general steps you will complete for this lab. Derive a new template from the $DiscreteDevice object. Configure the object’s General tab as follows: Enable inputs: Checked (locked) Enable outputs: Checked (locked) c. Configure the object’s States tab as follows: Enable second active state: Unchecked (locked) Enable transition state: Checked (locked) State names: (locked) Passive state: Closed First Active state: Open Transition state: Traveling Fault state: Fault d. and assign it to the Training template toolset. b. Derived a new template from the $DiscreteDevice object. name it $Pump. (locked) Configure the object’s Outputs tab as follows: Number of outputs: 1 (locked) Output Name: (locked) Output 1 Output Name: CmdStart Stopped: Unchecked (locked) Running: Checked (locked) Initial control mode: Manual (locked) Control tracking: (locked) System Platform . Configure the object’s States tab as follows: i.Part 1 3-47 . Configure the object’s General tab as follows: Enable inputs: Checked (locked) Enable outputs: Checked (locked) h. Enable second active state: Unchecked (locked) Enable transition state: Unchecked (locked) State names: (locked) Passive state: Stopped First Active state: Running Fault state: Fault Configure the object’s Inputs tab as follows: Number of Inputs: 1 (locked) Input Name: (locked) Input 1 Input Name: FlowSwitch Input to PV Map: (locked) 0: Stopped 1: Running PV override: j. and assign it to the Training template toolset. g. Pump.Lab 10 – Modeling a Valve. and Motor Create the Pump Template f. Configure the object’s Inputs tab as follows: Number of Inputs: 1 (locked) Input Name: (locked) Input 1 Input Name: AuxContact Input to PV Map: (locked) 0: Stopped 1: Running PV override: (locked) o. Configure the object’s General tab as follows: Enable inputs: Checked (locked) Enable outputs: Checked (locked) m. name it $Motor. Configure the object’s States tab as follows: Enable second active state: Unchecked (locked) Enable transition state: Unchecked (locked) State names: (locked) Passive state: Stopped First Active state: Running Fault state: Fault n. and assign it to the Training template toolset. Derived a new template from the $DiscreteDevice object.3-48 Module 3 – Application Objects Create the Motor Template k. l. Configure the object’s Outputs tab as follows: Number of outputs: 1 (locked) Output Name: (locked) Output 1 Output Name: CmdStart Stopped: Unchecked (locked) Running: Checked (locked) Initial control mode: Manual (locked) Control tracking: (locked) See the next page for Detailed Lab Instructions Wonderware Training . Create the Valve Template 1. please refer to the Summary Lab Instructions on the previous page(s). 2. 3. Name the new template $Valve and move it to the Training template toolset. Expand the Application toolset in the Template Toolbox.Part 1 3-49 . For a summary of instructions. 4.Lab 10 – Modeling a Valve. Configure the General tab as follows: Enable inputs: Checked (locked) Enable outputs: Checked (locked) System Platform . and Motor Detailed Lab Instructions Following are detailed lab instructions for completing this lab. Pump. 5. Double-click the $Valve template to open its configuration editor. Right-click the $DiscreteDevice template and select New / Derived Template to create a derived template of the $DiscreteDevice object. Configure the States tab as follows: Enable second active state: Unchecked (locked) Enable transition state: Checked (locked) State names: (locked) Passive state: Closed First Active state: Open Transition state: Traveling Fault state: Fault Wonderware Training .3-50 Module 3 – Application Objects 6. Lab 10 – Modeling a Valve.Part 1 3-51 . and Motor 7. Pump. Configure the Inputs tab as follows: Number of Inputs: 2 (locked) Input Name: (locked) Input 2 Input Name: CLS Input 1 Input Name: OLS Input to PV Map: (locked) 0 0: Traveling 0 1: Open 1 0: Closed 1 1: Fault PV override: (locked) System Platform . Configure the Outputs tab as follows: Number of outputs: 1 (locked) Output Name: (locked) Output 1 Output Name: CmdOpen Closed: Unchecked (locked) Open: Checked (locked) Initial control mode: Manual (locked) Control tracking: (locked) 9. Create the Pump Template 10. Click the Save and Close button and check in the object. Right-click the $DiscreteDevice template in the Template Toolbox and select New / Derived Template to create a derived template of the $DiscreteDevice object. Wonderware Training .3-52 Module 3 – Application Objects 8. Double-click on the $Pump template to open its configuration editor. and Motor 11.Part 1 3-53 . 12. 13.Lab 10 – Modeling a Valve. Pump. Configure the General tab as follows: Enable inputs: Checked (locked) Enable outputs: Checked (locked) System Platform . Name the new template $Pump and move it to the Training template toolset. Configure the States tab as follows: Enable second active state: Unchecked (locked) Enable transition state: Unchecked (locked) State names: (locked) Passive state: Stopped First Active state: Running Fault state: Fault Wonderware Training .3-54 Module 3 – Application Objects 14. and Motor 15. Configure the Inputs tab as follows: Number of Inputs: 1 (locked) Input Name: (locked) Input 1: Input Name: FlowSwitch Input to PV Map: (locked) 0: Stopped 1: Running PV override: (locked) System Platform . Pump.Lab 10 – Modeling a Valve.Part 1 3-55 . Click the Save and Close button and check in the object. Wonderware Training . Configure the Outputs tab as follows: Number of outputs: 1 (locked) Output Name: (locked) Output 1 Output Name: CmdStart Stopped: Unchecked (locked) Running: Checked (locked) Initial control mode: Manual (locked) Control tracking: (locked) 17.3-56 Module 3 – Application Objects 16. Double-click on the $Motor template to open its configuration editor. Right-click the $DiscreteDevice template in the Template Toolbox and select New / Derived Template to create a derived template of the $DiscreteDevice object.Lab 10 – Modeling a Valve. 20.Part 1 3-57 . 19. Configure the General tab as follows: Enable inputs: Checked (locked) Enable outputs: Checked (locked) System Platform . and Motor Create the Motor Template 18. Name the new template $Motor and move it to the Training template toolset. 21. Pump. Configure the States tab as follows: Enable second active state: Unchecked (locked) Enable transition state: Unchecked (locked) State names: (locked) Passive state: Stopped First Active state: Running Fault state: Fault Wonderware Training .3-58 Module 3 – Application Objects 22. and Motor 23. Configure the Inputs tab as follows: Number of Inputs: 1 (locked) Input Name: (locked) Input 1 Input Name: AuxContact Input to PV Map: (locked) 0: Stopped 1: Running PV override: (locked) System Platform .Lab 10 – Modeling a Valve.Part 1 3-59 . Pump. 3-60 Module 3 – Application Objects 24. Configure the Outputs tab as follows: Number of outputs: 1 (locked) Output Name: (locked) Output 1 Output Name: CmdStart Stopped: Unchecked (locked) Running: Checked (locked) Initial control mode: Manual (locked) Control tracking: (locked) 25. Click the Save and Close button and check in the $Motor template. Wonderware Training . Valve1. simpler devices.SurgeTank. An object can have three kinds of names. the object whose Tagname is Valve1 may also be referred to as Tank1. For example. For example. Creating Contained Templates Containment is the relationship in which one object includes another. This name is called a hierarchical name. there are potentially multiple hierarchical names that refer to the same object. Hierarchical Name Hierarchical names that are fully-qualified names of a contained object include the name of the objects that contain it. Since the object that contains it may also be contained. Contained Name The name of the object within the context of its container object. System Platform . The three names include: z Tagnames z Contained Name z Hierarchical Name Name Description Tagname The unique name of the individual object. This section illustrates the concept of containment and how it works with Application Objects and Templates. depending on if it is contained by another object. if: “Reactor1” contains Tank1 (also known within Reactor1 by its contained name “SurgeTank”). if Tank1 contains it and it has the contained name "Outlet". Containment relationships organize objects in a hierarchy.Part 1 3-61 . For example.Section 6 – Containment Section 6 – Containment Section Objectives This section illustrates the concept of containment and how it works with Application Objects and Templates. "Tank1" contains Valve1 (also known within Tank1 by its contained name "Outlet").Outlet".Outlet" "Reactor1.Outlet. these objects can be referred to by the name that derives from the containment relationship. Valve1 could be referred to as: "Valve1" "Tank1. In scripts. You can build objects that represent complex devices consisting of smaller. Note: Base templates cannot be contained by another template. either as the container or as the template being contained. Change the contained name of Valve01 to InletValve. either as the container or as the template being contained. Contained names can be up to 32 alphanumeric or special characters. An instance of $Valve called Valve01 is contained within the instance of $Tank. The name of the contained object can be changed. This allows you to more closely model complex plant equipment.InletValve. though. Note: Objects can only contain objects like themselves. You can only use containment with derived templates.3-62 Module 3 – Application Objects For example. an instance of a $Tank is named Tank01. Wonderware Training . For example. You can only use containment with derived templates. ApplicationObjects can only be contained by other ApplicationObjects. like tank systems. This provides context for the contained object and a naming hierarchy that provides a powerful tool for referencing objects. within the scope of the hierarchy. You can nest templates to 10 levels. The second character cannot be $ and the name must include at least one letter. Now Valve01 can also be referred to by its hierarchical name Reactor1. You cannot use spaces. Higher level objects contain lower level objects. ApplicationObject Containment ApplicationObjects can be contained by other ApplicationObjects. Note: Base templates cannot be contained by another template. Areas can only contain other Areas. Part 1 3-63 .Section 6 – Containment An example of a containment hierarchy is a tank that contains the following objects: z Inlet Valve z Agitator z Outlet Valve z Level System Platform . these objects can be referenced in several different ways. such as: z Inlet Valve = InletValve01 z Agitator = Agitator01 z Outlet Valve = OutletValve01 z Level = Level01 Wonderware Training .3-64 Module 3 – Application Objects To enable referencing and flexibility within scripting. Each object has a unique Tagname. System Platform .Outlet: Allows a script running within the parent object to generically reference its child outlet instance. So if the tank is named Tank01. you can use containment references in scripts such as: z Me. the contained names are unique. z MyContainer.Inlet: Allows a script running in any of the children instances to reference another child instance named Inlet that belongs to the same parent. the contained names are: z Tank01.Inlet z Tank01. in that the names only refer to this tank system and the contained objects.Part 1 3-65 .Level Additionally.Agitator z Tank01.Outlet z Tank01.Section 6 – Containment Within the context of each hierarchy. You must update the references. make sure that the object is not checked out to another user or currently deployed. The second character cannot be $ and the name must include at least one letter. Note: Be careful renaming contained objects. click Rename Contained Name. z Non-contained templates show their object name. You cannot use spaces. Contained names also cannot be the same contained name as an existing contained object within the same level of hierarchy in the containment relationship. Template names can be up to 32 alphanumeric or special characters. Wonderware Training . including the required $ as the first character. On the Edit menu. All IDEs connected to the Galaxy show the object's new contained name. Type a new contained name. z Contained instances show their tagnames and hierarchical names. The new contained name must comply with naming restrictions. Containment and the Derivation View The Derivation View does not show containment relationships. To rename an object's contained name 1. z Contained templates show their hierarchical name. Containment of instances is limited to Areas containing other Areas and AppObjects containing other AppObjects.3-66 Module 3 – Application Objects Renaming Contained Objects Before you rename a contained name of an object. 3. References from other objects to the object being renamed are not automatically updated with the new name. Select the object in an Application view. A template only has a template name. 2. It shows templates and instances with regard to containment in the follow ways: z Non-contained instances show their tagnames. Renaming can be done on an instance's tagname and contained name. Objects with broken references receive bad quality data at run-time. The InControl object created in Lab 6 provides the connection to the live values for each of the objects that are part of the mixer.Part 1 3-67 . Objectives Upon completion of this lab you will be able to: z Create and configure a containment relationship between objects. System Platform . you will use object containment to integrate all the pieces together and build the “mixer system”.Lab 11 – Creating the Mixer Lab 11 – Creating the Mixer Introduction This lab uses the templates created in Labs 9 and 10 to create dedicated templates for each of the Mixer’s components identified in Lab 2. Using the $UserDefined template to create a template for the mixer itself. please refer to the Detailed Lab Instructions on subsequent pages. Create the Mixer’s Valves Templates b. and assign it to the $Mixer template.0 (locked) Derived a new template from the $Meter object. Engineering units: Liters (locked) EU value Minimum: 0. Wonderware Training .0 (locked) EU range value Minimum: -5. name them $Pump1 and $Pump2. name it $Agitator.0 (locked) EU value Maximum: 250. name them $Inlet1. Create the Level and Temperature Meter Templates e. Derived two new templates from the $Pump object. and assign them to the $Mixer template. Create the Mixer template a.0 (locked) EU range value Minimum: -5. name it $TT.0 (locked) EU value Maximum: 100. For detailed instructions. name it $Mixer. Derived a new template from the $Meter object. and assign it to the $Mixer template.0 (locked) EU range value Maximum: 105. Configure the object as follows: f. and assign them to the $Mixer template. and assign it to the $Mixer template. Configure the object as follows: Engineering units: Celsius (locked) EU value Minimum: 0.0 (locked) Create a Mixer Instance g.0 (locked) EU range value Maximum: 255.3-68 Module 3 – Application Objects Summary Lab Instructions Following is a summary of the general steps you will complete for this lab. Create an instance of the $Mixer template (leave the default name) and assign it to the Line1 area. $Inlet2 and $Outlet. and assign it to the Training template toolset. d. Derived a new templates from the $Motor object. name it $LIT. Create the Mixer’s Pumps and Agitator templates c. Derived three new templates from the $Valve object. Derived a new template from the $UserDefined object. Deploy the object.T1XX_IV1_CLS OLS.Lab 11 – Creating the Mixer 3-69 h.Part 1 .T1XX_IV2_CLS OLS.OutputDestination: InControl tagname.T1XX_TP2_FlowSwitch CmdStart.InputSource: InControl. For Agitator_001 AuxContact.T1XX_TP1_CmdStart FlowSwitch.T1XX_IV2_OLS CmdOpen.InputSource: InControl tagname.T1XX_OV_CmdOpen FlowSwitch.T1XX_IV1_OLS CmdOpen.T1XX_AG_AuxContact CmdStart.T1XX_TP2_CmdStart InControl tagname.InputSource: InControl tagname.T1XX_OV_OLS CmdOpen.InputSource: InControl tagname.OutputDestination: InControl tagname.InputSource: InControl tagname. tagname.InputSource: InControl tagname.T1XX_TP1_FlowSwitch CmdStart.T1XX_IV1_CmdOpen CLS.OutputDestination: InControl tagname. System Platform .InputSource: i.OutputDestination: InControl tagname.T1XX_AG_CmdStart CLS.T1XX_TT_PV For Outlet_001 For Pump1_001 For Pump2_001 For TT_001 PV.T1XX_IV2_CmdOpen For Inlet1_001 For Inlet2_001 : For LIT_001 PV.Input.T1XX_OV_CLS OLS.InputSource: InControl tagname.OutputDestination: InControl tagname.T1XX_LT_PV CLS.Input.InputSource: InControl tagname.InputSource: InControl tagname.OutputDestination: InControl tagname. Configure the input and output references for the contained objects as follows where XX is your student number.InputSource: InControl tagname. Open Object Viewer from within the ArchestrA IDE and. using the watch list created previously. See the next page for Detailed Lab Instructions Wonderware Training . Save the watch list. add a new watch window called Mixer and add the following attribute references: Object Attribute Agitator_001 Cmd PV Inlet1_001 Cmd PV Inlet2_001 Cmd PV LIT_001 PV Outlet_001 Cmd PV Pump1_001 Cmd PV Pump2_001 Cmd PV TT_001 PV k.3-70 Module 3 – Application Objects View the Mixer Data in Runtime j. 5. 6. Move $Inlet1 to the $Mixer template to contain it within the $Mixer object. Notice the $ in $Inlet1 is automatically removed. 7. System Platform . Right-click the $UserDefined object and select New / Derived Template to create a derived template of the $UserDefined object. Create the Mixer Template 1.Part 1 3-71 . Create the Mixer’s Valves Templates 4.Lab 11 – Creating the Mixer Detailed Lab Instructions Following are detailed lab instructions for completing this lab. 2. Name the new template $Inlet1. For a summary of instructions. Name the new template $Mixer and move it to the Training template toolset. 3. indicating it is a template contained within another template. Expand the Application toolset in the Template Toolbox. Right-click the $Valve object in the Training template toolset and select New / Derived Template to create a derived template of the $Valve object. please refer to the Summary Lab Instructions on the previous page(s). Right-click the $Valve object in the Training template toolset and select New / Derived Template to create a derived template of the $Valve object. containing it within the $Mixer object: z Agitator Wonderware Training . 11. 10.3-72 Module 3 – Application Objects 8. Derive the following template from the $Motor object. Move $Outlet to the $Mixer template to contain it within the $Mixer object. containing them within the $Mixer object: z Pump1 z Pump2 The Training template toolbox should now look like the following: 13. Move $Inlet2 to the $Mixer template to contain it within the $Mixer object. Name the new template $Inlet2. Create a new derived template of the $Valve object and name it $Outlet. Derive the following templates from the $Pump object. 9. The Training template toolbox should now look like the following: Create the Mixer’s Pumps and Agitator templates 12. Part 1 3-73 . System Platform .Lab 11 – Creating the Mixer The Training template toolbox should now look like the following: Create the Level and Temperature Meter Templates 14. containing it within the $Mixer object: z LIT The Training template toolbox should now look like the following: 15.LIT template to open its configuration editor. Double-click the $Mixer. Derive the following template from the $Meter object. Click the Save and Close button and check in the object.0 (locked) EU value Maximum: 100.0 (locked) EU range value Minimum: -5. Wonderware Training . Configure the General tab as follows: Engineering units: Liters (locked) EU value Minimum: 0.0 (locked) EU range value Maximum: 105.3-74 Module 3 – Application Objects 16.0 (locked) 17. containing it within the $Mixer object: z TT 19.Part 1 3-75 . System Platform .TT template to open its configuration editor. Derive the following template from the $Meter object.Lab 11 – Creating the Mixer 18. Double-click the $Mixer. Wonderware Training . Configure the General tab as follows: Engineering units: Celsius (locked) EU value Minimum: 0.0 (locked) EU range value Minimum: -5.0 (locked) EU range value Maximum: 255.0 (locked) 21.3-76 Module 3 – Application Objects 20. Click the Save and Close button and check in the object.0 (locked) EU value Maximum: 250. create an instance of the $Mixer template using the default name of Mixer_001. Assign the instance to the Line1 area. System Platform .Part 1 3-77 . 23. Using the Template Toolbox and the Model view.Lab 11 – Creating the Mixer Create a Mixer Instance 22. Double-click the Agitator_001 instance. Click the Browse Galaxy button after Input Source Reference.3-78 Module 3 – Application Objects Configure the Agitator 24. Wonderware Training . 25. Select the Inputs tab. The Agitator_001 configuration editor appears. 26. Select the Outputs tab. 30. Click OK. where XX is your student number. 32. Click OK. System Platform . select the tagname. where XX is your student number. 31.T1XX_AG_CmdStart attribute.Lab 11 – Creating the Mixer 27. select the tagname. Click the ellipsis to configure the Output Destination Reference. 28. From the InControl Instance.Part 1 3-79 . From the InControl Instance. 00 is used in the following examples.T1XX_AG_AuxContact attribute. 29. 3-80 Module 3 – Application Objects The attribute reference appears in the Output Destination Reference: 33. Click the Save and Close button and check in the object. Wonderware Training . Input Name Instance Attribute Input 2: CLS InControl tagname. Double-click the Inlet1_001 instance to open its configuration editor.Lab 11 – Creating the Mixer Configure Inlet1 34. where XX is your student number.Part 1 3-81 . Select the Inputs tab and configure the Input Source Reference as follows.T1XX_IV1_CLS Input 1: OLS InControl tagname. 35.T1XX_IV1_OLS System Platform . Wonderware Training .T1XX_IV1_CmdOpen 37.3-82 Module 3 – Application Objects 36. Select the Outputs tab and configure the Output Destination Reference as follows. where XX is your student number. Click the Save and Close button and check in the object. Output Name Instance Attribute Output 1: CmdOpen InControl tagname. T1XX_IV2_OLS System Platform . Input Name Instance Attribute Input 2 : CLS InControl tagname. Double-click on the Inlet2_001 instance to open its configuration editor.T1XX_IV2_CLS Input 1: OLS InControl tagname.Lab 11 – Creating the Mixer Configure Inlet2 38. 39. where XX is your student number. Select the Inputs tab and configure the Input Source Reference as follows.Part 1 3-83 . 3-84 Module 3 – Application Objects 40.T1XX_IV2_CmdOpen 41. Click the Save and Close button and check in the object. Wonderware Training . where XX is your student number. Output Name Instance Attribute Output 1: CmdOpen InControl tagname. Select the Outputs tab and configure the Output Destination Reference as follows. Part 1 3-85 . Instance Attribute InControl tagname.Lab 11 – Creating the Mixer Configure LIT 42. Select the I/O tab and configure the PV input source as follows. where XX is your student number.T1XX_LT_PV 44. 43. Click the Save and Close button and check in the object. System Platform . Double-click the LIT_001 instance to open its configuration editor. where XX is your student number. 46.T1XX_OV_OLS Wonderware Training Attribute . Input Name Instance Input 2: CLS InControl tagname. Double-click on the Outlet_001 instance to open its configuration editor.T1XX_OV_CLS Input 1: OLS InControl tagname.3-86 Module 3 – Application Objects Configure Outlet 45. Select the Inputs tab and configure the Input Source Reference as follows. where XX is your student number. Output Name Instance Attribute Output 1: CmdOpen InControl tagname. System Platform . Click the Save and Close button and check in the object.Part 1 3-87 .T1XX_OV_CmdOpen 48. Select the Outputs tab and configure the Output Destination Reference as follows.Lab 11 – Creating the Mixer 47. Input Name Instance Attribute Input 1: FlowSwitch InControl tagname.T1XX_TP1_FlowSwitch Wonderware Training . Select the Inputs tab and configure the Input Source Reference as follows. Double-click on the Pump1_001 instance to open its configuration editor.3-88 Module 3 – Application Objects Configure Pump1 49. 50. where XX is your student number. where XX is your student number.Part 1 3-89 . Click the Save and Close button and check in the object.T1XX_TP1_CmdStart 52. Output Name Instance Attribute Output 1: CmdStart InControl tagname. System Platform .Lab 11 – Creating the Mixer 51. Select the Outputs tab and configure the Output Destination Reference as follows. Select the Inputs tab and configure the Input Source Reference as follows. where XX is your student number. 54. Double-click on the Pump2_001 instance to open its configuration editor.3-90 Module 3 – Application Objects Configure Pump2 53.T1XX_TP2_FlowSwitch Wonderware Training . Input Name Instance Attribute Input 1: FlowSwitch InControl tagname. Select the Outputs tab and configure the Output Destination Reference as follows. Output Name Instance Attribute Output 1: CmdStart InControl tagname. Click the Save and Close button and check in the object.Lab 11 – Creating the Mixer 55. System Platform .T1XX_TP2_CmdStart 56. where XX is your student number.Part 1 3-91 . By default the system will Cascade Deploy 9 objects in the containment relationships and set all instances On Scan as soon as the objects are deployed. Instance Attribute InControl tagname. Select the I/O tab and configure the PV input source as follows. Leave the default settings and click OK. where XX is your student number. 61. Click the Save and Close button and check in the object.3-92 Module 3 – Application Objects Configure TT 57. Select the Deployment view.T1XX_TT_PV 59. Deploy the Object 60. Wonderware Training . Double-click on the TT_001 instance to open its configuration editor. 58. The Deploy dialog box displays. right-click the Mixer_001 instance and select Deploy. System Platform . 65.Lab 11 – Creating the Mixer A second Deploy dialog box displays indicating the progress on deploying all 9 objects. If you closed Object Viewer before. 62. View the Mixer Data in Runtime 63. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to rename the watch list to Mixer. As soon as the process is complete. Click Close. you can use File / Load Watch List to open the file you saved earlier. Right-click on the Mixer_001 instance and select View in Object Viewer. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch Window to add a new tab to the watch list. the Close button will be enabled. 64.Part 1 3-93 . locate and add the following attributes to the selected watch list by rightclicking on each attribute and selecting Add to Watch: Object List Attribute List Agitator_001 Cmd PV Inlet1_001 Cmd PV Inlet2_001 Cmd PV LIT_001 PV Outlet_001 Cmd PV Pump1_001 Cmd PV Pump2_001 Cmd PV TT_001 PV Wonderware Training .3-94 Module 3 – Application Objects 66. Using the Object List (left section of Object Viewer) and the Attribute List (right section of Object Viewer). Part 1 3-95 .Lab 11 – Creating the Mixer 67. Right-click in the Watch List (bottom section of Object Viewer) and select Save to save the watch list. System Platform . 3-96 Module 3 – Application Objects – Intentionally left blank – Wonderware Training . NET 4-21 Lab 13 – Adding Auto Reconnect to DDESuiteLinkClient 4-45 Lab 14 – Configuring Automatic Reference 4-53 .Module 4 Extending the Objects Section 1 – UDAs 4-3 Section 2 – Extensions 4-7 Lab 12 – Configuring the Motor Speed 4-11 Section 3 – Introduction to QuickScript . 4-2 Module 4 – Extending the Objects Module Objectives z Be able to work with extending the objects and configuring them for additional functionality. Wonderware Training . Section 1 – UDAs Section 1 – UDAs Section Objective This section introduces and explains UDAs and how they are configured and used. it appears in the Attribute Browser list for use with the scripting and attribute extension functions. and category are automatically locked in the child instances. When unlocked in either the base or derived template. they allow users to: z Add a new attribute to an object z Configure its data type z Specify the attribute category z Set initial values and locks on the new attribute z Set whether the new attribute is an array and how many elements comprise it z Set alarms and historization for the new attribute (done on the Extensions page) z Define security and references to other objects (done on the Extensions page) Note: After you add an attribute to an instance. scripts and UDAs can be used to create a completely new type of ApplicationObject starting from an empty container object that has no behavior / logic itself. its data type. After you add an attribute to an instance. They allow users to not only add logic to an existing ApplicationObject but also to expose new behavior via added (user defined) attributes. If these parameters are unlocked in the template. More specifically. This section introduces and explains UDAs and how they are configured and used.Part 1 4-3 . System Platform . When you add a UDA to a template. the value is editable in instances. You can add UDAs to a template or an instance. the initial value and security are editable and lockable in derived templates. the UDA. they cannot be changed in child instances. If UDA parameters such as initial values and security classifications are locked in the template. it appears in the Attribute Browser list for use with the scripting and attribute extension functions. Put to the extreme. User Defined Attributes (UDAs) UDAs (User Defined Attributes) are part of the ApplicationObject script environment. select the desired element and provide a default value by typing either true or false.4-4 Module 4 – Extending the Objects The UDAs page is comprised of three main functional areas and a set of function buttons. Wonderware Training . select the True/False check box to use a True value. You can lock writable attributes. Calculated retentive. UDAs Name List Data Type Group Inherited UDAs Name List The main areas of the UDAs page include: z UDAs list: Lists all UDAs currently associated with the object. only scripts running on the same object can write to the attribute. Select This is an array and specify the array's length in the Number of elements box. Allowed categories are Calculated. ElapsedTime or InternationalizedString. Float. z Data type list: Shows the data type options for configuring the selected UDA. Time. In the case of a non-arrayed Boolean. Integer. Clear the check box to use a False value. The object automatically includes these UDAs. If you select Calculated for an attribute. For an arrayed Boolean. Click the Add button to add a new UDA. String. They can only be edited by modifying the parent template. Object writable and User writeable. Enter value data for each data type. Double. Select from the data types Boolean. z Inherited UDAs list: Lists all UDAs associated with the object's parent. These are described below. You can create an array for each data type except InternationalizedString. The Value parameter specifies the initial setting for the attribute when the object is deployed. note the following: z When using Calculated and Calculated Retentive UDAs as counters. and can be initialized in OnScan and Execute scripts. you should not initialize the UDA.UDA=1 or me. Therefore. scripts with those types of Execution Type triggers). For instance. System Platform . z Calculated Retentive UDAs must be initialized in Startup scripts. redundancy-related failover. StartingFromCheckpoint.Section 1 – UDAs When using UDAs in scripting. if you use me.Part 1 4-5 . The main purpose of a Calculated Retentive UDA is to retain the attribute's current value after a computer reboot.UDA=<some attribute value>.UDA+1 as a counter in a script. you must also initialize the UDA with something like me. they must be manually initialized. if the value is FALSE. z Calculated UDAs can be initialized in OnScan and Execute scripts (that is. If the value is TRUE. your Startup script should contain a statement testing the Boolean value of the attribute. or similar occurrence in which valid checkpoint data is present.UDA=me. on the object's AppEngine. but not Startup scripts. you should initialize the UDA. 4-6 Module 4 – Extending the Objects – Intentionally left blank – Wonderware Training . The list can include those added through the UDA object extension function. The extension reads the Source System Platform .Part 1 . Extensions The Extensions page is comprised of seven main functional areas. z InputOutput Extension Group: Use to configure an attribute so that its value is both read from an external-reference source and written to an external-reference destination (the source and destination may or may not be the same). described next. InputOutput Extension Group Input Extension Group Output Extension Group Alarm Extension Group History Extension Group Extendable Attributes list Boolean Label Extension Group The main functional areas of the Extensions page include: z Extendable Attributes List: Lists all attributes currently associated with the object. This section provides describes the Output Functionality for Application Objects in the Extensions environment. Select the Show Extension Attributes check box to include attributes added on the UDA page.Section 2 – Extensions 4-7 Section 2 – Extensions Section Objective This section describes the Output Functionality for Application Objects in the Extensions environment. An X is placed in the Input column of the selected attribute. These custom text strings appear in the Active alarm state list in the Alarm extension area for you to select. If you are using the InTouch HMI. you can see these custom text strings in InTouch. z Boolean Label Extension: Specify custom text strings for the False state and the True state. and enter a Destination attribute by either typing in the reference string or clicking the attribute browser button. Use the Attribute Browser dialog box to search for the desired reference string in an object. select a Category from the list: Discrete. For Alarm Extension. you can change the Source reference. 2. the extended attribute acquires the update value of the Source attribute. enter a Destination attribute by either typing in the reference string or clicking the attribute browser button at right. when the value or quality (from Bad or Initializing to Good or Uncertain) of the extended attribute is modified. Then if Destination is different from Source. Select the Output Every Scan check box if you want the extended attribute to write to the Destination attribute every scan period of the object (otherwise. do not lock the Destination parameter if you clear the Output Destination Differs from Input Source check box. "---" is interpreted as the same reference as the Source value entered during configuration time. In the run-time. Value LoLo. In other words. z Input Extension Group: Use to configure an attribute to be a reference source for another object. Select the check box of the kind of extension you want to apply to the selected attribute. Process. Caution! If you clear the Output Destination Differs from Input Source check box. An X is placed in the InputOutput column of the selected attribute. the content of the Destination box automatically becomes "---". Therefore. Use the Attribute Browser dialog box to search for the desired reference string in an object. enter a Source attribute by either typing in the reference string or clicking the attribute browser button at right. Value HiHi. On the Extensions page of the object's editor. Use the Attribute Browser dialog box to search for the desired reference string in an object. The four extension groups dynamically change according to allowed extension rules for the selected attribute type. SPC. enter a Source attribute by either typing in the reference string or clicking the attribute browser button at right. the value of the Destination attribute is updated. z History Extension Group: Use to historize the value of an attribute that does not already have history capabilities. 4. select an attribute in the Extendable Attributes List. DeviationMajor. For InputOutput Extension. In other words. ROC Hi. and updates the extended attribute's value and quality every scan. ROC Lo. For Output Extension. the write executes only when the value is modified or when quality changes from Bad or Initializing to Good or Uncertain). An X is placed in the Output column of the selected attribute. To create and associate an extension with an object 1. z Output Extension Group: Use to configure an attribute to be writeable to an external object's attribute. Changes read from the source are not written back to the Destination attribute. during configuration. z Alarm Extension Group: Use to create an alarm condition when a Boolean attribute's value is set to TRUE. The associated parameters for each kind of extension are then made available. 5. 6. DeviationMinor. Value Lo. Value Hi. Wonderware Training .4-8 Module 4 – Extending the Objects attribute's value and quality. For Input Extension. click Output Destination Differs from Input Source. In the run-time environment. 3. The exception to the above-described functionality is for Boolean data types used in User sets (sets from InTouch or FactorySuite Gateway). During a single scan cycle.36. Its status is marked as Pending as it waits for write confirmation from the destination object. Batch or Software. Also. Type a Priority level for the alarm (default is 500).24. an {11. For instance. Value Deadband. Again. enter values for the remaining parameters: Force Storage Period. An X is placed in the Alarm column of the selected attribute. Folding occurs if the same value is requested again. within a single scan cycle. Switch and Analog Device objects.40} sequence of set requests will result in a value of 40 being sent to the destination object. System Platform . folding occurs if the same value is requested again. 11. 8. All other values result in successful completion status. folding occurs and the last value is sent to the destination. the new value is cached in the Value to be Sent queue. The Value to be Sent is based on data change as compared to the last value sent to the destination object. Set the security classification for the attribute if available. See "Security Icons" in "Working with Object Editors" for more information. Save and close the object editor to include the new attribute extensions in the configured object. repeated button pushes) with a consistent object scan rate for outputs. data is folded and only the last set requested is sent to the destination. 10. This functionality accounts for an unknown user input rate (for instance. For History Extension. Output Functionality The following information applies to the functionality of InputOutput and Output extensions as well as the output function of the Field Reference.35. The following occurs during a single scan cycle: Only the last value requested during a scan cycle will be sent to its destination when the object executes. For Boolean Extensions. then the second scan cycle's value is determined in the same way as described above. The Next Value to be Sent is based on data change as compared to the Value to be Sent value. To begin with. Subsequently. Otherwise. If one or more new sets are requested during the next scan cycle. this second value is cached in the Next Value to be Sent queue. Trend High and Trend Low. When the first data change occurs. In other words. An X is placed in the History column of the selected attribute. Engineering Units. It is then sent to the destination when the object executes again and the value sent to the destination during the previous scan cycle is marked with successful completion status even if write confirmation had not been received. 7. In this case. it indicates the lock condition of the value in the parent object. 9. if available (depends on the data type of the selected attribute). All other set requests during that scan cycle are marked as successfully completed. The lock symbol is available only when you are extending a template. In that case. that value is sent to the destination.Section 2 – Extensions System. the following occurs during a single scan cycle: A two-tiered caching scheme of a Value to be Sent and a Next Value to be Sent is implemented. If another value change occurs.Part 1 4-9 .35. choose between Use Object Description for Alarm Message or typing in another alarm message in the Message box. and therefore creates reproducible results.22. the first value set after the object is deployed (the default True or False) is always written to its destination. though. If a single set request is made to a destination attribute during a single scan cycle. Lock the value if desired. a combination of folding as described above plus maintenance of a queue of one element deep in order to better meet the expectation of users. more than one set request to the same destination is possible. and the Next Value to be Sent value is sent during the following scan cycle.4-10 Module 4 – Extending the Objects The Value to be Sent value is sent during the next scan cycle. writes to the Output extension's Destination occur every scan regardless of whether the extended attribute has changed.0. increasing the potential for additional network traffic.1.0. In other words. for Boolean data types and User sets.0.1.1 1 none 1 1.1.0 0 none Value to be Sent Next Value to be Sent Note: In the case of Boolean data types used in Supervisory sets (sets between ApplicationObjects and ArchestrA) or a mixture of Supervisory and User sets during a single scan cycle.0. Wonderware Training . the following examples apply: Previous Scan Cycle Value Sent Scan Cycle Set Requests 0 1.0.0.1 0 1 0 1. Important! When the same attribute is extended with an Input extension and an Output extension. The behavior described in this note does not apply to an InputOutput extension.0 1 0 1 1. This behavior occurs even when the Output Every Scan check box is cleared.1. the behavior is the same as the other data types. have a signal that indicates the speed of the motor when it is running. When you created the $Motor template in Lab 10 using the $DiscreteDevice. In this lab the $Motor template is modified by adding the attributes and functionality necessary to include the speed data (and its setpoint) as identified in Lab 2. attributes that can be used to indicate the speed of the motor. such as the agitator in the mixer.Part 1 4-11 . and that this speed has a setpoint associated with it to specify the desired speed for the process. by default.Lab 12 – Configuring the Motor Speed Lab 12 – Configuring the Motor Speed Introduction In Lab 2. you identified that the motors. it was explained that this object does not include. Objectives Upon completion of this lab you will be able to: z Add and configure UDAs to your objects z Extend attributes with input and output functionality System Platform . Deploy the object and open Object Viewer from within the ArchestrA IDE.T1XX_AG_Speed SpeedSP. Add two Float UDAs to the $Motor template: one Object writeable named Speed.T1XX_AG_SpeedSP View the Agitator Speed Data in Runtime e. Save the watch list. Add and Extend the UDAs a. add a new watch window named Extensions with the following attributes from the Agitator_001 instance: z PV z Cmd z Speed z SpeedSP g. please refer to the Detailed Lab Instructions on subsequent pages. Leave Output destination differs from input source unchecked and lock it. Using the watch list created in Lab 5.---. Configure the Agitator Instance d.InputSource InControl tagname. h. and another one User writeable named SpeedSP. Configure the newly added UDAs in the Agitator_001 object as follows: Extendable Attribute Instance Attribute Speed. Extend the Speed attribute with an Input extension and configure its Source as ---. Set the SpeedSP attribute to any valid float value to test it. f. c. Extend the SpeedSP attribute with an InputOutput extension and configure its Source as ---.---.4-12 Module 4 – Extending the Objects Summary Lab Instructions Following is a summary of the general steps you will complete for this lab. b.InputSource InControl tagname. See the next page for Detailed Lab Instructions Wonderware Training . For detailed instructions. For a summary of instructions. Add and Extend the UDAs 1. Double-click the $Motor template to open its configuration editor.Lab 12 – Configuring the Motor Speed Detailed Lab Instructions Following are detailed lab instructions for completing this lab.Part 1 4-13 . please refer to the Summary Lab Instructions on the previous page(s). Select the UDAs tab. 4. Click the button to add a UDA to the object. 2. Name the UDA Speed and press Enter. 3. Configure the Speed UDA as follows: Data type: Float Category: Object writeable System Platform . 5. 4-14 Module 4 – Extending the Objects 6. Wonderware Training . Select the Extensions tab. Select the Speed attribute. 8. Click the follows: button to add another UDA named SpeedSP to the object and configure it as Data type: Float Category: User writeable 7. --- Ensure the Speed Attribute is selected before configuring Input extension. where XX is your student number.Lab 12 – Configuring the Motor Speed 9. Configure the Speed Attribute Input extension as follows.Part 1 4-15 . Input extension: checked Source: ---. System Platform . 00 is used in the following examples. Select the SpeedSP attribute. 00 is used in the following examples. Wonderware Training . Click the Save and Close button and check in the object. Configure the SpeedSP Attribute Input extension as follows. 12. InputOutput extension: checked Source: ---.4-16 Module 4 – Extending the Objects 10. where XX is your student number.--- Output destination differs from input source: unchecked (locked) Ensure the SpeedSP Attribute is selected before configuring Input extension. 11. 14. where XX is your student number. 15. Select the Speed attribute. System Platform .T1XX_AG_Speed Ensure the Speed Attribute is selected before configuring Input extension.Lab 12 – Configuring the Motor Speed Configure the Agitator Instance 13. Select the Extensions tab. Double-click on the Agitator_001 instance to open its configuration editor. Instance Attribute InControl tagname. 16.Part 1 4-17 . Configure the Speed Attribute Input extension as follows. 00 is used in the following examples. using the default settings in the Deploy window. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch Window to add a new tab to the watch list. 22. Open Object Viewer by right-clicking the Agitator_001 instance and selecting View in Object Viewer. Wonderware Training . If you closed Object Viewer before. where XX is your student number. 21. 19. View the Agitator Speed Data in Runtime 20. Deploy the Agitator_001 object. Instance Attribute InControl tagname. you can use File / Load Watch List to open the file you saved earlier.T1XX_AG_SpeedSP Ensure the SpeedSP Attribute is selected before configuring Input extension. Click the Save and Close button and check in the object.4-18 Module 4 – Extending the Objects 17. Configure the InputOutput extension for the SpeedSP attribute as follows. Select the SpeedSP attribute 18. 27. In this example. When the Agitator_001 is running the Speed attribute will indicate the actual speed of the motor around the SpeedSP (speed setpoint). 50 is used.Lab 12 – Configuring the Motor Speed 23. 24. Save the watch list.Part 1 4-19 . Set the SpeedSP attribute to any valid float value. Double-click the SpeedSP attribute to open the Modify Numeric Value window. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to rename the watch list to Extensions. 26. Add the following Agitator_001 attributes to the watch list: z Cmd z PV z Speed z SpeedSP 25. System Platform . 4-20 Module 4 – Extending the Objects – Intentionally left blank – Wonderware Training . System Platform .Part 1 4-21 . This section introduces and explains the scripting environment and the various scripting configuration attributes of the ApplicationObject.NET Section 3 – Introduction to QuickScript .Section 3 – Introduction to QuickScript .NET Section Objective This section introduces and explains the scripting environment and the various scripting configuration attributes of the ApplicationObject. 4-22 Module 4 – Extending the Objects Scripts Page The Scripts page has six areas. Wonderware Training . Aliases are logically descriptive names for typically long ArchestrA reference strings that you can use in the script to make the script more readable.Section 3 – Introduction to QuickScript . Similar to browsing for script functions. triggering conditions. Click the Add button to add a new script. z Aliases area: Lets you create and modify aliases that apply to the script you are working on. the browser provides the user the ability to distinguish between properties and methods. z Declarations area: Provides a place to add variable declaration statements. Execute. the user can also browse for . This operation will identify and inform/warn the script developer of any syntax errors in the script. These declared variables live from the startup to the shutdown of the object and can be used to hold values that persist from one execution of the script to the next. This area includes: Script State: Select to send the state of the script to a Wonderware Historian Server historian. z Inherited scripts name list: Shows all scripts associated with the object's parent. an object leveraging such a script cannot be deployed. They apply only to the script in which they are declared. System Platform . In addition to being able to insert the function call. z Configure Execution Order: Sets the execution order of multiple scripts (inherited and local) associated with this object. However. On Scan. and other settings that run the script in the run-time environment. Execute.Part 1 4-23 .NET / COM objects that have been imported using the ArchestrA IDE. Off Scan and Shutdown. On Scan. Script Function Browser Like the InTouch script editor. In addition. 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. the ArchestrA historian.. Script Development Environment Attribute Browser From within the Script Editor the user can leverage the Attribute-Picker tool to browse through the attribute namespace of the hosting object and other objects to pick a certain attribute to be included in the script code. A script with syntax errors can be saved. such as DIM MyArray[1] as FLOAT. z Script Editor box: Shows the script you are writing. the user can also enter a type declaration statement for object names. Off Scan and Shutdown. The tool does not distinguish between attributes of on-engine and offengine objects.NET The main areas of the Scripts page include: z Scripts list: Shows all scripts currently associated with the object. The columns indicate which kind of trigger the script uses: Startup. Syntax Validation Script language syntax validation is performed by selecting the red check mark above the script window. The columns indicate which kind of trigger the script uses: Startup. z Basics area: Provides a location in which you set the expression. OnScan Called the first time an AppEngine calls this object to execute after the object scan state is changed to OnScan. Attributes that reside off-object are not available to this script method. This script method is intended to be used to instantiate COM objects and . only the value at the beginning of each script is used for evaluation purposes.¹ z While True: Executes scan to scan as long as the expression validates as true at the beginning of the scan. The script related information is edited via the script editor. It is not recommended to use this script method for any scripting beyond its intended use.NET objects.NET or COM objects. this change would not be evaluated as a data change as the value is True at the beginning of each scan cycle. Wonderware Training .¹ z On False: Executes if the expression validates from a true on one scan to a false on the next scan. ¹ Data changes between each scan are not evaluated. or to provide more flexibility in the creation of .² z While False: Executes scan to scan as long as the expression validates as false at the beginning of the scan. Therefore it is not recommended to use this script method for any scripting beyond its intended use.² z Periodic: Executes whenever the elapsed time evaluates as true. ² Time-based script considerations (a trigger period of 0 means that the script execute every scan). ¹. This script method is intended to be used to initiate local object attribute values. Depending on load and other factors. The execute script method is the workhorse of the scripting methods.4-24 Module 4 – Extending the Objects Script Execution Types A script is added to an Object (template or instance) using the ArchestrA IDE.¹. in other words if a boolean attribute were to change from True to False to True again during 1 scan cycle. The editor exposes five script types: Startup Called when the object is loaded into memory (deployment. This script method in analogous to the InTouch scripts with the following conditional trigger types: z On True: Executes if the expression validates from a false on one scan to a true on the next scan. Execute Called every time the AppEngine performs a scan and the object is OnScan. it may be possible that sets to object attributes from this script method may fail. Attributes that are offengine are not available to this script method. This is the place that runtime scripting should be done to ensure that all attributes and values are available to the script. platform or engine start). z Data Change: Executes when there is a change in data from one scan to the next. let's assume that a time sync event has occurred and the node's time is adjusted from 11:33 am to 11:30 am. The script will still execute when the system time reaches 12:13 PM. WhileTrue. Deadband specifies the amount the expression value must change before the script is executed. Because of this it is possible that a change in the system clock can result in the interval between execution of these script to be off. However. But because of the time change the actual (True) time period that has elapsed between executions is 63 minutes. In this configuration the script will run whether or not the Expression value changes. and Periodic are evaluated and executed based on the elapsed time from a timestamp generated from the previous execution.Section 3 – Introduction to QuickScript . For example. the Quality changes checkbox enables. a periodic script is set to run every 60 minutes.NET objects and clean up memory. Quality changes When the DataChange Trigger type is selected.Part 1 4-25 . OffScan Called when the object is taken OffScan.NET Time-based scripts. usually as a result of the AppEngine stopping. Primarily used to destroy COM objects and . Primarily used to clean up the object and account for any needs that should be addressed as a result of the object no longer executing. System Platform . therefore we would expect it to execute 60 minutes later at 12:13 PM. not on an elapsed time counter. Shutdown Called when the object is about to be taken out of memory. Select this box to trigger the script to run when the Quality of the Expression value changes. WhileFalse. Deadband When the DataChange Trigger type is selected. The script executes at 11:13 am. +<fully qualified local part of the attributes reference> needs to be specified. Specifying Internal Attributes For internal attributes the syntax: me. In this case only the value property and the associated quality can be accessed via this attribute reference.PV in the following hierarchy: Tank1 Cannot reference at this level because this is not contained Inlet Valve (InletValve) Can reference at this level because this object is contained Outlet Valve (OutletValve) Can reference at this level because this object is contained Specifying Attributes within a Script The following sections describe how internal attributes (attributes of the object that the script is attached to) as well as external attributes (attributes of other objects) can be referenced from within a script. you can refer to contained objects within that container. The following are valid relative references that refer to the current object: z Me z MyContainer z MyPlatform z MyEngine z MyArea Relative references are especially useful in templates because absolute references typically do not apply or make sense. like MyContainer.PV==”Open” Then {Do something} Endif.InletValve. A valid reference string must always contain at least a relative reference or one substring. a reference to MyContainer.InletValve. are valid reference strings. such as Me. Example: If me. For example.4-26 Module 4 – Extending the Objects Attribute References Relevant References References that go up the hierarchy to parent objects are called relative references. Relative references. Wonderware Training . References to both internal as well as external attributes have in common that typically the part specifying the property is omitted meaning that the value property is meant.PV is equivalent to Tank1. When you use relative references. it forces the user to deal with an indirection. The corresponding code snippet is: A = Valve101.Dimension1.Part 1 4-27 .PV and Valve101. {reads the Dimension1 property} The two references Valve101. Note: Even though the two references Valve101. {reads the Value property} B = Valve101.Section 3 – Introduction to QuickScript . First the user has to specify an alias for an external reference (for example. a dedicated reference is needed for every property. the property part of a reference can be omitted. However.PV and Valve101. Therefore the user should avoid mixing both ways of referring to the Value property in a given script.PV. System Platform . This script can be locked in the template without locking down which attribute on what object is actually used in an instance derived from this template.PV … … The Alias field is filled in automatically as the script text is parsed. The actual mapping to an attribute is done via the Alias Reference table exposed by the script editor. i.e. The table exposes the following fields: Alias Reference PVofInletValve Valve101.Dimension1 are treated as two completely different references. PVofInletValve) in the Alias Reference table (see below).PV. Correspondingly the specified reference does not need to include the property field. Let’s further assume that you want to use inline references.PV. Then the alias can be used directly in the script code: If PVofInletValve==”Open” Then {Do something} Endif..Value (explicitly specifying the Value property) refer to the same property.PV. they too are treated as two separate references. In the rare case when the script developer needs to access properties other than the value property. Note: Aliases do not need to specify the default property ‘Value’.PV. Accessing Properties Other than Value So far you mainly focused on the typical case when access to the Value property of an attribute is needed.NET Using Aliases Accessing external attributes via an alias into an external attribute reference table is the most versatile approach when using script code in templates. Example: Let’s assume you need to read the Value property and the Dimension1 property of the external attribute Valve101. For example. redundancy-related failover. initialize the UDA. z Calculated UDAs can be initialized in scripts with Execution type triggers of On Scan and Execute.ArrayAttribute[-1] Or Tag. the case is preserved throughout editor sessions. they must be manually initialized. either of the following syntaxes works: Tag. a Calculated retentive UDA retains the attribute’s current value after a computer restart. z If you use Calculated and Calculated retentive UDAs. z Calculated retentive UDAs can be initialized nearly anywhere. however the advantage of initializing on Startup is the StartingFromCheckpoint attribute can be evaluated. or similar situation in which valid checkpoint data is present. Individual statements are distinguished by a semicolon that marks the end of a statement. keep the following list in mind.ArrayAttribute[3] To get an entire array. For example. if you use me.UDA+1 as a counter in a script. If the value is FALSE. Both single line and multi-line comments are supported.4-28 Module 4 – Extending the Objects Accessing Array References Arrays can be accessed either by referencing an individual element of an array or by referencing the entire array.UDA=1 or me. {This is an example of a multiline comment} Spaces and indentation can be used as desired to improve readability. Multi-line comments start with a { and end with a } and can span multiple lines as the name suggests. do not initialize the UDA. Single line comments start at a ‘ in a source code line that has no matching ending ‘ in the line.UDA=me.UDA=<some attribute value>. Examples: Dim A.ArrayAttribute UDAs and Scripting When using UDAs in scripting. However. The individual element is specified by specifying the element within the square brackets as follows: Tag.NET Operations that Require 1 Operand Operation Description ~ Complement - Negation NOT Logical NOT Wonderware Training . but not initialized in Startup scripts. If the value is TRUE. and spaces and line breaks cannot appear within identifiers and numbers. Language Definition All QuickScript . QuickScript. except that at least one space must appear between adjacent identifiers. Your Startup script should contain a statement testing the Boolean value of the StartingFromCheckpoint attribute on the object’s AppEngine. you must also initialize the UDA with something like me.NET keywords and variable name identifiers are not case sensitive. ’This is a single line comment Dim B. /. and so on. <> 9 & 10 ^ 11 | 12 = 13 AND 14 (lowest) OR System Platform .NET Operations that Require 2 Operands Operation Description * Multiplication / Division + Addition and Concatenation - Subtraction = Assignment MOD Modulo SHL Left Shift SHR Right Shift & Bitwise AND ^ Exclusive OR | Inclusive OR ** Power < Less than > Greater than <= Less than or Equal to >= Greater than or Equal to == Equivalency ("is equivalent to") <> Not Equal to AND Logical AND OR Logical OR QuickScript.(negation). SHR 7 <. the second operator is evaluated second. ) 2 . <=. > = 8 ==.Part 1 4-29 . The first operator in the list is evaluated first. NOT. Operators in the same line in the list have equivalent precedence. - 6 SHL. ~ 3 ** 4 * . MOD 5 +.NET Precedence of Operators The following list shows the order of precedence for evaluation of operators.NET QuickScript. Precedence Operator 1 (highest) (. >. Operators are listed from highest precedence to lowest precedence.Section 3 – Introduction to QuickScript . name of an object leveraged by the script). in contrast to attribute names. For example.4-30 Module 4 – Extending the Objects QuickScript. Note: The naming convention for QuickScript. let’s assume that your script accesses the hosting object’s PV attribute in the script text and you declare ‘DIM PV AS Integer. where variable_name ::= <letter> { <letter> | <digit> | <special_character> } letter ::= A-Z | a-z digit ::= 0-9 special_character ::= _ upper_bound ::= 1-2. Within the declaring script. Other scripts attached to the same object cannot access this variable.e.NET Variables Local variables or attributes can be used interchangeably within the same script. local variables go out of scope at the end of the script function they are used in. If there is a naming conflict between a declared variable and another named entity in the script (attribute name. Variables can be used on both the left and right hand side of statements and expressions. variable names must not contain dots. Wonderware Training . <upper_bound >[. However. In QuickScript additional special characters are allowed: QuickScript_special_character :. The lower index of each array dimension is always 1.’. alias. the variable name takes precedence over the other named entities. Each variable must be declared within the script by a separate DIM statement followed by a semicolon The DIM statement syntax is as follows: DIM <variable_name> [ ( <upper_bound> [. Note that.483. Only the upper bound of each dimension can be specified and is fixed after the declaration.._!@-?#$%\& In contrast to QuickScript arrays with up to three dimensions are supported. Thus this kind of variable turns into a ‘member variable’ of the script class. Variable names and the data type identifiers are not case sensitive. variables declared in the general section of the script exist and keep their value throughout the lifetime of the object that the script is associated with. a statement analogous to VB’s ReDim statement is not supported. i. < upper_bound >]] ) ] [ AS <data_type> ].647 data_type ::= Boolean | Discrete | Integer | Float | Real | Double | String | Message | Time | Object The variable name is limited to 255 Unicode characters.147. expressions using ‘PV’ in a statement will refer to the value associated with the local variable ‘PV’ rather than the attribute ‘PV’. However.NET variables is more restrictive than in QuickScript. . TO . Discrete is still supported for migration from InTouch. Discrete False Discrete and Boolean are synonymous.Part 1 4-31 .BindTo(s).. The syntax for this keyword. is show in the example below: dim x as indirect. including the use of the method. Data Type (as specified in AS <data_type>) Default Value Boolean. . if WriteStatus(x) == MxStatusOk then ' . ENDIF z FOR . x. Real NaN Float and Real are synonymous.. Comment ElapsedTime 0 100 nanosecond ticks represents a time span.... THEN .. For range information please refer to Appendix Double NaN For range information please refer to Appendix String... NEXT z WHILE Loop System Platform .. used to reflect an absolute date / time the content reflects the number of 100-nanosecond intervals since 00:00 January 1.. the data type of the variable is Integer (as in QuickScript).. If omitted. ' where s is any expression that returns a string x = 1234.. do something endif. True=1.Section 3 – Introduction to QuickScript . Object Nothing Leveraged for accessing OLE Automation servers. QuickScript. Message “” (empty string) Maximum length defined by BSTR (2147483647) Time 0 Resolution is 100 nanoseconds.NET Control Structures QuickScript.. IN . STEP .... 0001. NEXT Loop z FOR EACH . BindTo(s).. ELSE ... ELSEIF . Real is still supported for migration from InTouch.. False=0 Integer 0 Signed –2147483648 to 2147483647 Float.NET provides four primary control structures in the scripting environment: z IF ..NET The data type declaration (AS <data_type>) is optional. Indirect Datatype The Indirect keyword supports dynamically binding a variable to an arbitrary reference string for get/set usage. In order to facilitate deciding between multiple alternatives an optional ELSEIF clause can be used as often as needed. This block is executed if the boolean_expression evaluates to False. Discrete Directly used (no mapping needed) Integer Value = 0 evaluated as False Value != 0 evaluated as True Float. Example: If value = 0 Then Message = ”Value is zero”. The ELSEIF clause allows for easy mimicking of switch statements offered by some other programming languages. Real Value = 0 evaluated as False Value != 0 evaluated as True Double Value = 0 evaluated as False Value != 0 evaluated as True String. Optionally a second block of statements can be defined after the keyword ELSE. Time Cannot be mapped. The first block of statements is executed if boolean_expression evaluates to True. Using an expression that results in a time type as the boolean_expression results in a script validation error. Using an expression that results in a string type as the boolean_expression results in a script validation error. Object Cannot be mapped. Message Cannot be mapped. ElseIf value < 0 then Wonderware Training . Where z boolean_expression is an expression that can be evaluated as a Boolean. Dependent on the data type returned by the expression the expression is evaluated to constitute a True or False state according to the following table: Data Type Mapping Boolean.4-32 Module 4 – Extending the Objects IF … THEN … ELSEIF … ELSE … ENDIF The IF-THEN-ELSE-ENDIF statement is used to conditionally execute various instructions based on the state of an expression. ElseIf value > 0 Then Message = ”Value is positive”. The syntax is as follows: IF <boolean_expression> THEN [statements] [ { ELSEIF [statements] } ] [ ELSE [statements] ] ENDIF. Using an expression that results in an object type as the boolean_expression results in a script validation error. It is possible to exit the loop from within the body of the loop via the EXIT FOR statement. or Double. If change_expression is positive. to initialize analog_var to a value for execution of the loop. start_expression must be greater than or equal to end_expression for the body of the loop to be executed. the loop exits. analog_var is set equal to start_expression.) z change_expression is an expression.Part 1 4-33 . then change_expression defaults to 1. Else {Default. z (This holds true if loop is incrementing up. the system tests to see if analog_var is less than end_expression. z end_expression is a valid expression.NET Message = ”Value is negative”. If analog_var is greater than end_expression.) 3. analog_var is incremented by 1 . The FOR loop is executed as follows: 1. Real. Note: FOR-NEXT loops may be nested. (If change_expression is negative.or by change_expression if it is specified. if loop is decrementing. If STEP is not set. The general format of the FOR-NEXT loop is as follows: FOR <analog_var> = <start_expression> TO <end_expression> [STEP <change_expression>] [statements] [EXIT FOR. The system tests to see if analog_var is greater than end_expression. loop termination will occur if analog_var is less than end_expression. 2. System Platform . 4. 5. The number of levels of nesting possible depends on the memory and resource availability. Float. Steps 2 through 4 are repeated.] [statements] NEXT. If so. Where: z analog_var is a variable of type Integer. z start_expression is a valid expression. execution of the script jumps to the statement immediately following the NEXT statement. start_expression must be less than or equal to end_expression or the statements in the loop will not execute. Here the loop can potentially be exited via the EXIT FOR statement. The change_expression can be either positive or negative. The statements in the body of the loop are executed. If change_expression is negative. otherwise. to define the increment or decrement value of analog_var after execution of the NEXT statement. Should never occur in this example} EndIf FOR … TO … STEP … NEXT Loop A FOR-NEXT loop is used to perform a function (or set of functions) within a script several times during a single execution of a script.Section 3 – Introduction to QuickScript . As in the case of the FOR … TO loop it is again possible to exit the execution of the loop via the statement ‘EXIT FOR. The general format of the FOR-NEXT loop is as follows: FOR EACH <object_variable> IN <collection_object > [statements] [EXIT FOR. fileCollection As IFileCollection. Furthermore Microsoft® started to expose more and more of the Windows® system via collections. fileName as String.4-34 Module 4 – Extending the Objects FOR EACH … IN … NEXT The FOR EACH loop can only be used with collections exposed by . FOR EACH will allow for looping through arrays.] [statements] NEXT. fileCollection = folder.’ from within the loop. Microsoft’s office suite is built around the concept of collections. folder As IFolder.GetFolder(“C:\Temp”). fso = new FileSystemObject. Where: z object_variable is a variable of type <some COM interface> z collection_object is a variable holding a collection object. For Each file In fileCollection fileName = file. file As IFile.name.A FOR-NEXT loop is used to perform a function (or set of functions) within a script several times during a single execution of a script. Wonderware Training . folder = fso. Next. Example: Dim Dim Dim Dim Dim fso As IFileSystem.Files. Note: Collections are frequently leveraged by VB and VBA / JScript.NET objects and OLE Automation servers . The script properties will indicate the cause of the error in a dedicated attribute and enter an active alarm state (‘Script Error’ alarm). The number of levels of nesting possible depends on the memory and resource availability. Notes: z When a script execution abort occurs. the PID object is set to manual mode for a short period of time. Steps 1 through 2 are repeated. z Failed writes constitute a normal behavior that does not constitute an alarm. The alarm condition will remain until the script subsequently completes a successful execution cycle.] [statements] ENDWHILE. The statements in the body of the loop are executed. The system tests to see if boolean_expression is true.Part 1 4-35 . the script just stops. 3. every time when a shift changes. However. It is possible to exit the loop from within the body of the loop via the EXIT WHILE statement. Script Execution Error Handling When the script execution engine experiences a script execution error the script’s current execution scan is aborted. System Platform .Section 3 – Introduction to QuickScript . Sometimes it might be necessary to set the quality of some UDAs that are controlled by the aborted script to bad. Of course it is also possible to check the WriteStatus from within the script and react accordingly. the loop exists. If not. Now the writes fail but the script just keeps going and eventually a script run will again successfully be able to set the PID parameters. The user can accomplish this by exercising a second script that monitors the abortion of the first script. 2. The WHILE loop is executed as follows: 1. Script execution will be reattempted on the next engine scan after the script has encountered an execution error. Example: A script constantly tunes the parameters of a PID loop which is typically in control mode. Here the loop can potentially be exited via the EXIT WHILE statement.NET WHILE Loop A WHILE loop is used to perform a function (or set of functions) within a script several times during a single execution of a script while a condition is true. Note: WHILE loops may be nested. The general format of the WHILE loop is as follows: WHILE <boolean_expression> [statements] [EXIT WHILE. Where: z boolean_expression is an expression that can be evaluated as a Boolean as defined above in the description of IF…THEN statements. Wonderware Training . the script infrastructure must attempt to release external objects or data base connections that were created by the script. etc. Note: Script libraries developed with the InTouch 32-bit Extensibility toolkit can be imported and converted to Script function Libraries. In addition. which is exposed as an attribute on the AppEngine. Division by Zero The division by zero error is raised only for integer operations. Overflow Error A script experiences an overflow condition. z String functions: StringLen. Sqrt.NET function call. Sin.∞ and also NaN (Not a Number). the error will be caught and an error message (in red) will be logged to the logger.4-36 Module 4 – Extending the Objects Alarm Type Errors Watchdog Timeout Error To prevent the possibility that a script can cause an overrun of the ApplicationEngine scan cycle (for example. The script execution infrastructure will clean up after the aborted script as best as possible. All synchronous mode scripts will be subject to the same timeout period. The script developer will be required to configure the timeout period for each Asynchronous mode script in order to provide flexibility in accommodating the potentially time consuming operations that these scripts are intended for. by running in an infinite loop). Importing Additional Binary Libraries Script Library Packages can be added to the system and made available to the user like preinstalled script libraries. This library provides functionality to support both generic scripting tasks and tasks requiring access to specialized portions of Application Server z Math functions: Includes functions like Abs. Pre-Installed Binary Libraries As part of the scripting environment a single binary library is shipped. etc. a script is aborted after the timeout period for the script has elapsed. the execution alarm Boolean condition is raised in this case. In the case of float values the scripting is able to deal with + ∞ and . Net Call Execution Errors If a script encounters an exception during call of a . z System functions: LogMessage. However. it can never be guaranteed that an aborted script has no negative side effects. For example. Overflow conditions not only apply to analog data types (integer float) but also other data types (for example. string length overflow). the script could have started to manipulate data base entries and could leave some table entries in an inconsistent state. For example. etc. The other approach. Data Quality Controlled Execution (DQCE).e. initializing or bad). a result value of type float is set to NaN – not a number) when the quality turns unacceptable. Only referenced attributes expose quality. The first approach. When objects using those scripts are exported from the Galaxy (say Galaxy A) and imported into another Galaxy (Galaxy B) the libraries once imported into Galaxy A are not automatically exported with the object. The actual name of the Value property is spelled out for clarity purposes. I.PV..} B = Valve101. A = Valve101. not the quality. If any of the input variables to the expression change to an initializing or bad quality state. As a result the script developer needs the ability to evaluate the quality of attributes within the script and to react accordingly (for example. The result value itself is set to the default value for the given data type (for example. Data Quality Propagation (DQP) DQP seeks to streamline the script development task when writing scripts that robustly handle data quality.Quality {Another variable can be used to hold the quality information but no local variable is able to hold the value and the quality information. Data Quality Handling Two approaches to handling data quality during script execution are employed in the Application Server script environment. when assigning the value of an attribute to a local variable the quality information is lost.PV {The value of A is now the value of Valve101.} Quality Handling in Script Expressions Script expressions are ‘one liners’ and as such it does not make sense to only execute the part of an expression that deals with attributes of acceptable quality. Example: The following code snippet assumes that A and B are local variables of appropriate data type. the script libraries that the object depends upon need to be manually copied to Galaxy B.Section 3 – Introduction to QuickScript .) System Platform . One of the main differences between DQCE and DQP is that in the latter case the execution of the script still happens even though some of the referenced attributes might expose unacceptable quality.Value. is used by the script body and propagates the quality of attributes read by the script through the script’s data as execution occurs. script functions exposed in the imported libraries can be used in any scripts.NET Exporting Binary Libraries Once imported. the result value reported will have a quality of initializing or bad (if there exists at least one input with initializing and another input with bad quality. the expression is either evaluated as a whole or not at all. is used by all script expressions and permits expression evaluation only when attributes being read by the expression have acceptable qualities.. in order to run the exported object in Galaxy B. bad will have precedence over initializing quality and be reported as the expression result’s quality).e. I.PV.e. I. In typical cases portions of a given complex script are not affected by the bad quality of a given attribute and therefore will be executed..Part 1 4-37 . then the script is not triggered at all.. If the script expression is used as the trigger for the execution of a script and the quality of at least one referenced attribute is unacceptable (i. The variable A just holds the value. Data Quality Propagation (DQP). by branching into a code segment that causes the system to go into a fail safe mode. Local variables do not have a quality assigned.e. However.Cmd = “Close” {This should be the fail safe mode} Endif. condition statements are automatically evaluated as False if at least one attribute with unacceptable quality is used in the condition statement.Quality == 0) Then … Or to use the quality check functions as follows: If IsGood(Valve101.. I.e. Adhering to this standard allows script writers to take quality into account without ever explicitly evaluating the quality of referenced attributes. Wonderware Training .PV and Valve102.e. Script Functions do not Leverage Quality Information For Script Functions the in and out parameters as well as a potential return value have no associated quality information. any expression that is used in a control statement (examples are: IF.. I.PV is acceptable then the ‘if’ and ‘else’ branches are executed purely based on the value of those two attributes. REPEAT. Quality Check From Within a Script The script developer has the ability to control the execution of script blocks by evaluating the quality of a set of leveraged attributes.PV == “Closed”) And (Valve102.PV) Or IsBad(Valve101. It is the responsibility of the script developer to ensure that the method is invoked appropriately.PV..PV)) Then … Positive Script Logic Script languages adhering to DQP encourage users to apply positive logic in the script. For example.Cmd = “Open” Else Set Valve103.Quality == 192) Or Valve101. Note: A function is invoked independent of whether the quality of the referenced attribute is acceptable or not.e.PV == “Closed”) Then Set Valve103. It is possible to either test each attribute’s quality individually If (Valve101. WHILE) to produce a Boolean result will equate to a false value if the expression leverages at least one attribute that has bad or initializing quality. if at least one of the PV values has an unacceptable quality (bad or initializing) then automatically the ‘else’ branch is executed. Example: If (Valve101. if statements should be written in a way that the else branch always constitutes the fail safe mode. I. the script developer should understand the following rules and behavior: data time handling / propagation. If the quality of Valve101.4-38 Module 4 – Extending the Objects When using the Application Server scripting language.PV. a Script Function for calculating the square root of a float value might have a signature like this: float Sqrt(float InValue) If an attribute reference is passed in as the InValue then the quality information is stripped off and only the value of the referenced property (typically the Value property) is passed in. e. the script execution system has to ignore the quality. Asynchronous Execution The asynchronous mode is used for the class of scripts that perform operations that don’t meet the above speed and determinism criteria. Therefore. timestamps are associated with the value and quality of data saved to the Wonderware Historian.SP = Sqrt(Tank101. Time Propagation Time propagation preserves the timestamp of process data obtained from source field devices like a PLC or DAServer.NET Condition statements are the only instance where a DQP enabled script language takes quality implicitly into account. The calling thread waits for call return until main thread can process get/set request. In all other cases the script execution system ignores the quality if the script developer does not choose to test the quality explicitly. Condition evaluation is always done in main thread of engine.SP + A {A is a local variable} As soon as the right side is not just a single attribute reference but involves additional statements.Level) PID4. i. These scripts will be executed on a worker pool of separate.Section 3 – Introduction to QuickScript . lower priority threads than the Application Engine’s primary thread.SP = PID2. An asynchronous script running in a separate thread can access ArchestrA™ attributes via normal get/set calls. it leads to a more consistent behavior of the script environment. the quality is ignored in all cases. This is OK since asynchronous thread is usually slower and background in nature.. The timestamp can be shown from visualization client applications like InTouch.SP is executed independent of whether the quality associated with PID2. they will all receive the same priority. For satisfactory determinism. Also. From a user’s perspective it is easier if all the listed cases are treated equally. If an asynchronous script is currently executing.SP is Bad or Initializing. That might be surprising at first.SP + 10 PID3. Execution Mode Execute mode scripts can be configured to execute in one of two execution modes. Synchronous Execution The synchronous mode is the default choice and represents serial script execution by the ApplicationEngine in the course of calling the Execute method of all ApplicationObjects that are on-scan in the ApplicationEngine. only one copy of a given asynchronous script in an object can be executing at one time.SP = PID2. This also means that the assignment PID1. this mode requires that all scripts execute deterministically and quickly enough to prevent an ApplicationEngine over-scan condition. System Platform . However. No support will be provided to establish prioritization of execution among Asynchronous mode scripts. Consider the following very similar script lines: PID1. Only script code written for the Execute type of an object can be declared asynchronous. The call is marshaled over to the main engine thread and processed. then the condition for next execution is not evaluated and it is not executed again.SP = PID2. synchronous or asynchronous.Part 1 4-39 . All other script types are always synchronous and cannot be configured otherwise. Script Timeout The execution time of both synchronous as well as asynchronous mode scripts is monitored against a timeout period. z Elapsed time attribute – indicates the amount of time the asynchronous script has been executing (if RunningFlag is true). In the case of asynchronous scripts a timeout period that is shared for all asynchronous scripts does not make sense since the needed execution time can vary by orders of magnitude between different asynchronous scripts. it is immediately queued for execution and awaits a free worker thread. this ordering just impacts condition evaluation. All synchronous scripts on an AppEngine share the same timeout period which is exposed as a configurable attribute of the AppEngine. This is a configurable attribute of the Engine. It is exposed as an attribute of the script. z Count of asynchronous scripts waiting – indicates the number of asynchronous scripts currently queued to execute. Asynchronous Script Threads Threads are used for processing asynchronous scripts simultaneously when they are due and their trigger condition is true.4-40 Module 4 – Extending the Objects Specification of execution order for asynchronous scripts within an object is allowed. z Running indicator attribute – indicates whether the asynchronous script is currently executing. A well-written script will check this command before and after timeconsuming operations. the timeout period can be separately configured for each asynchronous script. If an asynchronous script comes due and no worker thread is available. z Asynchronous scripts also have the following diagnostic attribute within the engine: z Count of asynchronous scripts running – indicates the number of asynchronous scripts currently executing. z Shutdown attribute – simply a Boolean flag that requests the asynchronous script to shut down on its own. not execution ordering since asynchronous scripts are run in separate threads from each other. A default number of worker threads is to be provided. As soon as the worker thread is free from its previous script.terminates the asynchronous script when written to. Only one script can execute on one thread at a time. Wonderware Training . Asynchronous Scripts Diagnostics and Attributes Asynchronous scripts require some additional attributes within the script to provide the following behavior: z Kill attribute . However. In order to account for this. it executes the newly queue script. New keyword – this keyword instructs the script to create a new . z Calling public indexers (with one or more parameters) of .Application") Set xlBook = xlApp. In the example below. VBS example: Dim xlApp Dim xlBook Dim xlSheet ' Assign object references to the variables. Note that xlBook and xlSheet can only be ' created after the objects xlApp and xlBook got ' created.CreateObject("Excel. z Using .Application.NET is built on top of . System Platform .NET constructions in its syntax: z Declaring variables of .NET types.NET wrappers that allow them to be created using this technique.Worksheets.NET types. In order to reduce confusion the following part attempts to establish the terms used throughout this document: Support for COM Servers: z Support for Get/Set Property z Support for method invocation on COM server Creating objects outside of the context of scripts does not work.Section 3 – Introduction to QuickScript . ActiveX components that have been imported into the Galaxy Repository explicitly end up with . Use ' Add methods to create new workbook and worksheet ' objects.NET Support for .NET types.NET types.NET Constructs QuickScript . Set xlApp = WScript.Workbooks.NET and supports the following .Add Once created. 1. z Calling public constructors (with and without parameters) of .Part 1 4-41 .NET types. The “New” technique is the preferred technique since it allows early-binding of methods which offers the advantage of early validation of method calling syntax and better runtime performance. App = new Excel.NET enumerations. z Calling public static methods (with and without parameters) of .NET object. earlybound methods on Dim app as Excel. In many cases an object can only be created in a programmatic manner based on another already created object. There are at least two different approaches: Allow Creation of COM Servers from within a Script Scripts can create COM servers using one of two techniques. the methods exposed by a COM object can be accessed as if they would be script functions. OLE Automation Support Over the last couple of years Microsoft used many different terms when talking about OLE Automation.Application.Add Set xlSheet = xlBook. z Calling public instance methods (with and without parameters) of . Hashtable. LogMessage(node.XmlDocument. reader.SqlClient.SqlClient. app = CreateObject(“Excel.InnerText). ' find all titles written by Grisham for each node in doc.SqlClient. dim app as object. dim reader as System. zipcodes = new System. zipcodes["Mission Viejo"] = 92692.Application”).Xml. Load an XML Document from Disk and Do Look-ups on It dim doc as System.Close().SqlConnection("server=(local).uid=sa.Data. command = new System.NET Scripting Language/Sample Scripts.XmlDocument. while reader. Then Do a Look-up on It dim zipcodes as System. ' find the title of the book whose isbn is 044023722X node = doc. next. connection. CreateObject method – this method instructs the script to specifically create a named COM object that is installed on the system upon which the script is to be deployed. connection). doc. Create a Look-up Table.Data.SqlConnection.Data.Close().InnerText). Late-bound methods on app can be called after the object is created.Xml.SqlCommand.Xml.Load("c:\catalog. LogMessage(zipcodes["Irvine"]). Query a SQL Server Database dim connection as System.database=northwin d"). dim command as System.SqlCommand("select * from customers".Data.SelectSingleNode("/catalog/book[@isbn='044023722X']/title"). dim node as System.Hashtable.SqlDataReader. connection = new System. Wonderware Training .SqlClient.xml"). zipcodes["Irvine"] = 92618.SqlClient.XmlNode.Collections.Read() LogMessage(reader("CompanyName")).Collections. Script Examples The following script examples may be used for reference.SelectNodes("/catalog/book[author/lastName='Grisham']/ title") LogMessage(node. reader = command. Note: Many additional script examples may be located in the ArchestrA IDE Help files under Enhancing an Object’s Functionality/QuickScript .Open(). endwhile. doc = new System. connection.Data.ExecuteReader(). These are latebound objects.4-42 Module 4 – Extending the Objects 2. PROPERTIES(. "[SELECT(""R1C1"")][FONT. "Hello"). WRequest("excel". ' Note: use "" to embed double quotes in strings WWExecute("excel". "r1c1".Section 3 – Introduction to QuickScript . "sheet1".NET Use DDE to Access an Excel Spreadsheet WWPoke("excel".Part 1 4-43 . "sheet1". System Platform . "sheet1". me.""Bold"")]").Greeting). "r1c1". 4-44 Module 4 – Extending the Objects – Intentionally left blank – Wonderware Training . Note: Your instructor will demonstrate the script’s resulting functionality.NET scripting engine to extend your objects with extra functionality z Use attributes.Part 1 4-45 . therefore in this lab you will extend the object with UDAs and scripts to add reconnection functionality. Objectives Upon completion of this lab you will be able to: Use the QuickScript. including UDAs. You will also add additional diagnostic information to the $DDESuiteLinkClient object through a UDA/script combination that will indicate the number of disconnects the object has experienced since it last went on scan.Lab 13 – Adding Auto Reconnect to DDESuiteLinkClient Lab 13 – Adding Auto Reconnect to DDESuiteLinkClient Introduction The $DDESuiteLinkClient object lacks the capability to automatically reconnect to the data source if the connection is lost. within scripts z Create scripts with different execution types z Reconnect whenever the InControl object gets disconnected System Platform . Deploy the InControl object See the next page for Detailed Lab Instructions Wonderware Training .ConnectionStatus <> 2 Trigger type: WhileTrue Trigger period: 00:00:05. please refer to the Detailed Lab Instructions on subsequent pages. c. Add a script called Reconnect (locked) to the $tDDESuiteLinkClient with an Execute execution type configured as follows: Expression: Me.0000000 Script body: Me.Reconnect = True. For detailed instructions. d. and an OnScan execution type configured as follows: Script body: Me.DisconnectCnt + 1. Add a Calculated Integer UDA named DisconnectCnt.ConnectionStatus <> 2 Trigger type: OnTrue Script body: Me.4-46 Module 4 – Extending the Objects Summary Lab Instructions Following is a summary of the general steps you will complete for this lab. Add the auto-reconnect functionality a. b. Add a script called DisconnectMonitor (locked) with an Execute execution type configured as follows: Expression: Me.DisconnectCnt = Me.DisconnectCnt = 0. please refer to the Summary Lab Instructions on the previous page(s). Add the Auto-reconnect Functionality 1. For a summary of instructions. Double-click the $tDDESuiteLinkClient template to open its configuration editor.Part 1 4-47 . System Platform .Lab 13 – Adding Auto Reconnect to DDESuiteLinkClient Detailed Lab Instructions Following are detailed lab instructions for completing this lab. 4-48 Module 4 – Extending the Objects 2.0000000 Script body section: Me. the script will tell the object to attempt a reconnect. Name the script Reconnect and configure it as follows: Aliases section: (locked) Declarations section: (locked) Scripts section: Execution type: Execute (locked) Basics section: (locked) Expression: Me. Wonderware Training . As long as the connection status is equal to something other than 'Connected' (A value of 2 signifies ‘Connected’). Click the button to add a new script to the object. Select the Scripts tab. 3.ConnectionStatus <> 2 Trigger type: WhileTrue Trigger period: 00:00:05.Reconnect = True. The purpose of this script is to monitor the ConnectionStatus attribute of the object every 5 seconds. 5.Part 1 4-49 . defined next. Name the UDA DisconnectCnt and configure it as follows: Data type: Integer Category: Calculated The DisconnectCnt attribute is a counter that will keep track of how many times the object disconnects. Select the UDAs tab. 6. This attribute value will be updated via a script.Lab 13 – Adding Auto Reconnect to DDESuiteLinkClient 4. Click the button to add a UDA to the object. Select the Scripts tab. System Platform . Click the button to add a new script to the object.ConnectionStatus <> 2 Trigger type: OnTrue Script body section: Me.4-50 Module 4 – Extending the Objects 7. Every time it changes from a 'Connected' status to a non-connected status ('Disconnected' or 'Mixed').DisconnectCnt + 1. This script monitors the connection status of the object. it increments the count (DisconnectCnt attribute). Wonderware Training .DisconnectCnt = Me. Name the script DisconnectMonitor and configure it as follows: Aliases section: (locked) Declarations section: (locked) Scripts section: Execution type: Execute (locked) Basics section: (locked) Expression: Me. accepting the defaults in the Deploy dialog box. Deploy the InControl instance. Select an Execution type of OnScan to add a second section to the script. 12. This script will initialize (set to zero) the DisconnectCnt attribute when the object goes on scan. 11.Lab 13 – Adding Auto Reconnect to DDESuiteLinkClient 8. Configure the script as follows: Script body section: Me.Part 1 4-51 .DisconnectCnt = 0. System Platform . Note: Your instructor will demonstrate how the completed lab steps have changed the behavior of the deployed object. Select the DisconnectMonitor script 9. 10. Click the Save and Close button and check in the object. 4-52 Module 4 – Extending the Objects – Intentionally left blank – Wonderware Training . it is required that every instance derived from the $Mixer template is named with the valid three-digit mixer identification number at the end as identified in Lab 2. Objectives Upon completion of this lab you will be able to: z Use the QuickScript. a compromise regarding the naming of the objects has to be arranged.Part 1 4-53 .Lab 14 – Configuring Automatic Reference Lab 14 – Configuring Automatic Reference Introduction This lab illustrates how to add to the mixer objects the capability of automatically configuring the input and output references within the objects based on the naming conventions established for your galaxy. In this example. To successfully provide this functionality.NET scripting engine to automatically configure on runtime the input and output references of instances System Platform . Rename the Mixer tab in Object Viewer. Add the auto-configuration functionality a. h. c.Configuring Automatic Reference. In the AssignIO script body. please refer to the Detailed Lab Instructions on subsequent pages. Using the watch list created in Lab 5. Add a new watch window named Mixer 2 with the following attributes to verify configuration of Mixer 2 and its contained Objects. e.4-54 Module 4 – Extending the Objects Summary Lab Instructions Following is a summary of the general steps you will complete for this lab. Object List Attribute List Agitator_002 Cmd PV Inlet1_002 Cmd PV Inlet2_002 Cmd PV LIT_002 PV Outlet_002 Cmd PV Pump1_002 Cmd PV Pump2_002 Cmd PV TT_002 PV See the next page for Detailed Lab Instructions Wonderware Training . Undeploy the Mixer_001 instance and change its name to Mixer_1XX.txt script located in the Wonderware Training folder. For detailed instructions. b. Create a new instance of the $Mixer template named Mixer_2XX and assign it to the Line2 area. Modify the Mixer instance. g. Deploy both instances of the mixer. Lock the Aliases and Declarations sections. Add a script to the $Mixer template called AssignIO (locked) with an OnScan execution type. f. i. naming it Mixer 1. verify configuration of Mixer 1and its contained Objects using the Mixer tab in Object Viewer. add the Lab 14 . create and deploy a new Mixer instance d. Outlet. Me. Me.CmdOpen.FlowSwitch.PV. Me. 2.Input.Outlet.InputSource = dataSource + "_AG_Speed".OutputDest = dataSource + "_TP1_CmdStart".Part 1 4-55 .InputSource = dataSource + "_AG_AuxContact".OutputDest = dataSource + "_IV1_CmdOpen". Me. Me.CLS. 'Configure transfer pump 1. Name the script AssignIO and configure it as follows: Aliases section: (locked) Declarations section: (locked) Scripts section: Execution type: Script body section: OnScan (locked) Lab 14 .Lab 14 – Configuring Automatic Reference Detailed Lab Instructions Following are detailed lab instructions for completing this lab.Inlet1. Me.CmdStart.Outlet. Me. Me.Agitator.Pump2.Inlet1.AuxContact.Agitator. Me.PV. 'Configure temperature transmitter.OLS. 'Get the common part for the references. Me. System Platform .Inlet2.Configuring Automatic Reference.T" + StringRight(Me.Agitator. Add the Auto-configuration Functionality 1.CLS.InputSource = dataSource + "_LT_PV". 3). Me.txt script located in the Wonderware Training folder.InputSource = dataSource + "_TT_PV".OutputDest = dataSource + "_IV2_CmdOpen". Me.Inlet2.tagname.Inlet2. Double-click the $Mixer template to open its configuration editor.InputSource = dataSource + "_IV2_CLS".Speed.Agitator.FlowSwitch. 'Configure inlet valve 2. Me. 'Configure transfer pump 2. Dim dataSource As String. Me.Input.InputSource = dataSource + "_IV1_OLS".Pump1. 'Configure level meter. Me.InputSource = dataSource + "_TP2_FlowSwitch". Me. Me.OLS.InputSource = dataSource + "_IV1_CLS".Pump1.CmdStart. 'Configure agitator.CmdOpen. dataSource = "InControl.OutputDest = dataSource + "_AG_CmdStart".Pump2.CmdStart.Tagname. 'Configure inlet valve 1. Me.InputSource = dataSource + "_IV2_OLS".SpeedSP.Inlet1.InputSource = dataSource + "_TP1_FlowSwitch".InputSource = dataSource + "_OV_CLS". please refer to the Summary Lab Instructions on the previous page(s). click the button to add a new script to the object.OutputDest = dataSource + "_TP2_CmdStart".OLS.CLS. In the Scripts tab. 'Configure outlet valve. For a summary of instructions. Me.InputSource = dataSource + "_OV_OLS".CmdOpen.InputSource = dataSource + "_AG_SpeedSP".OutputDest = dataSource + "_OV_CmdOpen".TT.LIT. 5. retaining the default selections in the Undeploy dialog box. Click the Save and Close button and check in the object.4-56 Module 4 – Extending the Objects 3. Modify the Mixer instance. Wonderware Training . create and deploy a Mixer instance 4. Click OK to confirm the Undeploy. Right-click Mixer_001 and select Undeploy. Click Close when the Undeploy complete message displays. Click Yes when the warning displays. where XX is your student number. 9. 10. 11. where XX is your student number.Part 1 4-57 . 12. a dialog box with a warning displays. Note: When the mixer instance is renamed. System Platform . 7.Lab 14 – Configuring Automatic Reference 6. Right-click the $Mixer template and choose New / Instance to create a new instance of the $Mixer template. Click the Yes button. Rename the new instance Mixer_2XX. 8. Right-click Mixer_001 and select Rename. Rename Mixer_001 to Mixer_1XX. The new instance of the Mixer_2XX displays a warning icon on all contained objects. Wonderware Training . accepting the default deployment settings. Click Close when deployment is complete. accepting the default deployment settings. Note: Warnings can be cleared by setting the default references from ---. notify your instructor.to ---.4-58 Module 4 – Extending the Objects 13. Deploy the newly created Mixer_2XX instance.--. 16. 17. Your instructor will address this after the lab. 14. Assign Mixer_2XX to the Line2 area. Click the button to expand the Mixer_2XX instance. or by using the Upload Runtime Changes in the context menu after deployment to pull runtime I/O assignments to the configuration interface. Important! If there is a warning icon on the Mixer_2XX instance itself. Warning icons are OK! 15. Deploy the Mixer_1XX instance. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch Window to add a new tab to the watch list. 21. Click the Mixer Watch List to verify that the contained objects data values are updating. If you closed Object Viewer before. Click Close when deployment is complete.Part 1 4-59 . System Platform . 23. Right-click on Mixer_1XX and select View in Object Viewer. Right-click the Mixer Watch List and select Rename Tab to rename it to Mixer 1.Lab 14 – Configuring Automatic Reference 18. Verify configuration of Mixers and their contained Objects 19. 22. you can use File / Load Watch List to open the file you saved earlier. Right-click in the new Watch List (bottom section of Object Viewer) and select Rename Tab to rename the watch list to Mixer 2. 20. 4-60 Module 4 – Extending the Objects 24. locate and add the following attributes for the Mixer_2XX instance to the selected Mixer 2 watch list by right-clicking on each attribute and selecting Add to Watch: Object List Attribute List Agitator_002 Cmd PV Inlet1_002 Cmd PV Inlet2_002 Cmd PV LIT_002 PV Outlet_002 Cmd PV Pump1_002 Cmd PV Pump2_002 Cmd PV TT_002 PV 25. Using the Object List (left section of Object Viewer) and the Attribute List (right section of Object Viewer). Wonderware Training . Save the watch list. Module 5 Alarms and History Section 1 – Alarms Lab 15 – Configuring Alarms Section 2 – Historization Lab 16 – Configuring History 5-3 5-15 5-33 5-39 . Wonderware Training . Events and Historization and how ArchestrA handles each.5-2 Module 5 – Alarms and History Module Objective z Obtain an overview and understanding of the concepts of Alarms. System Platform . Alarms and events are things that occur in the runtime system. a new batch or campaign starts. Note. Logger messages are not events. z Detection of a severe software problem. historization and viewing of either application (process) alarms and events or system/ software alarms events.Part 1 5-3 . Examples of events include: z A plant process has started. z The system hardware is not operating within desired limits. store them historically and report them to various clients. and z Enable you to understand how ArchestrA handles alarms and events. for example. for example. notification. The system handles the real-time reporting of alarms in a special manner and provides special clients for their viewing. Examples of alarms include: z A process measurement has exceeded a predefined limit. Alarms are a special type of event that indicate something abnormal has happened. Alarms. The system can detect events. deployment of a new AutomationObject. sometimes certain software events may log a message in addition to generating an event. such as a pump that should be running has stopped. for example the CPU utilization on a Platform exceeds a certain percentage for an extended time. for example. z Viewing a window in the View Engine. z A process device is not in the desired state. An event is simply an occurrence of a condition at a certain point in time. for example. z A message sent to the system logger (SMCLogger). z Installation of Bootstrap on a PC. z A user has logged into the system. z The system engineer has started or stopped a system component. such as a failed Application Object component. z The operator has changed a plant operator parameter. z The system engineer has changed the runtime system configuration. such as a high temperature alarm. for example import or check-out. but this is ancillary. z A platform has come back online after it had a failure or shutdown. stopping an engine. Events and alarms are different and the system distinguishes between the two. represent the occurrence of a condition that is considered abnormal (generally bad) in nature and requiring immediate attention from a user. a setpoint on a temperature controller. What is an Alarm/Event The alarm and event capabilities in the system provide for users to automate the detection. The following items are not considered alarms or events: z Configuration actions within the Galaxy Repository. on the other hand. This section provides familiarization of the concept of alarms and events and how ArchestrA handles them.Section 1 – Alarms Section 1 – Alarms Section Objectives z Familiarize you with the concept of alarms and events. The Alarm Provider is specified by providing the node name and provider name of the provider. The Platform. In addition. etc. Engine. For ArchestrA. The Platform receives the acknowledge request and forwards it to the target Wonderware Training . Engines. only initiates subscription to those Areas that are only deployed to that Platform. The Platform also routes alarm acknowledgements. Those fields are mapped to fields in InTouch as follows: Alarms: ArchestrA field InTouch Dist Alarms Mapping Type = alarm state change N/a Timestamp of alarm event Time Tagname Name Common message text string. A boolean checkbox is provided in the Platform AutomationObject indicating whether it subscribed to Areas or not for alarm and event reporting. 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.5-4 Module 5 – Alarms and History How does ArchestrA handle alarms? The Platform as an Alarm Provider A Platform can act as a single Alarm Provider that provides alarms to the InTouch Distributed Alarm subsystem. etc. the InTouch Alarm client can be configured to subscribe to only selected Alarm Areas for the provider based on its query filters. Comment Area Alarm group Common name for alarm primitive (for example “PV. Platform. DI Device. An alarm generated by Application Server contains fields that are generated by the alarm functions inside the AutomationObject. Alarm acknowledgements. when deployed. enables and disables received from distributed alarming back to the appropriate AutomationObject. The platform is responsible for routing all alarms and events for all Areas subscribed to by that Platform to InTouch’s distributed alarming infrastructure.) in ArchestrA. only one provider exists per Platform (node). enables.HiAlarm”) Alarm Type (string) New alarm state (ack.) State Priority = 1-999 Priority Value (mxValue) Value Limit (mxValue) Limit Value MxReference N/a Limit MxReference N/a Units MxReference N/a Category Class Category SubClass InTouch as an Alarm Consumer The InTouch Alarm Client can be configured to subscribe to alarms and events generated by Alarm Providers. Alarm Acknowledgement from Distributed Alarming The InTouch Alarm Client can acknowledge unacknowledged alarms that are reported by the Platform.) and the distributed alarming infrastructure. and disables carry along the User information for security purposes. etc. Alarm Group names in InTouch map to Areas names and pseudo-Area names (Platforms. rtn. How does ArchestrA handle Events? A Platform is an Event Provider that provides events to the InTouch Distributed Alarm subsystem. An optional comment can be entered when the acknowledge is requested. Distributed Alarming has no support for passing a rejected acknowledge failure feedback.Part 1 5-5 . the only feedback on the InTouch client will be no change in acknowledge status on the client.Section 1 – Alarms AutomationObject’s acknowledge attribute for the alarm. Engine. The optional operator comment is included in the event message sent back. The platform receives the enable request and forwards it to the target AutomationObject’s AlarmMode attribute. “stopped”) Event Type – if string. The provider acts as a router between the NotificationDistributor (inside every Area.attribute Name Tag description Comment Area Alarm group View engine name System Platform . An acknowledge of an alarm is reported as an alarm state change back to the distributed alarming. Platform. Therefore. Several types of events can be generated by AutomationObjects The following tables define how the fields in those events are mapped to fields in the Distributed Alarm subsystem. or use Comment field N/a State = none (preferred) or “UNACK_RTN” N/a Priority = 1 N/A Provider = Galaxy N/A Event Class = EVENT Security Audit (includes User Data Change) Events: ArchestrA field Distributed Alarm subsystem Mapping Type = Operator Change Type = OPR Timestamp Time Tag. The provider does not need to deal with subscriptions to Areas. etc) and the InTouch Distributed Alarm subsystem. if an acknowledge is requested from a client but does not succeed. This provider routes all events that are generated by AutomationObjects hosted by that Platform to Application Server. Alarm Enable/Disable The InTouch Alarm Client can enable/disable alarming on any AutomationObject.primitive. Security is used as part of this set (it is a UserSetAttribute). System Events: ArchestrA field Distributed Alarm subsystem Mapping Type (or Category) = System Type = SYS Timestamp Time Tagname Name Tag description Comment Area Alarm group System event description (“started”. Security is used as part of this set (it is a UserSetAttribute). attribute Name? Or name+comment? Tag description Comment Area Alarm group View engine name Platform (the PC’s node name) Old value Limit New value Value N/a State = none (preferred) or “UNACK_RTN” N/a Priority = 999 N/A Provider = Galaxy Wonderware Training .primitive.5-6 Module 5 – Alarms and History Security Audit (includes User Data Change) Events: (continued) ArchestrA field Operator 1 name Distributed Alarm subsystem Mapping RequestingEngineName + Operator name Operator 2 name N/a Old value Limit New value value N/a State = none (preferred) or “UNACK_RTN” N/a Priority = 999 N/A Provider = Galaxy N/A Event Class = EVENT Application Data Change Events: ArchestrA field Distributed Alarm subsystem Mapping Type = Data Change Type = LGC Timestamp Time Tag. * All alarms and events from a specific object within an area.attribute The following table lists different variants of the alarm query and their return data: Alarm Query Results \\nodename\Galaxy!area All alarms and events from the area object itself. Using Multiple Queries Multiple queries can be submitted by an alarm client. The following table lists different examples on the use of the wildcard character on alarm queries and their return data: Alarm Query Results \\nodename\Galaxy!area!object. The fully-qualified syntax of an alarm query to retrieve a single alarm within an object as reported by a specific WinPlatform object is: \\nodename\Galaxy!area!object. \\nodename\Galaxy!dio All alarms and events from the device integration object itself. the following two queries can be submitted at once: \Galaxy!Area1 \Galaxy!Area2 By using multiple queries it is possible to retrieve alarms from different nodes (WinPlatform objects) at the same time. for example: \\NodeNameA\Galaxy!Area1 \\NodeNameB\Galaxy!Area2 System Platform . \\nodename\Galaxy!engine All alarms and events from the engine object (AppEngine or ViewEngine) itself. the following syntax of the alarm query is allowed: \Galaxy!area!object. \\nodename\Galaxy!area!*. \\nodename\Galaxy!winplatform All alarms and events from the WinPlatform object itself. All alarms and events from all subareas contained in the area as configured in the Model View of the ArchestrA IDE.Section 1 – Alarms Alarm Queries Alarm queries are used within alarm clients to retrieve real-time alarm information and event reports from the Galaxy.attribute part of the alarm query. Only one wildcard character is allowed per alarm query. All alarms and events from all the objects hosted in the area. if Area1 an Area2 are two mutually exclusive areas. Use of Wildcard The asterisk (*) is a wildcard character that may be used to substitute any character or characters in the object. All alarms and events from all the objects hosted in the contained areas.attribute If the WinPlatform object that serves as an alarm provider is located in the local computer. For example.Part 1 5-7 .attribute All alarms and events from all the objects in the area for the specific attribute. \\nodename\Galaxy!area!objectprefix* All alarms and events from objects whose name begins with the specific prefix. \\nodename\Galaxy!area!area All alarms and events from the object itself. The AlarmMode of an individual alarm is not propagated to other alarms. Typically written to by a script. if an area and container are enabled.Category The category of the alarm.AckMsg The operator comment at the time the alarm is acknowledged. For example. the TimeAlarmAcked attribute is set to the current time. Unlike inhibit for the entire object. the individual alarm mode is set to the most restrictive input state. if the object’s AlarmMode state is disabled and the individual alarm’s AlarmInhibit is FALSE. AlarmModeCmd The currently commanded alarm mode of the object. For example. Valid values are: Enable. The label of each alarm category is fixed. all alarms for objects in area are disabled.AlarmModeCmd The command to set the alarm mode. inhibit of an individual alarm does not affect the alarms of any contained objects. This attribute is updated when the AckMsg attribute is set. the individual alarm is disabled. The mode is based on the object's commanded mode. The calculated AlarmMode attribute value of an individual alarm uses the same inputs an object alarm. Each individual alarm is autonomous from other individual alarms in an object. <Attribute>. Disabled mode is considered the most disabled. <Attribute>. Wonderware Training . and the Acked attribute is set to TRUE. If a container. You can selectively enable. If an area. InAlarm Indicates whether any of the object's alarms are in the Active state. or disable an individual alarm and not set other alarms to the same value within the object hierarchy. <Attribute>. Also. all alarms for objects in container are disabled.AlarmMode The current alarm mode setting. user or input extension. The parent AlarmMode attribute is from the object itself.Acked Used to specify whether an alarm has been acknowledged. Silence.5-8 Module 5 – Alarms and History General Attributes Alarm Attributes You can set individual alarms within an object for each type of alarm. AlarmMode Indicates current alarm mode of object. Can be true only when the object is on scan and alarms are enabled. the most disabled state of the container or parent area applies. Any received text is stored. As with object alarms. Silence. The maximum length is 256 characters. silence. you can set alarms for each of the limits of a level alarm. Otherwise. Disable. Disable. This attribute is always set to FALSE when a new alarm condition is detected (when the InAlarm attribute changes from FALSE to TRUE). all alarms for the object are disabled. then Silenced and then Enabled. <Attribute>. Alarm Attributes Attribute Description <Attribute>. Attribute Description AlarmInhibit If TRUE. Valid values are: Enable. with a maximum length of 329 characters. The silenced alarm state is more restricted than the enabled state. <Attribute>. saved to history. No other alarms are disabled in the same object or in any objects that are assigned to or contained by this object. The date format reflects the current locale setting for the operating system. Silencing. The date format reflects the current locale setting for the operating system. In addition. The date format reflects the current locale setting for the operating system.Part 1 5-9 . System Platform . Silenced: All alarms for an object are detected. except when the alarm state is disabled. <Attribute>. the object’s ShortDesc attribute is used at run time. regardless of the actual condition state. and sent to alarm clients. individual alarms within a single object can be enabled. <Attribute>. and Disabling Alarms Alarms can be enabled. silenced. If nothing is supplied for the DescAttrName attribute. with 1 being the most urgent.Priority The value for the urgency of the alarm. But. in which case the quality is always GOOD. or disabled. <Attribute>.TimeAlarmAcked The timestamp indicating the last time this alarm was acknowledged. Enabled: All alarms for an object are reported to client applications and saved as historical data. or silenced while an application is running. the actual reference string is used for the description. A disabled alarm does not require acknowledgement. If the reference is invalid. The disabled state is more restrictive than the silenced and enabled alarm states. Disabled: No alarms for the object are detected. This is exactly the same as the attribute in the host primitive that represents the alarm condition. except when the alarm is disabled. the alarm is disabled.AttrName". Only the individual alarm is disabled. The reference must be in the form: "me. Setting an object’s alarm state can be set at the Area level. The description must be of type String or InternationalizedString.DescAttrName The description of the alarm.InAlarm The alarm state. InAlarm is set to Off.TimeAlarmOff The timestamp indicating the last time this alarm (as represented by the InAlarm attribute) went off. in which case. This attribute is intended to be written to by a script or user or input extension. Valid values are 1 through 999. The quality is set during execute to the quality of the attribute. at the container object level. disabled.TimeAlarmOn The timestamp indicating the last time this alarm (as represented by the InAlarm attribute) went on. <Attribute>.Section 1 – Alarms Attribute Description <Attribute>. Enabling. alarm clients do not show the alarms. The enabled state is less restrictive than the silenced or disabled alarm states. <Attribute>. The alarm is return-to-normal until the alarm is re-enabled. but less restrictive than the disabled state. The DescAttrName attribute can contain a static alarm description or a reference to another string attribute within the same object containing the alarm description.Inhibit If true. or at the individual object. The four extension groups dynamically change to allowed extension rules for the selected attribute type. Alarm Extensions An alarm extension can be added to a template or instance Boolean attribute in the Extensions tab of the object’s editor. The LogDataChangeEvent() function works only in object scripts. LogDataChangeEvent(TC104. Description. the alarm extension is automatically locked in derived objects. “Pump04”.5-10 Module 5 – Alarms and History LogDataChangeEvent() The LogDataChangeEvent() script logs an application change event to the Galaxy Historian. not in symbol scripts. select a Category from the list. Wonderware Training . a warning message is written to the log at run time that the function is inoperable. NewState). For Alarm Extension. OldValue.pumpstate. On the Extensions page of the Object Editor.Select the Alarms check box. An X appears in the A column of the selected attribute. Syntax: LogDataChangeEvent(AttributeName. Attribute arrays cannot be extended. Select to use either the Object Description for Alarm Message or type another alarm message in the Message box. NewValue. Type a Priority level for the alarm (default is 500). select an attribute from the Extendable Attributes List. A symbol script still compiles if the LogDataChangeEvent() function is included. However. If added to a template attribute. TimeStamp). This example logs an event when a pump starts or stops with a timestamp of the current time when the event occurred. OldState. You configure it with an alarm query that defines which alarms are to be logged. The maximum size of an MSDE database is 2 GB. The utility is responsible for starting and stopping the Alarm DB Logger. Lock the values. it indicates the lock condition of the value in the parent object. the logger continually checks for the database connection at regular intervals. The Alarm DB Logger consists of the following two components: Alarm DB Logger Manager Utility – This utility is a separate executable that solely takes care of starting and stopping the logging operations. Alarm DB Logger is an Alarm Consumer. It is launched and starts working either as a service or a normal application (depending upon the running mode you select in the Alarm DB Logger Manager).exe is running (either by pressing the Esc key or by clicking the “X” button on the upper right of the dialog box). System Platform . logging proceeds. The Alarm DB Logger Manager allows you to select the mode in which the Alarm DB Logger will run (either as a windows service or a normal application). if needed. Note: MSDE is a de-featured version of SQL Server that has its own special attractions. The Alarm DB Logger can be manually started on demand or can be configured to run as a Windows service. The lock symbol is available only when you are extending a template.Section 1 – Alarms For Boolean Label Extension. specify text strings for the False state and the True state. Alarm DB Logger Manager Utility The InTouch Distributed Alarm system includes the Alarm DB Logger Manager utility that logs alarms and events to Microsoft SQL Server and/or Microsoft Data Engine (MSDE). if needed. When the connection to the database is lost. There is no need to upsize the database or copy individual tables in a database from MSDE to a full SQL Server.Part 1 5-11 . High on the list is the ease with which you can attach databases initially built for MSDE to a full SQL Server service. When the connection is re-established. Alarm logging uses UTC (GMT) timestamping and provides compatibility with DST and across time zones. The Alarm DB Logger also has the ability to auto-reconnect. The Alarm DB Logger reports all errors whether running as a service or a normal application to the Wonderware Logger. You use the Alarm DB Logger to specify alarm queries and to log the resultant alarm records. The logging utility retrieves the setting information from the registry and performs the logging. These alarm queries are sent via the Alarm Consumer interface of the Distributed Alarm System. These text strings appear in the Active Alarm State list for you to select. the logging operation does not stop. Otherwise. When Alarm DB Logger Manager (almlogwiz. This makes it more suitable for environments where it isn't cost effective to deploy vast computer resources. It is also responsible for displaying the status of Smart Cache.exe) is closed while wwalmlogger. Alarm DB Logger Configuration Utility – This utility takes care of user input and database configuration. Note: The Alarm DB Logger Manager only saves the setting values into the registry. if they do not already exist in the database. z Store the setting in the registry Logging to SQL Database The Alarm DB Logger logs alarm data into the database. you will need to specify the SQL Server machine in the Alarm DB Logger Manager. The Alarm DB Logger Manager dialog box appears. When minimized.5-12 Module 5 – Alarms and History The progress control status indicates the percentage fill of the in-memory buffer with alarm records. To use the Alarm DB Logger Manager Utility a. The alarms are buffered when the SQL Server connection is down. and/or when the alarms are coming at a rate faster than the logging rate of Alarm DB Logger. the Alarm DB Logger Manager appears as an icon in the system tray. It depends on the time out for a connection attempt associated with SQL ServerServer. Alarm DB Logger automatically creates the necessary data structures. Start up the Alarm DB Logger Manager. If the OLEDB Provider is SQL Server. a popup menu appears displaying the following commands: Wonderware Training . The Alarm DB Logger Configuration Utility provides you with the ability to: z Run the application as a Windows Service or as a normal application z Select the database connection type – SQL Server or MSDE z Create the necessary SQL tables in the database z Specify the alarm query that will be a part of the logging instance z Select the logging mode – Detailed or Consolidated z Check/Uncheck logging of events z Set performance tuning parameter – The auto reconnect rate is not the same as the performance tuning parameter. When you right-click the icon. c. see “Alarm DB Logger Configuration. Hide Window –Minimizes the Alarm DB Logger Manager dialog box to an icon in the system tray. b. Click Start to begin the alarm logging process. For more information on configuring the Alarm DB Logger. Show Window – Opens and maximizes the Alarm DB Logger Manager dialog box. The Smart Cache Status indicates the percentage fill of the in-memory buffer with alarm records. Settings – Opens the Alarm DB Logger Manager . e. Stop – Ends the alarm logging process. The Alarm DB Logger Manager Configuration dialog box appears.Section 1 – Alarms Start – Begins the alarm logging process. System Platform . Click Settings to configure the Alarm DB Logger.Configuration dialog box.Part 1 5-13 . Close – Exits the Alarm DB Logger Manager Utility. Click Stop to end the alarm logging process.” d. 5-14 Module 5 – Alarms and History – Intentionally left blank – Wonderware Training . As an example of alarm functionality. it is necessary to update the auto-configuration script created in the previous lab to accommodate a new input signal associated with the malfunction alarm. As part of the configuration necessary to accomplish this functionality.Lab 15 – Configuring Alarms Lab 15 – Configuring Alarms Introduction This lab illustrates how to configure your galaxy to provide alarms to external alarm subscribers such as an operator’s visualization interface or an alarm database logger. The Wonderware Alarm DB Logger Manager is used to store real-time alarms in a centralized database. as well as a malfunction alarm from the mixer’s agitator generated from a field device such as a PLC.Part 1 5-15 . a typical high level alarm is added to the mixer. Objectives Upon completion of this lab you will be able to: z Configure the $WinPlatform object as an alarm provider for the galaxy z Configure alarms within objects including using the Alarm Extension z Configure and use the Alarm DB Logger Manager z Use alarm queries to request real-time alarms from alarm providers System Platform . 5-16 Module 5 – Alarms and History Summary Lab Instructions Following is a summary of the general steps you will complete for this lab. For detailed instructions, please refer to the Detailed Lab Instructions on subsequent pages. Configure the WinPlatform object as an Alarm Provider a. Configure the GRPlatform instance to be an InTouch alarm provider for all areas in the galaxy. Configure the $Mixer.LIT template for alarms b. Configure the $Mixer.LIT template with a Hi level alarm, with a limit of 80.0, a priority of 500 and “Mixer Hi Level alarm” as the alarm message. c. Lock all level alarms attributes but the Hi Limit. Configure the Alarm extension d. Add a Boolean Object writeable UDA to the $Mixer.Agitator template named Malfunction. e. Extend the Malfunction attribute with an Input extension and configure its Source as ---. f. Extend the Malfunction attribute with an Alarm extension and lock it. Configure its category as Process and leave the default values on the rest of the attributes. Update auto-configuration script on $Mixer g. Modify the AssignIO script of the $Mixer template by adding the following line of code to the Configure agitator section of the code: Me.Agitator.Malfunction.InputSource = dataSource + “_AG_Malfunction”; View the alarm data on Runtime h. Deploy the GRPlatform object on cascade. i. j. Using the watch list created in Lab 5, add a new watch window called Alarms and add the following attribute references: z LIT_001.PV z LIT_001.InAlarm z LIT_001.Hi.InAlarm z LIT_001.Hi.Limit z LIT_001.Hi.TimeAlarmOn z LIT_001.Hi.TimeAlarmOff z Agitator_001.InAlarm z Agitator_001.Malfunction z Agitator_001.Malfunction.InAlarm z Agitator_001.Malfunction.TimeAlarmOn z Agitator_001.Malfunction.TimeAlarmOff z Line1.AlarmOnCnt Save the watch list. Wonderware Training Lab 15 – Configuring Alarms Configure and Start the Alarm DB Logger Manager k. Use the Alarm DB Logger Manager to create a a database named WWALMDB on your local computer. Use the following user information: l. User Name: sa Password: [Check with your instructor for the correct password] Configure the Alarm DB Logger Manager to query all priorities from the following alarm query: \Galaxy!ControlSystem \Galaxy!Discharge \Galaxy!Intake \Galaxy!Production m. Leave the defaults advanced settings and start Alarm DB Logger Manager. View the Alarm History data n. Use SQL Server Management Studio to query all data from the v_AlarmHistory view See the next page for Detailed Lab Instructions System Platform - Part 1 5-17 5-18 Module 5 – Alarms and History Detailed Lab Instructions Following are detailed lab instructions for completing this lab. For a summary of instructions, please refer to the Summary Lab Instructions on the previous page(s). Configure the WinPlatform Object as an Alarm Provider 1. In Model view, double-click the GRPlatform instance to open its configuration editor. 2. Check the InTouch alarm provider attribute and leave the Alarm areas attribute empty. The Alarm areas field is used to specify a space-separated list of areas to subscribe to. It is used to filter alarms on the network. For example, "Area1 Area2 Area3". If blank, the platform will subscribe to all areas in the Galaxy and act as an InTouch alarm provider for the whole Galaxy. 3. Click the Save and Close button and check in the object. Wonderware Training Lab 15 – Configuring Alarms Configure the $Mixer.LIT Template for Alarms 4. Double-click the $Mixer.LIT template to open its configuration editor. 5. Select the Alarms tab and configure the object as follows: Detect PV level(limit) alarms: checked (locked) Level alarms: (locked) Hi: checked (locked) Hi Limit: 80.0 (unlocked) Hi Priority: 500 (locked) Hi Alarm Message: Mixer Hi Level alarm (locked) 6. Click the Save and Close button and check in the object. System Platform - Part 1 5-19 5-20 Module 5 – Alarms and History Configure the Alarm Extension 7. Double-click the $Mixer.Agitator template to open its configuration editor. 8. Select the UDAs tab, add a UDA named Malfunction and configure it as follows: Data type: Boolean Category: Object writeable 9. Select the Extensions tab. Wonderware Training Lab 15 – Configuring Alarms 10. Select the Malfunction attribute. 11. Configure the Malfunction extensions as follows: Input extension: Source: Alarm extension: checked --checked (locked) Category: Process Priority: 500 Alarm message: me.ShortDesc Active alarm state: True Ensure the Malfunction attribute is selected before configuring Input extension. 12. Click the Save and Close button and check in the object. System Platform - Part 1 5-21 5-22 Module 5 – Alarms and History Update Auto-configuration Script on $Mixer 13. Double-click the $Mixer template to open its configuration editor. 14. Select the Scripts tab. 15. Select the AssignIO script and add the following line of code to the Configure agitator section of the code: Me.Agitator.Malfunction.InputSource = dataSource + “_AG_Malfunction”; 16. Click the Save and Close button and check in the object. Wonderware Training Lab 15 – Configuring Alarms The ArchestrA IDE should now look similar to the following: View the Alarm Data in Runtime 17. Deploy the GRPlatform object with Cascade Deploy checked in the Deploy dialog box. 18. Click Close when deployment is complete. 19. Right-click on the LIT_001 instance and select View in Object Viewer. System Platform - Part 1 5-23 5-24 Module 5 – Alarms and History Note: If Object Viewer was open during undeployment, you will see the following error message. Click the OK button to close and then re-open Object Viewer from the ArchestrA IDE. 20. Load your saved Watch List. 21. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch Window to add a new tab to the watch list. 22. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to rename the watch list to Alarms. 23. Add the following attributes to the watch list: For the LIT_001 object: z Hi.InAlarm z Hi.Limit z Hi.TimeAlarmOff z Hi.TimeAlarmOn z InAlarm z PV For the Agitator_001 object: z InAlarm z Malfunction z Malfunction.InAlarm z Malfunction.TimeAlarmOff z Malfunction.TimeAlarmOn For the Line1 object: z AlarmOnCnt 24. Save the watch list. Wonderware Training Lab 15 – Configuring Alarms Configure and Start the Alarm DB Logger Manager. 25. Start the Alarm DB Logger Manager by selecting Start / All Programs / Wonderware / InTouch / Alarm DB Logger Manager. 26. In the Alarm DB Logger Manager window, click the Settings button. 27. Configure the Alarm DB Logger Manager – Configuration dialog box as follows: Server Name: localhost Database: WWALMDB User Info: User Name: sa Password: [Check with your instructor for the correct password] Logging Mode: Detailed 28. Click the Create button System Platform - Part 1 5-25 In the Alarm DB Logger Manager – Configuration dialog box click the Next button to continue. Configure the Alarm DB Logger Manager – Query Selection dialog box as follows: From Priority: 1 To Priority: 999 Alarm Query: \Galaxy!ControlSystem \Galaxy!Discharge \Galaxy!Intake \Galaxy!Production Wonderware Training . Note: If the following Warning dialog is displayed. 30. 29.5-26 Module 5 – Alarms and History The Success dialog box displays indicating that the tables were created. Click the OK button to continue. click the Yes button to delete the existing database and create a new one. 31. Part 1 5-27 .Lab 15 – Configuring Alarms 32. Click the Next button to continue: System Platform . In the Alarm DB Logger Manager window.5-28 Module 5 – Alarms and History 33. Click the Finish button. At the Alarm DB Logger Manager – Advanced Settings dialog box. Wonderware Training . 34. leave the default settings. click the Start button to start the Alarm Database Logger. 35. 37. System Platform .Lab 15 – Configuring Alarms When the Alarm Database Logger is started. the Alarm DB Logger Manager window will look similar to the following: View the Alarm History Data 36.Part 1 5-29 . Start the SQL Server Management Studio by selecting Start / All Programs / Microsoft SQL Server 2005 / SQL Server Management Studio. Configure the Connect to Server dialog box as follows: Server type: Database Engine Server name: localhost Authentication: Windows Authentication 38. Click the Connect button to continue. 5-30 Module 5 – Alarms and History 39. Wonderware Training . In the Object Explorer (left pane) navigate to localhost / Databases / WWALMDB and select Views to get a list of all the database’s Views in the Object Explorer Details (right pane). Part 1 5-31 . In the Views list (right pane). right-click on the v_AlarmHistory view and select Open View to display the current list of alarms logged in the database. Your data should look similar to the following: System Platform .Lab 15 – Configuring Alarms 40. 5-32 Module 5 – Alarms and History – Intentionally left blank – Wonderware Training . it means this object has been previously registered. This is a push-style configuration model. Historization Background The history system supports historization of process data in distributed history architecture. meaning the configuration data for each historized property of an object is dynamically. The user does not need to run Historian configure and import tags from Application Server (as done with InTouch today). This configuration is stored in an attribute within the Engine. For storage. z Float (numerical) z Double (numerical) z Integer (numerical) z Boolean (non-numerical) z String – Unicode (non-numerical) z CustomEnum (non-numerical) maps to Historian Integer System Platform . it pushes that storage update message.Part 1 5-33 . For each object. Each Engine in the Galaxy is configured with the location of the Historian storage node to which its history data is to be sent. If the Historian tag does not exist. History Configuration Historizable Data Types for Attributes For attribute data to be stored in the historian. Wonderware Historian requires a Historian tag to be configured in its database for each attribute to be historized by an AutomationObject. In either case. The Galaxy can be configured to store history data into one or more of those Historians. there is a one-to-one relationship between a historized object and a tag in Wonderware Historian. Since the Engines use push technology to historize. The Historian must exist on a different node from the AutomationObject. When an AutomationObject starts up it registers its configuration data with Historian using a Historian supplied interface. the object receives back a unique identifier (handle) for that tag. the Historian box does not have any ArchestrA software requirements. and automatically. pushed to Historian. the story is similar. If the Historian tag already exists. The history primitive uses the previously-returned unique identifier for the Historian tag that corresponds to the historized property to identify the tag being stored. a host AppEngine must be configured to send history data to a Wonderware Historian node. to Historian using a Historian supplied interface. Thus. you can configure attributes of the following data types to be saved to the Wonderware Historian. with the new VTQ. This section provides familiarization with the background concept of historization and the details of historizable configuration.Section 2 – Historization Section 2 – Historization Section Objectives z Familiarize you with the background concept of historization. it is created automatically. When an object decides to store a new VTQ to Historian. One or more Historian products can be installed on the same network as the Application Server Galaxy. and z Enable you to understand details of historizable configuration. A change in Quality always causes a new record to be stored. in seconds (floating point). z Enum type attributes are saved as Wonderware Historian integer ordinal values. certain configuration settings can be specified. The following configuration settings can then be specified: z Value Deadband – the threshold value (measured in engineering units) that the absolute value of the difference between the new and last-stored values must differ before storing the new value to history. These settings determine how often data is historized. regardless of whether the Value has changed. The Historian storage system to be configured is configured in the engine object itself. z IEEE NaN values for float and double data types are converted to null values prior to being sent to the historian. the ArchestrA IDE user can enable history for each attribute. Dynamic. In addition to the Value Deadband setting. Trend Hi – specifies the initial maximum trend value for clients. the attempt to dynamically reconfigure Historian is achieved at the time the Historian link is recovered. A value of 0 disables this feature. a change in data Quality. If the link to the Historian product is down at deploy time. Each historized property causes a new tag to be created and configured automatically in Historian at deployment time. converted to seconds z Arrays or portions of arrays are not supported. Configuration of a numerical Attribute for Historization For an object that has numerical historizable attributes. In other words. Also. the object causes a dynamic reconfiguration of the Historian product. The Wonderware Historian does not scale numerical values. the object causes a reconfiguration of any changes that were caused by the redeploy to be changed in the Historian product automatically. Configuration of a non-numerical Attribute for Historization For an object that has non-numerical historizable attributes. the ArchestrA IDE user can enable history for each attribute. Force Storage Period – this is the time interval. automatic retry is built in. Reconfiguration of Historian at Object Redeploy Time When an AutomationObject that has been historized is redeployed. z All numerical attributes sent to the Wonderware Historian are in the engineering units specified for the attribute. the value will be stored continuously at this interval. if the engineering units string for the tag changes from “Deg F” to “Deg C” upon a redeploy. regardless of whether the Value changed too. A value of 0 is valid and is the default and means that some change is required prior to storing the value. always causes a new record to be historized/stored. Wonderware Training . No other configuration data is provided by the user since these attributes are historized upon change of value. For example. the Historian configuration database must reflect this change.5-34 Module 5 – Alarms and History z ElapsedTime (numerical) Maps to Historian Float. Automatic Configuration of Wonderware Historian at Object Deploy Time When an AutomationObject is deployed that has been historized. at which the value must be stored regardless of the value deadband setting. Once enabled. Trend Lo – specifies the initial minimum trend value for clients. NaN values are associated with a Bad OPC data quality. System Platform . Quality is set to Uncertain. Historian Timestamp mapping The timestamp to be sent to Historian for each attribute value/quality update is sent by the object in the VTQ packet. The plan is for Historian to support the OPC Quality definition. the low order byte is the standard OPC part.Part 1 5-35 . This SQL Server Database can be the same or different one used by the Galaxy Repository. regardless of whether the Value component has changed. Historian Installation and Deployment Wonderware Historian is installed and deployed using its standard mechanism. the 16-bit value for the OPC Data quality is sent to Historian.Section 2 – Historization Reconfiguration of Historian at Object Undeploy Time When an AutomationObject is undeployed that has been historized. Both Application Server and Historian use UTC time. Bad. The Good. Therefore. Historian may insert “artificial” quality (for example 24) and null value in the database when certain situations such as disconnects occur. Historian Quality Mapping The Application Server Data Quality is somewhat different than the Historian data quality. This means the history data can still be examined in the future even if the AutomationObject is no longer deployed. Historian Value Mapping The update packet to be sent to Historian contains a Value. In other words. A single Historian can receive historical data from a single Galaxy only. Historian requires a SQL Server Database for its configuration data. More than one Historian can be utilized by a single Galaxy. NaN is a valid value that can be generated for floats and doubles. Wonderware reserves the high order byte. However. Initializing (which is a form of Bad) and Uncertain states are in the low order byte per the OPC standard. so truncation may occur. Within those 16-bits. In any case. ArchestrA will convert the NaN value to a Null value representation just prior to sending to Historian. These NaNs will be accompanied by a Bad OPC Data Quality. or on a PC outside the Galaxy but on the local network. object does not cause any dynamic reconfiguration of the Historian product. NaN Handling For Float and Double attributes. a potential value is the IEEE NaN encoding for the float or double representation. It does this in cooperation with the ActiveFactory clients to project the right information on the client. Unfortunately. Any change in the OPC Quality. If so. This value may need to be converted from the value received from Message Exchange if the received datatype is not one of the native Historian datatypes as specified below: Enum – historize as Integer ordinal value Strings – Historian strings are limited to 512 characters. The quality stored in Historian is to be the actual quality of the attribute in Application Server with no modification. Thus. However. a single engine sends its history to only one Historian. This means that a point that has an identical value over some period of time with varying qualities will have multiple records stored to Historian. Historian can be deployed on any PC in the Galaxy. Historian clients do not handle NaN properly. NaN values can be generated for attributes that are to be historized. will cause storage of a new record to Historian. the Historian tag and all its history is left in the Historian historian. 5-36 Module 5 – Alarms and History Application Server History Storage Performance The link from the Application Server to Historian may fail or be down for any of a number of reasons: z The network connection to Historian goes down unexpectedly. This capability is limited by the hard disk capacity of the system where data is stored before forwarding. An attribute value is saved to the Historian at every Force Storage interval. The maximum data storage size to be consumed by store/forward must be configurable in the Platform. z The Galaxy Platform and its Engines which are generating history startup prior to Historian node startup in a recovery situation. The current value must exceed the absolute deadband to be saved as historical data. This is called store/forward. Force Storage Period: Interval in milliseconds in which an attribute value is saved to the Historian. which is the absolute difference between the current and most recent saved historical values. The following are the common historical attributes that you can configure for your system and application objects. The Wonderware Training . the oldest data is discarded in preference to newer data. The default value of zero (0) disables the Force Storage period. an X appears in the H column of the Extendable Attributes list to indicate its data is saved to the historian. z History data must be preserved in these cases by having it stored locally until the link to Historian has recovered or Historian has started. Historian extension You can assign historical extensions to extended attributes that you select from the Extensions tab of your objects. whether store/forward is enabled/disabled can be configured. The Value Deadband filters out small. z When store/forward capacity is consumed. After you select the History extension check box to save the data to history associated with the attribute extension you selected. regardless of whether the value exceeds its value deadband setting or not. Value Deadband: Threshold value in engineering units. momentary value changes from being saved to the Historian. z The Historian storage node goes down or fails unexpectedly. A new value that is within the range of the deadband is not saved to the Historian. Also. the new sample count setting is not saved to the Historian database. In counter retrieval mode the Historian uses a tag's rollover value to calculate and return the delta change between consecutive retrieval cycles.0 can be assigned to the rate deadband. The default is 100. If the current sample count for the active image is greater than 65. Sample Count: Integer that indicates the number of samples the Historian should store in the active image for an attribute value. The interpolation type determines which analog value is selected during a Historian data retrieval cycle. Interpolation types include System Default. The default is disabled. a NULL is returned to the Historian. Trend Hi: Initial maximum trend value in engineering units for clients. and you set the sample count to a value less than or equal to 65.0. If the current sample count for the active image is 65. Linear: The Historian calculates a new value at the given cycle time by interpolating between the last known value prior to the cycle time and the first value after the cycle time. Enable Swinging Door is disabled if the historical attribute data type is Boolean or a string. The default interpolation type is System Default. The system-wide setting must be either stairstep or linear interpolated. The Rollover value applies only to numeric attributes.Section 2 – Historization default value of 0. Stairstep. the new sample count is saved to the Historian database and used by the active image.Part 1 5-37 .0 disables the Value Deadband and any change to a value is saved as historical data. The default value is 0. The default is 0.0. The default is 0. System Default: The Wonderware Historian system-wide interpolation setting. Rollover Value: Positive integer value that represents a tag’s reset limit when the Historian operates in counter retrieval mode. Interpolation Type: List of methods used by the Historian to interpolate analog historical data. specifying a swinging door rate deadband of 10 percent means that data is saved to the Historian if the percentage change in slope of consecutive data values exceeds 10 percent. If no valid value can be found. Trend Lo: Initial minimum trend value in engineering units for clients. and you set the sample count to a value less than or equal to 65. Regardless of the current sample count for the active image. The Rollover value is disabled if the historical attribute data type is Boolean or a string. Acceptable range of values is from 0 to 9999. Stairstep: No interpolation occurs.0. and the active image count remains at 65. Any percentage greater than 0. the new sample count is saved to the Historian database and 65 is used by the active image. System Platform . or Linear. The last known value is returned with the given cycle time. which indicates a swinging door rate deadband is not applied. For example. Rate Deadband: Percentage rate of change deadband based on the change in the slope of incoming data values to the Historian. The Historian enforces a sample count of 65 for the active image. if you set the sample count to a value greater than 65. Enable Swinging Door: A flag that indicates whether the swinging door rate deadband is enabled or disabled. 5-38 Module 5 – Alarms and History – Intentionally left blank – Wonderware Training . As an example. as well as the speed of the mixer’s agitator. the mixer’s level and state of the Inlet Valve 1 is configured. you will use it this lab as a quick and simple way to retrieve history data from the history database.Lab 16 – Configuring History Lab 16 – Configuring History Introduction In this lab you are to configure your galaxy for historization to your local Wonderware Historian server.Part 1 5-39 . Objectives Upon completion of this lab you will be able to: z Configure the $AppEngine object to store history data to a Wonderware Historian z Configure attributes within objects for historization including the History Extension System Platform . Although ActiveFactory Trend is outside the scope of this class. View the History data with ActiveFactory Trend i.LIT template to historize the PV attribute using the default values for the history attributes. Lock all history-related attributes for the PV attribute. Configure the $Mixer. Configure the History extension g. Configure the WinPlatform object a.5-40 Module 5 – Alarms and History Summary Lab Instructions Following is a summary of the general steps you will complete for this lab. For detailed instructions. Lock the history extension. d. f. Use ActiveFactory Trend to connect to the local Wonderware Historian using Integrated security.LIT template for History c.Inlet1 template for History e. Extend the Speed attribute of the $Mixer. Lock all history-related attributes for the PV attribute. j. h. k. Configure the AppEngine object for History b. Visualize the trend for the following tags: z Agitator_001.PV z LIT_001. Configure the $Mixer.Inlet1 template to historize the PV attribute using the default values for the history attributes. please refer to the Detailed Lab Instructions on subsequent pages. Configure the GRPlatform instance to use C:\S&F as the Store & Forward folder. Configure the $Mixer. Configure the $Mixer. Enable the AppEngine instance for storage to the historian in your local computer.Agitator template for historization using RPM as the engineering units. Deploy the GRPlatform object on cascade.Speed z Inlet1.PV See the next page for Detailed Lab Instructions Wonderware Training . System Platform . 2. please refer to the Summary Lab Instructions on the previous page(s). In the General tab. Double-click the GRPlatform instance to open its configuration editor. Click the Save and Close button and check in the object.Lab 16 – Configuring History Detailed Lab Instructions Following are detailed lab instructions for completing this lab. configure the object as follows: History store forward directory: C:\S&F 3. For a summary of instructions.Part 1 5-41 . Configure the WinPlatform Object 1. 6. Double-click the AppEngine instance to open its configuration editor.5-42 Module 5 – Alarms and History Configure the AppEngine Object for History 4. Wonderware Training . 5. Configure the History section of the General tab as follows: Enable storage to historian: checked Historian: [Name of your local computer] Leave the default values for the rest of the attributes. Click the Save and Close button and check in the object. Inlet1 Template for History 10. 8. Select the History tab and check the PV box to historize the PV attribute. Click the Save and Close button and check in the object.Lab 16 – Configuring History Configure the $Mixer. 9. Leave the default values and lock all attributes by clicking the lock on Historize. Double-click the $Mixer. 11. configure the object as follows: Historize PV: checked (locked) Force storage period: 0 (locked) Sample Count: 0 (locked) 12. Click the Save and Close button and check in the object.LIT template to open its configuration editor. Double-click the $Mixer. Configure the $Mixer.Inlet1 template to open its configuration editor.Part 1 5-43 . In PV section of the General tab. System Platform .LIT Template for History 7. Select the Extensions tab. 19. Wonderware Training . 16. 15.Agitator template 13. Start ActiveFactory Trend by selecting Start / All Programs / Wonderware / ActiveFactory / Trend. Select the Speed attribute. 14. Check and lock the History extension and configure it as follows: Engineering units: RPM Leave the default values for the remaining attributes. Click the Save and Close button and check in the object. Deploy the GRPlatform object using the default Cascade Deploy.5-44 Module 5 – Alarms and History Configure the History extension for the $Mixer. Double-click the $Mixer. 17.Agitator template to open its configuration editor. View the History Data with ActiveFactory Trend 18. Ensure the Speed Attribute is selected before configuring History extension. Lab 16 – Configuring History 20. Configure the Server List Configuration as follows and click the Add button: Server: LOCALHOST Authentication information: Use Integrated security: checked 21. After the server has being added to the Server list click the Close button. System Platform .Part 1 5-45 . With LOCALHOST selected on the Servers pane (top-left pane). Wonderware Training . you will see the attribute references configured for historization in the Tags pane (bottom-left pane).5-46 Module 5 – Alarms and History 22. PV z LIT_001. In the Tags pane (bottom-left) double-click the following tags to add them to the trend: z Agitator_001. ActiveFactory Trend displays a graphical representation of the history data recorded for the selected tags. Notice in this example the first half of the graph is blank. Click on the Live Mode button to configure the Trend to update automatically.Lab 16 – Configuring History 23. System Platform .Part 1 5-47 . when no data was available.PV 24. The blank section reflects the time period before deployment.Speed z Inlet1_001. 5-48 Module 5 – Alarms and History – Intentionally left blank – Wonderware Training . Module 6 Security Section 1 – Security Overview Lab 17 – Security 6-3 6-13 . 6-2 Module 6 – Security Module Objective Configure. and test security with Application Server. deploy. Wonderware Training . Part 1 6-3 . the system is not designed to stop determined programmers from accessing the system. Some options include password timeout and electronic signature authentication. The ArchestrA Security Model See the image below for a visual hierarchical overview of the ArchestrA security model. ArchestrA security is designed to prevent users from performing unauthorized activities. So. This includes users of: z The ArchestrA IDE when configuring and deploying objects. the security model can be configured to support operating system authentication. If your application requires a higher level of security. the configuration and runtime permissions can be mapped to the external operating system account. Each attribute of an AutomationObject is given a security classification. this can be achieved by typical IT departments using tools provided by Microsoft®. In that case. This shows the relationships of the objects in the Security Model to each other and to the rest of the ArchestrA System. System Platform . This section provides an understanding of Security as it relates to Application Server. z Other future ArchestrA utilities.Section 1 – Security Overview Section 1 – Security Overview Section Objective Introduce Security with Wonderware Application Server. z The System Management Console (SMC) when performing maintenance and system administration functions. Passwords are encrypted but they are stored in a database that is accessible. This provides the ability to define who can write to attributes of an object. The security system is designed to support the normal operating parameters of an automation system. z View (or other GUI client applications) when performing runtime operations including monitoring. The system is not designed to stop malicious access to the system. To facilitate a higher level of security. control and data entry functions. Defining your Security Model 3. then that role has write permissions to all object attributes with a security classification of Tuning (but none other). which cannot be removed. Every AutomationObject belongs to exactly one Security Group. Security Groups are simply the grouping of objects that you want to behave in the same way with respect to security. two or more permissions may be required for operation-critical actions. 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. For example.not granted to the Software Engineer. This Role has full permissions to modify the objects in the ArchestrA IDE. These attributes are meant for different people. Operator (operate) and Technician (tuning). ArchestrA’s security system is configured in the Configure Security dialog box by: 1. such as Intake Operator or Dispatcher. Wonderware Training . Roles are granted permissions onto a number of Security Groups. Usually only one permission is required to perform a given activity. Enabling Security 2. Thus. though. Only an operator (with Operation permissions) can do so. The final aspect of the Security Model is the User. Configuring access to all users for all AutomationObjects on individual bases would be a time-consuming and repetitive effort. By default all new objects belong to the Default Security Group. the system requires that the object is offscan. If. but occasionally.6-4 Module 6 – Security For example. such as Deploy or Can Edit. Mapping Users to the Security Model 4. Mapping AutomationObjects to the Security Model If the Security is not enabled then Authentication mode is disabled. for instance. Roles generalize Users function. configured Roles and Security Groups can be applied to Users to enable easier configuration of the Security Model. To undeploy an object. and has permissions to deploy as well. a Role of Software Engineer is created. a Role is granted Tuning access to a Security Group. Roles are also granted utility functions-based permissions. Permissions are required to perform most ArchestrA activities. This describes the access to the system allowed by a User. Control of offscan/onscan is controlled by Operation permissions -. so he cannot undeploy any objects in Onscan mode. The User can be granted as many Roles as needed to perform their job. Part 1 6-5 .Section 1 – Security Overview Authentication Mode System Platform . maximum is 9. No authentication is provided for any operations in the ArchestrA configuration or runtime environment. even if Login time times out. When you select OS Group Based Authentication mode. 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.999. if the user has never performed an ArchestrA login on the computer. z OS Group Based: This mode enables the Authorization for users based on which OS Groups they have been assigned to.999. Use this setting to take advantage of the operating system's user authentication system. the role update operation continues in the background and eventually updates user-to-role relationships for this user in the local cache. z OS User Based: This mode enables the Authorization of individual OS users. It leaves all functions open to all users. Minimum allowed value is 0 (zero). Use this setting to create a user security system controlled by the Galaxy database.6-6 Module 6 – Security On the Authentication Mode page. The user membership update is done one role per Role update interval to minimize network usage. In other words. this mode is considered Open Security. Minimum allowed value is 0 (zero). After this timeout period. The Login time option should be used primarily for intermittent or slow network scenarios. which switches off this feature (the operation does not time out). 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. No login dialog boxes are displayed for operating Application Server utilities or runtime processes. the login operation defaults to the local cache. the slower the network or the higher the number of groups. Default value is 0 (zero). In other words. choose the mode of Galaxy security: z None: The default setting for new Galaxies. note the messages relevant to your ArchestrA installation that are displayed in the Note box. If the login operation times out and the user has performed a previous ArchestrA login on the computer. the greater the value should be for Login time. The result of a successful login for a value other than 0 (zero) is that local cache is stored/updated. Wonderware Training . on a group basis. maximum is 9.999. 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. local cache is used.999. z Galaxy: This mode uses local galaxy configuration to authenticate the user. Default value is 0 (zero). the ArchestrA login fails. Note: When you select Authentication Modes. on an individual user basis. 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. This option operates independently of the Login time option. Use this setting to take advantage of the operating system's (NT) user authentication system. the ArchestrA IDE is shut down. For instance. click Change User on the Galaxy menu. the ArchestrA IDE closes. z When OS User Based authentication is selected. a user may have an account that provides permissions for working with instances but not templates. 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. you must login. The same person may have another supervisory account for working with templates and managing users in the ArchestrA environment. The security system ensures that the OS user is authorized to use the ArchestrA IDE. This action ensures that the new security model can be enforced. If the Security is not enabled then Authentication mode is disabled. 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. No login dialog boxes are presented to users during configuration. user name and password in a login dialog box. z When OS Group Based authentication is selected.Part 1 6-7 . z When you close the Configure Security dialog box after selecting any Authentication Mode other than None. the person must login as the new user. user name and password in a login dialog box. z 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. The ArchestrA IDE customizes the user interface to the user's previous preferences (for instance. z A user can have multiple accounts within the security system.Section 1 – Security Overview Authentication Mode selections provide the following general results: z Open security gives all users the Defaultuser credentials. The logged in user's name is shown in the status bar of the ArchestrA IDE. just disabled in the new mode. If you select Cancel on the login dialog box. each user must provide a user name and password in a login dialog box. each user must provide a domain. To switch between levels of authority. each user must provide a domain. To do this. System Platform . administration or runtime operations. which Application Views are shown). z When Galaxy authentication is selected. The security system first ensures that the user is authorized to use the ArchestrA IDE. z When you switch to None from another Authentication Mode and click OK. Login dialog boxes are presented for all other Authentication Modes. The security system authenticates the user's credentials against Galaxy user data. a user is not presented with a log in dialog box if that user has authorization to use that ArchestrA utility. Other users are not deleted. If during the controller outage. groups and security features. the trusts are being reestablished by the controller. If you want to perform remote operations. This is true even if the user has been given sufficient runtime operational permissions to do writes. locally cached login data is used on subsequent logins. If that fails. ArchestrA OS Group Based security leverages those Windows features. Take note of the following behaviors that are unique to OS Group Based Authentication Mode: z 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. log on to the remote node at least once. particularly its user permissions. you may be able to use the old login data if you intend to work locally.6-8 Module 6 – Security OS Group Based Security If you use OS Group Based Authentication Mode. and you should retry at a later time. you should first familiarize yourself indepth with the functions of the Windows operating system. Wonderware Training . When the domain controller returns to operation. z If you log in to ArchestrA on a workstation that belongs to Domain A and Domain Controller A fails. To enable remote writing capabilities. you should attempt to log in with the new login data. your login will fail during the time period that trusts are being reestablished by the controller. your username/ password data was changed. An authenticated user is granted the sum of all Permissions within their assumed Roles. A domain group that is configured as "Distribution" rather than "Security" cannot be used for security purposes. the user's full name will still be available to the client from data stored in cache even if the domain controller is disconnected when the user subsequently logs in to ArchestrA. The user will get the message “Login Failure: The specified account password has expired. System Platform . double-click Act as a part of operating system. an InTouch window) if the domain controller is disconnected from the network when the user logs in to ArchestrA for the first time. In the left pane of the Local Security Settings dialog box. Do this as follows: On a Windows 2000 Server computer . User Authentication Client utilities like ArchestrA IDE. and InTouch for System Platform require their users to be authenticated so that the appropriate permissions can be confirmed. In the Local Security Policy Setting dialog box. Note the users/groups have been defined on each machine and imported into the Galaxy Repository (GR) and defined as Local Host. z The user's full name is not available to any client (for instance. You must be an administrator to set TCB privilege. In the Administrative Tools utility. on attempting the login they will receive the message “ Login Failure: The password for the specified account must be change before first logon.on the Start menu.Section 1 – Security Overview z If you attempt to log in to ArchestrA on a workstation running Windows 2000. double-click Local Security Settings. In the right pane. add the user (the user logged in to the computer) by selecting the Local Policy Setting check box. login will fail until you properly set the TCB privilege in Local Security Policies.on the Start menu. point to Settings and then click Control Panel. z If the OS user is a new user and the account has been configured to require the password to be changed on the first logon. 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. Log off and log in to the computer again to implement the new TCB privilege.Part 1 6-9 .” The user will then be able to change the password. double-click Administrative Tools. SMC. Supported Operating System User Configurations The following is the list of supported Operating System (OS) user configurations that are supported within the security system: z Login using an OS user who has been authorized and whose password has expired.). point to Programs and then Administrative Tools. If the user previously logged in to ArchestrA when the domain controller was connected. z Users being drawn from multiple domains. z Machines and users defined within a Workgroup. and then click Local Security Policies (On a Windows 2000 Professional computer . In the Control Panel. z 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. and then click OK.” Supported Operating System Security Configurations The following list of OS security configurations will be supported: z Machines and users participating in a domain. expand the Local Policies folder and click the User Rights Assignment folder. Username and Password are entered onto this dialog. a client utility Logon dialog will be displayed. The previous user will be implicitly logged off. Application Server provides a standard login dialog. It is not necessary to explicitly Log Off before logging on using a different User Profile. The user will be able to change their own OS password from within the ArchestrA utility. The login appears: z The user explicitly chooses a Log On option from within the user interface. 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. Specifically it must not require the user to be an Administrator on the host machine.6-10 Module 6 – Security Minimal Operating System Permissions Required for Starting OS User The OS user account must not be required to have any special privileges to enable it to utilize the client utilities. Logon Dialog If security is enabled within the Galaxy. Wonderware Training . These include Attributes such as Setpoint. They are: z FreeAccess – Any User can write to these attributes to perform safety or time critical tasks that could be hampered by an untimely logon request (for example halting a failing process). Note: Overriding Security Classifications is not permitted within Instances. to allow the write. System Platform . to allow the write. This requires the user to be assigned to the Security Group of this AutomationObject. There are two other situations where an Attribute's Security Classifications are specified: z When a User-Defined Attribute is configured. This requires the user to be assigned to the Security Group of this AutomationObject.Section 1 – Security Overview Attribute Security Classifications Attribute SecurityClassifications classify Attributes of AutomationObjects (like the previously discussed Command attribute) from a security perspective. Output and Control Mode for a PID Object.Part 1 6-11 . z Configure – Writing to these attributes is considered a significant configuration change. a PLC register that defines a Discrete Device input. regardless of the user's permissions. z When an Engineer overrides the Attribute Security Classification within a Template editor. Examples are attributes that adjust alarm setpoints. It also requires that the Object is currently OffScan. z Tune – Writing to these attributes is considered a tuning activity. z Operate – Operators write to these attributes during normal day-to-day operations. z Read-Only – The attributes are never written to at runtime. etc. This requires the user to be assigned to the Security Group of this AutomationObject. This requires the user to be assigned to the Security Group of this AutomationObject. Command for a Discrete Device Object. etc. to allow the write. however it also requires a second user authentication. to allow the write. PID sensitivity. This is similar to Secured Write. This does not require the user to have any privileges. For example. z Verified Write – Operators write to these attributes for normal interaction with a very highly secured object. z Secured Write – Operators write to these attributes for normal interaction with a highly secured object forces re-authentication. The AutomationObject will reject the write requested via the return status and the user must re-enter the login details. to allow the write. The second user must also be assigned to the Security Group of this AutomationObject. 6-12 Module 6 – Security – Intentionally left blank – Wonderware Training . Supervisors: these users are only allowed to perform tuning configurations by modifying Tune attributes in the objects (for example. In this lab you configure the security settings for your galaxy and test those settings with a sample automation object that has been partially pre-configured for you. so they have to set the objects off scan (put the devices off line) before an engineer can change the configuration on runtime.Part 1 6-13 . Notice that users in this role do not have Operate permissions. changing an alarm set point). Note: Importing objects will be discussed in detail. You then observe the different behaviors in the Object Viewer as you logon as various users. Engineers: these users have access to the configuration of the Galaxy through the ArchestrA IDE and configuration of the objects in runtime by modifying Configure attributes in the objects (for example. in a subsequent module. It is assumed that the Operators “own” the runtime.Lab 17 – Security Lab 17 – Security Introduction As you work with the security settings within the ArchestrA IDE you set up various Roles and Users and configure them with different sets of permissions. changing a deadband or an input source). The security configuration used in this lab is based on the following premises: Operators: these users can acknowledge alarms and operate devices by modifying Operate attributes in the objects (for example. but they are not allowed to change alarm set points or other Tune attributes. Objectives Upon completion of this lab you will be able to: z Configure the security classifications for individual attributes within automation objects z Configure the security settings for a galaxy z Record and view the security audit trail for a galaxy System Platform . which will prevent them from setting objects off scan before writing to a Configure attribute. open a valve or start a motor). Users in this role do not have access to the configuration data. including the options in the Import Objects dialog box. Users in this role do not have access to the configuration data. g. Configure the Default role with the following permissions: On the General permissions section: IDE Permissions: unchecked SMC Permissions: unchecked Can Write to GObject Attribute using ObjectViewer: checked On the Operational permissions section: i. h. e. Assign the new instance to the Discharge area and deploy it. Configure Security for the Galaxy f.6-14 Module 6 – Security Summary Lab Instructions Following is a summary of the general steps you will complete for this lab. Configure the SecurityTest Object c. Configure the galaxy’s security Authentication Mode to Galaxy. Configure the Security Classifications for each UDA in the object as follows: Att1_FreeAccess: Free Access Att2_Operate: Operate Att3_SecuredWrite: Secured Write Att4_VerifiedWrite: Verified Write Att5_Tune: Tune Att6_Configure: Configure Att7_ReadOnly: Read Only Create and Deploy an Instance of SecurityTest d. Add a security group named TestGroup and assign the SecurityTest_001 instance to it. Assign the $SecurityTest object to your toolset. For detailed instructions. b. Import the SecurityTest Object a.aaPKG file located in the C:\Wonderware Training folder. Import the object in the $SecurityTest. Default: checked TestGroup: unchecked Add a new role named Operators with an access level of 500 and with the following permissions: No General permissions Wonderware Training . please refer to the Detailed Lab Instructions on subsequent pages. Create an instance of $SecurityTest and leave the default name. Can acknowledge Alarms: unchecked Can modify “Configure” attributes: checked Can modify “Operate” attributes: unchecked Can modify “Tune” attributes: unchecked Configure the Administrator role with all Operational permissions. m. System Platform . Add a new user named HOper with a full name of Homer Operator and make it part of the Operators role. n. Assign ww as the password. Assign ww as the password. Add a new user named WEng with a full name of William Engineer and make it part of the Engineers role. No Operational permissions for the Default security group. Can acknowledge Alarms: checked Can modify “Configure” attributes: unchecked Can modify “Operate” attributes: checked Can modify “Tune” attributes: unchecked Add a new role named Supervisors with an access level of 1000 and with the following permissions: No General permissions. Add a new user named JSup with a full name of Joe Supervisor and make it part of the Operators and Supervisors role.Lab 17 – Security No Operational permissions for the Default security group Configure the Operational permissions section for the TestGroup security group as follows: j. o. Configure the Operational permissions section for the TestGroup security group as follows: Can acknowledge Alarms: unchecked Can modify “Configure” attributes: unchecked Can modify “Operate” attributes: unchecked Can modify “Tune” attributes: checked k. Assign ww as the password. Add a new role named Engineers with an access level of 2000 and with the following permissions: Configure the General permissions as follows: IDE Permissions: checked (this will check every box within the node) Framework Configuration: unchecked SMC Permissions: checked (this will check every box within the node) Configure the Operational permissions for the TestGroup security group as follows: l.Part 1 6-15 . Test the different security classifications and the security permissions by modifying the value of the attributes under the different user accounts created before. See the next page for Detailed Lab Instructions Wonderware Training .6-16 Module 6 – Security Test General Permissions p. t. Save the watch list. Using the watch list created in Lab 5. Verify that the WEng user cannot modify the security configuration through the ArchestrA IDE. Use SQL Server Management Studio to query all data from the v_EventHistory view. Login as Administrator and deploy the SecurityTest_001 object. Test Operational Permissions q. add a new watch window called Security and add the following attribute references: Object Name Attribute Name SecurityTest_001 Att1_FreeAccess SecurityTest_001 Att2_Operate SecurityTest_001 Att3_SecuredWrite SecurityTest_001 Att4_VerifiedWrite SecurityTest_001 Att5_Tune SecurityTest_001 Att6_Configure SecurityTest_001 Att7_ReadOnly SecurityTest_001 ScanState SecurityTest_001 ScanStateCmd s. r. View the Security Audit Trail u. Click the Open button.Lab 17 – Security Detailed Lab Instructions Following are detailed lab instructions for completing this lab. 3. Import the SecurityTest Object 1. For a summary of instructions.aaPKG file. please refer to the Summary Lab Instructions on the previous page(s). System Platform . From the Galaxy menu. In the Import Automation Object(s) dialog box. navigate to C:\Wonderware Training and select the $SecurityTest. select Import / Object(s) to import an automation object.Part 1 6-17 . 2. Wonderware Training . 4. leave the default options and click OK to continue. later in this course. including the options in this dialog box. In the Import Preferences dialog box.6-18 Module 6 – Security Note: Importing objects will be discussed in detail. 5. Click Close in the Import completed message box. System Platform .Part 1 6-19 .Lab 17 – Security The imported object now appears in the Application toolset: 6. Select the UDAs tab. Select the Att1_FreeAccess UDA and click the Shield classification for the attribute. 9. Select the Free Access security classification from the popup menu. Double-click the $SecurityTest template to open its configuration editor. Move the $SecurityTest to the Training toolset. Configure the SecurityTest object 7. icon to select the security 10. 8. Deploy the newly created instance. Create and deploy an instance of SecurityTest 13. Leave the default name and assign the instance to the Discharge area. 15. Using the Template Toolbox and the Model view. Repeat step 6 to configure the security classifications for the following attributes: Att2_Operate: Operate Att3_SecuredWrite: Secured Write Att4_VerifiedWrite: Verified Write Att5_Tune: Tune Att6_Configure: Configure Att7_ReadOnly: Read Only 12. Wonderware Training . Click the Save and Close button and check in the object.6-20 Module 6 – Security 11. create an instance of the $SecurityTest template. 14. System Platform .Lab 17 – Security 16. Click Close when deployment is complete.Part 1 6-21 . Select Galaxy for the Authentication Mode. From the Galaxy menu. select Configure / Security to enable and configure security for the galaxy.6-22 Module 6 – Security Configure Security for the Galaxy 17. 18. Wonderware Training . System Platform .Part 1 6-23 .Lab 17 – Security 19. Select the Security Groups tab. 6-24 Module 6 – Security 20. Wonderware Training to add a new security group. Name the new security group . Click the plus icon button TestGroup. 22. Select the Default security group and locate the SecurityTest_001 instance in the objects list (right pane). Drag-and-drop the SecurityTest_001 instance to the TestGroup in the security group list (left pane). System Platform .Part 1 6-25 .Lab 17 – Security 21. Important! Make sure that you are moving the object’s instance (SecurityTest_001) and NOT the object’s template ($SecurityTest). Wonderware Training .6-26 Module 6 – Security 23. Select the TestGroup security group to confirm SecurityTest_001 appears as an object in the TestGroup security group. Lab 17 – Security 24. Select the Roles tab. 25. From the Roles available list, select the Default role and configure the permissions as follows: In the General permissions section: IDE Permissions: unchecked (this will uncheck all boxes within the node) SMC Permissions: unchecked (this will uncheck all boxes within the node) Can Write to GObject Attribute using ObjectViewer: checked In the Operational permissions section: Default: checked TestGroup: unchecked Note: The Can Write to GObject Attribute using ObjectViewer permission will allow everyone (the Default role applies to every user) to modify attribute values using Object Viewer. System Platform - Part 1 6-27 6-28 Module 6 – Security 26. Click the plus icon button to add a new role and name it Operators. 27. Double-click on the Access level field and enter 500. 28. Configure the Operational permissions for the Operators security group as follows: Can acknowledge Alarms: checked Can modify “Configure” attributes: unchecked Can modify “Operate” attributes: checked Can modify “Tune” attributes: unchecked Wonderware Training Lab 17 – Security 29. Click the plus icon button to add a new role and name it Supervisors. 30. Double-click on the Access level field and enter 1000. 31. Configure the Operational permissions for the TestGroup security group as follows: Can acknowledge Alarms: unchecked Can modify “Configure” attributes: unchecked Can modify “Operate” attributes: unchecked Can modify “Tune” attributes: checked System Platform - Part 1 6-29 6-30 Module 6 – Security 32. Click the plus icon button to add a new role and name it Engineers. 33. Double-click on the Access level field and enter 2000. 34. Configure the General permissions as follows: IDE Permissions: checked (this will check every box within the node) Framework Configuration: SMC Permissions: : unchecked checked (this will check every box within the node) 35. Configure the Operational permissions for the Engineers security group as follows: Can Acknowledge Alarms: unchecked Can Modify “Configure” Attributes: checked Can Modify “Operate” Attributes: unchecked Can modify “Tune” attributes: unchecked Wonderware Training Lab 17 – Security 36. Select the Administrator role and configure the Operational permissions for the TestGroup security group as follows: TestGroup: checked (this will check every box within the group) 37. Select the Users tab. System Platform - Part 1 6-31 6-32 Module 6 – Security 38. Click the plus icon button to add a new user and name it HOper. 39. Double-click on the Full name field and enter Homer Operator. 40. Check the checkbox in front of Operators to assign it to the Operators role. Wonderware Training Lab 17 – Security 41. With HOper selected, click on the Change Password button, enter the following information in the Change Password dialog box, and then click the OK button to continue. Old Password: [blank] New Password: ww Confirm New Password: ww 42. Click the plus icon button to add a new user and name it JSup. 43. Double-click on the Full name field and enter Joe Supervisor. 44. Assign the user to the Operators and Supervisors roles. System Platform - Part 1 6-33 6-34 Module 6 – Security Note: Notice that the user JSup will inherit permissions from both the Operators and Supervisors roles, allowing JSup to modify attributes with Operate and Tune security classifications. 45. With JSup selected, click on the Change Password button, enter the following information in the Change Password dialog box, and then click the OK button to continue. Old Password: [blank] New Password: ww Confirm New Password: ww 46. Click the plus icon button to add a new user and name it WEng. 47. Double-click on the Full name field and enter Will Engineer. 48. Assign the user to the Engineers role. Wonderware Training Lab 17 – Security System Platform - Part 1 6-35 6-36 Module 6 – Security 49. With WEng selected, click on the Change Password button, enter the following information in the Change Password dialog box, and then click the OK button to continue. Old Password: [blank] New Password: ww Confirm New Password: ww 50. In the Configure Security dialog box, click OK to accept the security configuration. 51. In the Change User dialog box, enter the following information. User name: WEng Password: ww 52. Click the OK button to log in. Test General permissions 53. From the Galaxy menu, select Configure / Security. You will be presented with the following dialog box since WEng does not have permissions to modify security configuration. 54. Click No to dismiss the dialog box. Wonderware Training Click the OK button to log in as the Administrator System Platform .Part 1 6-37 .Lab 17 – Security 55. 57. select Change User to log in as the Administrator. Enter Administrator for the User name. Note: By default the Administrator account DOES NOT have a password assigned. From the Galaxy menu. 56. Open Object Viewer by right-clicking the SecurityTest_001 instance and selecting View in Object Viewer. modifying the configuration of the object. 62. To log in to Object Viewer with a different user account. 60. If you closed Object Viewer before. 65. 61. Add the following SecurityTest_001 attributes to the watch list: z Att1_FreeAccess z Att2_Operate z Att3_SecuredWrite z Att4_VerifiedWrite z Att5_Tune z Att6_Configure z Att7_ReadOnly z ScanState z ScanStateCmd 63. 58. 59. Save the watch list. 64.6-38 Module 6 – Security Test Operational permissions Note: Notice that the SecurityTest_001 object needs to be re-deployed. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch Window to add a new tab to the watch list. Test the different security classifications and the security permissions by modifying the value of the attributes under the different user accounts created before. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to rename the watch list to Security. the object's SecurityGroup attribute was changed. Wonderware Training . you can use File / Load Watch List to open the file you saved earlier. Deploy the SecurityTest_001 object. This is because when the object was assigned to a different security group. select Change User from the Options menu. You can verify the current logged in user on the left side of the status bar. 68.Part 1 6-39 . System Platform . Start the SQL Server Management Studio by selecting Start / All Programs / Microsoft SQL Server 2005 / SQL Server Management Studio. Click the OK button.Lab 17 – Security 66. Configure the Connect to Server dialog box as follows: Server type: Database Engine Server name: localhost Authentication: Windows Authentication 70. 67. 69. View the Security Audit Trail Note: Make sure that the Alarm DB Logger Manager utility is started. Enter the user’s credentials in the Change User dialog box. Tip: You can refer to Lab 15 – Configuring Alarms to see how to run and start the Alarm DB Logger Manager utility. Click the Connect button to continue. In the Object Explorer (left pane) navigate to localhost / Databases / WWALMDB / Views to get a list of all the database’s Views in the Object Explorer Details (right pane).6-40 Module 6 – Security 71. Wonderware Training . right-click on the v_EventHistory view and select Open View to display the current list of alarms logged in the database.Lab 17 – Security 72.Part 1 6-41 . System Platform . In the Views list (right pane). 6-42 Module 6 – Security – Intentionally left blank – Wonderware Training . Module 7 Galaxy Maintenance Section 1 – Exporting and Importing Objects 7-3 Section 2 – Configuring Instances Through a .CSV File 7-13 Section 3 – System Management Console (SMC) 7-21 Section 4 – Network Account Utility 7-35 . 7-2 Module 7 – Galaxy Maintenance Module Objectives Obtain an overview and understanding of: z Exporting and Importing Objects z Configuring Instances Through a .csv File Using Galaxy Dump and Load z Using the System Management Console to manage platforms z Using the Network Account Utility Wonderware Training . their associated templates and the configuration state of those objects. The resulting file (. Exporting Automation Objects Use the ArchestrA IDE’s export function to share objects with other users or to recreate them in other Galaxies.aaPKG extension) contains the selected objects. it illustrates how to Export for future use and how to Import a galaxy created previously. If the designated file already exists. only the checked in versions are exported. This section provides an understanding of fundamental functions dealing with Galaxy Maintenance. System Platform . However the change logs for the objects are not exported while they are saved during backup. Exporting an entire Galaxy is similar to using the Galaxy Database Manager utility to back up the database. the backup process retains security model settings for objects while exporting them does not. You must ensure that the script function libraries are transferred separately. Subsequent exports retain the default folder as last used for the duration of the ArchestrA IDE session.Part 1 7-3 . Specifically. you are prompted to confirm overwrite. When exporting an object instance. Specifically. it illustrates how to Export for future use and how to Import a galaxy created previously. If any of the selected objects are currently checked out. Also. it will also include the parents of that object all the way back to and including the base template.Section 1 – Exporting and Importing Objects Section 1 – Exporting and Importing Objects Section Objective z This section discusses some fundamental functions dealing with Galaxy Maintenance. the script function is not transferred with it. The export file can later be imported into the same or another Galaxy. Note: When exporting an object that uses a script function. Wonderware Training . From the Galaxy menu. b. select Export/AutomationObject(s). Select an object in the Template Toolbox or Application Views pane. Note: You can export more than one object with this function by first multi-selecting objects (Shift+Click or Ctrl+Click).7-4 Module 7 – Galaxy Maintenance To export an object a. point to Export and then click All AutomationObjects. If you want to export all of the objects in the Galaxy. aaPKG extension) of the export file and click Save.Part 1 7-5 . browse to the path and filename (. a progress box is displayed. Click Cancel to terminate the export function. System Platform . If you click Save. The Export Automation Object(s) dialog box appears.Section 1 – Exporting and Importing Objects c. In the Export Automation Object(s) dialog box. Note: When exporting an object that uses a script function. The export file can later be imported into the same or another Galaxy.aaPKG file can be used to import the chosen objects into another existing Galaxy. the last checked in version of the object's configuration is exported. Also. Also. The key difference being that with the Export Automation Objects function only the objects that are selected are exported into a . if an object is currently checked out. the script function is not transferred with it. Note: Export maintains containment relationships that were previously specified. Exporting All Automation Objects The Exporting All Automation Objects function is much like the Exporting Automation Objects procedure. Wonderware Training . The procedure is as follows: Use the ArchestrA IDE’s export function to share objects with other users or to recreate them in other Galaxies.7-6 Module 7 – Galaxy Maintenance d. only the checked in versions are exported.aaPKG extension) contains the selected objects. If the designated file already exists. Exporting an entire Galaxy is similar to using the Galaxy Database Manager utility to back up the database. the backup process retains security model settings for objects while exporting them does not. you are prompted to confirm overwrite. The resulting . When the export process is finished. The resulting file (. You must ensure that the script function libraries are transferred separately.aaPKG file. their associated templates and the configuration state of those objects. click Close. However the change logs for the objects are not exported while they are saved during backup. If any of the selected objects are currently checked out. Subsequent exports retain the default folder as last used for the duration of the ArchestrA IDE session. With the Export All Automation Objects function all of the objects and any derived templates are also exported. Section 1 – Exporting and Importing Objects To export all automation objects a.Part 1 7-7 . System Platform . select Export/All Object(s). From the Galaxy menu. In the Export AutomationObject(s) dialog box.aaPKG extension) of the export file and click Save. Click Cancel to terminate the export function. Wonderware Training . The Export All Automation Objects dialog box appears.7-8 Module 7 – Galaxy Maintenance b. browse to the path and filename (. a progress box is displayed. If you click Save. In order to export those you would have to use the Backup process in the Galaxy Database Manager in the System Management Console (SMC) discussed in the next Section of this manual. 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 the export process is finished. Importing instances previously exported from a Galaxy retains previous associations. containment. The resulting . Importing Automation Objects Objects can be reused from another Galaxy in your Galaxy.aaPDF file contains the configuration data and implementation code for one or more base templates. and area. When you import an object.aaPDF file. Before starting. derivation.aaPKG files or from an . An . these conflicts are identified and you can manage them. such as assignment. One key factor to mention is that the security model settings for objects does NOT get exported when using the Export function. click Close.aaPKG file can be used to import the objects into another existing Galaxy. Objects can be imported from exported . System Platform . This saves time if the objects are already set up in another Galaxy.Part 1 7-9 .Section 1 – Exporting and Importing Objects c. when possible. It is created by a developer using the ArchestrA Object Toolkit. Wonderware Training . On the Galaxy menu.7-10 Module 7 – Galaxy Maintenance To import Automation objects a. select Import/Object(s). System Platform .aaPKG or a . The Import AutomationObject(s) dialog box appears. Browse for the file with either a .aaPDF extension. Click Open. You can select more than one file.Section 1 – Exporting and Importing Objects b.Part 1 7-11 . The default value is _old but you can change it to any four. The Import Preferences dialog box appears. Migrate objects with a newer codebase also overwrites existing objects if the codebases (versions) are the same. select one of the following: Skip objects with same conflict or newer codebase leaves the existing object unchanged.character string. Click OK to start the import process. The default value is _new. see the Application Server Installation Guide. Overwrite objects with name conflicts if their configuration version is higher replaces the existing object with the object being imported if the codebases are the same and the imported object has been edited more often than the existing object. In the Objects from same toolkit and vendor area.7-12 Module 7 – Galaxy Maintenance c. Rename Object in Galaxy renames the existing object by appending to its current name the string (up to four characters) you type in the Append to Object Name box. this option will migrate the state of existing objects to the newly imported version if the object supports it. When the import process is complete. In addition. For more information about migrating. Note: Object name conflict resolution only applies to templates and instances derived from different base templates. In the Objects from different toolkits and/or vendor but with same tagname area. but you can change it to any four-character string. Wonderware Training . Rename Importing Object renames the object being imported by appending to its current name the string (up to four characters) you type in the Append to Object Name box. select one of the following: Skip does not import the object when a name match exists in the Galaxy. you can start using the objects you imported. To export objects to a Galaxy dump file: a.Part 1 7-13 .csv extension). Attributes that are locked. Select an object in the Application Views pane. it illustrates how to Export for future use and how to Import a galaxy created previously. This section provides an understanding of fundamental functions dealing with Galaxy Maintenance.CSV File Section 2 – Configuring Instances Through a . Also. it illustrates how to Export a galaxy for future use and how to Import a galaxy created previously.CSV File Section Objective z This section discusses some fundamental functions dealing with Galaxy Maintenance. The file contains only those attributes that are unlocked and configuration time-writeable. Object Help files are not dumped. you can dump all instances derived from a template by selecting just the template. calculated or runtime writeable only are not saved to the file. one column per attribute. Specifically.Section 2 – Configuring Instances Through a . Galaxy Dump Object instances and their configuration data can be exported to a comma-delimited format Galaxy dump file (. Templates cannot be dumped. type QualifiedStruct) are not dumped. You can export more than one instance with this function by first multi-selecting objects (Shift+Click). The . The Galaxy Dump function only dumps instances. Specifically. System Platform . Attributes that are not text based (for example.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. c.csv file to which you want to dump the selected instances. Wonderware Training . The Galaxy Dump dialog box is displayed. Browse to the name and location of the . Click Save to continue or Cancel to end the export function. The Galaxy Dump progress box is displayed. Select Export on the Galaxy menu and then click Galaxy Dump.7-14 Module 7 – Galaxy Maintenance b. csv file has been created containing the selected objects and configuration data. System Platform . After the Galaxy dump process is finished. A .Section 2 – Configuring Instances Through a . click Close. The actual .CSV File d.csv file has been created.Part 1 7-15 . 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. This character set is not converted to a carriage return in a Galaxy Load function. Wonderware Training . do not delete the “\n” characters. Comments can be added in the resulting .csv) Structure Dumped objects are organized in the resulting . Note: Carriage returns in scripts associated with dumped objects are replaced with “\n” in the . use “\\n” if you want to include the character “\” followed by the character “n” in a script.csv file.7-16 Module 7 – Galaxy Maintenance Galaxy Dump File (. If you edit the dump file.csv file based on the template from which each is derived.csv file by adding a line preceded by a semi-colon. If you edit scripts in the dump file. When editing a script in a dump file. A header row per template indicates the instance’s columns’ reference. Part 1 7-17 . Templates cannot be dumped and loaded.csv file a. Note: The contents of the .Section 2 – Configuring Instances Through a . The Galaxy Load dialog box is displayed.CSV File Galaxy Load Object instances and their configuration data in an existing Galaxy can be exported to a commadelimited format Galaxy dump file (. the templates from which those objects were derived must already exist in the Galaxy. Important: The Dump contains only Object Instances.csv file can be edited in most text editors and spreadsheet programs. A load file contains only instances. you can create quantities of already-configured objects ready to be imported into your Galaxy. Select Import on the Galaxy menu and then click Galaxy Load. System Platform . A . For the Load to succeed.csv extension). To import a . Using editing functions like copy and paste.csv file is determined by the original Galaxy dump. Wonderware Training .7-18 Module 7 – Galaxy Maintenance b. browse to locate the .csv file that contains the objects and configuration data you want to import. Select the file and click Open to continue or Cancel to end the import function. In the Galaxy Load dialog box. Part 1 7-19 . A progress box is displayed during the Galaxy load process. All objects that were changed or created during the Galaxy Load process are checked out to the logged in user. Choose the preferred conflict resolution and click OK. Use it to resolve conflicts that occur if objects you want to load already exist in the Galaxy. z Skip if an instance with the same name already exists and you want to keep the version already in the Galaxy. z 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. A Galaxy Load dialog box appears indicating that the Load was successful. System Platform . The options are: z Replace entire instance if an instance of an object with the same name already exists and you want to replace it entirely with the object in the import file.CSV File The Galaxy Load Conflict Resolution dialog box is displayed. To avoid this scenario.csv file in Notepad to ensure the comment line does not contain quote marks. c.csv file created in Microsoft® Excel may create an unintended default-value object. Click Cancel to terminate the Galaxy load process. Note: A comment line in a . z Stop Galaxy Load if an instance with the same name already exists and you want to cancel the Galaxy Load.Section 2 – Configuring Instances Through a . open the . 7-20 Module 7 – Galaxy Maintenance – Intentionally left blank – Wonderware Training . Actions include setting Platforms and Engines in an executable or idle mode and starting and stopping Platforms and Engines. 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. equivalent to "Safe mode" z Uses the local platform as the gateway to the ArchestrA application z Does not rely on the Galaxy Repository to exist z Allows viewing of the layout of the Galaxy Repository. Actions include setting platforms and engines in an executable or idle mode and starting and stopping platforms and engines. which allows viewing and modifying of attributes of AutomationObjects. and Engines z Provides the ability to set Platforms and Engines OnScan or OffScan z Provides the ability to start and stop Platforms and Engines System Platform . Because the Platform Manager is a Microsoft Management Console (MMC) Snap-in. Platforms. Another tool available for performing diagnostics on applications is the Visual Local Message Exchange (VLMX) Test Tool. its interface is integrated into the MMC environment and it appears as a single interface. This tool is one in a series of administrative tools that can be used for diagnostic purposes on ArchestrA applications. The System Management Console is used to assist system integrators and system administrators in performing administrative tasks and diagnostics on an ArchestrA application. Features of the System Management Console Some of the key features of the Platform Manager are that it: z Runs with minimal ArchestrA and operating system requirements. About System Management Console The System Management Console (SMC) provides ArchestrA Application Server application diagnostics by allowing you to view the run-time status of some system objects and to perform actions upon those objects.Section 3 – System Management Console (SMC) Section 3 – System Management Console (SMC) Section Objectives z Effectively utilize the System Management Console z Configure the System Management Console This section provides an understanding of role of the System Management Console and how it can be configured.Part 1 7-21 . Wonderware Training . The Platform Manager appears under the ArchestrA System Management Console (SMC) root node. Select All Programs/Wonderware/System Management Console.7-22 Module 7 – Galaxy Maintenance To Start the System Management Console Start Windows and click Start. as well as the nodes they reside on.Section 3 – System Management Console (SMC) If the Galaxy has security enabled. and so on. The console tree shows the items that are available in the console. menu options. the console tree can be expanded or collapsed by clicking on the "+" or the "-" symbols that appear next to the snap-in. there is no security enabled for Platform Manager or any of the other snap-ins. including Platform Manager. with the ArchestrA System Management Console appearing as the root node and the SMC snap-ins appearing below this node. detail panel. Console Tree The console tree has a Windows Explorer-type hierarchical structure layout. Galaxy Database Manager Selecting the Galaxy Database Manager on the SMC Menu allows you to view all the galaxies in the Galaxy Repository. By default. The contents of these items will change as you select different items in the console tree.Part 1 7-23 . Security For all ArchestrA administrative utilities. the Platform Manager Login dialog box appears when the user attempts to access the Platform Manager from the System Management Console (SMC). The snap-ins that appear below the ArchestrA SMC node will depend upon the software installed: z Galaxy Database Manager (GR Node only) z DAServer Manager (DAServer or WinPlatform deployed) z Log Viewer (all Wonderware nodes) z Platform Manager (all Application Server nodes) z Other snap-ins (for example IndustrialSQL Server) will be available when other Wonderware software is installed Each snap-in has its own toolbar. security is configured through the ArchestrA IDE. Like Windows Explorer. You must have Administrative privileges to use the Galaxy Database Manager. System Platform . c.cab file to be created. and click Save. and select Action / Backup.cab) file Wonderware Training . You can choose a backup file to overwrite an existing. you can restore the Galaxy.7-24 Module 7 – Galaxy Maintenance Galaxy Backup / Restore Be sure to back up your Galaxies so that if a Galaxy becomes corrupted. no other applications may write to the GR node. Click Close when the backup is complete. Name the . Select the Galaxy to backup. corrupted Galaxy or to reproduce a Galaxy in another Galaxy Repository. Backup When running a Galaxy backup. b. Create a new galaxy with a galaxy backup (. Be sure to perform the backup operation when no database-write operations will occur. The Galaxy Database Manager is automatically installed on every Galaxy Repository node. a. Click Yes to continue restoring and No to terminate the restore function. Restore When you restore a database from backup.Part 1 7-25 . On the Action menu.cab file created when a Galaxy backup is performed. any information saved to the database since the backup was performed is overwritten with the restored information. Also. System Platform .Section 3 – System Management Console (SMC) You may also create a new galaxy using the . create a new galaxy and select your backup Galaxy in the Galaxy type field. a. b. click Restore. All changes to the database since the backup are lost. any transactions in progress when the backup was performed are rolled back.cab file to: C:\Program Files\ArchestrA\Framework\Bin\BackupGalaxies In the New Galaxy window. You must first copy the backup . cab extension) of the backup file you want to use and click Restore. Both the MMC Help and the DAServer Manager Help are displayed. Select the name(. and can monitor and perform diagnostics on DAServer communication with PLCs and other devices. The MMC is a host or container utility for the Log Viewer with its own generic functions. The Log Viewer is a Microsoft Management Console (MMC) snap-in that provides a user interface for viewing messages reported to the Logger. The Log Viewer can: z Monitor messages on any machine in the system z Send a portion of the log to notepad or E-mail z Filter messages on a flag When running an ArchestrA application. For example. A confirmation dialog box displays when the restore function is finished. Many high-level functions and user-interface elements of the DAServer Manager are universal to all DAServers. click the Help topics on the SMC Help menu. Wonderware Training . You are required to quit those client programs before restore can continue. DAServer Manager The DAServer Manager allows local or remote configuration of the DA Server and its device groups and items. To read the documentation about the MMC and DAServer Manager. If you have an active client connected to the Galaxy Repository. the DAServer Manager is a Microsoft Management Console (MMC) snap-in. and DAServer information. Log Viewer The ArchestrA Logger is a utility that records information regarding the activity occurring on the computer. it is critical to read the documentation for both the MMC and the DAServer Manager. a message appears. error conditions. Like the LogViewer and Platform Manager. it records start-up data. the Logger runs as a system service. always check logged messages by using the Log Viewer prior to calling Technical Support. Note: If a problem occurs while running an ArchestrA application. to understand the DAServer Manager.7-26 Module 7 – Galaxy Maintenance c. purged. then that command is grayed out.Part 1 7-27 . The available commands are dependent on the current state of the object and your security permissions.Section 3 – System Management Console (SMC) The following commands are available from the Platform Manager Action menu when you select a platform or engine in either the console tree or the details pane. System Platform . Command Description Configure Allows configuration of the Log Viewer and Storage Log Flags Opens the Log Flag editor Open Log File Allows the opening of a Log File Connect Allows either local or remote connections configuration Messages Allows Messages to be exported. If you do not have permission to perform a particular command. or printed Refresh Refreshed the database Help Access to the System Management Console Help files These commands are also available by right-clicking an item in either the console tree or the details pane. Open Log File Use this dialog box to locate and open a log file of saved messages.7-28 Module 7 – Galaxy Maintenance The following commands are available from the Platform Manager Action menu when you select Log Viewer in either the console tree or the details pane. or shuts down. Help Access to the System Management Console Help files Wonderware Training . Export List You can export the currently shown log messages to a log file. The default file name is LogExport with the current date in the format (mmddyyyy) appended as a suffix. For more information about system messages. Connect Allows the opening of a Log File About Log Viewer Displays copyright and version information New Create a new log file. see System Messages. You can edit the name of a log file but not its extension. Refresh Update the contents of the Log File window.aaLGX extension. runs. Command Description Monitor System messages provide information about the state of the IndustrialSQL Server historian as it starts up. Log files have an . Component. The logging process can be customized with the LogFlag Editor Snap-In utility.Part 1 7-29 . Thread ID. the logging process is always started when an ArchestrA component begins functioning.This is the background process that stores messages and events in the system. Time Range.Section 3 – System Management Console (SMC) The following commands are available from the Platform Manager View menu when you select a platform or engine in either the console tree or the details pane. The Logger is installed as a system service. Command Description Filter Allows filtering of Messages. This process occurs without any prompting from or interaction necessary from the user. As a Manual Service utility. In either case.This utility is used to view error and informational messages that are sent by ArchestrA components. z Logger . System Platform . or Message Go To Allows redirection to a Bookmarked location Bookmarks Allows Adding or removing of a Bookmark Mark Allows the entry of a Marker Message to the log Choose Columns Select specific columns to show or hide Customize Change the appearance of the view The Logger and Log Viewer are automatically installed when an ArchestrA component is installed. z Log Viewer . or Terminal Sessions Find Search capability on Process ID. The look-and-feel and the format of the user interface can be customized to suit individual needs. the Logger requires a manual start through the System Services utility in Windows’ Control Panel. and can be configured to be an Auto Service or Manual Service. As an Auto Service utility. the Logger is started when the PC is booted up. Log Flag. Gather as much information first about the process that is malfunctioning. These indicate major events in the system. use the information you collected about the failed process to search for clues in the logged messages. the ArchestrA IDE or other ArchestrA component. and then clicking System Management Console. select Log Viewer and then the node the ArchestrA IDE is located on. b. or use the Filter command on the View menu to reduce the number of displayed messages based on message. Warning messages are displayed in yellow stripes. Open the Log Viewer by clicking Start. Look for red and yellow messages. 6 LogFlag Editor LogFlag Viewer 5 3 4 Wonderware Training 2 1 . Note the function you attempted and the message you received. pointing to Programs and then to Wonderware. you might check logged messages to determine whether all processes are functioning well. Note: The Log Viewer displays error messages in red-highlighted stripes. you attempted to deploy an object in the ArchestrA IDE and a message was displayed stating the deployment was not completed. Also. you would use the Log Viewer to work through problems you encounter with a DAServer.7-30 Module 7 – Galaxy Maintenance Typical Log Viewer Usage The Log Viewer is primarily a troubleshooting tool. They are then available for viewing by the LogFlag Viewer. After initially installing an ArchestrA-enabled program and on occasion. A good strategy for troubleshooting problems a. The LogFlag Editor provides the capability to edit the LogFlags. time range or terminal session criteria. The journey of a Log Message originates with the Application where Log Flags are generated. This is illustrated in the following diagram. For instance. c. These indicate malfunctioning processes and should be resolved quickly. In the SMC. But typically. Use the Find command on the View menu to single out messages by message text or other category of data. These are passed to the Logger where they are then stored in the Log Message Storage. To add a regular bookmark to a message a. Change the bookmark name to something more descriptive. Right-click the message and click Fast Bookmark on the Bookmark submenu. To show the Bookmark column. Click and drag it to another position if you want. Use the Previous and Next buttons to go to the nearest bookmarked message above and below. When you are done searching. right-click on the column header of the message window and click Show. c. click Go To. in the Bookmarks dialog box at a later time.Section 3 – System Management Console (SMC) Using Bookmarks Bookmarks are unique labels you can apply to individual messages for quick access. e. System Platform . A default naming sequence is applied to the message (Bookmarkx where x is a number in an ascending sequence). 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. point to it to display the entire bookmark like a tool tip. On the View menu. c. You cannot enter duplicate bookmark names for more than one message. 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. click Bookmarks in the Columns Hidden box. and a message can have only one bookmark. Right-click the message and click Add Bookmark on the Bookmark submenu. d. b. See "To manage bookmarks" below. In the Add Bookmark dialog box. In the Go To dialog box. The Bookmark column is added at the far right of the column header. Click Go To. enter the name of the message’s bookmark by typing it in the box or selecting from the list. b. click Close. The message window can display a Bookmark column. Click OK to set the bookmark or Cancel to terminate the process. either accept the default name (Bookmarkx where x is a number in an ascending sequence) or overwrite it with something more descriptive. click the Show button to move it to the Columns Shown box and click OK. See "To manage bookmarks" below. Note: You cannot go to bookmarked messages that are currently hidden by a filter. respectively. You can change the bookmark name in the Bookmarks dialog box at a later time. If you cannot find the desired message. you can set a fast bookmark by selecting the message and clicking the Fast Bookmark icon on the toolbar. The Go To dialog box remains open. To go to a bookmarked message a. To set a fast bookmark on a message a. When the text of a bookmark in the Bookmark column is partially obscured. if necessary. which is initially hidden by default. b. Alternatively. In the Choose Columns dialog box.Part 1 7-31 . disable filtering and try again. select it. you do not need to install it onto each node. On the View menu. To go to a bookmarked message. so you cannot bookmark two messages with the same name. select a message and click Remove. g. Wonderware Training . Rename it by pressing F2. column in the message window). you can use the Action menu to start or stop the object. (the same number as the No. you can manage current bookmarks and create new ones. therefore. Start/Stop engines and platforms. c. click Bookmarks. After highlighting a Galaxy or an Engine. To add a new bookmark. The bookmark list shows the current set of bookmark names and associated Message No. This ensures that all nodes used within a galaxy have access to Platform Manager. e. To remove one or all bookmarks from your logged messages. When you are done. or set it OnScan/OffScan. This function is comparable to a fast bookmark. you can access the platforms and engines deployed to the local PC node and to any other PC node in the Galaxy. you must log on as a user configured with the proper SMC permissions to start SMC. or write from the Object Viewer. Note: Bookmarks are not saved when you quit the Log Viewer application. If the galaxy has security implemented. Platform Manager Platform Manager is a common component of an Application Server application and it is available from any PC node in the application that has a deployed platform. In the Bookmarks dialog box. Note that each bookmark must have a unique name. b. f. When you use Platform Manager. For instance. to rename a bookmark. The bookmark list provides several functions. select the message you want to bookmark in the message window and click Add. press F2 and type the new name. d. Platform Manager does not require the GalaxyRepository to be installed on the PC node. use the Mark command on the View menu. double-click on it in the list or select it and click Go To.7-32 Module 7 – Galaxy Maintenance To manage bookmarks a. or click Remove All. click Close. To mark your message log more permanently. The available commands are dependant on the current state of the object and your security permissions. System Platform . If you do not have permission to perform a particular command.Section 3 – System Management Console (SMC) Console Menu Commands The following commands are available from the Platform Manager Action menu when you select a Platform in either the console tree or the details pane. The following commands are available from the Platform Manager Action menu when you select an Engine in either the console tree or the details pane. then that command is grayed out. These commands are also available by right-clicking an item in either the console tree or the details pane.Part 1 7-33 . 7-34 Module 7 – Galaxy Maintenance – Intentionally left blank – Wonderware Training . you could adversely affect communications between the computer and others with installed ArchestrA components (including existing Wonderware products that are ArchestrA enabled). After discussing this section you will be able to: z Understand the role of the Change Network Account Utility. If you do. It is not associated with ArchestrA security. Use the Change Network Account utility to change this data. z Have an understanding of how it can be configured. If you delete the ArchestrA user account on an ArchestrA IDE node. They automatically use the account set up during the installation of the initial component. This communication is enabled through an ArchestrA-specific user account set up during the initial installation of an ArchestrA component on each computer. you are prompted either to create a new user account or to use an already existing account. and. if necessary. and provide a user name and password for that account. System Platform . which provides user authentication for individual access points to the infrastructure. This section discusses the role of changing the network account and how to use the Change Network Account and how to configure it. The user account described in this document only enables node-to-node communications between ArchestrA components. Note: You must have Administrator privileges on the computer to make changes with the Change Network Account utility.Part 1 7-35 . During the initial installation of an ArchestrA component. and password. Change Network Account Utility The Change Network Account utility is a tool you can use to manage credentials for node-tonode communications between ArchestrA components. on any computer after installation of an ArchestrA component. Subsequent installations of ArchestrA components do not prompt for user account information. All ArchestrA nodes that require communication with others must use the same account. you must recreate it with the Change Network Account utility. Do not delete this account with operating system account management tools. Use this utility only to standardize user account data on all computers requiring communication. WARNING! If you change user account data with this utility. user name.Section 4 – Network Account Utility Section 4 – Network Account Utility Section Objectives This section discusses the role of changing the network account and how to use the Change Network Account Utility to accomplish that task. Node-to-Node Communications All computers that have installed ArchestrA-enabled software must be able to communicate with each other. The same account must be used on each computer that requires communication with others in the ArchestrA environment. the ArchestrA IDE will stop functioning properly. Start the Change Network Account utility by selecting Start/All Programs/Wonderware/ Common/Change Network Account. The Change Network Account dialog box appears. Wonderware Training .7-36 Module 7 – Galaxy Maintenance To recreate an ArchestrA user account a. b. c. The password options are shown blank for security reasons. WARNING! After you change any data shown in the Change Network Account dialog box. The Change Network Account utility allows you to change the current data shown in the dialog box. z Using an existing local machine or network domain account. your ArchestrA IDE may not function properly. the old account is maintained (not deleted).Part 1 7-37 . Note: After you recreate the user account in the Change Network Account dialog box. including: z Changing the password of the current account. ensure that all other computers that have installed ArchestrA-enabled software use the same type of user account with the same user name and password. the Microsoft Windows security component on your computer may take several minutes to update this information on the ArchestrA Galaxy node. Rebooting the Galaxy node causes this update to occur immediately. When you use the Change Network Account utility to create or use an account that is different from the one originally set up during installation. z Creating a new local user account. recreate the same user account with the same user name and password that was created on all other computers that have installed ArchestrA-enabled software. Until that occurs. In a single-node ArchestrA system. d. In a multi-node ArchestrA system. Once you have configured the account. click OK. System Platform . create any account.Section 4 – Network Account Utility The data shown in this dialog box are those settings entered during the initial installation of an ArchestrA component on the computer. Password cannot be empty. The Password was not correctly confirmed. ask your network administrator. check with your network administrator about the existence of the account. If you click Cancel. Do you want to use this account? You chose to use a local machine or network domain user account whose password policy allows the password to be changed or to expire. retype the domain name. Please enter a valid domain name. You must have Administrator privileges on the computer to run this utility. correct the password. Error Message Action Required Administrative privileges are required to run this utility. . Click OK. type a new user name in the Change Network Account utility. You chose to use a network domain user account. You mistyped either the password or confirmation password in the dialog box. You chose to use a local machine or network domain account that does not exist. login as a user with Administrator rights. Please enter a valid password You must type a password in the Change Network Account utility. but the password you typed does not match the account's password. the password for the account is changed. Please enter the correct password. Please enter another user name. This account already exists. retype both password and confirmation password text. and click OK. Click OK. Click OK. Click OK. If this message is displayed again. and then click OK again. Please enter another user name. Invalid Password for user account 'a'. Wonderware Training Caution! It is recommend that you do not use a domain account whose password expires periodically or can be changed. You then must use the Change Network Account utility on each computer to update the account data to re-establish communications. Click OK.7-38 Module 7 – Galaxy Maintenance Error Messages When using the Change Network Account utility. You typed an invalid network domain name in the Domain/Local Machine Name box. and start the Change Network Account utility again. but after the expiration date or the password is changed. Using such an account is allowed. Then. You chose to create a local account by selecting Create Local Account in the Change Network Account utility. you may encounter the following error messages. You must enter an existing local machine or network domain account. but the password you typed does not match the account's password. confirm the password. you can choose to use or create another user account. allowing you to correct the password or type another user name and password. Domain/Local Machine name cannot be empty. and then click OK again. and click OK. The password policy for this account allows the password to expire and to be changed. and then click OK. and click OK. the Change Network Account utility is displayed. User account 'a' does not exist. If you click OK. node-to-node communications end. Click OK. type the same password in the Confirm Password box. Click OK. Do you want to update user account 'a' to use this new password? You chose to use a local machine user account. These two passwords must match to ensure the accuracy of user account data. Please ensure that the Password and Confirmation match exactly. and click OK. Click OK if you want to change the password for this user account or Cancel to revert to the original settings. either type a valid network domain name or select the local machine name from the list. Ensure the user account you entered in the Domain/Local Machine Name box is valid and the user name and password you typed are valid for that user account. Click OK if you want to use this account or Cancel to return to the Change Network Account utility. If you don’t know the valid network domain name. type a password in the dialog box. User account 'a' already exists. Click OK. However the password must not expire or should not be changed for the ArchestrA products to function properly. Invalid Domain name 'dom'. Multiple NIC Computers Any node in your Galaxy that contains more than one network card must be configured according to the following instructions to ensure communications with other ArchestrA nodes. If a computer contains more than two network cards (for instance. you should disable all cards except the supervisory network. Please close all your open applications and press "OK" when you are done. use the up and down arrows to define the correct order of Connections and click OK. type a user name in the dialog box. and then click OK again. Click OK. Close open applications. For any multiple NIC ArchestrA node to communicate successfully with all other Galaxy nodes. Different operating systems provide unique access to the Network Connections dialog box. Click OK. You used one or more invalid characters in the User Name box. a supervisory connection. User name cannot contain these characters: " / \\ [ ] : . You must order the network cards properly. “Supervisory Net” and “PLC net”).Part 1 7-39 .Section 4 – Network Account Utility Error Message Action Required The system will now reboot. and click OK. | . System Platform . In the Network Connections dialog box (see image below) you may choose to rename each card with a clearly identifiable function (for instance. You changed account information in the Change Network Account utility. Note: If a multiple NIC computer in your Galaxy uses only one NIC. You must type a user name in the Change Network Account utility. + * ? < > Please enter a valid user name. the supervisory net must be listed first and the others can be listed in any other position. click Advanced Settings on the Advanced menu. A user name cannot consist solely of periods [. The computer must be restarted to implement those changes. you must define the correct order of network connections in the network services of the computer.] or spaces. In the Network Connections dialog box. In the Advanced Settings dialog box (see image below). The first connection in the list must be the supervisory network card. a PLC connection. and an RMC connection for ArchestrA redundancy). type a valid user name and click OK. 7-40 Module 7 – Galaxy Maintenance Several other parameters must be configured to ensure successful node-to-node communications in the ArchestrA environment. You must configure the IP address and DNS settings according to your network setup. Wonderware Training . Module 8 Device Integration Products Section 1 – Wonderware I/O Servers 8-3 Section 2 – Wonderware Data Access Servers 8-9 Section 3 – Device Integration Objects 8-13 . z FactorySuite Gateway and how it can enhance the connectivity of your application.8-2 Module 8 – Device Integration Products Module Objectives Obtain an overview and understanding of: z DAServers and DI Objects and how they relate to the connectivity of your application to external data. Wonderware Training . Introduction Wonderware I/O Servers are Microsoft Windows application programs that enable other DDEaware Windows applications (such as InTouch or Excel) access to data in the real world (such as PLCs or RTUs). Configuring I/O Servers Once the I/O Server has been installed. they will all have the same basic appearance and capabilities. some configuration is required. The MODBUS dialog box appears: b. Click Configure / Com Port Settings. they can be used by any Microsoft Windows program capable of acting as a DDE client.Part 1 8-3 . Your instructor will provide the proper configuration information. additional hardware (network. This file stores the configuration information about communication ports and all of the topic definitions (described in detail later). Because Wonderware's I/O servers are Windows applications. configuration and use of a Wonderware I/O Server. Select Start / All Programs / Wonderware / IOServers / Modicon MODBUS. In this section. Keep in mind that depending on server requirements. and so on) may be necessary and the configuration screens may require additional information.Section 1 – Wonderware I/O Servers Section 1 – Wonderware I/O Servers Section Objective z Configure a Wonderware I/O Server (Modbus) This section will describe the configuration of a Wonderware I/O Server (Modbus). Configuring the server automatically creates a configuration file named MODBUSDV. however. Note: All I/O Server setup which follows is specific to the Wonderware facility training environment. The following information references the Modbus I/O Server as a point-to-point server using the RS-232 serial port to PLCs provided at the Wonderware facility training environment. Your instructor may have you configure the following screens differently.CFG. System Platform . Wonderware servers are primarily intended for use with Wonderware's InTouch program. The configuration file is automatically saved to the directory in which the I/O Server is installed unless a different directory is specified via the Configure / I/O Server Settings command. It accesses one Koyo DirectLogic O5 PLC via its programming port. we will examine the start-up. a. Baud Rate area: Select the baud rate (serial bit rate) setting that matches the equipment connected to this communication port. Note: This timeout is sustained only when the PLC fails to respond. If the baud rate is greater than 300. Data Bits area: Select the option for the number of data bits that corresponds to the configuration of the equipment on this communication port. When the PLC is responding normally. Reply Timeout: Enter the amount of time (in seconds) that all PLCs connected via this serial communications port will be given to reply to commands from the I/O Server. Stop Bits. use 7. use 8. Parity area: Select the setting that corresponds to the configuration of the equipment on this communication port. Com Port: Select the communication port that is connected to the PLC equipment. Note: All devices on a single communication port must be configured with the same Protocol. RTU is recommended. The default value of 3 seconds should be sufficient for most configurations. the stop bits should be set to 1. This dialog is used to configure the communication port that will be used to communicate with the PLC equipment. Data Bits and Baud Rate. Stop Bits area: Select the appropriate number of stop bits for the communication port.8-4 Module 8 – Device Integration Products The Communication Port Settings dialog box appears. Wonderware Training . Protocol area: Select the protocol configured for the equipment attached to this communication port. there is no penalty. If RTU is selected. If ASCII is selected for the protocol. Parity. the following settings must be configured as shown. Save your changes in the suggested directory and click Done to exit. System Platform . The Communication Port Settings dialog box remains displayed and another communication port can be configured. c.Section 1 – Wonderware I/O Servers For this training class.Part 1 8-5 . Note: Click Save to save the current settings entered for the selected communication port. Each topic definition must contain a unique name for the PLC associated with it. their names will be listed in the Topics pane of this dialog box. ComPort: Select the communications port to be associated with this topic. d. Topic Name: Enter a unique name (up to 32-characters long) for the PLC in the field. The Topic Definition dialog box appears: Note: Once topics have been defined. or delete topic definitions. Wonderware Training .8-6 Module 8 – Device Integration Products Creating Topic Definitions The Configure / Topic Definition command is used to create. b. a. Click New to add a new topic definition. Click Configure / Topic Definition. One or more topic definitions must exist for each PLC that the I/O Server will communicate with. this exact name is used as the topic name in the Access Name definition. Note: When communicating with InTouch. modify. This unique name is then used as the topic name portion of the DDE Address for all DDE conversations to that PLC. The MODBUS Topic Definition dialog box appears: c. Part 1 8-7 . Configuration steps for this class are provided in the following lab. Slave Device Type: Drop-down list contains slave device types other than the default. Note: The previous information is provided for example only. the valid coil read values can be between 8 and 2000 and must be an even multiple of 8. Block I/O Sizes: Coil Read: Enter the maximum number of consecutive coils to be read at one time. h. j. In this example. The Topic Definition dialog box will open with the new topic listed: o. the valid register read values can be between 1 and 125. the valid register write values can be between 1 and 100. g. q. Update Interval: Enter the frequency (in milliseconds) that the I/O Server will read (poll) the items/points associated with this topic. Register Write: Enter the maximum number of consecutive registers that can be written to at one time. i. the valid coil write values can be between 8 and 800 and must be an even multiple of 8. Click OK to accept the entries and close the dialog box. In this example. m. l.Section 1 – Wonderware I/O Servers e. Register Read: Enter the maximum number of consecutive registers to be read at one time. Click the Done button to close this dialog box and return to the server's program window. System Platform . k. Register Type: Select BINARY or BCD. String Variable Style: The PLC will use this style to store ASCII strings in its registers. n. based on hardware used. f. Different items/points can be polled at different rates by defining multiple topic names for the same PLC and setting different update rates for each topic. Coil Write: Enter the maximum number of consecutive coils that can be written to at one time. In this example. p. Click Modify to change an existing topic definition. In this example. Slave ID: Enter the Slave ID of the PLC in the box. Click Delete to delete an existing topic definition. 8-8 Module 8 – Device Integration Products – Intentionally left blank – Wonderware Training . The DAS Engine is a middleware component that exposes two sets of unique interfaces. propagating clients' requests to the protocol. Typical Plug-ins use DDE. SuiteLink or OPC protocol. and extensive protocol diagnostic troubleshooting. used by all DAServers. A protocol can be disabled when customizing the installation for your DAServer.Part 1 8-9 . Plug-ins provide protocol translation functionality for device integration clients.0 z Stand-alone operation mode z Support for hot configuration. distributing data to clients. It encapsulates common tasks for the DAServer. Its end-user benefits include simple remote server activation.and server-specific parameter modifications A wide range of DAServers support connectivity to numerous protocols and products. and serve as interfaces between their clients and the DAS Engine. The Wonderware DAServers also come with an exclusive new user interface called the DAServer Manager. and providing diagnostics. Introduction Wonderware Data Access (DA) Server is designed to provide simultaneous connectivity between client applications based on Wonderware SuiteLink. OPC and DDE protocols that run on the Microsoft Windows operating system and the data devices supported by the specific protocol being translated. z DAS Engine: common component used by all DAServers. configuration and operation. which is installed as a Microsoft Management Console snap-in. A few of the current DAServers Wonderware includes support for are: z Allen-Bradley CIP protocol for ControlLogix z Allen-Bradley TCP protocol z Allen-Bradley DH Plus protocol z Siemens Simatic Net S7 z Modbus Serial protocol Component Architecture A DAServer is comprised of three physical parts: z Plug-in Component(s): responsible for communicating with clients. This section provides familiarization with Wonderware Data Access Server and its use with Application Server. like handling the item database. Several standard features are available with each DAServer. device additions and device.Section 2 – Wonderware Data Access Servers Section 2 – Wonderware Data Access Servers Section Objective z Become familiar with Wonderware Data Access Server and its use with Wonderware Application Server. one for communicating with Plug-ins and one for communicating with Device Protocol Layer components. System Platform . including: z Compliance with OPC version 3. EXE and/or . For instance. ArchestrA provides the Plug-in and DAS Engine modules.DLL modules. This utility allows browsing and editing of servers on different nodes. and then re-check System Items and Apply. a new DAS Engine (feature enhancement or bug fix) would not require re-linking to the other components nor re-QA of those other components. DAServer Characteristics Configuration The DAServer Manager is capable of displaying specific configuration pages for all servers. IE and XML Notepad) can read this format. In other words. Runtime The DAS Engine is loaded by the DAServer as an in-process COM object. and all three sets of modules are required for a fully functioning DAServer. Any XML-enabled program (for example. The configuration data format for DAServers is XML. In other words. The Device Protocol Layer provides translation between the hardware. Recall that DAServers are hot-configurable. Certain restrictions imposed by the underlying network/protocol/ hardware might apply. they are configurable while the server is running or even acquiring data.8-10 Module 8 – Device Integration Products z Device Protocol Layer: Server specific.specific protocol such as ModBus and CIP and the DAS Engine interface: Each physical part of a DAServer is comprised of a set of . responsible for communicating with hardware and specific to the DAServer. It is deployed to the system and attaches to all existing server components. System Items data is valid only to newly connected clients. You must create the Device Protocol Layer (server specific) modules with the DAServer Toolkit. It is not statically linked. if you uncheck System Items on the global parameters configuration dialog of the DAServer Manager and select Apply. Wonderware Training . The extent to which a specific DAServer is hot configurable varies from server to server. z Add device group. and these can be ignored by the serverspecific code. z Update parameters of device group. You can choose from a variety of hot configuration responses. Server-specific code may elect to react to the change. a user will run the DAServer Manager and configure each hierarchy. Here is a complete list of notifications to the server about changes in the configuration: z Add configuration hierarchy. it is feasible to implement new functionality (like Store-and-Forward) in a Plug-in to enhance the server without involvement of the code of the other components.Part 1 8-11 . In fact. The DAServer handles most of the hot configuration work. Newly deployed Plug-ins do not require re-linking nor re-QA of associated components. z Rename configuration hierarchy. System Platform . z Delete device group. from not being hot configurable at all to being configurable of each individual parameter while the server is running. z Clear the current configuration set. z Update parameters of configuration hierarchy. z Switch to a new configuration set. Even new Plug-ins would not require any development effort for the other components. Any changes she makes that add/delete/update a hierarchy are sent immediately to the running DAServer. Diagnostics The DAServer Manager diagnostic tool displays generic diagnostic objects common to all servers as well as server-specific/server developer defined diagnostic data. Hot Configuration One of the big advantages provided by the DAServer is the ability to make your DAServer configurable while the server is running . In general.hot configuration. z Delete configuration hierarchy. z Rename device group. Some parameters cannot be changed while the DAServer is running due to protocol-specific issues. especially for OEM customers with their own release schedule.Section 2 – Wonderware Data Access Servers This is an important added value for the customer to be independent of ArchestrA release cycles. One of the functions of the FS Gateway is to translate between ArchestrA MX protocol and other protocols. and other thirdparty applications were unable to receive data from Wonderware products without using InTouch tags. FS Gateway can replace OPCLink. and operating systems. To register. Wonderware Training .8-12 Module 8 – Device Integration Products Integration to Third Party Applications FactorySuite Gateway (FS Gateway) is a universal translator. Gateway can translate older DDE to the newer SuiteLink protocol. which translates OPC to DDE or SuiteLink. previously could not be accessed by third-party clients except through InTouch. Using FS Gateway as a protocol translator allows direct connection to a Wonderware Application Server. enabling legacy products to connect to newer systems. OPC. Note: There is an Online Seminar available for the FactorySuite Gateway.com. capable of translating all major protocols (MX. SuiteLink) to any protocol required by a network component. Visual Basic.com/training or call 1-866-WW-TRAIN (1-866-998-7246) or email Wonderware Training at training@wonderware. controllers. DDE. a Wonderware Application Server. visit www.wonderware. Excel. FS Gateway is also useful for legacy servers. which uses MX. For instance. Part 1 8-13 . Each level of this hierarchy can be monitored for its individual status. DA. OPC servers. or Automation Object Server node in the Galaxy. DI Objects allow connectivity to data sources such as DDE servers. z DI Device Object. Device Integration Objects consist of two parts: z DI Network Object. There are also several DI objects available that are for specific DA Servers.). deploy. which represents the physical devices that make up a network. When the objects are deployed. they represent the network hierarchy. This section provides familiarization with DI Objects and their use with Wonderware Application Server. In Application Server. and existing InTouch applications. Therefore. and monitor DAServers from one centralized location. As a subset of these Automation Objects. As such. This facilitates the DAServer installation process for end-users. z DI Objects can be used to represent all devices and PLCs in a network. The advantages of using DI Objects are as follows: z DI objects allow you to configure. including a hierarchical view of network connectivity. enabling representation of an entire plant. Several DI Objects are delivered and installed by default with your Application Server software. Device Integration objects are designed to make it very easy to integrate DAServers into the ArchestrA environment.Section 3 – Device Integration Objects Section 3 – Device Integration Objects Section Objective z Become more familiar with DI Objects and their use with Wonderware Application Server. Examples of DI Device Objects are network bridge devices or PLCs. deploying a DI Network actually deploys the DAServer and its associated components within the ArchestrA IDE/Galaxy. the Redundant DI Object) or DI Device Objects. These are available on the Wonderware Device Integration DVD. DI Object Advantages Device Integration Objects (DI Objects) represent communication with external devices. and mirror the actual device hierarchy. DI Objects (and their associated AppEngine) can reside on any I/O. and that the DAServer connects immediately. which represents the communications port and are thus associated with DA Servers. Introduction Device Integration (DI) Objects represent the application's network and devices. System Platform . it remotely installs the DAServer (This means that you can install the DAServer without going to the actual machine. Device Integration (DI) Objects are a subset of Automation Objects available in the Template Toolset of the ArchestrA IDE. Device Integration objects are used to represent communications channels and field controllers. z DI objects are so closely tied to the DAServer that when an object is deployed across the network. they are most often arranged in a hierarchy that models the physical hierarchy of the network and devices on that network. SuiteLink servers. DI Objects may be DINetwork Objects (for example. z Items are not removed when the scan mode changes. When the operator shows the window containing the object again. and parent. ActiveOnDemand z When the scan mode is configured as ActiveOnDemand. z New Items are deleted and added to the scan group as requested (referenced) by clients. While the client application is running. so that when an object is deployed. Wonderware Training . DI Objects in the ArchestrA IDE DI objects are located in the Template Toolbox and can also be imported into the Galaxy in the same way as Application Objects. ActiveAll z Scanning is continuous and dynamic attributes are never removed when unsubscribed. Note that in a large project. attributes that are not actively being referenced by any client or object are made Inactive and are not scanned. scanning for an attribute value is suspended when the owning object no longer appears in the running application. tremendous savings are achieved when comparing centralized deployment with individual tasks should the Servers be separately installed and configured on each node. z The Active scan mode polls all points that are referenced. z In Active scan mode an attribute is always in the active state. They are imported directly into the Device Integration area of the Template Toolbox: Scan On Demand Advanced Communication Management minimizes network traffic and CPU usage of a DIObject or DAServer. Advanced Communication Management resumes scanning and the object's attribute value is updated in the application. z The scan group polls the field device for all points irrespective of whether they are currently active. this process may take some time. the attribute is deleted. inactive. When the last reference to the attribute is unregistered/unadvised. but continue to exist even after the client are not interested in them anymore. z Items are activated by client requests. scripting. For example. However. whether active or inactive. attributes. including registry. or even subscribed to by items. z Items that exist when a scan mode change occurs are not deleted unless the previous mode was ActiveAll and the items are no longer referenced. Scanning can be configured using the following options: Active z Items are deleted and added to the scan group as requested (referenced) by the clients. Advanced Communication Management suspends scanning for an object's attribute value when the operator minimizes the application window containing the object.8-14 Module 8 – Device Integration Products z DI objects are very closely tied to the DAServer they are assigned to. it brings with it all code. System Platform .Part 1 8-15 .Section 3 – Device Integration Objects z Items that exist when a scan mode change occurs are not deleted unless the previous mode was ActiveAll and the items are no longer referenced. Inactive items are not scanned. z ActiveOnDemand scan mode polls the field device for currently active items only. 8-16 Module 8 – Device Integration Products – Intentionally left blank – Wonderware Training . Module 9 Multi-Node Applications Section 1 – Application Redundancy Lab 18 – Configuring Application Redundancy Section 2 – DI Redundancy Lab 19 – Configuring the Redundant DI Object Section 3 – Multi Node Application Lab 20 – Convert to Network Environment 9-3 9-15 9-29 9-33 9-45 9-49 . 9-2 Module 9 – Multi-Node Applications Module Objectives Obtain an overview and understanding of: z Migrating to a network environment. and: z How to deploy and undeploy objects on a galaxy located on a different node. z Using exporting and importing to take objects that were created on one node and migrate them to a single node. Wonderware Training . how it can be configured and key points to more effectively implement this feature.Section 1 – Application Redundancy Section 1 – Application Redundancy Section Objective z This section covers the concept of redundancy. how it can be configured and key points to more effectively implement this feature. It also provides an understanding of the concept and functionality of Redundant DI Objects Redundant Configuration Redundancy is important in processes that rely on continuous availability of information. There are two basic types or topologies of redundant configuration: z Redundant Application Engines z Redundant DI Objects System Platform . z Understand the concept and functionality of Redundant DI Objects This section provides an understanding of the concept of redundancy.Part 1 9-3 . open the Application Engine Object Editor and check “Enable Redundancy” on the Redundant tab. Wonderware Training . It operates on the principal that with redundant engines. (Additional network cards could be used for other purposes. The hardware topology required for Redundant Application Engines functionality is simple: two computers with two network interface cards (NIC) each.) To configure redundancy.9-4 Module 9 – Multi-Node Applications Redundant Application Engines The purpose of Application Engine Redundancy is to ensure continuous operation by providing an engine that remains active in the event of a single system component failure. one engine is in an Active Role while the other is in a Standby Role waiting to take control. the engine with the Standby role assumes the Active role and the engine that was in the Active role is given the role of Standby . This NIC provides a high speed inter-connection link or Redundant Message Channel between the platforms. The sequence of deployment (cascade. Primary first. or a network card failure. and checkpoint items from the engine that is in the Active Role. the platform objects that sponsor the Primary and Backup application engines need to be configured to use the dedicated NIC. System Platform . The Message Channel is vital to keep both engines synchronized with alarms. to the other. (A failure might consist of computer hardware lost or failed. Since an engine is required to run under a platform.Part 1 9-5 . this engine assumes the Standby .Not Ready.Ready role. The engines maintain their current roles until a failure occurs. When the cause of the failure has been remedied. or Backup First) of the redundant pair of Application engines determines which of these in the pair will take the Active Role. along with status information.Section 1 – Application Redundancy The Application Engine that is enabled is considered the Primary engine of the redundant pair. Each engine also uses this Message Channel to provide its health. history.) If a failure occurs. an additional (Backup) engine is automatically created. when you enable this engine. The first engine deployed takes the Active role while the other one takes the Standby role. the Active and Standby objects monitor each other's status and switch when failure conditions occur. Note: In the case of AppEngine redundancy. For AppEngines. and handles the switching from Active to Standby objects. only the Primary and its hierarchy of assigned ApplicationObjects must be created. configured and deployed. the RedundantDIObject monitors the status of the two DIObject data sources. the other automatically becomes the Standby. configure and deploy a RedundantDIObject to control failovers between the two data source objects. it is the object that is not providing field device data through the RedundantDIObject. The Primary/Backup and Active/Standby objects form a redundancy pair. For data acquisition. For AppEngines. Whenever one becomes the Active object. either the Primary or Backup object can be the Active object at any particular time. For data acquisition. For data acquisition. ArchestrA supports a one-to-one topology in which the computers hosting the Primary and Backup object sets must be connected by crossover cable and have fixed IP addresses. These are described below. it is deployed separately from the Primary). it is waiting for a failure in the Active object's condition or for a force-failover. The Backup is handled completely by the ArchestrA infrastructure (for instance. the Primary/Backup DIObjects (the data sources) must be separately created. During Run-Time Active object: The object that is currently executing desired functions. it is the DIObject you intend to use first as your data source in the run-time. Backup object: The object that provides the functionality of the Primary object when it fails. For AppEngines. In the run-time. Standby object: The passive object. it is the DIObject you do not intend to use first as your data source in the run-time. it is the object that monitors the status of the Active AppEngine. The relationship between the configuration time (Primary/Backup) and run-time (Active/Standby) object pairs is not static. Before placing an engine with redundancy enabled under a platform in the Deployment view. For AppEngine pairs. Also. configured and deployed. you must create. that is. it is the object that is providing field device data through the RedundantDIObject. it is the object that is hosting and executing ApplicationObjects.9-6 Module 9 – Multi-Node Applications Terminology Two sets of terms are critical to understanding the functions of redundant objects. Wonderware Training . In the AppEngine redundancy environment. For data acquisition. Key Points a. it is the object you enable for redundancy. For data acquisition. configure the platform Redundant Message Channel. otherwise the engine will show an error. In the data acquisition environment. During Configuration Primary object: The object intended as the main or central provider of the functionality in the run-time. For AppEngines. it is the object created by the ArchestrA infrastructure when the Primary object has been enabled for redundancy. Configuration values for Primary and Backup also can be changed after deployment of the objects. f. A Backup engine's deployment status can be different from that of the Primary Engine. It is recommended that you make the following parameters common to both platforms: z IT Alarm provider-Areas z Store Forward directories z Common user-defined attributes (UDAs) z Common scripting System Platform . In the Application Views panes of the ArchestrA IDE.Section 1 – Application Redundancy b. Platforms hosting primary and backup AppEngines should have identical configuration. The Backup Engine cannot be edited. only in the Deployment view will the Backup engine be visible. c. These operations cannot be performed on the Backup Engine alone. it is possible to configure the platform with the Primary to be the InTouch Alarm provider and filter the areas you want to query in the Platform editor. d. For instance. this same configuration should be implemented in the platform with the Backup. After editing an engine with redundancy enabled while it is deployed. e. For the Alarm Management system to behave correctly. importing and exporting. GRdump and GR load that are performed on the Primary Engine are automatically performed on the Backup. but operations such as renaming. It will then update the engine that is in the Standby role. when it is redeployed the engine which has the Active role will perform this function.Part 1 9-7 . the engine in the Standby Ready role assumes the Active role. See the illustration below. Note: Depending on the order of deployment. See the following illustration. two or more Redundant Engines reside on each of two platforms. it assumes the Active Engine role. one platform hosts the load of both application engines. Visualization Nodes Supervisory Network AutomationObject Server AutomationObject Server Redundancy Message Channel AE_1 (Active) Primary Backup AE_1 (Standby) Platform 2 Platform 1 Control Network In a Shared redundant configuration. Each computer must be capable of supporting these needs when a failure occurs.9-8 Module 9 – Multi-Node Applications Dedicated and Shared Loads There are two types of redundant engine configuration: Dedicated and Shared load. the platform with the engine in the Standby Ready role is essentially idling. but allows the application load to be shared on two computers until a failure occurs. or if a communication failure occurs. Each platform hosts a Primary and a Backup engine. If either engine is deployed by itself. the Primary or Backup engine may take the role of Active Engine. When a failure occurs. otherwise. if the Active Engine fails or is shut down. throughput for the application can be compromised Wonderware Training . Note: It is important to understand both the CPU and memory load requirements of each engine. The benefits of using this approach is that the time of failover is shortened and that only part of an application process is affected during a failure. This scenario operates similarly to the Dedicated configuration. In a Dedicated redundant configuration. In this scenario. Part 1 9-9 .Section 1 – Application Redundancy Visualization Nodes Supervisory Network AutomationObject Server AutomationObject Server Redundancy Message Channel Primary AE2 AE1 Bck Platform 1 Backup Backup AE1 Bck AE2 Primary Platform 2 Control Network System Platform . an AppEngine schedules and executes deployed objects. In the run-time environment. During run-time. A Standby AppEngine transitions into this state when a failover condition has been detected. But in the run-time. Communication between the two AppEngines is attempted first over the RMC and then over the primary network to make this determination. z Determining Failover Status: The initial state of a redundancy-enabled AppEngine when it is first started. first code modules and other files for the Primary AppEngine are deployed. If an AppEngine is in this state. This could mean that checkpoint. and 3) while continuing to attempt communicate with the Standby. AutomationObjects are always assigned to the Primary AppEngine in the configuration environment. if one AppEngine is relocated later to a different WinPlatform. It has not determined yet whether it is the Active or Standby AppEngine. only the delta files are deployed to the Standby AppEngine. followed by those files for its assigned ApplicationObjects.Standby not Available: The state of an Active AppEngine when it determines it cannot achieve communications with its partner object. sends checkpoint data and sends subscriber list updates to the Standby AppEngine. Continued attempts are made at communicating with its partner. it 1) continues normal execution of hosted objects. AppEngine Redundancy States Redundant pairs of AppEngines can have one of the following states at a time: z Active: The state of an AppEngine when it has communication with its partner object. Wonderware Training . In the case of a hardware or software failure on one computer. AutomationObjects are always deployed to the Active AppEngine whether or not it was initially configured as the Primary object. or Standby-Ready state. this communication between AppEngines can be reestablished. a heartbeat ping has not been received from the Standby object. or notification is received that the Standby AppEngine has shutdown or is not running. assigned to another AppEngine on that platform). the Active and Standby AppEngines first attempt to establish communications across the RMC. Note: If some or all of these files already exist on the Standby AppEngine’s WinPlatform (perhaps. Then. its partner is in Standby-Not Ready. In this state. does not attempt to send data to the Standby object. the Standby AppEngine will become the Active one. Standby-Sync’ing with Active. and then reassign and redeploy it to a WinPlatform that is configured for redundancy on another computer. if you want to move the new Standby AppEngine from its hosting computer. subscription and alarm state changes have not been successfully transmitted to the Standby object. Therefore. undeploy this AppEngine by using the On failure mark as undeployed option on the Undeploy dialog box.9-10 Module 9 – Multi-Node Applications What Happens in Run-time During initial deployment to its assigned WinPlatform. If communication cannot be made after a certain timeout period. the Active and Standby engines communicate with each other and monitor each other's status. This occurs when an AppEngine belonging to a redundant pair first starts up. z Active . All of these files are then deployed to the Standby AppEngine by the Active engine’s WinPlatform using the redundancy message channel (RMC). an AppEngine assumes the Active role if it has all of the code modules and checkpoint file data to do so. 2) cannot be manually switched to Standby state. All files are then deployed by the Active AppEngine’s WinPlatform to the Backup AppEngine as described above. z Switching to Active: A temporary. z The node name of the AppEngine reporting the alarm.Missed Heartbeats: The state of an AppEngine when 1) a heartbeat ping has not been received from its Active partner within a configured timeout period. z Standby . Note: Depending on the scenario that causes a failover.Sync'ng with Active: The state of an AppEngine when it is synchronizing code modules with the Active object. the Standby AppEngine may become the Active in an offscan state and alarms may not be generated. These alarms contain the following information: z The name of the AppEngine reporting the alarm. z Standby .Sync'd Code: The state of a Standby AppEngine that has successfully synchronized all code modules with the Active object. the Standby object attempts to determine whether or not the Active object has failed. z Unknown: The state of a redundant partner when a communication loss occurs between AppEngines or when the partner AppEngine is not running. In this state. they are uninstalled. transitional state when an Active AppEngine is commanded to become Standby. including checkpoint and subscriber information.Not Ready: The state of an AppEngine when one of several conditions occurs: 1) its has lost communications with its partner object or it maintains communications with its partner but has missed checkpoint updates or alarm state changes from the Active AppEngine. z The state of the AppEngine. the ArchestrA system reports alarms to the Logger.Missed Heartbeats. and history blocks. z The node name of the AppEngine’s partner object. z Standby . or 3) the Active AppEngine is shutdown on purpose. the AppEngine transitions to Standby-Sync’d Code state. subscription-related notifications. 2) the Active AppEngine fails or hangs up. Typically.Ready: The state of an AppEngine when is has completed synchronizing code modules and checkpoint data with the Active AppEngine. z Standby . or 3) the Standby AppEngine has lost communications over the RMC before it could complete synchronizing data. any code modules that exist on the Active node but not on the Standby node are installed. If a manual failover is initiated (by using the ForceFailoverCmd attribute).Section 1 – Application Redundancy z Standby . transitional state when a Standby AppEngine is commanded to become Active. Once all code modules are synchronized. When in this state. If code modules exist on the Standby computer that do not exist on the Active node. or Standby. Active. checks that all files required for execution are in sync with the Active engine. the AppEngine’s partner is in one of the following states: Active-Standby not Available. z Standby . it will be processed only if the heartbeats were missed over the primary network and not missed over the RMC. z Switching to Standby: A temporary.Sync'd Data: The state of a Standby AppEngine when all object-related data. and receives the following from the Active AppEngine: checkpoint change data. If the Active AppEngine is shutdown System Platform . alarm state changes.Part 1 9-11 . are synchronized with the Active object. An object in this state typically transitions to Standby-Ready state. and likewise. the AppEngine monitors for Active AppEngine failure by verifying heartbeat pings received from the Active engine. Alarm Generation When failover conditions occur. 2) new objects are deployed to the Active AppEngine and necessary files have not been installed on the Standby AppEngine yet. Wonderware Training .Not Ready Standby . though. History Generation All active objects (AppEngine and hosted objects) report history data as they normally do in the run-time environment. the checkpointer may transfer that state to the Standby. including when: z The alarm was acknowledged z The alarm condition went true z The alarm condition went false Finally. the Standby AppEngine that becomes active will not report alarms outstanding from the old Active AppEngine. if the Active AppEngine is in Active-Standby not Available state. Any alarms that occur between scan cycles. The state of those old alarms.Not Available Active Active Standby Not Available Active . may not be reported to the Standby object if the Active object fails. Historical data is reported to the historian only from the Active AppEngine.9-12 Module 9 – Multi-Node Applications offscan. is reflected on the new Active AppEngine as follows: z Out of alarm z Unacknowledged z Unacknowledged-Return to normal z Acknowledged-Return to normal z Acknowledged Timestamps are also preserved for alarms. Alarms reported are the following: Previous State Current State Alarm Raised When Alarm Cleared When Alarm Reported By Standby .Not Ready 1 Active Standby . When the AppEngine is put onscan.Standby Not Available Entering Active Active Engine Standby Becomes Active During the next scan of the Active Engine Active Engine Alarm Failover Occurred Legend: 1 The Active AppEngine monitors the status of the Standby through the RMC to determine when to raise this alarm. The sequence of reporting alarms ensures that alarm clients do not report alarms in states that are different from those reported by the Standby AppEngine if the Active one fails. the following information is preserved for alarms: z An alarm was acknowledged z The message input by the operator when the alarm was acknowledged Note: All alarm state information is collected and sent to the Standby AppEngine at the end of a scan cycle and before being sent to alarm clients. alarms then are generated. this alarm is not generated. and when the latter becomes the Active. it will startup offscan. When a failover occurs. Also.Not Ready Entering Standby Ready ACtive Engine Standby . therefore. This operation can be paired with deploying both the Primary and Backup AppEngines at the same time. Forced Failover Failover can be forced to occur.Part 1 9-13 . you can link multiple conditions in a script or use the Object Viewer utility to trigger a forced failover. Yes Yes Backup AppEngine's host WinPlatform not deployed. In the run-time environment. No Yes Backup AppEngine's host WinPlatform not configured for failover and deployed. the first one deployed becomes the Active. No Yes Condition System Platform . Yes Yes Backup AppEngine in error state. Yes Yes Deploy from Galaxy node. A valid redundancy message channel (RMC) must be configured for each WinPlatform. Each AppEngine must be assigned to a separate WinPlatform. This is done through a combination of store-forward operations when the historian is unavailable and normal reporting operations when it is available. Note: If you deploy the Backup AppEngine first and then deploy hosted objects to that AppEngine. When they are deployed individually. When they are deployed together (no matter which object is actually selected for deployment). Deployment Primary and Backup AppEngines can be deployed together or individually. the Primary always becomes the Active and the Backup becomes the Standby. To deploy the Primary and Backup together. Hosted ApplicationObjects are always deployed to the Active AppEngine. Deploy Both Primary and Backup Objects Cascade Deploy Allowed Backup AppEngine's host WinPlatform configured for failover and deployed. For instance. The Active AppEngine then goes into store-forward mode and caches data every 30 seconds. This option is not available when doing the following operations: z Cascade deploy from the Galaxy z Multiple object selection deploy z Deployment of the WinPlatform that hosts the Primary or Backup AppEngine See the following table for a matrix of allowed operations based on specific conditions. When deploying the first of a redundant pair of AppEngines. select Include Redundant Partner in the Deploy dialog box. When failover conditions occur. Do this through the ForceFailoverCmd attribute of the AppEngine. all configuration requirements must be met. Store-forward data (when the historian is unavailable) is synchronized with the Standby AppEngine. Before deploying the Primary and Backup AppEngines.Section 1 – Application Redundancy Loss of connectivity with the historian does not cause a failover. no more than 30 seconds of history data should be lost in the transition from Standby to Active status. errors may occur. Otherwise. ensure that network communications to both target computers is good before deploying the Primary AppEngine. No Yes Deploy from WinPlatform hosting Primary AppEngine. you can cascade deploy all objects it hosts. either the Primary or Backup AppEngine can become the Active or Standby depending upon failure conditions on either computer. Yes Yes Deploy from Primary AppEngine. but if you do. Note: Undeployment of any AutomationObjects. does not uninstall code modules for that object from the hosting computer. No No Backup AppEngine's host WinPlatform not configured for failover and not deployed. z If both the Network Address and RMC IP Address parameters in the WinPlatform's editor address the same network card. both the Primary and Backup will fail to deploy with a message noting that the Primary and Backup objects must be hosted by different WinPlatforms. These two parameters must address different network cards. the hosted AppEngines are automatically revalidated and the Error state is resolved. Wonderware Training . the order you configure an object pair for redundancy) are validated by the system infrastructure. you will get an error message that the Platform (specifically. you will get a warning message when you save the configuration. with a message indicating that the host WinPlatform is not configured with the network adapter required for redundant communications. z If the RMC IP Address parameter is not configured in both hosting WinPlatforms. they are not revalidated. The Active and Backup AppEngines can be undeployed separately. z If both Primary and Backup AppEngines are assigned to the same WinPlatform and an attempt is made to deploy both engines. they can be undeployed as a pair by selecting one of the objects in an Application View. Yes Yes Undeploying redundancy pairs of AppEngines is similar to any regular object undeployment.9-14 Module 9 – Multi-Node Applications Condition Deploy Both Primary and Backup Objects Cascade Deploy Allowed Multiple object selection deploy. including redundant AppEngine pairs. No Yes Deploy from Backup AppEngine. Also. then the configuration state of both Primary and Backup AppEngines changes to Error. Code modules are uninstalled only when the WinPlatform is undeployed. selecting the Undeploy command. If hosted AppEngines are checked out. Errors and Warnings Certain requirements (for instance. you may see error messages that describe the following: z You can configure an AppEngine for redundancy before its associated WinPlatform. and selecting Include Redundant Partner in the Undeploy dialog box. Reassign the Backup object to another WinPlatform and deploy it separately. the RMC) is not configured yet. If a requirement is not met. When the RMC IP Address is configured and the WinPlatforms are checked in. Using the ArchestrA IDE. Objectives Upon completion of this lab you will be able to: z Configure a second network connection in Windows as the redundant message channel z Configure the $WinPlatform and $AppEngine object for redundancy z Create a deployment model for redundant engines z Force a failover on a redundant system System Platform .Part 1 9-15 . Note: It is assumed that the required second network card is installed in both computers and the crossover cable for the RMC is connected Note: Because of the additional hardware and network requirements necessary. the galaxy is configured to become a two-node redundant system that will failover between the two nodes when a failure occurs in the system. this lab is usually executed as an Instructor demonstration only.Lab 18 – Configuring Application Redundancy Lab 18 – Configuring Application Redundancy Introduction This lab describes how to configure your galaxy for redundancy starting with the necessary network configuration in Windows to properly handle a second network connection as the galaxy’s redundant message channel. Configure the Galaxy for Redundancy e. f. On the Advanced setting for TCP/IP. Configure the AppEngine object for Redundancy and assign its backup to the Platform_001 object. Wonderware Training . Rename the network connections as follows: Local Area Connection to ArchestrA Local Area Connection 2 to RMC b. g. d. Important! The IP address for the RMC connection on both computers must be different but in the same subnet. Configure the GRPlatform object’s Redundancy message channel IP address with its own RMC IP address. a. Use the network connections Advanced Settings to make sure that the ArchestrA connection is access before the RMC connection. configure the RMC connection to not Register this connection’s addresses in DNS. i. please refer to the Detailed Lab Instructions on subsequent pages. Undeploy the galaxy. h. Assign an IP address to the RMC in a different subnet than the ArchestrA connection.9-16 Module 9 – Multi-Node Applications Summary Lab Instructions Following is a summary of the general steps you will complete for this lab. c. For detailed instructions. Configure the Platform_001 object with the name of the second computer and its own RMC IP address for the Redundancy message channel IP address. Create a new instance of the $tWinPlatform template named Platform_001 and assign it to the ControlSystem area. Configure Windows network connections Note: The following configuration needs to be done on BOTH computers. Lab 18 – Configuring Application Redundancy Test Redundancy j. Using the watch list created in Lab 5.ForceFailoverCmd l. See the next page for Detailed Lab Instructions System Platform . Force a failover in the system and monitor the data using Object Viewer and the different watch windows created during the class. add a new watch window called Redundancy and add the following attribute references: Instance Attribute AppEngine Host AppEngine Redundancy.PartnerPlatform AppEngine Redundancy.PartnerStatus AppEngine Redundancy. m.Status AppEngine Redundancy.Part 1 9-17 .FailoverOcurred AppEngine Redundancy. k.Identity AppEngine Redundancy. Deploy the galaxy. Save the watch list. 1. Open Windows Network Connections by double-clicking on Start / Control Panel / Network Connections. 2. The Network Connections window appears. For a summary of instructions. Wonderware Training . Rename network connections as follows: Local Area Connection to ArchestrA Local Area Connection 2 to RMC This is an optional step that enables you to easily identify each connection in this class environment. Configure Windows network connections Note: The following configuration (steps 1-13) needs to be done on BOTH computers.9-18 Module 9 – Multi-Node Applications Detailed Lab Instructions Following are detailed lab instructions for completing this lab. please refer to the Summary Lab Instructions on the previous page(s). Part 1 9-19 . 4. Note: You can use the and buttons to arrange the access order. Adapters and Bindings tab. From the Advanced menu.Lab 18 – Configuring Application Redundancy 3. select Advanced Settings. In the Advanced Settings dialog box. System Platform . make sure that the ArchestrA connection is listed before the RMC connection and then click the OK button to close the dialog box. Wonderware Training . 7. At the Internet Protocol (TCP/IP) Properties dialog box select the Use the following IP address option and assign an IP address in a different subnet than the ArchestrA connection. 6. Right-click on the RMC connection and select Properties.9-20 Module 9 – Multi-Node Applications 5. General tab. In the RMC Properties dialog box. select the Internet Protocol (TCP/IP) item and click the Properties button. 255.Lab 18 – Configuring Application Redundancy Important! The IP address for the RMC connection must be different on each computer but in the same subnet.1.255.0.1 and the second computer will have an IP address of 192. Both will be have a subnet mask of 255.2.1. Click the Advanced button to continue. System Platform . and on a different subnet than the ArchestrA node. 8.Part 1 9-21 .168.168. Note: In this example the first computer will have an IP address of 192. In the Advanced TCP/IP Settings dialog box. Click the OK button to close the Internet Protocol (TCP/IP) Properties dialog box. Click the Close button to close the RMC Properties dialog box. Wonderware Training .9-22 Module 9 – Multi-Node Applications 9. 10. Click the OK button to close the Advanced TCP/IP Settings dialog box. 12. 11. 13. select the DNS tab. Uncheck the Register this connection’s address in DNS box. System Platform . 15. 18.168. Create a new instance of the $tWinPlatform template named Platform_001. enter the IP address assigned to the RMC connection you used for the first computer in step 7. Click the Save and Close button and check in the object. In this example the first computer has an IP address of 192. Double-click the GRPlatform instance to open its configuration editor. In the Redundancy panel.1 17.1. 16.Lab 18 – Configuring Application Redundancy Configure the Galaxy for Redundancy 14. Redundancy message channel IP address field. Undeploy the GRPlatform object.Part 1 9-23 . 9-24 Module 9 – Multi-Node Applications 19. 21. Double-click the Platform_001 instance to open its configuration editor. Redundancy message channel IP address field. 22. In the Redundancy panel. In the Network address field.2 Wonderware Training .168.1. enter the IP address assigned to the RMC connection you used for the second computer in step 7. Assign the new Platform_001 instance to the ControlSystem area. enter the name of second computer. 20. In this example the second computer has an IP address of 192. 25. System Platform . Click the Save and Close button and check in the object. assign the automatically created AppEngine (Backup) object to the Platform_001 instance. Click the Save and Close button and check in the object. Select the Redundancy tab and configure the object as follows: Enable redundancy: checked 26. In Deployment view.Lab 18 – Configuring Application Redundancy 23. Double-click the AppEngine instance to open its configuration editor. 24.Part 1 9-25 . 27. Load your saved Watch List.PartnerStatus z Redundancy. 30. 31.Identity z Redundancy. 32. Using the watch list created in Lab 5. Wonderware Training .FailoverOccurred z Redundancy. 29. Deploy the galaxy by right-clicking the name of the galaxy and selecting Deploy. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to rename the watch list to Redundancy. add a new watch window named Redundancy with the following attributes from the AppEngine instance: z Host z Redundancy. Open Object Viewer by right-clicking the AppEngine instance and selecting View in Object Viewer.Status z Redundancy. Save the watch list.PartnerPlatform z Redundancy. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch Window to add a new tab to the watch list.ForceFailoverCmd Your data should look similar to the following: 34.9-26 Module 9 – Multi-Node Applications Test Redundancy 28. 33. Force a failover to the second computer by writing true to the ForceFailoverCmd attribute of the AppEngine. You can use the Mixer1 watch window to verify that the objects are running properly. System Platform . Failover the system doing any of the following on the second computer: z Unplug the power cable z Shut down Windows z Disconnect both network cables at the same time. You can use the Mixer1 watch window to verify that the objects are running properly.Part 1 9-27 .Lab 18 – Configuring Application Redundancy 35. 36. 9-28 Module 9 – Multi-Node Applications – Intentionally left blank – Wonderware Training . The Redundant DI Object is a DINetwork Object used to enable continuity of I/O information from field devices. It also provides an understanding of the concept and functionality of Redundant DI Objects Redundant DI Objects Application Engines can host Redundant Device Integration Objects (DI Objects). If the primary data source fails. z Understand the concept and functionality of Redundant DI Objects This section provides an understanding of the concept of redundancy. For all intents and purposes. The Redundant DI Object provides the ability to configure a single object with connections to two different data sources. Only one DIObject data source provides field device data through the RedundantDIObject at a time. which monitors the two DIObject data sources and determines which one is Active at any given time. Both data sources must have commonly configured DAGroups which are reflected in and channeled through the RedundantDIObject.Part 1 9-29 . There is a one-to-two relationship between an instance of the Redundant DI Object and the running instances of the source DI objects.Section 2 – DI Redundancy Section 2 – DI Redundancy Section Objective z This section covers the concept of redundancy. the Redundant DI Object automatically switches to the backup data source for its information. The RedundantDIObject monitors and controls the redundant DIObject data sources. individual DIObject data sources do not have redundancy-related states. a pair of source DI Objects is deployed. how it can be configured and key points to more effectively implement this feature. Both data sources must also have the same item address space. for each Redundant DI Object. Unlike redundant AppEngines. System Platform . they function as standalone objects. that is. how it can be configured and key points to more effectively implement this feature. Wonderware Training . z Setting up the common scan groups. All ArchestrA IDE commands. Because data acquisition redundant components are essentially standalone objects. The main focus of RedundantDIObject configuration is: z Setting the Primary DI Source and Backup DI Source on the General tab of the object’s editor.2EMHFW 6XSHUYLVRU\1HWZRUN '. block read. Galaxy Dump and Load functions. you must configure all three components: a Primary DIObject data source. and block write groups shared by the Primary and Backup DIObjects should be configured in the RedundantDIObject. and block read and block write groups on the respective tabs of the object’s editor. all valid operations that apply to any other ApplicationObjects apply to the three objects. In data acquisition redundancy.9-30 Module 9 – Multi-Node Applications :RUNVWDWLRQV 5HGXQGDQW '. Also.B $( 3ODWIRUP $SSOLFDWLRQ6HUYHU '. a Backup one. only scan. and import and export operations are valid on the two DIObject data sources and the RedundantDIObject. Data acquisition redundancy objects (two DIObjects and the RedundantDIObject) do not have redundancy-related deployment statuses. and a Redundant DIObject.B '$6HUYHUB '$6HUYHUB $%7&3 '+ &RQWURO1HWZRUN 3/& Configuration RedundantDIObjects Configure redundancy in data acquisition objects in the ArchestrA IDE through their editors. Note: You must configure at least one scan group before you can deploy the RedundantDIObject. What Happens in Run-time The three objects in the data acquisition redundancy scheme (RedundantDIObject and its two DIObject data sources) function like any other ArchestrA object with respect to deployment. System Platform . the RedundantDIObject monitors the status of the DIObject data sources. During run-time. No special conditions apply to each DIObject data source and the RedundantDIObject. undeployment and redeployment.Part 1 9-31 . alarming and historization.Section 2 – DI Redundancy Deployment Deployment for data acquisition redundancy is the same as individually deploying unrelated objects. and handles the switching from Active to Standby object when failure conditions arise. They have no special redundancy-related states or restrictions with respect to deployment. 9-32 Module 9 – Multi-Node Applications – Intentionally left blank – Wonderware Training . this lab is usually executed as an Instructor demonstration only. Objectives Upon completion of this lab you will be able to: z Create a deployment model for redundant DI object z Configure and use the $RedundantDIOObject z Force a failover on a redundant DI system System Platform . Note: Because of the additional hardware and network requirements necessary.Part 1 9-33 . such as a PLC.Lab 19 – Configuring the Redundant DI Object Lab 19 – Configuring the Redundant DI Object Introduction This lab describes the steps necessary to configure your galaxy for redundancy at the communication level with the field by using two similar device integration objects connected to the same field device. f. Using the watch list created in Lab 5. copy the common scan groups and attributes from the primary or backup DI sources. AppEngineDI2. name them AppEngineDI1 and AppEngineDI2 and assign them to the ControlSystem area. name it $tRedundantDIObject. Assign the new object to the ControlSystem area and host it on the AppEngineDI2 engine. c. Create a copy of the DIO1 object by repeating Lab 6 but naming the object DIO2. Host AppEngineDI1 on the GRPlatform platform and AppEngineDI2 on Platform_001 platform. Wonderware Training . Derived a new template from the $RedundantDIObject object. Create two new instances of the $tAppEngine template. For detailed instructions. Host the InControl instance on the AppEngine object. please refer to the Detailed Lab Instructions on subsequent pages. and assign it to the Training template toolset. Create an instance of the $tRedundantDIObject template and name it InControl. Configure DI Redundancy a.9-34 Module 9 – Multi-Node Applications Summary Lab Instructions Following is a summary of the general steps you will complete for this lab. e. b. configure the object as follows: Primary DI source: DIO1 Backup DI source: DIO2 h. d. Rename the InControl instance as DIO1 and host it on the AppEngineDI1 engine. k. Deploy the AppEngineDI1. i. g. DIO1. DIO2 and InControl objects. In the Scan Group tab. Test the Redundant DI Object j. Save the watch list. add a new watch window called RDIO and add the following attribute references: Instance Attribute InControl DISourcePrimary InControl DISourceBackup InControl DISourceActive InControl DISourceStandby InControl StatusPrimaryDISource InControl StatusBackupDISource InControl ConnectionStatus InControl SwitchReason InControl ForceFailoverCmd l. In the General tab. Part 1 9-35 . See the next page for Detailed Lab Instructions System Platform .Lab 19 – Configuring the Redundant DI Object m. Force a failover in the system and monitor the objects using Object Viewer and the different watch windows created during the class. Wonderware Training . Create two new instances of the $tAppEngine template. 5. please refer to the Summary Lab Instructions on the previous page(s). host AppEngineDI1 on the GRPlatform platform and AppEngineDI2 on Platform_001 platform. Rename the InControl instance DIO1. Name the new instances AppEngineDI1 and AppEngineDI2 and assign them to the ControlSystem area. 3. Undeploy the InControl instance. In the Deployment view. 4. 2. For a summary of instructions. Configure DI Redundancy 1.9-36 Module 9 – Multi-Node Applications Detailed Lab Instructions Following are detailed lab instructions for completing this lab. Use Lab 6.Part 1 9-37 .Lab 19 – Configuring the Redundant DI Object 6. System Platform . rename the original. Host the DIO1 object on the AppEngineDI1 engine. Note: You can export your object. 7. and then import the object to create a copy of the object with all of the original object’s configuration attributes. “Connecting to the Field” to create another device integration object. but name it DIO2 instead of InControl. Assign it to the ControlSystem area. 9-38 Module 9 – Multi-Node Applications 8. Create an instance of the $tRedundantDIObject template named InControl and assign it to the ControlSystem area. host the DIO2 object on the AppEngineDI2 engine. In the Deployment view. 9. 10. Create a derived template from the $RedundantDIObject template named $tRedundantDIObject and assign it to the Training template toolset. Wonderware Training . Lab 19 – Configuring the Redundant DI Object Note: The template name InControl is used here to match the existing attribute references that were configured in the objects and scripts in previous labs. Double-click the InControl instance to open its configuration editor. 11. configure the object as follows: Primary DI source: DIO1 Backup DI source: DIO2 System Platform . 12.Part 1 9-39 . In the General tab. 9-40 Module 9 – Multi-Node Applications 13. 14. Select the Scan Group tab and click on the Copy Common Scan Groups button. click the OK button to accept tagname as the scan group for the new InControl object. Wonderware Training . In the Copy Common Scan Groups dialog box. System Platform .Lab 19 – Configuring the Redundant DI Object 15. Click on the Copy Attributes From Primary button.Part 1 9-41 . Click the Save and Close button and check in the object. 16. Deploy the AppEngineDI1 object on cascade. 20. Deploy the AppEngineDI2 object on cascade. Right-click in the Watch List (bottom section of Object Viewer) and select Add Watch Window to add a new tab to the watch list. host the new InControl object on the AppEngine engine. Deploy the InControl object. Right-click in the Watch List (bottom section of Object Viewer) and select Rename Tab to rename the watch list to RDIO. 19. 21. 23. In the Deployment view. If you closed Object Viewer before. Open Object Viewer by right-clicking the InControl instance and selecting View in Object Viewer. Test the Redundant DI Object 18.9-42 Module 9 – Multi-Node Applications 17. Wonderware Training . you can use File / Load Watch List to open the file you saved earlier. 22. Add the following attributes from the InControl instance to the watch list: z DISourcePrimary z DISourceBackup z DISourceActive z DISourceStandby z StatusPrimaryDISource z StatusBackupDISource z ConnectionStatus z SwitchReason z ForceFailoverCmd z SwitchCnt Your data should look similar to the following: 25. You can use the Mixer 1 watch window to verify that the objects are running properly.Part 1 9-43 . Save the watch list. Force a failover to the second device integration object by writing true to the ForceFailoverCmd attribute of the Redundant DI Object. 27.Lab 19 – Configuring the Redundant DI Object 24. 26. Failover the system doing any of the following on the second computer: z Unplug the power cable z Shut down Windows z Put the DIO2 object off scan System Platform . 9-44 Module 9 – Multi-Node Applications You can use the Mixer 1 watch window to verify that the objects are running properly. Wonderware Training . Standalone to Network Configuration Earlier we discussed the standalone configuration you have been using up to this point. At the conclusion of this section you will have an understanding of the steps necessary to migrate to a network environment. This will allow us to utilize a networked configuration to convey more complex concepts relating to connectivity. and a Galaxy Repository. Each of the nodes contains the Bootstrap. the ArchestrA IDE.Section 3 – Multi Node Application Section 3 – Multi Node Application Section Objective This section deals with migrating from a standalone configuration to a network configuration. The existing standalone environment is illustrated as follows: System Platform . At this time you want to migrate over to a network configuration that will reflect four nodes accessing one Galaxy Repository.Part 1 9-45 . exporting objects and templates and other multi-node environmental considerations. and a Galaxy Repository. the ArchestrA IDE. Once you have reconfigured the environment there will be one machine (Node1) that will contain the Bootstrap. Those other three nodes will contain only the Bootstrap and the ArchestrA IDE. This section provides an understanding of how to migrate from a standalone configuration to a network configuration. At the conclusion of this section you will have an understanding of the steps necessary to migrate to a network environment. In the networked architecture a common Galaxy Repository will be shared between a set of PCs allowing multiple users to simultaneously work on the same application. Three other nodes will be connected to the Galaxy on Node1. 9-46 Module 9 – Multi-Node Applications The networked environment that you are migrating to is illustrated as follows: Wonderware Training . System Platform . There a need for only one PLC so the one residing on the resulting Galaxy Repository node is the one that is most likely the one desired for the network. Therefore. The node that contains the Galaxy Repository must do several tasks before any other nodes can connect.Section 3 – Multi Node Application Multi User Conversion Considerations When migrating from a Stand Alone environmental configuration to a networked configuration there are some factors that must be taken into consideration. Failure to follow these key steps before others connect and start deploying objects can produce less than desirable results. z Rename the node. One of the key ones being that certain functions take place on the Galaxy Repository node BEFORE they take place from the connecting nodes. z Create Platforms for other galaxy members. that is the one and only one that is to be exported in preparation for the network environment.Part 1 9-47 . These include: z Create the Galaxy to which all other nodes will connect. z Name and deploy their own Platform as the first Platform deployed on the Galaxy Repository node. 9-48 Module 9 – Multi-Node Applications – Intentionally left blank – Wonderware Training . In the networked environment a common Galaxy Repository is shared between a set of PCs allowing multiple users to simultaneously work on the same application.Part 1 9-49 . Since there can only be one Galaxy Repository per galaxy. Objectives Upon completion of this lab you will be able to: z Configure a galaxy for a multi-node environment. System Platform . This person/ computer is designated as the Galaxy Master.Lab 20 – Convert to Network Environment Lab 20 – Convert to Network Environment Introduction This lab describes the steps necessary to convert to a Networked Configuration. In this lab you team up with your classmates to create a galaxy that spans across multiple nodes. templates you created in the class are re-used. To speed up the process. The Galaxy Master has specific extra steps to perform. your team needs to designate one of the team members’ computer to become the sole Galaxy Repository for the galaxy. k. l. Create a platform instance named ABPlatform where AB is your initials and assign it to the ControlSystem area. This section is to be performed by everyone. c. i. Host InControl on AppEngineDI. her AppEngine template to ABtAppEngine. n. d. For example. Deploy the ABPlatform object on cascade. the Training toolset will be renamed ABTraining. Create an engine instance named AppEngineDI and assign it to the ControlSystem area. Wonderware Training . preceding each object name with your initials. Create a user account that belongs to the Administrator role for each member of the team. Rename all of your template objects. g.aaPKG. For detailed instructions. Configure the galaxy’s security Authentication Mode to Galaxy.aaPKG files. j. Preparation a. Create a new galaxy named MultiNodeGalaxy. Export the InControl instance to a file called InControl. Only general guidance is given to allow you the chance to put what you have learned into practice. h. Ann Brown’s initials are AB. Note: If you did Lab 19.aaPKG. f. Export the InControl instance and create a New Galaxy e. Import the MyTemplates. please refer to the Detailed Lab Instructions on subsequent pages. m. b. Export all your templates to a file called MyTemplates. Ann Brown would rename her Platform template to ABtWinPlatform. On the Deployment view: Host AppEngineDI on ABPlatform. This section is to be performed by the Galaxy Master only. Host ControlSystem on AppEngineDI. Create an area instance named ControlSystem and assign the InControl object to it.aaPKG and InControl. Note: For this lab there are no detailed steps on the following pages. and so on.9-50 Module 9 – Multi-Node Applications Summary Lab Instructions Following is a summary of the general steps you will complete for this lab. In this example. Undeploy your galaxy. adding your initials to the beginning. then export both the I/O 1 and I/O 2. Rename the Training toolset. and configure it with your local computer’s name. Note: Feel free to experiment and play around with the multi-node system to reinforce the knowledge acquired during this class. Create an area instance named ABLine and host it on your ABAppEngine object. Create an instance of your mixer template and name it properly with the valid 3-digit mixer ID at the end (ABMixer_1XX) as identified in Lab 2. Setup the Platforms o.aaPKG file. r. u. Import your MyTemplates. This section is to be performed by everyone. Assign it to the ControlSystem area. p. Use Object Viewer to verify that all objects are running properly and are getting data from the field. assign it to the ControlSystem area and host it on your ABPlatform object. Deploy your ABAppEngine object on cascade. Deploy the ABPlatform object on cascade. q.Lab 20 – Convert to Network Environment This section is not to be performed by the Galaxy Master. Use the ArchestrA IDE to connect to the MultiNodeGalaxy galaxy in the Galaxy Master’s computer using your designated user account. System Platform . where AB is your initials. where AB is your initials. Create an engine instance named ABAppEngine. where AB is your initials. w. Create a platform instance named ABPlatform where AB is your initials. Test the Galaxy s. v. t. Host it on your ABLine area.Part 1 9-51 . where AB is your initials. 9-52 Module 9 – Multi-Node Applications – Intentionally left blank – Wonderware Training . Appendix A Wonderware Application Server Glossary . A-2 Appendix A – Wonderware Application Server Glossary – Intentionally left blank – Wonderware Training . Area Object The System Object that represents an Area of your plant within a Galaxy. object-based design. reactor. an AppEngine AutomationObject is assigned to a WinPlatform AutomationObject.Part 1 A-3 . Derivation view and Operations view. motor. Includes a developer tool used to build DI Objects and create unique Domain Objects that interact with DI Objects in the ArchestrA environment. The Model view is the default display when the ArchestrA IDE is first opened. Application Server uses existing Wonderware products such as InTouch for visualization. ArchestrA Object Toolkit A programmer’s tool used to create new ApplicationObjects and Device Integration Object Templates. pump. For example. Sequential Function Chart. Ladder Logic program. batch phase. and is used to place other Automation Objects into proper context with respect to the actual physical automation layout. or SPC data sheet). It is used to group related AutomationObjects for alarm. Attribute Reference String A text string that references an attribute of an AutomationObject. ApplicationObject An AutomationObject that represents some element of your application. a thermocouple. the Wonderware Historian for data storage. An Application Server can be distributed across multiple computers as part of a single Galaxy Namespace. It is an open and extensible technology based on a distributed. Application Views The Application Views pane displays the object-related contents of the Galaxy in different ways: Model view. and the device Integration product line like a Data Access Server (DAServer) for device communications. Attribute An externally accessible data item of an AutomationObject. history. System Platform . Assignment The designation of a host for an AutomationObject. Application Engine (AppEngine) A scan-based engine that hosts and executes the runtime logic contained within AutomationObjects. Synonymous with Galaxy. The Area Object acts as an alarm concentrator. This may include things such as (but not limited to) an automation process component (for instance. ArchestrA The distributed architecture for supervisory control and manufacturing information systems. and security purposes. There may be one or more applications within a Galaxy Repository.Appendix A – Wonderware Application Server Glossary Application A collection of objects within a Galaxy Repository that performs an automation task. PID loop. Area A logical grouping of AutomationObjects that represents an area or unit of a plant. Deployment view. It is represented by an Area AutomationObject. including their configuration and run-time implementations. function block. Application Server The supervisory control platform. or tank) or associated application component (for instance. valve. When the block write is complete. A Wonderware Application Server Galaxy Namespace can contain several Automation Object Servers. name. Base templates and derived templates always have a $ before their name in the IDE. deployment. Automation Object Server (AOS) A computer that hosts one or more application engines and associated automation objects. The block of data is then sent to the external data device. Check-Out IDE operation for the purpose of editing an object. a base template is not derived from another template but developed with the Application Object Toolkit and imported into a Galaxy. Change Log The revision history that tracks the life cycle activities of ArchestrA Objects. Compound Object. unique names within the Galaxy. and import/export. and monitor the represented component. download. Block Read Group A DAGroup that is triggered by the user or another object. Block Write Group A DAGroup that is triggered by the user or another object after all the required data items have been set. It provides a standard way to create. check-in/check-out. Unlike other templates. The restarted object has the same configuration. Bootstrap The base ArchestrA service which is required on all ArchestrA computers. Change Propagation The ability to create templates which will allow each component template to support changes such that a change in one of the elements can be automatically propagated to all — or select. related — instances. such as object creation. It provides the base software environment to enable a platform and allows a computer to be included in the Galaxy Namespace. Checkpoint The act of saving to disk the configuration. execute. it indicates the completion status. It makes the item unavailable for other users to Check-Out. Check-In IDE operation for making a configured object available for other users to Check-Out and use. state. An Application Object that contains at least one other Application Object. state.A-4 Appendix A – Wonderware Application Server Glossary AutomationObject A type of object that represents permanent things in your plant (such as Application Objects or Device Integration Objects) as objects with user-defined. and associated data as the last checkpoint image on disk. Base Template A root template at the top of a derived hierarchy. Backup Application Engine The object created by the ArchestrA infrastructure when the Primary object has been enabled for Redundancy. and all associated data necessary to support automatic restart of a running AutomationObject. each which requires a Platform. It reads a block of data from the external data source and indicates the completion status. See Redundancy for further detail. Wonderware Training . Areas and Engines. System Platform . This functionality allows for relative referencing to be defined at the template and instance level. Block Read or Block Write groups. derived templates and derived instances. results in the Hierarchical Name. DAServer Manager (DAS Manager) The System Management Console (SMC) snap-in supplied by the DAServer that provides the required user interface for activation. This action involves installing all the necessary software and instantiating the object on the target platform with the objects default attribute data from Galaxy Repository.Part 1 A-5 . DINetwork Object An object that represents the network interface port to the device via the Data Access Server or the object that represents the communications path to another software application. DIDevice Object An object that represents the actual external device (for example.Appendix A – Wonderware Application Server Glossary Contained Name An alternate naming convention that when combined with the tag name of the root container object. This is a view of how the application is spread across computing resources. for a given object. Device Integration Object (DIObjects) An AutomationObject that represents the communication with external devices or software. For instance. Data Access Server Toolkit (DAS Toolkit) A developer tool used to build Data Access Servers (DAServers). and include DINetwork and DIDevice objects. Deployment The operation which instantiates an automation object instance in the AutomationObject Server. DIObjects run on an Application Engine. It can be a ScanGroup. It defines how communications is achieved with external data sources. Deployment View The part of the Applications View in the IDE that shows how objects are physically dispersed across Platforms. a PLC or RTU) that is associated with a DINetwork Object. Derivation View The part of the Applications View in the IDE that shows the parent-child relationship between base templates.Tank1. it’s Hierarchical Name = Line1. Data Access Server (DAServer) The server executable that handles all communications between field devices and client applications. It provides diagnostics and configuration for that specific network card. and diagnosis of the DAServer. A view into the genealogy of the application. Derived Template Any template with a parent template. configuration. DAGroup A data access group associated with Device Integration Objects (DIObjects).InletValve and its Contained Name= InletValve Containment A hierarchical grouping that allows one or more AutomationObjects to exist within the name space of a parent AutomationObject and be treated like parts of the parent AutomationObject. Derivation The creation of a new Template based on an existing Template. It provides the ability to diagnose and browse data registers of the DAGroups for that device. Similar in function to I/O Servers but with more advanced capabilities. The complete ArchestrA system consisting of a single logical name space (defined by the Galaxy Database) and a collection of Platforms. Galaxy Repository The software sub-system consisting of one or more Galaxy Databases. Engine Object An ArchestrA system enabled object that contains Local Message Exchange and provides a host for Application objects. where an object called Tank1 contains the OutletValve object. an acknowledgement is made. used to compress and store high volumes of time series data for latter retrieval. Built with the ArchestrA DAS Toolkit. For instance. The resulting . This is referred to as the Galaxy Namespace. the standard Historian is IndustrialSQL Server. Instances. such as rectangles. The Galaxy Database Manager is part of the System Management Console (SMC). Graphic Toolbox The part of the IDE main window that shows a hierarchy of graphic toolsets. FS Gateway can be used to link clients and data sources that communicate using different data access protocols. an analog crosses its high level limit.OutletValve. Device Integration objects and Area objects. lines. which contain ArchestrA Symbols and client controls.A-6 Appendix A – Wonderware Application Server Glossary Element Basic shapes. Export The act of generating a Package file (. (Example: a Platform instance is a Host for an AppEngine instance). Event Record The data that is transferred about the system and logged when a defined event changes state (for instance. Galaxy The entire application. Engines and objects. Security. For the Wonderware Application Server. Galaxy Database The relational database containing all persistent configuration information like Templates. and text elements. Hierarchical Name The name of the object in the context of its container object. FactorySuite Gateway FactorySuite Gateway is a Microsoft Windows application program that acts as a communications protocol converter.aaPKG file can be imported into another Galaxy through the IDE import mechanism. in a Galaxy Repository.aaPKG file extension) from persisted data in the Galaxy Database. Wonderware Training . Galaxy Database Manager The Galaxy Database Manager is a utility you can use to manage your Galaxies. One or more networked PC’s that constitute an automation system. etc. It can back up and restore Galaxies should they become corrupted or to reproduce a Galaxy on another computer. or an operator logs in to the system). Historical Storage System (Historian) The time series data storage system. Host The parent instance of a child instance in the deployment view. GalaxyObject The object that represents a Galaxy. Tank1. and controls you can use to create an ArchestrA Symbol to your specifications. create object instances. Live Mode An action in ActiveFactory that enables the configuration of a Runtime application to be refreshed at a designated interval. Wonderware Application Server Refers to the Wonderware A2 Supervisory Control Platform. (b) by real I/O in the system. I/O count is based on the number of I/O points that are configured through an OPC Server.0 for visualization with the addition of Platforms to the visualization node. In addition. It is used to manage templates. DA Server or InTouch Proxy Object. Industrial SQL as its historian. I/O points are real I/O and are not equivalent to InTouch tags. commonly known as the Application Server. An Application Server can be distributed across multiple computers as part of a single Galaxy Namespace. and the device Integration product line (I/O Servers) for device communications. Message Exchange The object to object communications protocol used by ArchestrA and the Wonderware Application Server.aaPKG File and using it to create AutomationObject instances and Templates in the Galaxy Repository. and (c) the number of Terminal Services sessions. The Wonderware Application Server is sized by (a) the number of Workstation / Server Platforms.Appendix A – Wonderware Application Server Glossary Import The act of reading a . The Application Server license is per Galaxy. which is a unique representation of a template that can exist in runtime. InTouch View InTouch View Clients are InTouch Runtime Version 8.Part 1 A-7 . The Wonderware Application Server reduces these costs through the use of a component object-based development environment and automated change propagation capabilities.0 runtimes can leverage the Wonderware Application Server with the addition of a Platform license.0 or InTouch View v8. deploy and un-deploy objects and a host of other functions associated with the development and maintenance of the system. Instance An object. I/O Server. The Wonderware Application Server is designed to leverage existing Wonderware products such as InTouch for visualization. over the whole Application Server Namespace. standard InTouch v8. Integrated Development Environment (ArchestrA IDE) The Integrated Development Environment (IDE) is the user interface for the configuration side of Application Server. I/O Count Number of I/O points being accessed into the Galaxy. System Platform . The Wonderware Application Server uses InTouch v8. Instantiation The creation of a new object instance based on a corresponding Template. regardless of how many PCs are in the system. It is only available as part of the Wonderware A2 Development License. Log Viewer A Microsoft Management Console (MMC) snap-in that provides a user interface for viewing messages reported to the LogViewer.0 clients that solely use of the Wonderware Application Server for its data source. Life Cycle Cost The cost of a Supervisory Control System attributed to initial development. Model View The part of the Applications View in the IDE that shows how objects are arranged to describe the physical layout of the plant and supervisory process being controlled. application changes and on-going maintenance. OnScan The state of an Object in which it is performing its normal runtime processing based on a configured schedule. Wonderware Training . consisting of a system wide message exchange component and a set of basic services. Package Definition File (. This object hosts all Application Engines. Modifications can include adjusting timing parameters and setting objects in an execution or idle mode. See Redundancy for further detail. A Platform License includes a per seat FSCAL2000 with Microsoft 2000 SQL Server CAL.aaPDF) The standard description file that contains the configuration data and implementation code for a base template. A common characteristic of all objects is they are stored as separate components in the Galaxy Repository.aaPDF. Stand-alone computers that only host Historian Servers or remote DA Servers do not need a platform license.aaPKG) The standard description file that contains the configuration data and implementation code for one or more object instances or Templates. you can also modify some of it’s attributes for diagnostic testing. Object Viewer A utility in which you can view the attribute values of the selected object in run-time. Actions include setting platforms and engines in an executable or idle mode and starting and stopping platforms and engines. Each Workstation and/or Server communicating directly with the Application Server requires a platform to be part of the Galaxy Namespace. This utility is an extension snap-in to the ArchestrA System Management Console (SMC). File extension is .A-8 Appendix A – Wonderware Application Server Glossary Object Any template or instance found in a Galaxy Database. PLC Programmable logic controller.aaPKG. Primary Application Engine The object created by the ArchestrA infrastructure when the Backup object has been created through Redundancy. They include Scripts. Platform Count Number of PCs in the Galaxy. This includes each InTouch 9. Package File (. data quality and the communication status of the object. Each InTouch Terminal Services Session needs IAS Terminal Services Session License. Object Extensions The capability to add additional functions to an Automation Object while not altering the objects original behavior.0 or higher client. resource consumption and reliability measurements. OffScan The state of an Object that indicates it is idle and not ready to execute its normal runtime processing. File extension is . Platform Object An object that represents a single computer in a Galaxy. Object Viewer provides the user with diagnostic information on Application Objects for the purpose of detecting performance parameters. In addition to viewing an object’s data value. This utility is only available when an object is deployed. User Defined Attributes (UDAs) and Attribute Extensions. Can be added to derived templates and object instances.0 or higher and InTouch View 8. Platform Manager The Platform Manager provides Galaxy application diagnostics by allowing you to view the runtime status of some system objects and to perform actions upon those objects. Remote Reference The ability to redirect ArchestrA object references or references to remote InTouch tags. that is. it is the DIObject you intend to use first as your data source in the run-time. there is a Proxy Object that enables the Wonderware Application Server to access an OPC server. Each engine also uses this Message Channel to provide its health and status information to the other. such as name. For AppEngines. they function as standalone objects. and data type. For AppEngines. it is the DIObject you do not intend to use first as your data source in the run-time. z Standby object: The passive object. it is the object that is hosting and executing ApplicationObjects. it is the object that monitors the status of the Active AppEngine. history. The RMC is vital to keep both engines synchronized with alarms. it is the object that is providing field device data through the RedundantDIObject. Redundancy During Configuration z Primary object: The object intended as the main or central provider of the functionality in the run-time. For AppEngines. For data acquisition. During Run-Time z Active object: The object that is currently executing desired functions. it is the object created by the ArchestrA infrastructure when the Primary object has been enabled for redundancy. it is the object you enable for redundancy. and checkpoint items from the engine that is in the Active Role. z Backup object: The object that provides the functionality of the Primary object when it fails. it is the object that is not providing field device data through the RedundantDIObject. Proxy Object A Proxy Objects is an Automation Object that represents an actual product for the purpose of device integration with the Wonderware Application Server or InTouch® HMI.Part 1 A-9 . it is waiting for a failure in the Active object’s condition or for a force-failover. For data acquisition. For example.Appendix A – Wonderware Application Server Glossary Properties Data common to all attributes of objects. Examples of these keywords are "Me". Relational Reference A reference to an object’s attributes that uses a keyword in place of an object's tagname. Runtime The InTouch (WindowViewer) function that provides the viewing of data from the configuration of the application in InTouch development (WindowMaker). Redundant Message Channel The Redundant Message Channel (RMC) is a dedicated Ethernet connection which is required between the platforms hosting redundant engines. The new script function used to redirect remote references at runtime is IOSetRemoteReferences. System Platform . Reference A string that refers to an object or to data within one of its attributes. individual DIObject data sources do not have redundancy-related states. These keywords allow a reference to be made by an object's relationship to the target attribute. For data acquisition. and "MyContainer". value. For AppEngines. Redundant DI Object The RedundantDIObject monitors and controls the redundant DIObject data sources. quality. For data acquisition. Unlike redundant AppEngines. "MyPlatform". For all intents and purposes. the operating system. for a given object.InletValve.Tank1. Scan State The Scan State of an object in run-time. WinPlatform object An object that represents a single computer in a Galaxy. the user must define these attributes and associated logic. In addition. These roles can be mapped directly to existing groups in a Microsoft Domain or workgroup. They are created from a graphic in an InTouch window that has been made into a cell and converted into a SmartSymbol. a set of basic services. System Management Console (SMC) The central runtime system administration/management user interface in which all required runtime administration functions can be accomplished. TagName The unique name given to an object.A-10 Appendix A – Wonderware Application Server Glossary Scan Group A DAGroup that requires only the update interval be defined and the data will be retrieved at the requested rate. Wonderware Training . This object hosts all AppEngines. enabling companies to standardize on graphics throughout the entire organization. SmartSymbols SmartSymbols are objects that integrate object-oriented technology with InTouch graphics to transform them into reusable templates. Changes made to the templates automatically propagate throughout an application – even across multiple networked PC nodes. For instance. Platform or Engine. Toolset A named collection of Templates displayed together in the IDE Template ToolBox. the System Management Console (SMC). Security Wonderware Application Server security is applied to the ArchestrA IDE. and the physical hardware. At the runtime data level which centralizes the definition of all permissions to the ApplicationObjects. Template An object containing configuration information and software templates used to create new Derived Templates and/or Instances. libraries of SmartSymbols can be exported to other applications and plants. which contain object templates. and the runtime data level. This template does not have any application-specific attributes or logic. its TagName = V1101 and its HierarchicalName = Line1. User Defined Attributes (UDA) The purpose of a User Defined Attribute is to allow users to add new functionality to an object. Therefore. An attribute which is added to an object at configuration time UserDefined object An AutomationObject created from the $UserDefined template. System Objects Objects that represent an Area. The Template Toolbox contains a tree view of template categories in the Galaxy. The users that are allowed to modify these ApplicationObjects at runtime are mapped to the objects by user defined roles. This can be either off-scan or on-scan. Template Toolbox The part of the IDE Main Window that hosts template toolsets. consisting of a system-wide message exchange component. These ApplicationObjects can be accessed by a variety of clients but the security is centrally defined allowing ease of maintenance. Appendix B Plant Model Planning Diagrams . B-2 Appendix B – Plant Model Planning Diagrams – Intentionally left blank – Wonderware Training . B-3 The Plant Model Planning Diagrams are displayed on the following pages.Part 1 . System Platform . B-4 Appendix B – Plant Model Planning Diagrams Wonderware Training . B-5 System Platform .Part 1 . B-6 Appendix B – Plant Model Planning Diagrams Wonderware Training . B-7 System Platform .Part 1 . B-8 Appendix B – Plant Model Planning Diagrams – Intentionally left blank – Wonderware Training .