Automation College Experion PKS: Control Execution Environment CAB + ACE Implementation EXP-16 R501 Student Guide Rev 00.1 04/2018 Book 1 of 1 . Notices While this information is presented in good faith and believed to be accurate, Honeywell assumes no responsibility for any errors that may appear in this courseware. The courseware is presented on an “as-is” basis. Honeywell disclaims the implied warranties of merchantability and fitness for a particular purpose, and makes no express warranties except as may be stated in its written agreement with and for its customer. In no event is Honeywell liable to anyone for any indirect, special or consequential damages even if Honeywell is informed of the possibility of these damages. The information and specifications in this courseware are subject to change without notice. No part of this courseware may be reproduced or transmitted in any form or by any means. It is intended for the use of the original purchaser only. Copying, duplicating, selling or otherwise distributing the courseware is a violation of law. The materials and workbooks comprising the courseware may not, in whole or part, be copied, photocopied, reproduced, translated or reduced to any electronic medium or machine-readable form without prior consent in writing from Honeywell. This courseware is the confidential and proprietary information of Honeywell. The courseware may only be used by the person who attended the Honeywell class. The courseware may only be used in conjunction with a Honeywell system at the company that paid for the class. Only Honeywell may use the courseware for training purposes. This class has special equipment configurations that are appropriate only for training and should not be used for any other purpose. Experion, Da Vinci, IntelliMap, MXOpen, MXProLine, TotalPlant, PlantScape, TDC 3000, Uniformance, Universal Control Network, RTU2020, and ControlEdge PLC are registered trademarks of Honeywell International. These commodities, technology or software were exported from the United States in accordance with the Export Administration Regulations. Division contrary to U.S. law prohibited. Copyright © 2018 Honeywell Inc. Honeywell International, Inc. Automation College Global Learning Services Program Objectives EXP-16 R501 Tab 1 Lesson Introduction Objectives Course Introduction Custom Algorithm Block Overview Custom Data Block Overview Explain CAB Documentation Structure 2 CDB Definition and Design Custom Data Block Configuration Overview Build a Custom Data Block 3 Introduction to CDB Labs Create a New CDB Type Create New CDB Using an Existing CDB Type 4 CAB Definition and Design CAB Configuration Overview Build the Custom Algorithm Block Describe Execution Modes in CAB Define Access Levels and Access Locks Describe CDP and Parameter Reference Attributes Describe the Support of CAB on C300 5 Introduction to VB .NET IDE 6 Introduction to CAB Labs Introduction to VB .NET IDE Create a New CAB Type Open New Block Type for Edit Create a CAB Instance Configure Parameter References Tab Modify a Custom Algorithm Block 7 Configure Insertion Points Describe Insertion Points Create a CAB Block as Insertion Point to a REGCTL Block Create a CAB without Insertion Point Create a CAB with Insertion Point 8 Special Considerations Describe Special Considerations for CAB on C300 9 10 ACE Concepts (ACE Only) Examine ACE and Sim-ACE Functionality Describe Support Availability of ACE Describe ACE-T Describe Execution Order of Points Describe Inter-Cluster Peer-Peer Communication Configure Inter-Cluster Peer-Peer Communication (Reference Only) Read/Write a TPS Point Using ACE-T (Reference Only) CAB - Additional Programming Considerations (ACEOnly) Describe Additional Math Functions within VB.Net Describe CAB Time Settings Honeywell Confidential and Proprietary Page: 1 of 2 2018/04/16 Program Objectives Describe Additional Execution Mode Considerations in ACE Configure CAB using Time and Math Functions 11 Configure Dynamic Re-Referencing (ACE Only) Describe Dynamic Re-Referencing Configure CAB for Dynamic Re-Referencing 12 Test and Debug CAB (ACE Only) Test and Debug CAB Test and Debug CAB 13 Access History Using a CAB (ACE Only) Describe History Access Using CAB Configure CAB Block for History Access 14 Access File Using a CAB (ACE Only) Describe File Access with Read/Write Functionality Using CAB Configure CAB Block for File Access with Write Functionality Configure CAB Block for File Access with Read Functionality 15 Manage Custom Algorithm Blocks (ACE Only) Manage Custom Algorithm Blocks Describe QVCS Operations for CAB and CDB Export and Import a CAB Verify Instance and Recover Source Code Perform Basic QVCS Operations Using CAB 16 Planning CAB and CDB (ACE Only) Hardware Requirements for CAB and CDB Design the Usage of the CAB Design the Usage of the CDB Describe Planning Required for QVCS Describe Migration and Interoperability 17 Migrate a CL Program to CAB (ACE Only) Describe How to Migrate a CL Program to CAB Migrate a CL Program to CAB 18 Troubleshooting CAB and CDB (ACE Only) Troubleshooting CAB and CDB ACE Node Behavior for Some Critical Problems 19 Final Project Create a CAB to Calculate Feed Enthalpy Honeywell Confidential and Proprietary Page: 2 of 2 2018/04/16 Course Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. Introduction 1 Course Introduction 4/17/2018 Purpose of this Course • As its main focus, this course gives you the information to implement and deploy Custom Algorithm Blocks • At the end of this course, you will be able to: – – – – – Introduction Become familiar with ACE functionality Configure CABs Configure CDBs Configure an OPC Gateway Configure an Inter Cluster Gateway Honeywell Confidential Copyright © 2018 Honeywell International Inc. 2 1 Course Introduction 4/17/2018 Who Should Attend • Engineers responsible for configuration of CABs • Plant personnel whose job functions include supporting ACE and C300 nodes • You should have the following skills to be effective in creating CABs and CDBs: – – – – Familiarity with the basic principles of control systems Familiarity with the architecture and functionality of the Experion system Good working knowledge of the Experion Control Builder application Proficiency in Microsoft Visual Basic .NET programming (for CABs only) Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 3 Course Introduction 4/17/2018 Course Scope • The following topics are outside the scope of this course: – OPC server implementation – VB .NET programming – Windows system administration – C300 Controller operations Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 4 2 Course Introduction 4/17/2018 Course Organization • The course is presented with: – Descriptions of concepts and tasks related to building CABs • Instructor-delivered sessions – Hands-on lab exercises with step-by-step instructions • You are assigned a system consisting of a SIM-ACE, SIM-C300, Flex Station, and server Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 5 Course Introduction 4/17/2018 Conclusion Course Introduction Completion Certificate Proceed to the next module in your course material Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 6 3 Course Introduction 4/17/2018 Custom Algorithm Block Overview Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 7 Custom Algorithm Block Overview 4/17/2018 What is a Custom Algorithm Block? • CAB - Custom Algorithm Block • CABs are similar to “native” Control Builder function blocks in both purpose and structure Example native function block CAB function block • CAB function blocks let you define both the algorithm and the data structure of the function block • CABs can be used in ACE and C300 with 50 mSec and 20 mSec both • Native blocks derive their pre-defined algorithm, parameters and variables from ERDB • You create the CAB algorithm, parameters and variables Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 8 4 Custom Algorithm Block Overview 4/17/2018 Native Function Block versus CAB MSVS algorithm Library definition for algorithm MSVS variables ERDB variables Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 9 Custom Algorithm Block Overview 4/17/2018 Why Use a CAB? • Create custom control algorithms with custom parameters when a “native” function block is insufficient • Migrate custom control applications from another platform to Experion: – For Example: Migrating AM/CL (Application Module/Control Language) programs from an Application Module in a TDC System to ACE Node in an Experion System • CAB development requires a CAB developer license from Honeywell Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 10 5 Custom Algorithm Block Overview 4/17/2018 Conclusion Custom Algorithm Block Overview Completion Certificate Proceed to the next module in your course material Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 11 Custom Algorithm Block Overview 4/17/2018 This page intentionally left blank Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 12 6 Custom Algorithm Block Overview Custom Data Block Overview Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 13 Custom Data Block Overview 4/17/2018 What is a Custom Data Block (CDB)? • CDB - Custom Data Block • The CDB allows the creation of custom parameters that can be both written to and read from by other control modules in the Experion environment • The CDB is similar to the CAB in design with the exceptions being the CDB does not support: – Custom Algorithms – Parameter References • CDBs can reside in ACE, C300, and C200/C200E Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 14 7 Custom Data Block Overview 4/17/2018 Why Use a CDB? • CDBs can be used in conjunction with both “native” Control Builder function blocks and CABs • CDBs are used when you need to create custom parameters which can be accessed by other Control Modules (CMs) in Experion • CDBs are standard with Control Builder and do not require a license Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 15 Custom Data Block Overview 4/17/2018 Example CDB Usage Scenarios • Hold data that characterizes temperature at one position within one Plug Flow Reactor (PFR) zone – Refer to the topic, “CDB to hold sensor data,” in the Custom Algorithm Block and Custom Data Block User’s Guide • Transfer an array of temperature and position readings for processing in CAB – Refer to the topic, “CDB to consolidate array data,” in the Custom Algorithm Block and Custom Data Block User’s Guide • Display data from other systems – Use OPC Gateway to collect OneWireless sensor data and monitor from CDB Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 16 8 Custom Data Block Overview 4/17/2018 Conclusion Custom Data Block Overview Completion Certificate Proceed to the next module in your course material Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 17 Custom Data Block Overview 4/17/2018 This page intentionally left blank Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 18 9 Custom Data Block Overview Explain CAB Documentation Structure Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 19 Explain CAB Documentation Structure 4/17/2018 CAB Documentation • Your main guide is the Custom Algorithm Block and Custom Data Block User’s Guide in PDF collection: – Experion R501.1 PDF Collection > Configuration > Custom Algorithm Block and Custom Data Block Users guide Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 20 10 Explain CAB Documentation Structure 4/17/2018 Related Experion References Experion references you may need to use CAB and ACE include: • Custom Algorithm Block and Custom Data Block User's Guide – Supports CAB and CDB configuration • Control Builder Components Theory – Supports insertion points • Parameter Definition Editor Reference – Supports PDE tasks • Application Control Environment User Guide – Supports ACE • SIM-ACE User Guide – Supports CAB algorithm off-process debugging • Application Control Environment User Guide – Defines requirements • C300 Controller User Guide – Supports C300 • Qualification and Version Control User Guide – Provides information about QVCS support for custom blocks Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 21 Explain CAB Documentation Structure 4/17/2018 Conclusion Explain CAB Documentation Structure Completion Certificate Proceed to the next lesson in your course material Introduction Honeywell Confidential Copyright © 2018 Honeywell International Inc. 22 11 Explain CAB Documentation Structure 4/17/2018 This page was intentionally left blank. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary Custom Data Block Configuration Overview CDB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 1 Custom Data Block Configuration Overview 4/17/2018 Configuration Overview • CDB Configuration involves: – Creating the CDB Type in a custom library – Adding the CDB to a Control Module (also known as “Instantiating”) CDB Instance CDB Type CDB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 2 1 Custom Data Block Configuration Overview 4/17/2018 CDB Characteristics • You define Custom Data Parameters (CDPs) for the CDB • Unlike a CAB, a CDB does not use custom algorithms or parameter references CDB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 3 Custom Data Block Configuration Overview 4/17/2018 Custom Data Parameter (CDP) • Maximum limit of 2800 • Configure CDPs in Control Builder • CDPs are variables, visible within the program and within Experion, as a whole – They are “public” in that any agent that has access to the Experion Name Space can read them – Similarly, CDPs can be written by any Experion agent subject to stored access checks specified by the Block Designer • Note: Array Parameters count as one parameter no matter how many elements there are CDB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 4 2 Custom Data Block Configuration Overview 4/17/2018 Conclusion Custom Data Block Configuration Overview Completion Certificate Proceed to the next module in your course material CDB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 5 Custom Data Block Configuration Overview 4/17/2018 This page intentionally left blank CDB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 6 3 Custom Data Block Configuration Overview Build a Custom Data Block CDB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 7 Build a Custom Data Block 4/17/2018 Build the CDB • Launch the CDB Development Environment from Control Builder CDB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 8 4 Build a Custom Data Block 4/17/2018 Build the CDB • Once the CDB Development Environment launches, you – Create a new custom library name or access an existing custom library, and – Create a new CDB block name Custom Library Name Block Type Name CDB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 9 Build a Custom Data Block 4/17/2018 Build the CDB • After specifying the library and block names for your CDB – The Parameter Definition Editor opens, and – You define Custom Parameters from the Value CDPs tab CDB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 10 5 Build a Custom Data Block 4/17/2018 Custom Parameter Tab Attributes Parameter Attribute Valid values Parameter Name First character of the parameter name should be an alpha character. Only "_" character is allowed in the parameter name other than alphanumeric characters The maximum length is 12 characters The parameter name will always convert to upper case Parameter Description Any character with maximum length of 255 First Dimension Array Size >= 0 and <= 10,000 0 - means parameter is not arrayed Second Dimension Array Size >= 0 and <= 10,000 0 - means second dimension is not specified Specify first dimension array size to enter the second dimension array size CDB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 11 Build a Custom Data Block 4/17/2018 Custom Parameter Tab Attributes First Dimension Lower bound Positive/Negative INT16 value Specify first dimension array size to enter this attribute Second Dimension Lower bound Positive/Negative INT16 value Specify second dimension array size to enter this attribute Configuration Load LOAD - Load the parameter value NOLOAD - Do not load the parameter value Access Lock APPDEVONLY ENGINEER OPERATOR PROGRAM SUPERVISOR CDB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 12 6 Build a Custom Data Block 4/17/2018 Custom Parameter Tab Attributes Data Type BOOLEAN DELTATIME FLOAT64 INT32 STRING TIME TIMEOFDAY Default Value Specific to data type attribute Minimum Value Specific to data type attribute Maximum Value Specific to data type attribute Size >= 0 Parameter Help String No limit CDB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 13 Build a Custom Data Block 4/17/2018 Conclusion Build a Custom Data Block Completion Certificate Proceed to the next lesson in your course material CDB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 14 7 Build a Custom Data Block 4/17/2018 This page was intentionally left blank. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary Topic: Introduction to CDB Labs Contents Create a New CDB Type .......................................................................................................................3 Create New CDB Using an Existing CDB Type ..................................................................................13 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 1 This page was intentionally left blank. 2 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CDB Labs Create a New CDB Type Create a New CDB Type Objectives Create a CDB. Configure a single variable in CDB. Utilize the CDB within a CM, as a storage for Totalizer output. Download the containing CM to the server. Monitor the CDB online, and verify storage function of a CDB. Prerequisites Experion PKS Server with Configuration Studio installed. Introduction This lab can be performed with either the SIM-ACE or the SIM-C300, at load time you can choose either controller. The purpose of the lab is to explore the functionality of a CDB as it can store user-defined variable(s). The functionality is the same as that performed by numeric block, but since this is a user-defined block, the storage variable type can be a selection of available data types within the CAB structure. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 3 Introduction to CDB Labs Create a New CDB Type Step 1 Action Open Configuration Studio. Click on Start and select Honeywell Experion Tools > Configuration Studio 2 In the Connect window, select the System representing your assigned system. Click Connect. ATTENTION Ask your instructor if you are not sure which server or system to select. 4 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CDB Labs Create a New CDB Type Step 3 4/15/2018 Action From Configuration Explorer, choose Control Strategy, then Select Configure process control strategies. Result: Control Builder opens. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 5 Introduction to CDB Labs Create a New CDB Type Step 4 6 Action In Control Builder, select File > New > Type > Custom Data Block Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CDB Labs Create a New CDB Type Step 5 Action Enter the following details in the Block Type dialog (where ## appears, enter your assigned Team number): Custom Library Name: TEAM##_CDB Block Type Name: FLOW_RATE Click OK. 6 Under the Value CDPs tab enter the following details: Parameter Name: FLOWRATE_A Parameter Description: Flow from Flow_CDP Data Type: Float64 First Dimension Array Size: 0 Access Lock: Operator Configuration Load: Load Result: The parameter FLOWRATE_A can be changed on the function block in Project and/or Monitoring because the Configuration Load selection is “Load” and Access Lock is Operator. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 7 Introduction to CDB Labs Create a New CDB Type Step 7 Action Click on the Symbol Attribute tab and using the Parameter Picker ( FLOWRATE_A. ), select Enter the following details: Input Top Pin: 0 Monitor Face: 0 Result: When you add the CDB Flow_Rate to a Control Module, the parameter FLOWRATE_A will appear as an input pin and on the function block in Monitoring. 8 Close the CDB. 8 Click Yes to save CDB. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CDB Labs Create a New CDB Type Step 9 Action Create a new Control Module with the following properties: Tag Name: FLOWRATE_TEAM## Item Name: FLOWRATE_TEAM##_ITEM Parent Asset: Training and click OK. 4/15/2018 10 Add NUMERIC and TOTALIZER blocks to the chart and wire them. Also add the Flow_Rate CDB to the Control Module. 11 Double-click the NUMERICA block and enter Actual Value of 1. Click OK. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 9 Introduction to CDB Labs Create a New CDB Type Step 12 10 Action Wire the TOTALIZERA block to the FLOWRATE_A pin of the FLOW_RATEA CDB block. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CDB Labs Create a New CDB Type Step Action 13 Save changes to the Control Module (CM) and assign it to the CEE of the ACE or C300. 14 Download and activate Control Module FLOWRATE_TEAM##. Double-click the CM in the Monitoring tab to open its monitoring Chart. 15 Double-click on the COMMAND function of TOTALIZERA block. Command the state to RESET then START. Result: The STATE of TOTALIZERA block changes to RUNNING. 16 Check that the Control Module is working correctly in Control Builder and Station. Result: Totalizer values increment. ATTENTION Change the station security level to mngr. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 11 Introduction to CDB Labs Create a New CDB Type This page was intentionally left blank. 12 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CDB Labs Create New CDB Using an Existing CDB Type Create New CDB Using an Existing CDB Type Objectives Create a new CDB using the existing CDB you had created in the previous lab. Prerequisites Experion PKS server with Configuration Studio installed. Introduction In this lab, you create a new CDB using the existing CDB which was created in the previous lab. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 13 Introduction to CDB Labs Create New CDB Using an Existing CDB Type Step 1 Action Open the FLOW_RATE CDB you just created and Add the following information under the Value CDP tab: Parameter Name: Flowrate_B Parameter Description: Flow from Flow_B Data type: Float 64 Access Lock: Operator Configuration Load: Load ATTENTION In the lab exercise, the Access Lock of operator is used for training convenience. At your site, you may want to consider using higher access levels for your custom parameters. 2 3 Click on the Symbol Attribute tab and enter the following details: Parameter: Flowrate_B Input Top Pin: 3 Monitor Face: 3 Click File > Save As and enter the following details: Custom Library Name: Team##_CDB Block Type Name: FLOWRATE_V1 Click OK and close the CDB. Result: A new CDB Type appears in the library Team##_CDB. 4 14 Open Control Module FLOWRATE_TEAM## in Project of Control Builder. Delete the old CDB block. Add the new Flowrate_V1 CDB block. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CDB Labs Create New CDB Using an Existing CDB Type Step 4/15/2018 Action 5 Add another TOTALIZER block and set the Scale Factor to 2. 6 Wire the TOTALIZERA and TOTALIZERA_1 blocks to the FLOWRATE_V1A block as shown. 7 Close and Save the Control Module FLOWRATE_TEAM##. 8 Download and Activate the Control Module FLOWRATE_TEAM##. Command the two TOTALIZER blocks to RESET and then START. 9 Ensure that the CM is totalizing from Control Builder Monitoring view or from Station. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 15 Introduction to CDB Labs Create New CDB Using an Existing CDB Type This page was intentionally left blank. 16 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 CAB Configuration Overview Honeywell Confidential Copyright © 2018 Honeywell International Inc. CAB Definition and Design 1 CAB Configuration Overview 4/17/2018 Configuration Overview • Create a CAB Type – Same concept as a “class” in object-oriented software terminology CAB Instance • Create an instance from the CAB type – Same concept as “objects” in object-oriented software terminology CAB Type CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 2 1 CAB Configuration Overview 4/17/2018 CAB Development Environment • Use 2 tools to build a CAB – the PDE and Microsoft Visual Studio .NET CABs define their control specific data types or variables within the PDE. CABs have all their data types; visible to the Experion user Parameter Definition Editor CABlock.vb CABs have their algorithms defined within the CABlock. These algorithms are defined in .NET language CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 3 CAB Configuration Overview 4/17/2018 CAB Development Environment A Custom Data Parameter (CDP) data type can be • Displayed as a block pin • Used within the algorithm CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 4 2 CAB Configuration Overview 4/17/2018 CAB Code • Algorithms are defined in the CABlock.vb tab of the MSVS Development Environment within Control Builder CABlock.vb Tab Execute() Subroutine Execute() is a single subroutine that forms the user-supplied interface for all CABs. It is known to the wider CEE environment. • Called whenever the containing CEE is in Run and the parent CM is Active. • Can read and write to CDPs, block scope variables, and local variables as needed. • Makes reference to parameters owned by other block instances through the use of CAB Parameter References. • Can send messages and make use of other CEE-specific APIs. CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 5 CAB Configuration Overview 4/17/2018 CAB Data Type Categories • Data type categories within CAB are the following: – Fixed Definition Parameters (FDP) – Custom Data Parameters (CDP) – Parameter References – Block Scope Variables – Local Variables • Data type categories within CAB differ according to persistence, visibility, and storage CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 6 3 CAB Configuration Overview 4/17/2018 Fixed Definition Parameters (FDP) • FDPs are Honeywell defined and not available for definition by users, although users can read them and write to some of them • Maximum limit is 200 – Approximately 50 are currently in use with 150 more reserved for future use • The platform option parameter, X_PLATOPT, is set to ACEANDC300 CABs that run in ACE and C300 • Some parameters appear on the Fixed tab of the PDE – You can specify a default value CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 7 CAB Configuration Overview 4/17/2018 Custom Data Parameters (CDP) • Maximum limit of 2800 for ACE and 1500 for C300 • Configured on the Value CDPs tab of the Parameter Definition Editor • CDPs are visible within CAB and within Experion – CDPs are "public" in that any agent that has access to the Experion name space can read them – Similarly, CDPs can be written by any agent subject to store access checks specified by the block designer • Note: Array parameters count as one parameter no matter how many elements they have CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 8 4 CAB Configuration Overview 4/17/2018 Custom Data Parameter – Additional Considerations • Do not use names that begin with “X_” when naming your CDPs • Honeywell names its new FDPs with names that begin with “X_” (for example, X_EXECMODE) – The “X_” naming convention restriction is PDE enforced – Ensures that Honeywell will not conflict with a name used as a CDP CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 9 CAB Configuration Overview 4/17/2018 Parameter References • Parameter References : – Process control data elements that exist external to the CAB, but – Values can be used within the CAB • Configured on the Parameter References tab of PDE • Defined on Configuration form • CAB on C300 supports only static Parameter References – CAB on ACE supports both static and dynamic Parameter References CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 10 5 CAB Configuration Overview 4/17/2018 Block Scope and Local Variables • Variables that are visible only within the CAB program • Block Scope variables are persistent and retained across block executions • Local variables – Declared within the Execute() subroutine – Values are not persistent from one block execution to the next CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 11 CAB Configuration Overview 4/17/2018 Conclusion CAB Configuration Overview Completion Certificate Proceed to the next module in your course material CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 12 6 CAB Configuration Overview 4/17/2018 Build the Custom Algorithm Block CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 13 Build the Custom Algorithm Block 4/17/2018 Build the CAB • To build the CAB – Select New > Type > Custom Algorithm Block – Control Builder launches the development environment – Development environment is called the Integrated Development Environment (IDE) CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 14 7 Build the Custom Algorithm Block 4/17/2018 Build the CAB • Once the CAB Development Environment launches, you – Create a New Custom Library Name or access an existing Custom Library, and – Create a new CAB Block Name Custom Library Name Block Type Name CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 15 Build the Custom Algorithm Block 4/17/2018 Build the CAB • After specifying the Library and Block Names for your CAB – The Parameter Definition Editor opens, and – You define Custom Parameters from the Value CDPs tab CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 16 8 Build the Custom Algorithm Block 4/17/2018 Enter CAB Code • After defining parameters – Select the CABlock.vb tab – The CABlock.vb tab contains the framework of Honeywell-supplied code with no executable statements • Insert the code for your algorithm under Public Overrides Sub Execute() CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 17 Build the Custom Algorithm Block 4/17/2018 Save your CAB • Types of Save CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 18 9 Build the Custom Algorithm Block 4/17/2018 Conclusion Build the Custom Algorithm Block Completion Certificate Proceed to the next module in your course material CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 19 Build the Custom Algorithm Block 4/17/2018 This page intentionally left blank CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 20 10 Build the Custom Algorithm Block Describe Execution Modes in CAB CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 21 Describe Execution Modes in CAB 4/17/2018 Overview • You can configure CAB to execute in either of the two modes – Atomic Execution Mode – Distributed Execution Mode • In the Atomic Execution Mode, the algorithm must complete execution within 250 milliseconds for ACE (which is one half of ACE base execution cycle) – Execution time limit for CAB Blocks running in C300 is based on an internally maintained count of backward branches and subroutine calls – Default mode – Used where the program must complete its execution when scheduled – Examples: calculate a PV, calculate temperature zone statistics • In Distributed Execution Mode, algorithm execution is allowed to span multiple ACE base execution cycles – Similar in concept to Background CL in AM – Examples: history, file I/O, CABs that require long computations – This mode is not supported in CAB Bocks running on C300 Controller CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 22 11 Describe Execution Modes in CAB 4/17/2018 Execution Mode Configuration • Execution mode is determined by the X_EXECMODE – Configured in the PDE on the Fixed tab – Value of this parameter cannot be changed in a CAB instance CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 23 Describe Execution Modes in CAB 4/17/2018 Atomic Execution Mode in C300 • In CAB/C300, the Execution Time Limit is based on internally maintained count of backward branches and subroutine calls – An instance is terminated if an activity counter exceeds the limit configured for the block type – This limit is provided in the X_BRANCHLIM parameter • Specifies the maximum count of backward branches and subroutine calls allowed before the CAB instance is terminated • X_BRANCHLIM has a default value of 10 and a maximum value of 1000 – Using a value higher than 10 requires a clear understanding of both the CAB algorithm and the configuration load of the C300s where the CAB is to be used CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 24 12 Describe Execution Modes in CAB 4/17/2018 Distributed Execution Mode • This mode is not supported for CAB running in C300 • In the Distributed Execution Mode, the CAB executes in a process (CAB client process) different from ACE Base Execution Process and a no limit execution time – Distributed Mode Execution is required for CAB Blocks which perform file I/O or history access but can be configured for any CAB when extended execution is required • A Distributed Mode CAB is terminated if the parent CM is inactivated or CEE goes to IDLE while the CAB is executing • CAB Programs, to be used as insertion point algorithm, cannot execute in the Distributed Mode – Such CAB Blocks must be configured for Atomic Execution CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 25 Describe Execution Modes in CAB 4/17/2018 Conclusion Describe Execution Modes in CAB Completion Certificate Proceed to the next module in your course material CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 26 13 Describe Execution Modes in CAB 4/17/2018 Define Access Levels and Access Locks CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 27 Define Access Levels and Access Locks 4/17/2018 Setting the Access Level of a CAB Block • The Access Level of a CAB Block is set under the Fixed tab of the Parameter Definition Editor in the CAB Type configuration CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 28 14 Define Access Levels and Access Locks 4/17/2018 CAB / CDB Access Locks • The Access Lock of a CDP determines which external agents can initiate stores to the parameter – CDPs are defined on both CABs and CDBs CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 29 Define Access Levels and Access Locks 4/17/2018 CAB / CDB Access Levels • The user configures “Access Level” for each CDP (Fixed tab) when the CDP is created CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 30 15 Define Access Levels and Access Locks 4/17/2018 CAB Access Locks - Example • • • • Access Lock is configured in Value CDPs tab of PDE If we set Access Lock = Engineer, then a user logged on with engineering privileges using a Station Display, can store to the CDP Users logged with only supervisor or operator privileges and using the same display cannot store to the CDP Supervisory Batch or Continuous Control applications can store to the CDP, as can any CEE Function Blocks with the capability to initiate stores CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 31 Define Access Levels and Access Locks 4/17/2018 Conclusion Define Access Levels and Access Locks Completion Certificate Proceed to the next module in your course material CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 32 16 Define Access Levels and Access Locks 4/17/2018 Describe CDP and Parameter Reference Attributes CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 33 Describe CDP and Parameter Reference Attributes 4/17/2018 Custom Data Parameter Tab Attributes • Define Custom Parameters from the Value CDPs tab – Add and delete Custom Parameters from this tab – Edit designated parameter attributes – Same tab as CDB, refer to that course material to review CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 34 17 Describe CDP and Parameter Reference Attributes 4/17/2018 Parameter References Tab • Define Parameter References from its tab – Add and delete Parameter References from this tab – Edit Designated Parameter Attributes • Parameter Reference: Similar to purpose of CL “External” Statement CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 35 Describe CDP and Parameter Reference Attributes 4/17/2018 Parameter Reference Attributes Parameter Attribute Valid values Parameter Name First character of the parameter name should be alphabetic. Only “_” character is allowed in the parameter name other than alphanumeric characters. Maximum length for parameter name is 32 characters. The parameter name will be always converted to upper case letters. Parameter Description Any character with maximum length of 255 Data Type BOOLEAN DELTATIME FLOAT64 INT32 STRING TIME TIMEOFDAY CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 36 18 Describe CDP and Parameter Reference Attributes 4/17/2018 Parameter Reference Attributes Data flow INPUT – Only reading of Data is allowed OUTPUT – Only writing of data is allowed IN/OUT – Data can be either read or write Dynamic Reference Dynamic Reference enabled or disabled (only in CAB/ACE) • Data Flow – The attribute specifies the reference is being used for input, output or both • Dynamic Reference – Configurable for either static referencing, or for Dynamic Referencing – This option must always be unchecked for CAB’s running on C300 – Allows you to change the target for the reference “on the fly,” even though the instance is loaded and executing. – For more information on Dynamic Referencing, see the Custom Algorithm Block and Custom Data Block User’s Guide, Dynamic re-referencing of parameter reference CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 37 Describe CDP and Parameter Reference Attributes 4/17/2018 CDP vs PRef Custom Data Parameter (CDP) Parameter Reference (PRef) CDPs are a prefetch/poststore type PRef read or write is executed when the statement is executed. If the data needs to fetched every cycle, then CDP has to be used Complex Data types like Strings, Time, etc. and the data does not need to be fetched every cycle, then use PRef Values of the CDPs are stored within the CAB Values of the PRef are stored external to CAB. CAB stores only pointers to the actual data Supports Whole Array access Does not support Whole Array access Does not support Dynamic Re-referencing Supports Dynamic Re-referencing (ACE) Cannot be used for Insertion Points Used for Insertion Points CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 38 19 Describe CDP and Parameter Reference Attributes 4/17/2018 Parameter Reference Example 1 • Dynamic Reference not Enabled – Point Name Reference Configured in Project, viewable in Monitoring Configure Point Name Reference Disabled for Dynamic Re-referencing Honeywell Confidential Copyright © 2018 Honeywell International Inc. CAB Definition and Design 39 Describe CDP and Parameter Reference Attributes 4/17/2018 Parameter Reference Example 2 • Dynamic Reference Enabled – Point Name Reference Configurable in Project or Monitoring Enabled for Dynamic Rereferencing Configure Point Name Reference CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 40 20 Describe CDP and Parameter Reference Attributes 4/17/2018 Using Parameter References in CAB Code • When the CAB program reads and writes Parameter References, – The CAB program reads and writes to a predefined member of a class – Example statement: Flow1.Value = 44.0 – “Float64Pref” class used in our example (DataType = Float64) • “Value” most commonly used in CAB Code – “Value” is a member of PRef class • Commonly used members, in addition to “Value”, of PRef class are – Read(), Write(), ReadStatus, WriteStatus – Example statement: Flow1.Write() – Refer to “Parameter reference classes” in user guide for more details CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 41 Describe CDP and Parameter Reference Attributes 4/17/2018 Using Parameter References in CAB Code • Value Property acts like a local data cache – No connection to the world outside the CAB Program • Read() must be invoked first to transfer data into Value • Write() must be invoked afterwards to transfer data out of Value CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 42 21 Describe CDP and Parameter Reference Attributes 4/17/2018 Example Fragment using Read(), Write() • Read() call precedes the use of Value • Value – accesses or sets value • Write() call anytime after the Value has been written CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 43 Describe CDP and Parameter Reference Attributes 4/17/2018 Pref Members at a Glance • Value – accesses or sets value • Read() - Causes data to be transferred into the block – Precedes the use of Value for input PRefs – Attempt to call Read() on an output PRef causes a data access error • Write() - Causes data to be transferred out of the block – Called after the Value property has been written – Attempt to call Write on an input PRef causes a data access error – Attempt to call Write on a PRef whose WriteStatus is WritePending causes a data access error and WriteStatus changes to WriteRejected • ReadStatus - Can be used to identify data access failures – Returns the data access status for the last Read() or PRefList.Read() transaction of the PRef. (See "Enumeration CABAccStatusEnum“) • WriteStatus - Can be used to identify success of local/remote writes – Returns the data access status for the last Write() or PRefList.Write() transaction of the PRef. (See "Enumeration CABAccStatusEnum“) • Refer to “Parameter Reference Classes” in user guide for more details CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 44 22 Describe CDP and Parameter Reference Attributes 4/17/2018 Using Parameter Reference List Class • Most programs can use PRefList.Read() and PRefList.Write() – Less coding effort with fewer statements instead of using Read() and Write() – Groups predefined PRefs so that Read() and Write() operations commanded in bulk • PRefList.Read() typically called at the start of Execute() – Fetch data into the Value property of each input or input/output PRef • PrefList.Write() typically called at the end of Execute() – Store data out of the Value properties of output and input/output PRefs • Distributed CABs should use PRefList.Read() and PRefList.Write() – If there is more than one PRef parameter to be read or written, since each read or write incurs the minimum two base cycle delay CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 45 Describe CDP and Parameter Reference Attributes 4/17/2018 Optimization of CAB - PRefList • PRefList.Read() and PRefList.Write() are functions used for optimization of CAB performance • The CAB execution time is enhanced as the read and write functions are member functions of the PRefList class. This is the Object Oriented Programming Concept Parameters in PDE are variables of PRefList class CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 46 23 Describe CDP and Parameter Reference Attributes 4/17/2018 Example Fragment using PrefList • Read() call replaced with a call to PRefList.Read() • Example shows usage of PRefList.read() and PRefList.Write() – Illustrates that both PRefList.Write() and Write() can be used – Three of the four Write() calls replaced with single call to PRefList.Write() – Write() call after the first assignment to MODEATTR.Value is still required as MODEATTR is written twice within the same execution cycle – Order of assignments (MODEATTR.Value, MODE.Value, and SP.Value) are faithfully preserved by PRefList.Write() CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 47 Describe CDP and Parameter Reference Attributes 4/17/2018 Optimization of CAB - PRefList • PRefListClass - Provides a list interface to reference parameters. This is a simple user interface to the class. The list interfaces the PREF values to locally cached variables. The .Value property is the new value cached locally • PRefList - user callable list interface to all input and output PRefs. Class whose purpose is to group predefined PRefs so that Read() and Write() operations may be commanded in bulk • Write - Causes data to be transferred out of the block • Read - Causes data to be transferred into the block CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 48 24 Describe CDP and Parameter Reference Attributes 4/17/2018 Why use CABAccStatusEnum? • "ReadStatus" and "WriteStatus" provided for each Parameter Reference – However, statuses can be used or ignored by the CAB programmer – CAB never aborts program execution or throws an exception in response to a parameter access error – If response to error behavior is desired, you must design into the program • Examples of Status Check – If error, do error processing – Using “not” and = – Using <> – Importing enumeration, use shorter form OK CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 49 Describe CDP and Parameter Reference Attributes 4/17/2018 CABAccStatusEnum ReadStatus <>OK Example 1 • Data Access Errors can be reported – Program Status Descriptor, PROGSTSDESC, a string valued parameter that can be used within a CAB program to publish the last error detected – Uses Abort() subroutine to force exception and event if problem discovered • Parameter Access Errors are returned to the CAB at run time as members of enumeration CABAccStatusEnum – More details in user guide in topic "Enumeration CABAccStatusEnum" CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 50 25 Describe CDP and Parameter Reference Attributes 4/17/2018 CABAccStatusEnum ReadStatus <>OK Example 2 • Data Access errors can be handled as “Not a Number (Nan)” – Writes NaN (that is, a bad value) to the targeted variable – Any CAB variable can receive a NaN as a valid value – There is no equivalent to CL/AM ALLOW_BAD in CAB — none is necessary CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 51 Describe CDP and Parameter Reference Attributes 4/17/2018 Conclusion Describe CDP and Parameter Reference Attributes Completion Certificate Proceed to the next module in your course material CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 52 26 Describe CDP and Parameter Reference Attributes 4/17/2018 Describe the Support of CAB on C300 CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 53 Describe the Support of CAB on C300 4/17/2018 CAB on C300 • CAB function blocks can be loaded to a C300 Controller with 50 mSec and 20 mSec base time period – There is no performance difference between C300 (50 mSec) and C300 (20 mSec) • CAB/C300 is a subset of CAB/ACE functionality – Allows users to create block types and algorithms which run on the C300 Controller – Some functions supported by CAB/ACE are not supported by CAB/C300 – All functions supported by CAB/C300 are also supported on CAB/ACE except for redundancy – As an ACE is not redundant CAB on ACE does not support redundancy • Provide CAB implementation on a level-1 controller – Remove dependency on continuous changing VB.NET versions – Supports run-time emulation of key .NET (ECMA) Value types • Supports redundancy, RAM Retention Restart, On-Process Migration CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 54 27 Describe the Support of CAB on C300 4/17/2018 CAB in System Context MS Visual Studio ERDB Encompasses Presents Data Content Offline Data CAB Build Time Presents Operations Data EPKS Station CAB Instance Creates Caches Operations Data Instantiates EPKS Server CAB Type Dynamic Links Dynamic Links CAB/ACE CABACE Executes CAB/C300 CABC300 Run-Time Run-Time Executes CAB Instance Run-Time Run-Time CAB Instance Hosts Hosts CEE-C300 CEE-ACE CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 55 Describe the Support of CAB on C300 4/17/2018 Enable CAB Run Time • No change to the C300 hardware • Software has been implemented with additional run time support • Restrictions are placed on the Control Execution Environment and the programming constructs • Enable CAB run time (ENABLECAB) is the checkbox added in CEE Properties – Must be ON to load CAB Types to the C300 Controller – ENABLECAB is unchecked by default CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 56 28 Describe the Support of CAB on C300 4/17/2018 CAB on C300 • CAB can be programmed in two modes X_PLATOPT ACEONLY ACEANDC300 ACE SIM-ACE C300 SIM-C300 CONTROLLER – ACEONLY: Default Value – ACEANDC300: Used to load CAB on C300 Honeywell Confidential Copyright © 2018 Honeywell International Inc. CAB Definition and Design Describe the Support of CAB on C300 4/17/2018 57 CAB on C300 CAB Build-time Creates X_PLATOPT= ACEANDC300 CAB Executes Executes SIM-ACE Executes Executes C300 Type PC-hosted simulation Type Embedded host Runtime MS .NET Runtime Honeywell built Support All CAB functionality Support CAB Subset Debugging Source Level Debugging Black box only Emulation Performance/Capacity Emulation Actual controller ACE CAB Definition and Design SIM-C300 Type PC-hosted Soft controller Type PC-hosted simulation Runtime MS .NET Runtime Honeywell built Support All CAB functionality Support CAB Subset Debugging Black box only Debugging Black box only Emulation Actual controller Emulation None Honeywell Confidential Copyright © 2018 Honeywell International Inc. 58 29 Describe the Support of CAB on C300 4/17/2018 Comparison of CAB on ACE and CAB on C300 Functional item VB.NET Source Code Custom Parameters Parameter References Dynamic Re-referencing Source Level Debugging on Simulator Atomic Execution( Periodic, Start to Finish) Distributed Execution (Background) Data Acquisition and Regulatory Control Insertion Points Operation With Process Special CM User Written Try-Catch Supported in CAB/ACE Yes Yes Yes Yes Yes Yes Yes Supported in CAB/C300 Yes Yes Yes No Yes (SIM-ACE) Yes No Yes Yes Yes Yes No No Infinite Loop Protection Time-based Loop Termination Count-based Loop Termination VB Statements and Functions Subset of VB.NET Subset of CAB/ACE CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 59 Describe the Support of CAB on C300 4/17/2018 Conclusion Describe the Support of CAB on C300 Completion Certificate Proceed to the next lesson in your course material CAB Definition and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. 60 30 Describe the Support of CAB on C300 4/17/2018 Introduction to VB .NET IDE Introduction to VB .NET IDE Honeywell Confidential Copyright © 2018 Honeywell International Inc. 1 Introduction to VB .NET IDE 4/17/2018 MSVS IDE - Introduction • A Selection of the File > New > Type > Custom Algorithm Block from the Control Builder menu will invoke the VB.NET IDE • Alternately a Selection of the View Type or Edit Type on any Pre-built CAB Block within the Library will invoke the VB.NET IDE Introduction to VB .NET IDE Honeywell Confidential Copyright © 2018 Honeywell International Inc. 2 1 Introduction to VB .NET IDE 4/17/2018 MSVS IDE - Features • A CAB and VB.NET Integrated Development Environment (IDE) can be installed and processed on an Experion FLEX Station • CAB is built on an Experion FLEX Station and executed on an ACE Node • Microsoft Visual Studio (MSVS) IDE is a Customized IDE for CAB Operations • A new IDE window opens for every CAB. There is no project workspace creation Introduction to VB .NET IDE Honeywell Confidential Copyright © 2018 Honeywell International Inc. 3 Introduction to VB .NET IDE 4/17/2018 MSVS IDE - Features • Provides Standard Feature of IntelliSense • Provides Coding Interface in VB Scripts using .NET 2012 Environment • PDE parameters are available in the MSVS IDE – An ERDB Save will update the ERDB with the compiled version of PDE Data and the VB.NET Code • Imports the standard Honeywell supplied namespaces, by default • Supports Common Language Runtime Debug Environment for Off Line Simulation Debugging Introduction to VB .NET IDE Honeywell Confidential Copyright © 2018 Honeywell International Inc. 4 2 Introduction to VB .NET IDE 4/17/2018 MSVS IDE - Introduction Compile and ERDB Load Toolbar Standard Toolbar Parameter Definition Editor Code View Tasks Pane Honeywell Confidential Copyright © 2018 Honeywell International Inc. Introduction to VB .NET IDE 5 Introduction to VB .NET IDE 4/17/2018 MSVS IDE – Toolbar • The Save PDE Data Scripts will store the PDE Parameters to the VB • A Build will perform the compilation process where source code files are converted into Executable Code • Cancel will abort the current build process • Save to ERDB Code will update the ERDB with the last built Executable • Solution Configurations will determine the Output Code Configuration as the debug release will consist of Full Symbolic Debug Information Introduction to VB .NET IDE Honeywell Confidential Copyright © 2018 Honeywell International Inc. 6 3 Introduction to VB .NET IDE 4/17/2018 MSVS IDE – Save Options • The IDE supports all Standard Data Save Options • The Save-Renew PDE Data Option is to be used when an system error occurs and the user is notified to use the Save-Renew PDE Data Introduction to VB .NET IDE Honeywell Confidential Copyright © 2018 Honeywell International Inc. 7 Introduction to VB .NET IDE 4/17/2018 MSVS IDE – Debug Tools • The Continue (F5) will run the program under debug control, until a breakpoint is hit • Attach to process will link the IDE to the debugger through selection of the ACE Process • The Step Into (F11) will increment the program by single step, under Debug Control • The New Breakpoint (Ctrl+B) will insert a new breakpoint at current cursor location Introduction to VB .NET IDE Honeywell Confidential Copyright © 2018 Honeywell International Inc. 8 4 Introduction to VB .NET IDE 4/17/2018 Conclusion Introduction to VB.NET IDE Completion Certificate Proceed to the next lesson in your course material Introduction to VB .NET IDE Honeywell Confidential Copyright © 2018 Honeywell International Inc. 9 Introduction to VB .NET IDE 4/17/2018 This page intentionally left blank Introduction to VB .NET IDE Honeywell Confidential Copyright © 2018 Honeywell International Inc. 10 5 Introduction to VB .NET IDE This page was intentionally left blank. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary Topic: Introduction to CAB Labs Contents Create a New CAB Type .......................................................................................................................3 Open New Block Type for Edit ............................................................................................................11 Create a CAB Instance ........................................................................................................................15 Configure Parameter References Tab.................................................................................................23 Modify a Custom Algorithm Block........................................................................................................29 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 1 This page was intentionally left blank. 2 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CAB Labs Create a New CAB Type Create a New CAB Type Objectives Create a new Custom Algorithm Block (CAB) to calculate a simple logic expression. At the end of the lab, you will have a basic understanding of the development environment and the steps to build and load a CAB. You will do this lab procedure on Flex Station. Prerequisites Experion Flex Station installed with CAB Developer. Controllers loaded on server. Application Control Environment installed and loaded on server. Introduction In this lab, you will perform the following: Create a CAB which increments the value of a variable by 3.5 on every execution. Build the CAB and check for any errors. Save the CAB to ERDB. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 3 Introduction to CAB Labs Create a New CAB Type 4 Step Action 1 Launch Configuration Studio and open Control Builder, if not already open. 2 Select File > New > Type > Custom Algorithm Block. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CAB Labs Create a New CAB Type Step 3 Action Complete the Block Type dialog as follows. Custom Library Name: TEAM##_CAB Block Type Name: FLOW Click OK to open the Cab Development Environment. ATTENTION Remember to use your team number in place of the “##’ 4 In the Parameter Definition Editor, select the Fixed tab. Select the Default Value as ACEANDC300 for the X_PLATOPT parameter. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 5 Introduction to CAB Labs Create a New CAB Type Step 5 Action Click on the Parameter Definition Editor tab and then the Value CDPs tab: Enter the following Details: 6 6 Parameter Name: Flow_C Parameter Description: CDP In/Out Data Type: Float64 First Dimension Array Size: 0 Access Lock: Operator Configuration Load: Load Default Value: 1.5 Save the data to the PDE by clicking the Save PDE Data icon Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary . 4/15/2018 Introduction to CAB Labs Create a New CAB Type Step 7 Action Click the CABlock.vb tab ATTENTION The CAB program given below is also available in the text file C:\Student\CAB Scripts\Create a New CAB Type.txt. You can optionally copy the code from this text file and paste it in CABlock.vb window. Ensure that you delete all existing code in CABlock.vb window and then select all text in the script text file and paste it in CABlock.vb window. Enter the following under the Public Overrides Sub: Me.Flow_C.Value += 3.5 ‘me.flow.value +3.5’ ATTENTION The code “Me.Flow_C.Value += 3.5” adds a value of 3.5 to the default value of 1.5 (Defined in the Value CDPs tab) every time the CAB block executes. It is equivalent to the expression “Me.Flow_C.Value = Me.Flow_C.Value + 3.5”. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 7 Introduction to CAB Labs Create a New CAB Type Step Action 8 Then Build the solution - it will also check for errors in your code - by selecting the Build Solution button ( ). ATTENTION If you encounter errors on the build, try to resolve the errors. Consult the instructor as needed to resolve errors. If you have no errors, proceed to the next step. 8 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CAB Labs Create a New CAB Type Step 9 Action Save the CAB to the ERDB.This will make the CAB available for insertion into Control Modules. Click the Save to ERDB icon Wait for the Save to ERDB completed message at the bottom of the window. Close the design environment. . Result: The new CAB Library Name and new CAB Type appear in the Library tab in Control Builder. 10 4/15/2018 We will create a Control Module using this CAB block in future labs. Later, you edit and modify the CAB created in this exercise. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 9 Introduction to CAB Labs Create a New CAB Type This page was intentionally left blank. 10 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CAB Labs Open New Block Type for Edit Open New Block Type for Edit Objectives Edit the Custom Algorithm Block (CAB). Prerequisites Experion Flex Station installed with CAB Developer. SIM C300 Controller loaded on server. Application Control Environment installed and loaded on server. Introduction In this lab, you will perform the following: Change/edit the CAB which was created earlier. Build the CAB to check for any errors. Save the CAB to ERDB. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 11 Introduction to CAB Labs Open New Block Type for Edit Step Action 1 ATTENTION Make sure you Edit CAB Block from Library. 2 Open the CAB Block just created (i.e., Flow) and make amends to the existing entries. Within the Parameter Definition Editor, click on the Value CDPs tab and enter: 3 Parameter Name: Flow Parameter Description: CDP In/Out Data Type: Float 64 Access Lock: Operator Configuration Load: Load Default Value: 2.5 Once the entries have been made, save the CAB to the PDE by clicking the SAVE to PDE icon. ATTENTION Saving the CAB to PDE saves the parameters to the development environment. This makes them known to the system and can then be used in the custom code. A confirmation message will appear at the bottom of the screen. 4 12 Click on the CABlock.vb tab to open the VB Development Environment. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CAB Labs Open New Block Type for Edit Step 5 Action Enter the following under the Public Overrides Sub area. ATTENTION The CAB Program given below is also available in the text file C:\Student\CAB Scripts\Open New Block Type for Edit.txt. You can optionally copy the code from this text file and paste it in CABlock.vb window. Ensure that you delete all existing code in CABlock.vb window and then select all text in the script text file and paste it in CABlock.vb window. Me.flow.value += 3.5 ‘code is same as me.flow.value = me flow.value + 3.5’ 6 4/15/2018 When you finish making the entries, click on the Build Solution Icon there are no errors. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary and ensure 13 Introduction to CAB Labs Open New Block Type for Edit Step 7 Action Next save to the ERDB to make the CAB available for building into Control Modules. Click on the Save to ERDB Icon. 14 Wait for the Save to ERDB completed message at the bottom of the window. Close the design environment. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CAB Labs Create a CAB Instance Create a CAB Instance Objectives Create an instance of the Custom Algorithm Block (CAB). Prerequisites Experion Flex Station installed with CAB Developer. SIM C300 Controller loaded on server. Application Control Environment installed and loaded on server. Introduction 4/15/2018 In this lab, you will create a new instance of the CAB in a control module and check the execution of the CAB in SIM-ACE and/or SIM-C300. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 15 Introduction to CAB Labs Create a CAB Instance Step 1 Action Create a new Control Module. In Control Builder, click File > New > Control Module. 2 16 In the Library Tree window, expand the Team##_CAB tree, and drag the FLOW function block into the Control Module. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CAB Labs Create a CAB Instance Step 3 Action Double click the FLOWA block to configure its parameters. Select the Value CDPs tab and ensure that the “CDP In/Out” parameter has a value of 2.5. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 17 Introduction to CAB Labs Create a CAB Instance 18 Step Action 4 Select the Block Pins tab and add the FLOW parameter as both an input and output and click OK. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CAB Labs Create a CAB Instance Step 5 Action Add a Numeric block from Utility library to the control module. Double click the Numeric block and enter 0.1 in Actual Value. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 19 Introduction to CAB Labs Create a CAB Instance Step 6 Action Click on the Block Pins Tab. 20 Add PV Parameter as an Input pin and click OK. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CAB Labs Create a CAB Instance Step 4/15/2018 Action 7 Make the connections as shown. Save the Control Module. 8 Open the properties of the Control Module and enter the following details: Name: TEAM##_FLOW_CDP Item Name: TEAM##_FLOW_CDP_ITEM Parent Asset: TRAINING Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 21 Introduction to CAB Labs Create a CAB Instance Step Action 9 In the Server History tab, click on the point picker for Parameter. Select TEAM##_FLOW_CDP.NUMERICA.PV as the parameter and check the FAST, STD, and EXTD history checkboxes and click OK. 10 Save & Close the Control Module. Assign the Control Module to the CEE of ACE. Load the Control Module to the ACE. 11 Repeat steps 1 to 10 to create another control module. ATTENTION In Step 8, enter the following details: Name: TEAM##_FLOW2_CDP Item Name: TEAM##_FLOW2_CDP_ITEM Parent Asset: TRAINING In step 9, assign the TEAM##_FLOW2_CDP.NUMERICA.PV parameter to FAST, STD, and EXTD history. 22 12 Save the Control Module. Assign the Control Module to the CEE of C300. Load and Activate the Control Module. 13 Ensure that both control modules are working correctly. You can verify correct operation when you open the CMs in Monitoring and observe their PV values increment. 14 After you are satisfied your CMs operate correctly, close both CM’s in Monitoring. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CAB Labs Configure Parameter References Tab Configure Parameter References Tab Main Idea In this lab exercise you will configure the following items: 1. Make a new CAB type. 2. Configure Custom Data Parameters and Parameter References. 3. Write code to read the parameter reference (PV of NUMERIC block) and assign the value configured in Custom Data Parameter. 4. Add a constant value of 3.6 to this assigned value, in the CAB code. 5. Write back the calculated value to parameter referred to in the parameter reference tab (PV of NUMERIC block). 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 23 Introduction to CAB Labs Configure Parameter References Tab Step 1 Action Create a new CAB using the same Custom library Team##_CAB. Name it FLOW_PREF Click OK to open the Development Environment. ATTENTION Remember to use your team number in place of the “##’ 2 In the Parameter Definition Editor, select the Fixed tab. Select the Default Value as ACEANDC300 for the X_PLATOPT parameter. 24 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CAB Labs Configure Parameter References Tab Step 3 4 4/15/2018 Action Enter the following information in Parameter Definition Editor under the Value CDP tab: Parameter Name: Flow_P Parameter Description: Faceplate value Data Type: Float 64 Access Lock: Operator Configuration Load: Load Default Value: 2.5 Enter the following information in Parameter Definition Editor under the Parameter References tab: Parameter Name: NUMPV Parameter Description: Numeric PV Access Reference Data Type: Float 64 Data Flow: In/Out Dynamic Reference: Leave unchecked 5 Save the PDE Data. 6 Click on the Symbol Attribute tab and verify the entries as below: 7 Save the PDE Data. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 25 Introduction to CAB Labs Configure Parameter References Tab Step 8 Action Select the CABlock.vb tab and under the Public Overrides sub. ATTENTION The CAB program given below is also available in the text file: C:\Sudent\CAB Scripts\Configure Parameter References Tab.txt. You can optionally copy the code from this text file and paste it in CABlock.vb window. Note that the CAB Code present in the text file and code provided in this step is incomplete. You must add a line to increment the NUMPV parameter by 3.6. Ensure that you delete all existing code in CABlock.vb window and then select all text in the script text file and paste it in CABlock.vb window. Enter the following: Me.NUMPV.Read() Me.FLOW_P.Value() = Me.NUMPV.Value ‘<Enter the command to increment the value of NUMPV parameter by 3.6 in this line> Me.NUMPV.Write() TIP To add the missing line: Use “+=” operator to perform the increment operation. Example: Me.NUMPV.Value += 3.6 26 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CAB Labs Configure Parameter References Tab Step 9 Action Build Solution and ensure there are no errors in the Output screen. ATTENTION If you have not added a line in the code to increment the value of the NUMPV parameter by 3.6, then CAB code might not work properly. Contact instructor to enter the missing line in the code. 10 4/15/2018 Save the CAB to ERDB. Close the MSVS Development Environment. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 27 Introduction to CAB Labs Configure Parameter References Tab Step 11 Action Create a new Control Module with the following properties: Name: TEAM##_FLOW_PREF Item Name: TEAM##_FLOW_PREF_ITEM Parent Asset: TRAINING Add the Function Blocks as shown in the screen capture. 12 Double click the NUMERICA Function block and enter an actual value of 2.3. Press OK to save change to Function Block and save the control module by clicking on the save icon 28 . 13 Double Click on FLOW_PREFA Block, Select Monitoring Parameters tab. Add Flow_P Parameter. 14 Click on the Parameter References tab. Click on browser button. The point selection window will open select TEAM##_FLOW_PREF.NUMERICA.PV. Click OK. 15 Close the Control Module and Assign it to the ACE_EXP16 or C300_EXP16. 16 Download and Activate the new module and check Value of FLOW_P changes as per NUMERICA. PV in Monitoring and Station. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CAB Labs Modify a Custom Algorithm Block Modify a Custom Algorithm Block Objectives Create a New CAB by modifying an existing CAB. Prerequisites Experion Flex Station installed with CAB Developer. SIM C300 Controller loaded on server. Application Control Environment installed and loaded on server. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 29 Introduction to CAB Labs Modify a Custom Algorithm Block Step 1 From the Library Tree, open the Flow CAB which was created earlier. 2 Click on the Parameter Definition Editor Tab and Click on Value CDP’s Tab 3 4 30 Action Change the Parameter name from Flow to Flow_CDP . Save to the PDE (Click the correct Icon ). Under the CABlock.vb Tab change the coding Enter Flow_CDP in place of Flow. Build solution. (use the Icon to do this) Click File > Save to ERDB As…. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CAB Labs Modify a Custom Algorithm Block Step 5 4/15/2018 Action Enter the new block name FLOW_CDP and click OK to close the CAB window Environment. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 31 Introduction to CAB Labs Modify a Custom Algorithm Block Step 6 32 Action In the Project tab of Control Builder, open the Team##_Flow_CDP CM. Drag the Flow_CDP from the Library Tree window under the Team##_CAB. Double click the Flow_CDPA block to open the parameters window. Select the Value CDPs tab and verify that a value of 2.5 is present in CDP IN/OUT. If not present enter the value of 2.5. Next choose the Block Pins tab and add the Flow_CDP parameter as both an input and output and click OK. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Introduction to CAB Labs Modify a Custom Algorithm Block Step 7 Action Replace the Flow CAB block with the FLOW_CDP CAB block in the CM. Make the connections as shown. ATTENTION You would need to do this for all control modules containing the original CAB. 8 4/15/2018 Reload the TEAM##_FLOW_CDP CM and ensure that it runs as designed. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 33 Introduction to CAB Labs Modify a Custom Algorithm Block This page was intentionally left blank. 34 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Describe Insertion Points Configure Insertion Points Honeywell Confidential Copyright © 2018 Honeywell International Inc. Describe Insertion Points 4/17/2018 1 Insertion Point Concept • An “Insertion Point” is not a Point Type or Tagged Entity • Insertion Point refers to a place in the normal processing sequence of a block where a CAB algorithm can be inserted • CAB Instance then executes at the configured Insertion Point in the processing sequence • As an Insertion Point, Function Block Processing occurs in a Sequence – The CAB instance will not execute independently (compared to CAB Function Block in a Control Module) – Inserted CAB executes whenever the Host Native Block runs • This function is supported in CAB’s running on ACE and C300 Configure Insertion Points Honeywell Confidential Copyright © 2018 Honeywell International Inc. 2 1 Block Processing Step Block Processing Step n Block Processing Step n+1 Block Processing Step n+2 Insertion Points represent locations where a program can “insert” a Value Insertion Point Location Insertion Point Location n Insertion Point Location n+1 Describe Insertion Points 4/17/2018 Comparison to CAB as Function Block • CAB configured as Function Block executes when CM scheduled – Wiring shown to Transfer Calculated Value • CAB as Insertion Point executes at point in Processing Sequence – No wiring, Insertion Point configured on Function Block (PIDA, in our example) CAB used as a Function Block Configure Insertion Points CAB used as an Insertion Point Honeywell Confidential Copyright © 2018 Honeywell International Inc. 3 Describe Insertion Points 4/17/2018 Insertion Point Purpose • Main reason: Replace a standard algorithm function block algorithm with a custom algorithm – Similar in concept to Insertion Points used in TPS Application Module – Refer to example scenarios in the Custom Algorithm Block and Custom Data Block User's Guide • Other reasons: – Enhance aspects of the block’s execution, and – Take advantage of the more complex system functions such as initialization, anti-reset wind up, range-checking, and alarming that are integral to the Native Block • For additional information, refer to Experion R501.1 PDF Collection > Reference > Control Builder Components Theory: – Regulatory Control > Regulatory Control Blocks – Data Acquisition Functions > DATAACQ (Data Acquisition) Block Configure Insertion Points Honeywell Confidential Copyright © 2018 Honeywell International Inc. 4 2 Describe Insertion Points 4/17/2018 Insertion Point Locations – RegCtl • Post_Input – Insert CAB instance after Input Processing Block Processing Steps Input Processing • Pre_Alg – Insert CAB instance before the Execution of the Algorithm • Ctl_Alg – Insert CAB Instance to replace the Regulatory Control Agorithm Post_Input Mode Processing Initial Control Processing Pre_Alg Algorithm Calculation • Post_Alg – Insert CAB Instance after Algorithm Processing • Post_Ctlout – Insert CAB Instance after the execution of Control Output Processing Configure Insertion Points Insertion Points Ctl_Alg Post_Alg Output Processing Post_Ctlout Feedback Propagation Honeywell Confidential Copyright © 2018 Honeywell International Inc. 5 Describe Insertion Points 4/17/2018 Insertion Point Locations – DataAcq • PV_Alg – Replace DATAACQ PV Algorithm with a CAB PV Algorithm • Post_PVChar – Insert CAB Instance after PV Characterization • Post_Clampfilt – Insert CAB Instance after PV Clamping and Filtering • Post_PVsrc – Insert CAB Instance after PV Source Selection • Post_Alarmproc – Insert CAB Instance after Alarm Processing Block Processing Steps Insertion Points Input Processing PV_Alg PV Characterization Post_PVchar Clamping and Filtering Post_Clampfilt PV Source Selection Post_PVsrc Alarm Processing Post_Alarmproc Configure Insertion Points Honeywell Confidential Copyright © 2018 Honeywell International Inc. 6 3 Describe Insertion Points 4/17/2018 Rules of Insertion Points • CAB Instances can only be inserted into DataAcq or RegCtl Blocks – Host block (DataAcq, RegCtl) must reside in the same Control Module as the CAB Instance – No graphical connections required from “Native” Block to the CAB Instance – Only CABs configured for atomic execution can be used – Parameter references must be used to transfer data with the CAB program • The CAB Type from which the instance is derived must have its access level in the “Fixed Definition Parameters” tab set to CONTCONTROL Configure Insertion Points Honeywell Confidential Copyright © 2018 Honeywell International Inc. 7 Describe Insertion Points 4/17/2018 Inserting a CAB in RegCtl • To add a CAB as an Insertion Point to a RegCtl (for example, PID), enter the PID’s Configuration and click on the “Insertion” Tab • Enter the number of CAB Instances you wish to insert • Select the Insertion Type • Add CAB Instances using the browser box available. (Do not add a Parameter with the Instance, even though the browser has a field for one) Configure Insertion Points Honeywell Confidential Copyright © 2018 Honeywell International Inc. 8 4 Describe Insertion Points 4/17/2018 Inserting a CAB in DataAcq • The mechanics of inserting a CAB in a DataAcq Block are the same as inserting a CAB in a RegCtl • The only difference is the Insertion Points are specific to the DataAcq Block. Configure Insertion Points Honeywell Confidential Copyright © 2018 Honeywell International Inc. 9 Describe Insertion Points 4/17/2018 Define and Assign Parameter References • Parameter References must be used to accomplish data flow into and out of the CAB insertion program Define parameter references in the CAB type Assign values to parameter references in CAB Instance Configure Insertion Points Honeywell Confidential Copyright © 2018 Honeywell International Inc. 10 5 Describe Insertion Points 4/17/2018 Verify Insertion Point Operation • Two ways to verify your Insertion Point worked: – With the CAB Properties Form Open, select either the Configuration Parameters or the Monitoring Parameters Tab, select INSMASTER, and click Add – With the RegCtl or DataAcq Properties Form Open, select the Configuration Parameters Tab, select INSBLOCK, and click Add Configure Insertion Points Honeywell Confidential Copyright © 2018 Honeywell International Inc. 11 Describe Insertion Points 4/17/2018 Conclusion Describe Insertion Points Completion Certificate Proceed to the next module in your course material Configure Insertion Points Honeywell Confidential Copyright © 2018 Honeywell International Inc. 12 6 Describe Insertion Points 4/17/2018 Topic: Configure Insertion Points Contents Create a CAB Block as Insertion Point to a REGCTL Block .................................................................3 Create a CAB without Insertion Point ..................................................................................................17 Create a CAB with Insertion Point .......................................................................................................25 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 1 This page was intentionally left blank. 2 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Insertion Points Create a CAB Block as Insertion Point to a REGCTL Block Create a CAB Block as Insertion Point to a REGCTL Block Objectives Create a CAB Block as Insertion Point to a PID Block. CAB Block created in this lab can be used in both SIM-C300 and SIM-ACE. Prerequisites Experion Flex Station installed with CAB Developer. SIM C300 Controller loaded on server. Application Control Environment installed and loaded on server. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 3 Configure Insertion Points Create a CAB Block as Insertion Point to a REGCTL Block Step 1 Action Create a New CAB Block with the information provided below. Custom Library Name: TEAM##_CAB Block Type Name: FILTER_INSERT Click OK. 2 This opens the Microsoft Development Environment [design] – Parameter Definition Editor. Click Fixed and select ACCESSLEVEL as CONTCONTROL. ATTENTION You must set the ACCESSLEVEL to CONTCONTROL while working with Insertion Points. To use the CAB Block in C300, select ACEANDC300 option for X_PLATOPT Parameter. 4 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Insertion Points Create a CAB Block as Insertion Point to a REGCTL Block Step 3 Action Click on the Value CDPs Tab: ATTENTION The Parameters mentioned below are also available in C:\Student\CDP and Pref.xls. Go to the sheet named FILTER_INSERT. You can optionally copy the Parameters from this sheet and paste it in Value CDPs Tab. Enter the following Details: 4/16/2018 Parameter Name: SHOW_FILTPV Parameter Description: Show Filtered PV Data Type: Float64 First Dimension Array Size: 0 Access Lock: Engineer Configuration Load: Load Default Value: 0.0 Parameter Name: SHOW_NEWPV Parameter Description: Show New PV Data Type: Float64 First Dimension Array Size: 0 Access Lock: Engineer Configuration Load: Load Default Value: 0.0 Parameter Name: SHOW_OLDPV Parameter Description: Show Old PV Data Type: Float64 First Dimension Array Size: 0 Access Lock: Engineer Configuration Load: Load Default Value: 0.0 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 5 Configure Insertion Points Create a CAB Block as Insertion Point to a REGCTL Block Step Action ATTENTION SHOW_FILTPV, SHOW_NEWPV, and SHOW_OLDPV are used to show the calculation in progress. SHOW_OLDPV is also used to increment the filtered value and it is an input to PRef. A filter value is entered in FILTERNUM. INIT_FILTER is used to initialize the PV to the current PV on block startup. 6 Parameter Name: FILTERNUM Parameter Description: User entered filter value Data Type: Float64 First Dimension Array Size: 0 Access Lock: Operator Configuration Load: Load Default Value: 1.0 Parameter Name: INIT_FILTER Parameter Description: Initialize PV value at startup Data Type: INT32 First Dimension Array Size: 0 Access Lock: Engineer Configuration Load: Load Default Value: 1 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Insertion Points Create a CAB Block as Insertion Point to a REGCTL Block Step Action 4 In the Parameter References tab enter the parameters and information as given below. ATTENTION The parameters mentioned below are also available in C:\Student\CDP and Pref.xls. Go to the sheet named FILTER_INSERT. You can optionally copy the parameters from this sheet and paste it in Parameter References tab. You have to copy only one row at a time and paste it twice in the Parameter References tab in CAB developer environment. Parameter1 Parameter name: NEWPV Parameter description: New PV from Numeric Block Data type: FLOAT64 Data flow: INPUT Dynamic Reference Unchecked Parameter2 Parameter name: FILTERPV Parameter description: Filtered PV used as insertion block Data type: FLOAT64 Data flow: OUTPUT Dynamic Reference Unchecked Parameter3 4/16/2018 Parameter name: OLDERPV Parameter description: Older PV Data type: FLOAT64 Data flow: IN/OUT Dynamic Reference Unchecked Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 7 Configure Insertion Points Create a CAB Block as Insertion Point to a REGCTL Block Step Action Leave all other values as default. The Parameter References tab in Parameter Definition Editor appears as shown. ATTENTION PRefs are used as inputs/outputs to the block. You will also be able to use PRefList in VB.NET and understand its relationship to input/output data flow. NEWPV is an input from the user entered Numeric value, FILTERPV is the inserted value sent to the PID block, and OLDERPV is an input from the CAB’s CDP. 5 Select the Symbol Attribute tab and enter the Monitor face values as indicated in the screen capture. ATTENTION Monitor face values are configured so you can view the CDP parameters at runtime from the Monitoring view in Control Builder. 8 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Insertion Points Create a CAB Block as Insertion Point to a REGCTL Block Step Action 6 Save the PDE data. 7 Click the CABlock.vb tab to open the VB development environment. 8 Enter the following code ATTENTION The CAB program given below is also available in the text file C:\Student\CAB Scripts\Create a CAB Block as Insertion Point to a REGCTL Block.txt. You can optionally copy the code from this text file and paste it in CABlock.vb window. Ensure that you delete all existing code in CABlock.vb window and then select all text in the script text file and paste it in CABlock.vb window. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 9 Configure Insertion Points Create a CAB Block as Insertion Point to a REGCTL Block Step Action ATTENTION The filter calculation is a relatively simple one and not at all intended for real control applications. It initializes the filtered PV value on block startup with the INITPV subroutine using a CDP initially set to 1. The code then calculates a FILTERPV value. Our goal is to introduce insertion concepts; a later insertion point lab will demonstrate an example control scenario. 10 9 When complete, click the Build Solution icon to ensure there are no errors. 10 Save the CAB to the ERDB by clicking the Save to ERDB Icon. Close the Development Environment. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Insertion Points Create a CAB Block as Insertion Point to a REGCTL Block Step 11 Action Create a Control Module with the following properties Tag name:- FILTER_INSERT## Item name:- FILTER_INSERT##_Item Parent Asset:- Training ( used Point Picker to assign Asset) Click OK. Save the CM 12 In the Library Tree expand TEAM##_CAB and drag the CAB function block named as FILTER_INSERTA into the Control Module named as FILTER_INSERT##. Also drag a NUMERIC block and a PID block in the Control Module. Change the name of NUMERICA block to NUM_PV. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 11 Configure Insertion Points Create a CAB Block as Insertion Point to a REGCTL Block Step 13 Action Double-click the PIDA block, select the Monitoring Parameters tab and add the parameters highlighted in the screen below. Save the Control Module. 12 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Insertion Points Create a CAB Block as Insertion Point to a REGCTL Block Step 14 Action Double click FILTER_INSERTA to open the parameter configuration properties of the CAB block. The CAB CDP is as shown below. The Initialize value at start up is reset to 0 once CAB runs. ATTENTION Initial CDP values are shown. INIT_FILTER is reset to 0 once the CAB runs. FILTERNUM is user changed at runtime to a value less than 1 (for example, 0.5). 15 Go to Monitoring Parameters tab. Add the following parameters SHOW_FILTPV SHOW_NEWPV SHOW_OLDPV 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 13 Configure Insertion Points Create a CAB Block as Insertion Point to a REGCTL Block Step 16 Action Enter the CAB Parameter References as shown below. Enter the following details. NEWPV : FILTER_INSERT##.NUM_PV.PV FILTERPV: FILTER_INSERT##.PIDA.PV OLDERPV: FILTER_INSERT##.FILTER_INSERTA.SHOW_OLDPV Click OK to close the CAB properties. ATTENTION PRefs used internally on the CAB block are shown. The CDP SHOW_OLDPV is used as an input to PRef OLDERPV. 14 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Insertion Points Create a CAB Block as Insertion Point to a REGCTL Block Step 17 Action Double click the PID block to open the configure parameter PID block object. Click the insertion tab and enter following details: Number of insertions: 1 and Click Enter Insert type: Post_Input CAB Instance: FILTER_INSERT##.FILTER_INSERTA Click OK, Save, and Close the Control Module. ATTENTION The CAB is referenced from the Insertion tab on the REGCTL point. For this example, Post_Input is selected as the Insert_Type so you can see the PV change. 4/16/2018 18 Assign the CM FILTER_INSERT## to ACE or C300. 19 Download and Activate the CM FILTER_INSERT##. 20 Open the CM in Monitoring mode. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 15 Configure Insertion Points Create a CAB Block as Insertion Point to a REGCTL Block Step 21 Action Enter a NUM_PV value of 25. On the function block, FILTER_INSERTA Change the FILTERNUM value to 0.5. Change the INIT_FILTER value to 1. Put different values at NUM_PV and observe the CDP values. SHOW_FILTPV, SHOW_NEWPV and SHOW_OLDPV get updated. ATTENTION The CAB shows monitored CDPs mainly to show the program is calculating values. In the real world, it is important to display CAB specific parameters such as INSMASTER more so than CDPs. 22 16 Close the CM in Monitoring. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Insertion Points Create a CAB without Insertion Point Create a CAB without Insertion Point Objectives In this lab, student will create a CAB without insertion point based on the example provided in PDF Collection. CAB created in this lab can be used in both SIM-C300 and SIM-ACE nodes. Prerequisites Experion Flex Station installed with CAB Developer. SIM C300 Controller loaded on server. Application Control Environment installed and loaded on server. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 17 Configure Insertion Points Create a CAB without Insertion Point Step 23 Action Using the information given, Create a CAB Insertion Algorithm. Vapor-to-Liquid Ratio control Control the vapor-to-liquid ratio (VLR) within a fractionation column. Use VLR as the PV in a PID loop. It is not available as a direct measurement. There is a simple algebraic formula for computing the VLR. WL = [ CP/lambda (TT - TR ) + 1 ] WR + CP / lambda (TT - TI) WP WV = WP + WL R = WV / WL Where: WL = Weight-flow rate of liquid through tray WV = Vapour flow rate through tray 5 R = Vapour -to - liquid ratio WR = External reflux-flow rate WP = Product-draw-flow rate CP = Heat capacity of liquid Lambda = Heat of vaporization TT = Top vapour temperature TR = External reflux temperature TI = Temperature on tray 5 18 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Insertion Points Create a CAB without Insertion Point Step 24 Action Using PDF Collection to assist you, create the required CAB and Control Modules you require. In PDF Collection, follow the path given below: Experion R501.1 PDF Collection > Configuration > Custom Algorithm Block and Custom Data Block users guide > CAB and CDB example scenarios > Formulation of VLR_CALC without insertion point. ATTENTION Create a CAB named VLR_CALC with TEAMI_CAB and also provide the CM Name as VLRATIO. Code for the CAB Block is available in PDF Collection under Experion R501.1 PDF Collection > Configuration > Custom Algorithm Block and Custom Data Block users guide > CAB and CDB example scenarios > CAB insertion algorithm > Define the algorithm for VLR_CALC In the example given in PDF Collection, AI channels placed in different CMs are used to feed the values for Top Temperature, Reflux Temperature, Tray Temperature, Reflux Flow Rate and Product Flow Rate, in the CAB. Instead of using AI channels, use the Numeric Block from the Utility Tree in the Library Tree Window. Note that there are NO Parameter References in this CAB, since no insertion is to be performed. All the variables are Value CDPs. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 19 Configure Insertion Points Create a CAB without Insertion Point Step 25 Action Create the Respective Blocks in a new CM VLRATIO. ATTENTION Parameter ORDERINCM for each of the above three blocks must be assigned manually to achieve the desired execution order. Assign the VLRATIO Control Module to CEE of ACE. 20 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Insertion Points Create a CAB without Insertion Point Step 26 Action Add the following Numeric Blocks in VLRATIO. Numeric Block1 Name: TOPT Actual Value: 100 Numeric Block2 Name: TRAYT Actual Value: 80 Numeric Block3 Name: RFXT Actual Value: 80 Numeric Block4 Name: RFXFLOW Actual Value: 80 Numeric Block5 4/16/2018 Name: DRAWFLOW Actual Value: 80 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 21 Configure Insertion Points Create a CAB without Insertion Point Step Action 27 Connect the inputs of the CAB VLR_CALC to the Numeric Blocks, as shown in the figure below. Download and Activate the CM VLRATIO. 22 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Insertion Points Create a CAB without Insertion Point Step 28 4/16/2018 Action Verify the CAB Algorithm using the NUMERIC Blocks defined as Simulated Analog Inputs. Change the Values of these Blocks and observe the change in the Value of PVCALC Parameter of the CAB Block. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 23 Configure Insertion Points Create a CAB without Insertion Point This page was intentionally left blank. 24 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Insertion Points Create a CAB with Insertion Point Create a CAB with Insertion Point Objectives In this lab, students will create a CAB with Insertion Point based on the example provided in PDF Collection. CAB created in this lab can be used in both SIM-C300 and SIM-ACE Nodes. Prerequisites Experion Flex Station installed with CAB Developer. SIM C300 Controller loaded on server. Application Control Environment installed and loaded on server. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 25 Configure Insertion Points Create a CAB with Insertion Point Step 1 Action Using the information given, create a CAB Insertion Algorithm. ATTENTION Please note that the VLR example is now to be utilized for usage of CAB as an insertion block. 26 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Insertion Points Create a CAB with Insertion Point Step 2 Action Vapor-to-Liquid Ratio Control Control the Vapor-to-Liquid Ratio (VLR) within a Fractionation Column. Use VLR as the PV in a PID Loop. It is not available as a direct measurement. There is a simple algebraic formula for computing the VLR. WL = [ CP/lambda (TT - TR ) + 1 ] WR + CP / lambda (TT - TI) WP WV = WP + WL R = WV / WL Where: WL = weight-flow rate of liquid through tray 5 WV = vapour flow rate through tray 5 R = vapour - liquid ratio WR = external reflux-flow rate WP = product-draw-flow rate CP = heat capacity of liquid Lambda = heat of vaporization TT = top vapour temperature TR = external reflux temperature TI = temperature on tray 5 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 27 Configure Insertion Points Create a CAB with Insertion Point Step 3 Action Using PDF Collection to assist you, create the required CAB and Control Modules you require. In PDF Collection follow the path given below: Experion R501.1 PDF Collection > Configuration > Custom Algorithm Block and Custom Data Block users guide > CAB and CDB example scenarios > CAB Insertion algorithm ATTENTION Provide the CAB Block Name as VLR_CALC_INS. Also provide the CM Name as VLRATIO_INS In the example given in PDF Collection, AI channels placed in different CMs are used to feed the values for Top Temperature, Reflux Temperature, Tray Temperature, Reflux Flow Rate and Product Flow Rate, in the CAB. Instead of using AI channels, use the Numeric Block from the Utility Tree in the Library Tree Window. Make the changes accordingly in the CAB Block placed in the CM VLRatio under the Parameter References Tab. Ensure you have added CAB Instance (VLRATIO_INS.VLR_CALC_INSA) in Insertion tab of PID (VLR_CTL1) with Insert Type as Post_Input. 28 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Describe Special Considerations for CAB on C300 Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 1 Describe Special Considerations for CAB on C300 4/17/2018 Excluded Functions for CAB on C300 • Functions which require Large Memory or Physical Hard Disk are not supported by CAB/C300 – – – – – Dynamic Re-Referencing Distributed Execution History Access File Access Relational Database Access • Programming Language Usage that are not supported by CAB/C300 – – – – – Try-Catch Aggregate Data Members Of Class CABlock Structure Variables Shared Variables Static Variables Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 2 1 Describe Special Considerations for CAB on C300 4/17/2018 ECMA .NET Types • ECMA .NET supports a large set of Classes and Value Types • CAB/C300 emulates only a subset of these types sufficient to meet the needs of programming • A few examples of excluded ECMA .NET Types are listed below – Decimal – Short – Single • Refer to Appendix D in the Custom Algorithm Block and Custom Data Block User Guide for details about supported classes and methods in CAB on C300 Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 3 Describe Special Considerations for CAB on C300 4/17/2018 Option Strict • Visual Studio .NET enforces strict data typing through the use of “Option Strict” – “Option Strict” is present in CABlock Properties under the Project menu Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 4 2 Describe Special Considerations for CAB on C300 4/17/2018 Option Strict • For CAB/C300, only Strict Typing is allowed – When a CAB type is first created, Option Strict is automatically set to On – If Option Strict is turned off and a build attempted, the following message occurs • On selecting OK in this message, Option Strict is set to ON • For CAB/ACE, programmer can choose whether or not to enforce Strict Typing – If Option Strict is turned OFF and a build attempted, the build will proceed without notification Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 5 Describe Special Considerations for CAB on C300 4/17/2018 CM Process Special • CM Process Special (CMPS) Option triggers the execution of CMs outside the Normal Execution Cycle • CM Process Special is a capability supported by CEE on specific platforms – It is independent of CAB Types • C300-CEE does not support CMPS – CAB/C300 Code must emulate CMPS execution in response to specific CDP Values Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 6 3 Describe Special Considerations for CAB on C300 4/17/2018 Versioning Of CAB/C300 Enablers • CAB/ACE maintains versions for buildtime and run-time – .NET version (DOTNETVER) and CAB software version (CABSOFTVER) are used to store the version information – ERDB can hold 2 versions – CAB Block Load will be rejected if buildtime and run-time versions do not match • CAB/C300 maintains versions for buildtime and run-time – Minimum required version (X_CC3MINREQV) and supported version (CC3SUPRTDV) are used to store the version information – ERDB can hold only 1 version – CAB block can be loaded only when CAB.X_CC3MINREQV <= CEE.CC3SUPRTDV Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 7 Describe Special Considerations for CAB on C300 4/17/2018 Special Considerations with CAB on C300 • VB-Only Constructs – CAB/C300 supports programming constructs of ECMA.NET – Language functionalities unique to VB.NET are not supported on CAB/C300 • Examples such as usage of CStr() or any construct requiring support from the name space Microsoft Visual Basic or one of its sub-namespaces • Usage of keyword “New” – In CAB/ACE programming usage, “New” and “Private” will instantiate data in Long Term Heap (LTH). – In CAB/C300 “New” and “Private” will instantiate data in Short Term Heap (STH) • PRef String Size – In CAB/C300 the PRef Size attribute has been exposed and made configurable. This is to impose restrictions on communication load – Default PRef size is 8 characters. Maximum supported size is 255 characters Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 8 4 Describe Special Considerations for CAB on C300 4/17/2018 Time Zone and Metadata Parameter/Functionality • CAB/ACE CAB/C300 Time Zone Configured on Windows OS Configured with Parameter TIMEZONE on CEE Block Daylight Saving Time Configured on Windows OS Configured with Parameter DAYLIGHTTIME on CEE Block Affected CAB Functionality DateTime.Now property DateTime.Now Property Parameters of Time Data Type – As seen in the table above • Time Parameters in CAB/C300 are dependent on the Time Zone and Daylight Saving Time Parameters configured in the CEE and NOT on the OS • Time Parameters in CAB/ACE is dependent on the Operating System (OS) of the ACE Node – The precision of time conversion from ECMA.NET to EPKS is as follows • 1 Millisecond for CAB/ACE • 100 Microseconds for CAB/C300 • CAB/C300 uses a leaner implementation of ECMA.NET which does not support usage of Metadata Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 9 Describe Special Considerations for CAB on C300 4/17/2018 Mathematical Functions • Mathematical results in CAB/ACE and CAB/C300 are consistent, under Normal Ranges • Some CAB/C300 results are NaN when arguments are at Extreme Values • CAB/C300 Mathematical Functions sometimes return NaN – Mathematical singularities at particular argument values – Finite precision of C300 Function Call CAB/ACE Result CAB/C300 Result Atan2(-1.0. –INF) -3.141593 NaN Atan2(-11.0, 1.0E+17) -3.141593 NaN Pow(+INF, 0.0) 1 NaN Pow(+INF, 10.0) +INF NaN Pow(+INF, -10.0) 0 NaN Pow(0.0, 0.0) 1 NaN Pow(-INF, 0.0) 1 NaN Pow(-INF, 9) -INF NaN Pow(-INF, -9) 0 NaN -5773501.94 NaN Tan(1.5707965) Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 10 5 Describe Special Considerations for CAB on C300 4/17/2018 Restart Modes • Restart Modes supported by C300 – Warm Restart • Restart initiated by Operator, typically following a Checkpoint Restore – Cold Restart • Restart initiated by Operator, typically following a Checkpoint Restore – RAM Retention Restart • Restart following a power down during which RAM contents were preserved by Local Battery Power – Switchover resulting in a Hot Restart • Restart in the new primary after Normal Redundancy Switchover is induced by command or by failure of the Old Primary • CAB Infrastructure supports APIs which allows a program to determine whether a Restart has occurred and the type of Restart – CAB supports following two APIs • Restart • RRRestart (RAM Retention Restart) Honeywell Confidential Copyright © 2018 Honeywell International Inc. Special Considerations 11 Describe Special Considerations for CAB on C300 4/17/2018 Data Handling Across Restart Preserved across Checkpoint Restore Preserved across RAM Retention Restart Preserved across Switchover FDP RDERRALM.PR, WRTERRALM.PR, EXCPTALM.PR, TRMNTALM.PR, RDERRALM.SV, WRTERRALM.SV, EXCPTALM.SV, TRMNTALM.SV Yes Yes Yes CDP Access Lock Of AppDevOnly Yes Yes Yes CDP Access Lock Of ViewOnly No Yes Yes CDP Any other Access Lock Yes Yes Yes PRef Internal Cached Values No No Yes Scalar Data Members No Yes Yes Data Category CABlocks • Data Description Refer to CAB/C300 Special Considerations Controller Restarts section under the Custom Algorithm Block and Custom Data Block User Guide in PDF Collection for more information Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 12 6 Describe Special Considerations for CAB on C300 4/17/2018 MU and PU calculations for CAB/C300 • CAB/C300 can be used to write a variety of applications which account for corresponding variations in memory usage – Use the following three categories to understand the characterization of the size variation Size Category Line Count CDP Count PRef Count Representative CAB-C300 Type Size (kilobytes) Representative CAB-C300 Instance Size (kilobytes) Small 20 1 10 21.6 1.5 Medium 100 15 50 32.8 4.7 Large 200 30 100 45.9 8.6 • Amount of CPU consumed by the execution of a CAB/C300 Block instance can vary based on: CAB Size Lines Of Number Number CPU – Line count – Looping – Program’s general complexity Category Code Of CDPs Of PRefs 100 15 50 Consumption (PU / Block Instance) See Note 1 Medium 6.3 Note 1 - In CEE, one Processing Unit (PU) is equal ¼ the total amount of time required to process a typical DevCtl CM and a typical RegCtl CM. Honeywell Confidential Copyright © 2018 Honeywell International Inc. Special Considerations 13 Describe Special Considerations for CAB on C300 4/17/2018 Performance and Capacity • CAB configurations are limited by the total memory capacity of the C300. – This capacity is similar for C300 (20 mSec) Controller Sr. No Feature Typical Maximum 1 Loaded CAB Types 30 to 70 100 2 CAB Instances Per Type 1 to 10 No Enforced Limit Limited on memory utilization with CEE memory 3 CAB Instances (All Types) 50 to 500 No Enforced Limit Limited on memory utilization with CEE memory 4 Fixed Definition Parameters (FDP) - 200 Enforced limit 50 in use 150 reserved 5 User Defined Parameters - 1500 CDP counts as one parameter PRef counts as two parameters Array counts as one parameter Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 14 7 Comment Enforced limit as a constraint on the CEE memory Describe Special Considerations for CAB on C300 4/17/2018 Performance and Capacity • • Size of the CAB/C300 Types and Instances are limited due to the resource constrains in the C300 Controller Sr. No Feature Typical Maximum CAB/C300 Type size 2 CAB/C300 Instance size 20 to 200 KB 700 KB 2 to 20 KB 160 KB Total memory consumed by CAB/C300 Types and Instances can be monitored using the following parameters in CEE – – – – • 1 TOTALMEM USEDMEM FREEMEM MAXFREEBLKSZ These parameters show the memory consumed by the Native Blocks and CAB Types/Instances Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 15 Describe Special Considerations for CAB on C300 4/17/2018 Licensing • Licensing for CAB/ACE and CAB/C300 are equivalent • There are 3 licensed capabilities – License for the capability to create and modify CAB Types • Covered in the CAB developer license • Applicable to both CAB/ACE and CAB/C300 • Licenses for CAB/ACE and CAB/C300 cannot be availed separately • Installation is subject to CAB developer license – License for the capability to create and modify CAB Instances • Inherent in Experion PKS Control Builder • Installation includes CAB Instance support as a default option – License for the capability to run CAB Types in the C300 Controller • Inherent in the controller personality • Controller firmware version installation supports the run-time capability Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 16 8 Describe Special Considerations for CAB on C300 4/17/2018 Redundancy Traffic • Excessive Redundancy Traffic – CAB/C300 supports redundancy – Control Parameter Write contributes to redundancy traffic, known as Redundancy Transfer Count • May cause a loss of synchronization, but NO loss of control – Redundancy Transfer Count (RTC) is generated as a result of the following activities • Write of CABlock member data • Write of PRef data • Write of CDP data – Excessive RTC can be monitored using Redundancy Traffic Instrumentation • C300 provides RDNCNTCYCMAX, and RDNXFERMAX parameters which may be used to assess the level of redundancy traffic Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 17 Describe Special Considerations for CAB on C300 4/17/2018 Redundancy Count Exceeded Alarm • CEE-C300 monitors the maximum RTC generated by any cycle once every 2 seconds • CEE-C300 reports a high priority alarm if RTC exceeds a configurable trip point – Default value is 112500 bytes – This value is about 20% lower than the value at which loss of synchronization might occur Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 18 9 Describe Special Considerations for CAB on C300 4/17/2018 Size of Looping • CAB/C300 is intended to support Level One process control applications • So CAB programmers must exercise caution if they choose to do any Iterative programming within the C300 • Looping recommendations in CAB/C300 – Preferably, use Loop Counts which are fixed • They should be fixed to low values – For using a loop count which can change with Instance Configuration, make sure the assigned configuration is limit checked and no looping takes place if the count falls outside the allowed range • Maximum loop count should be fixed to low values. – Never do looping which is open ended, such as in a numerical computation where desired precision drives the final loop count – Never do looping where the value of the loop count is affected by process data or by run-time computed data Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 19 Describe Special Considerations for CAB on C300 4/17/2018 On-Process Migration • On-Process Migration (OPM) is supported by CAB/C300 • Run-time data of the CAB Instance is transferred from primary to secondary, wherein either is of a different version – Run-time data transfer does not need support from the CAB programmer • Following constraints applies to CAB/C300 during OPM • OPM Guidelines for CAB programmers – EPKS Controller configurations may not change – CAB Type definitions may not change – CAB Instance configurations may not change – State transition of a CAB Instance after OPM switchover is equivalent to the transition after a normal switchover – OPM switchover transition can be detected to initialize data on OPM switchover • Restart = CEESwitchStart is the start condition for an OPM switchover – Categories of data retained across an OPM switchover are equivalent to those of a normal switchover Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 20 10 Describe Special Considerations for CAB on C300 4/17/2018 Conclusion Describe Special Considerations for CAB on C300 Completion Certificate Proceed to the next lesson your course material Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 21 Describe Special Considerations for CAB on C300 4/17/2018 This page intentionally left blank Special Considerations Honeywell Confidential Copyright © 2018 Honeywell International Inc. 22 11 Describe Special Considerations for CAB on C300 This page was intentionally left blank. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary Examine ACE and Sim-ACE Functionality ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 1 Examine ACE and Sim-ACE Functionality 4/17/2018 Architecture Overview ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 2 1 Examine ACE and Sim-ACE Functionality 4/17/2018 Application Control Environment • ACE mirrors the basic operations of a Control Processor Module (CPM) • Supports execution of Custom blocks • Provides the additional capability of communicating with OPC Servers through a FTE or redundant or non-redundant Ethernet network • Supports Inter-Cluster Peer-to-peer communication • ACE can access TPS points when connected to the LCN • Supports execution of applications like Experion Batch Manager (EBM), Profit Suite ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 3 Examine ACE and Sim-ACE Functionality 4/17/2018 ACE Characteristics • An ACE can be connected into an Experion PKS network via a single Ethernet connection, redundant Ethernet, or FTE • One Experion Server can support up to seven ACE nodes • Only one ACE per node • ControlNet supports two directly connected ACE nodes • ACE node is non-redundant • ACE cannot reside on the same node as the Experion Server ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 4 2 Examine ACE and Sim-ACE Functionality 4/17/2018 ACE Characteristics Continued • A single ACE can have a maximum of 30 connections to components such as C200s or FIMs connected via an FTE Bridge or ControlNet. • Loading non-essential software such as Experion Server/Client on an ACE node is prohibited. • The ACE Controller can Peer-to-Peer with other ACE controllers connected to the same Experion server over FTE or Non-FTE networks • An ACE controller with direct connection to ControlNet or a supervisory FTE network can peer-to-peer with C200/C200E controllers connected to the same Experion server • An ACE controller on a FTE based Experion Process Network (EPN) can peer to peer with C300 controllers connected to the same Experion server ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 5 Examine ACE and Sim-ACE Functionality 4/17/2018 CDA-SP Service • Experion CDA-SP service in ACE node must be added to mngr account in order to communicate with other nodes – Required for History/File access, OPCG communication and so on ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 6 3 Examine ACE and Sim-ACE Functionality 4/17/2018 Create an ACE • In Control Builder, Select File > New > Controllers > ACE – Application Control Environment ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 7 Examine ACE and Sim-ACE Functionality 4/17/2018 Create an ACE • Fill in the required information in the Configuration properties dialog box: – Tag Name – Item Name – Host IP Address or Host Name ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 8 4 Examine ACE and Sim-ACE Functionality 4/17/2018 Create an ACE • Once an ACE is created, Control Builder automatically creates a CEE • Use the left mouse button to Double Click the CEE to open the CEE configuration window Double-click Select this parameter to enable a SIM-ACE Honeywell Confidential Copyright © 2018 Honeywell International Inc. ACE Concepts (ACE Only) Examine ACE and Sim-ACE Functionality 4/17/2018 9 SIM-ACE Characteristics • • • • A SIM-ACE can run any strategy an on-process ACE runs A SIM-ACE connected to a live system will be able to read live data but not write back to the process Reads and writes flow between all simulators for complete debugging A SIM-ACE is required to do a CAB debug session through Visual Studio – A debugger cannot be attached to a live on-process ACE • The following are rules for peer-to-peer and simulation/non-simulation communications Type Peer to Peer Communication ACE Can write to another ACE Can read from another ACE Can write to a SIM-ACE Cannot read from SIM-ACE SIM-ACE Can write to another SIM-ACE Can read from another SIM-ACE Cannot write to ACE Can read from ACE ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 10 5 Examine ACE and Sim-ACE Functionality 4/17/2018 Memory Resources CEE/CPM M em or y Res our c es and Bloc k Configuration Definition: M U = M em ory Unit = 1 Kby tes = 1024 by tes C200 C300 ACE Maximum Available CEE Memory 4000 MU 16000 MU 128,000 MU Resources 4095* Maximum Total Number of CMs, SCMs 1000 4095 (*IOM's not and IOMs Configurable per CEE supported) Maximum Number of Control Modules with PERIOD set to NOPERIOD, N/A N/A 4000 Process Special Maximum Number of Component Blocks 100 100 100 per CM Maximum Number of Component Blocks 400 400 400 per SCM ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 11 Examine ACE and Sim-ACE Functionality 4/17/2018 Conclusion Examine ACE and Sim-ACE Functionality Completion Certificate Proceed to the next module in your course material ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 12 6 Examine ACE and Sim-ACE Functionality 4/17/2018 Describe Support Availability of ACE ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 13 Describe Support Availability of ACE 4/17/2018 Introduction • ACE controller requires Server and Station programs to support Operator Interface, History, and other functions, similar to Control Processor Module (CPM) • Only one ACE environment is supported per computer running Windows 2016 Server operating system – ACE is not qualified to run on the Experion Server node • Redundant ACE controllers are not supported • ACE controller supports peer-to-peer communication with other ACE controllers, and Cx00 controllers ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 14 7 Describe Support Availability of ACE 4/17/2018 Solution • Desire to increase availability of typical CAB function in the ACE node – Not have ACE as a single point of failure • Run two CAB programs in separate ACE nodes that perform same function ACE 1 ACE 2 CAB 1 CAB 1 C300 ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 15 Describe Support Availability of ACE 4/17/2018 Issues with solution • Issue1: Independent programs can have different states and can yield different results – Connecting two data sources to same Experion point • Solution: Program is designing to read the state before running and to write the state after running • State Data is stored on the redundant C300 controller (using CDBs) – Used two variables in CAB to determine which CAB should run • CABname and CABtorun • If the two are equal then run, else don’t – Use SCM to read the state of CAB before running then decide which CAB to run and then write the desired state to CAB ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 16 8 Describe Support Availability of ACE 4/17/2018 Solution Layout Write state Write state CDB 3? 2 3? Read state CAB 1 Run? 2 CAB 2 1 Run? • Must push data from CABs to CDB since we don’t allow a single source to pull various data from two distinct data sources – Experion System Infrastructure is pull design • Need to optimize writes to minimize pushes ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 17 Describe Support Availability of ACE 4/17/2018 Deciding Which CAB to Run • Issue: Determining which of the two cab programs is running and which is not • Options – Programs determine which of them to run with internal flags – External Flag dictate which runs • External flag method allows for state that neither CAB block is running (*) A Desired B Desired ACE Concepts (ACE Only) A State B State Running CAB On On A On Off A Off On B Off Off * On On B On Off A Off On B Off Off * Honeywell Confidential Copyright © 2018 Honeywell International Inc. 18 9 Describe Support Availability of ACE 4/17/2018 Conclusion Describe Support Availability of ACE Completion Certificate Proceed to the next module in your course material ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 19 Describe Support Availability of ACE 4/17/2018 This page intentionally left blank ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 20 10 Describe Support Availability of ACE Describe ACE-T ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 21 Describe ACE-T 4/17/2018 Overview • The Honeywell TPS (Total Plant Solution) is the predecessor of the Honeywell Experion System • The ACE-T can function as a connectivity link between the Honeywell TPS system and the Honeywell Experion system • ACE-T links to TPS through the TPN server which runs as a service on the ACE-T • Existing specifications for ACE, OPC Gateway, and TPN Server also apply to the ACE-T node, which otherwise also includes a direct LCN or Local Control Network connection – Since the ACE-T is an ACE with LCN component, it can perform standard functions such as CAB Programming and CEE Simulation • The ACE-T hosts an OPC gateway, which can be accessed on an ACE node, using the OPC Gateway object (or dot operator) method ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 22 11 Describe ACE-T 4/17/2018 Deploy ACE-T • During Installation, Application Control Environment TPN Connected option must be selected to deploy ACE-T node ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 23 Describe ACE-T 4/17/2018 Introduction • A typical purpose of an ACE-T is the LCN Control Cascade • The term LCN Control Cascade defines a Regulatory Control strategy utilizing an external data access function block in the ACE-T for interfacing an Experion block or loop to a TPS RegCtl point • The Level 1 controller RegCtl block is normally in a Data Highway controller or UCN controller The TheACE-T ACE-T Interface Interface A Highway/UCN level-1 Controller ACE Concepts (ACE Only) AnAn Experion Experion System Systemlevel-1 level-1 controller controller Honeywell Confidential Copyright © 2018 Honeywell International Inc. 24 12 Describe ACE-T 4/17/2018 LCN Cascade Control - Concept PID on TPS PID on Experion TPN Server OPC Server Data Transfer Cascade Regctrl Primary Regctrl TPS ACE Concepts (ACE Only) ACE-T Honeywell Confidential Copyright © 2018 Honeywell International Inc. 25 Describe ACE-T 4/17/2018 LCN Cascade Control Strategy • FIC3241 is a TPS loop available on the LCN network which shall be in the Cascade loop • FIC3241 will be in the Cascade mode • As in a Cascade Control, SP (setpoint) of the TPS loop will be written into by the primary OP • The ACE-T provides read-write access to the TPS point ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 26 13 Describe ACE-T 4/17/2018 LCN Cascade Control Strategy • OP (output) of the TPS loop will be monitored in the Experion system for primary loop control • An SCM is used in the Experion CM to achieve a bump-less control • The TPS OP limits are also tested by the SCM • The SCM will not be able to write to the TPS point, which requires the utilization of a UCNOUT block in the primary CM • The UCNOUT provides configurable connections and compatible data mapping between controllers ACE Concepts (ACE Only) TPS Loop OP is monitored for Cascade Control Honeywell Confidential Copyright © 2018 Honeywell International Inc. 27 Describe ACE-T 4/17/2018 OPC Configuration • A typical OPC Configuration would comprise of an Experion ACE accessing the ACE-T • The HCI component for data availability will be “HCI.TPNServer” • Experion ACE access of data is through the DOT operator ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 28 14 Describe ACE-T 4/17/2018 Experion Primary Loop • CM_TPNServer is the Control Module built in an Experion system to form the primary control loop • The Primary loop consists of a Data Acquisition Block and PID pair • The input of the Data Acquisition Block is provided by a NUMERIC block • The Output of the PID block is connected to the UCNOUT block • The UCNOUT block connects to the TPS points through the OPC server • The OPC Server is linked through the Param connector ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 29 Describe ACE-T 4/17/2018 UCNOUT Block • The UCN is an acronym for Universal Control Network • The UCN Interface block is a configurable block for creating regulatory control between the (ACE) supervisory controller and Process Managers residing on a UCN in a connected TPS system • The Remote Setpoint Control (RSP) mode is utilized in this strategy • The RSP is used for Supervisory to Level 1 controller cascade with a backup primary also existing in Level 1 ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 30 15 Describe ACE-T 4/17/2018 TPS Data access with OPC Gateway TPS Point Write by the OPC Gateway in the CM TPS Point Read by the OPC Gateway in the SCM ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 31 Describe ACE-T 4/17/2018 Example - Usage of TPS Data in SCM • First branch increments a counter if OP of the TPS Point is below 85 • Second branch resets the counter if OP of the TPS Point is above 85 ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 32 16 Describe ACE-T 4/17/2018 Example - Usage of TPS Data in SCM Decision Branch Branch 2 is getting executed • SCM Executing a normal RUN • The SCM loops back to the decision branch ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 33 Describe ACE-T 4/17/2018 Conclusion Describe ACE-T Completion Certificate Proceed to the next module in your course material ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 34 17 Describe ACE-T 4/17/2018 Describe Execution Order of Points ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 35 Describe Execution Order of Points 4/17/2018 Introduction • ACE provides a configuration option and a scheduling mechanism for an Operator, CAB program, CM or SCM to trigger the execution of another Control Module • This unique feature of ACE CEE is known as Process Special ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 36 18 Describe Execution Order of Points 4/17/2018 Process Special • Process Specials are also referred to as – Blocks with no Periods : Process Specials • Process Specials are devised to support on-demand CM execution for CMs that do not need to execute periodically • When a CM with this option is loaded to ACE, it is not assigned to any cycle, its PHASE parameter is defaulted to 0 and the ORDERINCEE is not applicable • Process Special is not supported for SCMs or for any CMs loaded to a C200 / C200E/ C300, and to SCMs loaded to an ACE – For SCMs / CMs, the selection of EXECUTION PERIOD parameter to NONE is not supported in a C200 / C200E/ C300 ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 37 Describe Execution Order of Points 4/17/2018 Support for Process Special • Process Specials are supported only for CM’s in ACE environments Options for C300 CEE CM Options for ACE CEE CM • The NONE menu item in the Execution Period determines if the block is to be triggered at a non-periodic rate, on-demand ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 38 19 Describe Execution Order of Points 4/17/2018 Initiation Methods • A process special request can be triggered using either of following two methods – Storing a TRUE value to the BPS parameter – Storing a non-negative value to the BPSDELAY parameter • BPS is a Boolean data type, with a TRUE or FALSE data input • BPSDELAY is a Float64 data type, with the range of pre-execution delay to be specified in terms of 0 to 86400 seconds BPS BPSDELAY ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 39 Describe Execution Order of Points 4/17/2018 Trigger Component Features • BPS – Once triggered the BPS cannot be re-triggered until the CM completes its execution – Upon CM completion, the BPS is tested for a TRUE value indicating any pending executions – Storage of a FALSE to BPS during execution of CM, forces pending executions to nullify • BPSDELAY – Any non-zero value to the BPSDELAY causes the CM to initiate execution, but stays incomplete until the BPSDELAY seconds time is completed – Writing a zero to BPSDELAY is equivalent to writing a TRUE to the BPS parameter – An under execution CM initiated by the BPSDELAY cannot be stopped, with the exception that a FALSE be written to the BPS parameter ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 40 20 Describe Execution Order of Points 4/17/2018 Considerations to be undertaken for a Process Special • Control Loop Considerations – In the event of a DATAACQ block attached to a PID block the ORDERINCM parameter for DATAACQ must be lower than the ORDERINCM parameter for PID • Process Special for slow periods – Process Specials are intended to be utilized for CM’s that require execution on request basis, although Process Specials can be configured for slow periods of execution through software methods • Block Scale Period – SCALEPERIOD parameter can be used with Process Specials • Can be used with period related parameters of some blocks – This parameter allows blocks with period-related parameters to be scaled appropriately based on the time ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 41 Describe Execution Order of Points 4/17/2018 Execution Rules • When a Process Special is requested, it is executed in the first available CEE cycle, after any time delay has passed. • SCALEPERIOD parameter determines the period-related values for the blocks placed within a CM • If the CM Process Special Execution occurs before the next scheduled periodic execution of the block, then the CM will perform both the Process Special and the periodic block executions • Process Special Execution will be cancelled by a periodic execution in the event of a Process Special Time Delay or a simple race condition. • More information on Process Specials can be accessed on PDF Collection at – Experion R501.1 PDF Collection > Configurations > Application Control Environment Users Guide > Planning and Design> Blocks with no Periods : Process Specials ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 42 21 Describe Execution Order of Points 4/17/2018 Conclusion Describe Execution Order of Points Completion Certificate Proceed to the next module in your course material ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 43 Describe Execution Order of Points 4/17/2018 This page intentionally left blank ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 44 22 Describe Execution Order of Points Describe Inter-Cluster Peer-Peer Communication ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 45 Describe Inter-Cluster Peer-Peer Communication 4/17/2018 Overview • Inter-Cluster Peer-Peer – Between ACE Nodes in different clusters • Enables Control Cascade and Data Sharing between ACE Nodes • Features – Inter-Cluster Gateway Block adds whole array and structure support – Adds SP push support to some Reg Control Blocks – Addition of an REEOUT block to push the SP ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 46 23 Describe Inter-Cluster Peer-Peer Communication 4/17/2018 Inter-Cluster Gateway Block • “Inter-Cluster Gateway Block” (ICG) can be used as an OPC Client and a “private” OPC Server • Resides on a designated ACE Node • Used for – ACE to ACE Peer-peer Communication in different clusters and – ACE Peer-peer to other CEE Nodes such as C200, C200E, C300, and EHGs that reside in different clusters ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 47 Describe Inter-Cluster Peer-Peer Communication 4/17/2018 Complex ICG-OPCG Topology ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 48 24 Describe Inter-Cluster Peer-Peer Communication 4/17/2018 Inter Cluster Gateway ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 49 Describe Inter-Cluster Peer-Peer Communication 4/17/2018 Inter Cluster Gateway IP address of the ACE on which this block is configured IP address of the remote ACE Note : An OPC Gateway Block has to be configured in the remote ACE ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 50 25 Describe Inter-Cluster Peer-Peer Communication 4/17/2018 REEOUT Block • The Remote EEOUT (REEOUT) function block is used to support intercluster ACE to ACE Regulatory Control Cascades • Usage of REEOUT block – When Primary regulatory block is in one cluster and the Secondary regulatory block is in another cluster • If Primary and Secondary regulatory block are within the same cluster, then REEOUT block unnecessary Input Output ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 51 Describe Inter-Cluster Peer-Peer Communication 4/17/2018 REEOUT Functional Block • Functional Description – Basic block that converts data between Experion and IC Gateway – It also establishes BACKCALC hidden connection between two Regulatory controls of ACE belonging to different clusters – The REEOUT block directly takes input from other blocks as SPIN (Set Point In) and pushes the SPOUT (Set Point Out) to the other cascaded regulatory block belonging to an ACE of a different cluster – The connection is established between two Regulatory blocks using a parameter connector, OPC Gateway Function Block and Inter Cluster Gateway Function Block ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 52 26 Describe Inter-Cluster Peer-Peer Communication 4/17/2018 REEOUT Functional Block • The following functionality is included as a part of the REEOUT block – Fetches SPIN parameter – Fetches the BACKCALC structure from the configured Secondary point of different cluster – Executes required store to the secondary point • A new store is not sent until the previous one has completed EPKS in Cluster1 – ACE1 PID REEOUT BACKCALC BACKCALC EPKS in Cluster 2 –ACE2 PID SP ICG OPC GW FB pointing to the 2nd cluster BACKCALC TC_EXTREFSTRUCT Note: ICG is not required if the primary and secondary are in the same cluster ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 53 Describe Inter-Cluster Peer-Peer Communication 4/17/2018 Regulatory Changes • The following blocks are allowed to have SP pushed to them: – PID, PID-PL, PIDER, PIDFF, EnhRegCalc and RatioCtl To be configured on the secondary block only if the Primary is in an ACE that belongs to another cluster ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 54 27 Describe Inter-Cluster Peer-Peer Communication 4/17/2018 Conclusion Describe Inter-Cluster Peer-Peer Communication Completion Certificate Proceed to the next module your course material ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 55 Describe Inter-Cluster Peer-Peer Communication 4/17/2018 This page intentionally left blank ACE Concepts (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 56 28 Describe Inter-Cluster Peer-Peer Communication Topic: ACE Concepts (ACE Only) Contents Configure Inter-Cluster Peer-Peer Communication (Reference Only) ..................................................3 Read/Write a TPS Point Using ACE-T (Reference Only) ....................................................................19 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 1 This page was intentionally left blank. 2 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 ACE Concepts (ACE Only) Configure Inter-Cluster Peer-Peer Communication (Reference Only) Configure Inter-Cluster Peer-Peer Communication (Reference Only) Main Idea The objective of this lab is to configure an ICG (Inter Cluster Gateway) for cascade control between ACEs available in two different clusters. (You must use real ACE nodes as SIM_ACE nodes will not work for this exercise. If you do not have enough lab equipment, complete the lab at the end of the course and re-configure your SIM_ACE nodes to be real ACE nodes). ATTENTION This lab is Reference Only. Do not perform this lab in class. In this lab, the scenario discussed is as follows: 1. There are two ACEs, Primary ACE (ACE_PRI) and Secondary ACE (ACE_EXP16), and are configured in physically separate clusters. 2. A Cascade Control has to be configured between the Primary ACE and the Secondary ACE. 3. The Primary ACE CEE has the Primary Control Loop and the Secondary ACE CEE has the Cascade Control Loop. Pre-Requisites The following Lab setup is expected. 1. A Primary ACE is to host the OPC Gateway. This ACE is connected to its individual Experion Server. 2. A Secondary ACE is configured on the student ACE. The Secondary ACE will host the IC Gateway. 3. Both aforementioned ACE-Server pairs are physically separate. The lab MUST use real ACE nodes as SIM_ACE nodes will not work for the OPCG and ICG exercise. 4. The individual ACE-Server pair forms two different clusters among which communication is to be established. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 3 ACE Concepts (ACE Only) Configure Inter-Cluster Peer-Peer Communication (Reference Only) Step Action 1 ATTENTION This lab must be performed only on physical ACE nodes. SIM-ACE does not support this function. 2 Build a new CM in the Primary ACE CEE. This CM acts a Primary Control Loop and is wired as shown. 3 Enter the information as shown in the CM Properties window: Tag Name : CM_PRI Item Name : CM_PRI_item Parent Asset : Training Click OK. 4 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 ACE Concepts (ACE Only) Configure Inter-Cluster Peer-Peer Communication (Reference Only) Step 4 5 Action Enter the following as the PID Properties; Normal Mode: AUTO Normal Mode Attribute: NONE Mode: AUTO Mode Attribute: OPERATOR Open the PID_PRI properties window > Block Pins; and move the output OP pin from location BOTTOM to location RIGHT. TIP Tune the PID on the PID Projects Parameter dialog box within the Algorithm Tab. Change Overall Gain to 0.4 and T1 to 0.2 for the lab exercise. Click OK. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 5 ACE Concepts (ACE Only) Configure Inter-Cluster Peer-Peer Communication (Reference Only) Step 6 Action Select and move a REEOUT block from the library to the CM. Configure the REEOUT block as follows Name: 6 REEOUT_PRI Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 ACE Concepts (ACE Only) Configure Inter-Cluster Peer-Peer Communication (Reference Only) Step Action 7 Add an OPC Gateway using the selection as File > New > External Servers > OPC-OPC Gateway. 8 Configure the OPC gateway as follows Tag Name: OPC_G 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 7 ACE Concepts (ACE Only) Configure Inter-Cluster Peer-Peer Communication (Reference Only) Step 9 Action Enter Details for OPC communication Host IP Address: Enter IP address for the Primary PID’s ACE Host Name: Enter Host Name (If IP not known) OPC Server Host IP Address: Enter IP address for the Secondary PID’s ACE OPC Server Host Name: Enter Host Name (If IP not known) OPC Server PROGID: HCI.OPCGateway Click OK. 8 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 ACE Concepts (ACE Only) Configure Inter-Cluster Peer-Peer Communication (Reference Only) Step Action 10 Complete the CM wiring in Project as shown below (a Monitoring example is shown) and Param Connector to connect the output of REEOUT block to the PID SP of use the the Secondary ACE through the OPC Gateway. ATTENTION The OPC point has to be entered manually within the PARAM CONNECTOR rather than using the point picker 4/15/2018 11 Save and load the CM. 12 Load the OPC Gateway. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 9 ACE Concepts (ACE Only) Configure Inter-Cluster Peer-Peer Communication (Reference Only) Step 13 Action Build a new CM in the Secondary ACE CEE. This CM must contain a Secondary Control Loop as shown in the figure below. 14 10 Enter the information as given below in the CM Properties window: Tag Name : CM_SEC Item Name : CM_SEC_item Parent Asset : <Assign it to the existing Asset> Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 ACE Concepts (ACE Only) Configure Inter-Cluster Peer-Peer Communication (Reference Only) Step 15 Action Enter the following from the PID Properties window; Normal Mode: CAS Normal Mode Attribute: NONE 4/15/2018 Mode: CAS Mode Attribute: OPERATOR Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 11 ACE Concepts (ACE Only) Configure Inter-Cluster Peer-Peer Communication (Reference Only) Step 16 Action Open the PIDA properties window > SetPoint; and add Check the Enable Pushing SP option TIP Tune the PID on the PID Projects Parameter dialog box within the Algorithm Tab. Click OK. 12 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 ACE Concepts (ACE Only) Configure Inter-Cluster Peer-Peer Communication (Reference Only) Step Action 17 Save and Close the CM. 18 Add an Inter Cluster Gateway from; File > New > External Servers > ICG-Inter Cluster Gateway 19 Configure the Inter Cluster Gateway as follows: Tag Name: ICG_SEC 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 13 ACE Concepts (ACE Only) Configure Inter-Cluster Peer-Peer Communication (Reference Only) Step 20 Action Enter Details for ICG communication Host IP Address: Enter IP address for the Secondary PID’s ACE Host Name: Enter Host Name (If IP not known) OPC Server Host IP Address: Enter IP address for the Primary PID’s ACE OPC Server Host Name: Enter Host Name (If IP not known) Click OK. 14 21 Save and Load the secondary CM. 22 Save and Load the ICG. 23 Activate the Primary CM and OPC gateway on the Primary ACE. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 ACE Concepts (ACE Only) Configure Inter-Cluster Peer-Peer Communication (Reference Only) Step 24 Action Activate the Secondary CM on the Secondary ACE. ATTENTION Note that the ICG is only to be loaded and not activated. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 15 ACE Concepts (ACE Only) Configure Inter-Cluster Peer-Peer Communication (Reference Only) Step 25 16 Action Test the peer-peer communication by performing the following steps; Change the Setpoint of Primary PID (PID_PRI). Since the Primary PID is in AUTO mode, the OP will be modified. Observe the Setpoint in the Secondary PID. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 ACE Concepts (ACE Only) Configure Inter-Cluster Peer-Peer Communication (Reference Only) Step 26 4/15/2018 Action Observe the changing Setpoint in the secondary PID. The Setpoint in the Secondary PID (PIDA) will change since it has been PUSHED in by the ICG. Since the PIDA is in cascade mode it will take action on the OP. Change the mode of the secondary PIDA block to AUTO. Make a setpoint change and observe initialization on the Primary PID block. The Primary PID block’s INITMAN flag will be ON and the OP will be set equal to the SP of the secondary. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 17 ACE Concepts (ACE Only) Configure Inter-Cluster Peer-Peer Communication (Reference Only) This page was intentionally left blank. 18 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 ACE Concepts (ACE Only) Read/Write a TPS Point Using ACE-T (Reference Only) Read/Write a TPS Point Using ACE-T (Reference Only) Objectives Read/Write a TPS point using ACE-T. This lab is for Reference Only. Do not perform this lab in class. Prerequisites Experion PKS Server with Configuration Studio installed. ACE node configured and loaded in Control Builder. TPS configuration must be performed in ACE-T node. Introduction This lab must be performed in a physical ACE-T node, since we cannot write to a TPS point using Simulation nodes. In this lab, you will perform the following: Create an OPC Gateway block to communicate with TPS points. In a Control Module, read the TPS point. Use the same Control module to create cascade control between a PID running in ACE (Primary) and PID running in TPS (Secondary). o UCNOUT block is used writing to the TPS point. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 19 ACE Concepts (ACE Only) Read/Write a TPS Point Using ACE-T (Reference Only) Step Action 1 ATTENTION Do not perform this lab in class. This lab is for Reference only 2 Launch Configuration Studio and open Control Builder, if not already open. 3 Select File New External Servers OPC- OPC Gateway 4 Enter the following information: Tag Name: OPC_TPS Item Name: OPC_TPS_Item Host IP Address: <Enter the IP address of the ACE node> OPC Server Host IP Address: <Enter the IP address of the ACE-T node> OPC Server PROGID: HCI.TPNServer Click OK. 5 Load and Activate OPC_TPS. 6 Create a new control module with the following properties: Tag Name: CM_TPS Item Name: CM_TPS_Item Asset: TRAINING Click OK. 20 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 ACE Concepts (ACE Only) Read/Write a TPS Point Using ACE-T (Reference Only) Step 4/15/2018 Action 7 Drag and drop a Numeric block into the contol module. Double click to open the properties of NUMERICA block. 8 From the Block Pins tab, delete the Output pin which is already present. Add PV as Input Pin. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 21 ACE Concepts (ACE Only) Read/Write a TPS Point Using ACE-T (Reference Only) Step 9 Action Select the Parameter Connector button ( of NUMERICA block. ) in the toolbar and connect it to the PV pin Enter the parameter name as OPC_TPS.FIC21765.PV in the parameter connector. 22 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 ACE Concepts (ACE Only) Read/Write a TPS Point Using ACE-T (Reference Only) Step Action 10 Save the Control module and assign it to the ACE node. 11 Load and activate the CM_TPS. 12 Open CM_TPS in the monitoring side and ensure that the PV value of FIC21765 point is present.. TIP PV value of the TPS point has to be checked in Native Window. If the TPS system interface is configured in Experion Server, then value of this TPS point can be viewed in Experion Station itself. 13 4/15/2018 Close CM_TPS. Open CM_TPS from Project tab. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 23 ACE Concepts (ACE Only) Read/Write a TPS Point Using ACE-T (Reference Only) Step 14 Action Drag and drop the following blocks and connect them as shown on the screen capture. a. NUMERIC block b. PID block c. UCNOUT block (present in UCNIF library) d. 15 Double click on Numeric block and enter the Actual Value as 47. Click OK. 16 Open the properties of the PIDA block and enter the following: Main Tab Mode: AUTO Algorithm tab T1 (minutes) : 10 SetPoint tab SP : 50 Click OK. 24 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 ACE Concepts (ACE Only) Read/Write a TPS Point Using ACE-T (Reference Only) Step 17 Action Select the Parameter Connector button ( pin of UCNOUTA block. ) in the toolbar and connect it to the SPOUT Enter the parameter name as OPC_TPS.FIC21765.SP in the parameter connector. 18 Open the properties of UCNOUTA block and select the Remote Cascade Type as SPC Click OK. 4/15/2018 19 Save and close the Control Module. 20 Load and activate CM_TPS. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 25 ACE Concepts (ACE Only) Read/Write a TPS Point Using ACE-T (Reference Only) 26 Step Action 21 Open CM_TPS in monitoring side for monitoring the Output value of the UNCOUT block Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 ACE Concepts (ACE Only) Read/Write a TPS Point Using ACE-T (Reference Only) Step 22 Action Ensure that the otuput value of the UCNOUT block is written to the SP of the FIC21765 block. ATTENTION TPS point must be in cascade mode. Control states of UCN and HPM/AM where the point is located must be selected as FULL CONTROL. Default Value of these parameters are BASIC CONTROL. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 27 ACE Concepts (ACE Only) Read/Write a TPS Point Using ACE-T (Reference Only) This page was intentionally left blank. 28 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Describe Additional Math Functions within VB.Net CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 1 Describe Additional Math Functions within VB.Net 4/17/2018 CABMath Class • CAB Math functions are available to the user and are included into the scripts, default by the preprocessor “Honeywell.CAB.Math” • There are four CABMath functions available: Min, Max, Sum, and Avg • Examples of usage – – – – MinFlow = CABMath.Min(FLOW1, FLOW2, FLOW3) MaxFlow = CABMath.Max(FLOW1, FLOW2, FLOW3) TotalFlow = CABMath.Sum(FLOW1, FLOW2, FLOW3) AverageFlow = CABMath.Avg(FLOW1, FLOW2, FLOW3) CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 2 1 Describe Additional Math Functions within VB.Net 4/17/2018 CAB Math Class A typical Function declaration CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 3 Describe Additional Math Functions within VB.Net 4/17/2018 Using Finalize() method • Logic using Finalize() method in a CAB block may cause ACE to fail – If used for other than releasing unmanaged resources • The Finalize() method should only be used if necessary, and only to release unmanaged resources. CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 4 2 Describe Additional Math Functions within VB.Net 4/17/2018 Conclusion Describe Additional Math Functions within VB.Net Completion Certificate Proceed to the next module in your course material CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 5 Describe Additional Math Functions within VB.Net 4/17/2018 This page intentionally left blank CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 6 3 Describe Additional Math Functions within VB.Net Describe CAB Time Settings CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 7 Describe CAB Time Settings 4/17/2018 How Does Experion Use Time? • Why is Time Important? – Time synchronization is of prime importance in any process based industry – Many of the operations are performed in a sequence, or based on shifts and operator availability • How does Experion Use Time? – Experion uses Coordinated Universal Time (UTC) which is raw time with no time zone and no daylight savings time adjustments • Example UTC :Tuesday, 2009-02-03 15:35 UTC – You may be used to seeing the date/time as Feb 3, 2009, 3:35 PM – Greenwich Mean Time (GMT) used to mean UTC, but GMT term is avoided • How does Experion Convert Time? – UTC is stored internally in Experion and is converted to local time when shown to you using time zone and daylight savings time adjustments CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 8 4 Describe CAB Time Settings 4/17/2018 How Does CAB Use Time? • When a CAB Program reads Time from Experion, it is in UTC Format – If time values need to be written in Experion then they need to be written in UTC format – PDE/Control Builder will convert to local time when reading the values for viewing purposes • If values are entered in PDE/Control Builder they should be entered in Local Time – PDE/Control Builder will internally do the conversion to UTC • If the CAB Program is moving values to a string for displaying via some other mechanism, the program is responsible for converting the UTC to Local Time CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 9 Describe CAB Time Settings 4/17/2018 CAB Date and Time Synchronization • Execution Environment (EE) Devices (C300, C200/C200E, ACE, FIM, IOLIM) are synchronized by the Experion Control Data Access (CDA) server • Time synchronization for CAB on ACE functionality is NOT synchronized by CDA – CAB uses the underlying .NET and Windows OS services of the ACE platform – Time sensed within CAB programs is based on Windows OS synchronization derived from the same Experion server that supplies time synchronization to CDA • More information can be found in PDF Collection: – Experion R501.1 PDF Collection > Reference > Control Builder Components Theory > Time Support in Experion System > Time Configuration Considerations CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 10 5 Describe CAB Time Settings 4/17/2018 CAB Time Example used in Lab Exercise • Example of time processing shows running a block periodically, synchronous with local wall clock time – Could be useful in calculating relevant data at the end of an operator shift – Intended to run within a CM that executes periodically, perhaps once per minute – lab example uses numerics as process flow values to be averaged CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 11 Describe CAB Time Settings 4/17/2018 CAB Time Example – Initial configuration 1. Configure CDPs to display and transport time 2. Configure faceplate to display time or calculated shift values 3. Configure any Parameter References LASTRUNTIME, a TIME Data Type, can be displayed as Local Time on an operational display 1. 3. 2. CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 12 6 Describe CAB Time Settings 4/17/2018 CAB Time Example • Based on example from user guide – Experion R501.1 PDF Collection > Configuration > Custom Algorithm Block and Custom Data Block User's Guide > CAB and CDB Example Scenarios > Example using data type TIME Calculate shift hour using TimeofDay. Using Mod, you can calculate a shift change time for midnight, 8 AM, or 4 PM from any time of day. For example, if the current hour is 9 AM, then ((9+81)/mod 24)=16 which is 4 PM. In other words, the shift interval is hard coded at 8 hours CAB - Additional Programming Considerations (ACEOnly) Shift calculations always occur at the local target times regardless of changes in daylight savings time Honeywell Confidential Copyright © 2018 Honeywell International Inc. 13 Describe CAB Time Settings 4/17/2018 CAB Time Example Evaluated as true if current hour is midnight, 8 AM or 4 PM Calculate next shift hour using TimeofDay. Using Mod, you can calculate the next shift change time. For example, if the current shift change time is 8 AM, then (8+8)/mod 24 =16 hours or 4 PM for next shift. Calculate last run using UTC, see next slide for more details Subroutine DoShiftCalculations() is declared as type Private. Recommended to accurately document the way in which the subroutine can be used. CABMath average used along with PRefs read and write CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 14 7 Describe CAB Time Settings 4/17/2018 Converting to UTC and local time • About the Custom Data Parameter, LASTRUNTIME – Defined as Experion data type TIME – TIME is always transported as universal time – Program must be written to adjust for the difference between its internal timing (local time) and the externally transported time (universal time) – The ToUniversalTime method of DateTime is used to do this – Although Experion transports TIME values as universal time, they are always displayed as local time, you can view LASTRUNTIME on an operational display SHIFTCALC records the actual time at which the calculations have occurred with the Custom Data Parameter (value CDP) LASTRUNTIME. CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 15 Describe CAB Time Settings 4/17/2018 Conclusion Describe CAB Time Settings Completion Certificate Proceed to the next module in your course material CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 16 8 Describe CAB Time Settings 4/17/2018 Describe Additional Execution Mode Considerations in ACE CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Describe Additional Execution Mode Considerations in ACE Copyright © 2018 Honeywell International Inc. 17 4/17/2018 Atomic Execution Mode in ACE • In the Atomic Execution Mode, CAB executes in ACE process • CEE of ACE monitors the execution of CAB programs – CAB instances must complete their execution in less than ½ of the Base Execution Period of the CEE – If execution of an individual CAB Instance exceeds this duration • Execution is stopped and the CABSTATE is set to Terminated • System Alarm is generated – The Block Instance will not run again until restarted by a user – After restart, the Alarm and State Parameters return to normal CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Describe Additional Execution Mode Considerations in ACE Copyright © 2018 Honeywell International Inc. 18 9 4/17/2018 Atomic Execution Mode – Additional Considerations • • There is a potential for Atomic Execution CABs with large numbers of Parameters to terminate due to timeout when first executed on ACE Node This is because of the JIT (Just In Time) compilation functionality of .NET – – When a CAB is first executed, there is a compilation overhead that is not present on subsequent executions You can handle this several ways: • If it is acceptable in your situation, restart the CAB. Subsequent Executions should NOT Time Out • Consider Distributed Mode Execution • Structure your Atomic Program such that Parameter Access is distributed over two or more executions, with no more than 1500 Parameters accessed in any execution. Do this by grouping Parameter Accesses in separate subroutines executed in different Cycles • Limit the number of Parameters to 750 PRefs and 1500 CDPs CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Describe Additional Execution Mode Considerations in ACE Copyright © 2018 Honeywell International Inc. 19 4/17/2018 Atomic Execution Mode – Additional Considerations • Loop Overrun Detection is performed on the basis of CAB Instances rather than on CAB Types • If a given Instance uses a flawed program and has data conditions that allow the flaw to be triggered, it is Taken Out of Service • If another Instance uses the same program but does not have data conditions that trigger the defect, it is Not Taken Out of Service CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Describe Additional Execution Mode Considerations in ACE Copyright © 2018 Honeywell International Inc. 20 10 4/17/2018 CEE and .NET • ACE CEE uses .NET Thread Abort Services to terminate a Block that is Executed Too Long • Characteristics of these services make it impossible for CEE to terminate a Block under certain unusual circumstances • In particular, a Block cannot be terminated if it is looping within the Catch or Finally Clauses of a "Try" Statement • Honeywell recommends that site practices forbid the use of loops within Catch or Finally Clauses – The need for such loops does not arise within CAB Control Programs CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Describe Additional Execution Mode Considerations in ACE Copyright © 2018 Honeywell International Inc. 21 4/17/2018 CAB Execution • During execution, a CAB is never interrupted by Data Access Requests from Outside the Block – This is true in either Atomic or Distributed Execution Mode • This feature means that Programmers who Write CAB Programs can do so without concern that the CAB’s own Data (CDPs) might be Read or Written by an external agent while their values are under computation and not ready for use • In either Atomic or Distributed Execution, Values that are changed during execution are not updated for access by external agents until the Block Execution Completes • Use the CABEXECTIMER Monitoring Parameter to view how fast CAB is running CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Describe Additional Execution Mode Considerations in ACE Copyright © 2018 Honeywell International Inc. 22 11 4/17/2018 CAB Execution • For an Atomic Execution CAB, Values manually or programmatically changed by external agents storing to the Block while the bBlock is executing will be used by the Block at its next execution • For a Distributed Execution CAB, Values manually or programmatically changed by external agents storing to the Block while the Block is executing are Cached for the next Execution Cycle – These Cached Values will be overwritten by any changes to the same parameters made as a result of Block Execution – Changes made to Block Parameters when the Distributed Block is not executing will be used by the Block at its next Execution CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Describe Additional Execution Mode Considerations in ACE Copyright © 2018 Honeywell International Inc. 23 4/17/2018 Conclusion Describe Additional Execution Mode Considerations in ACE Completion Certificate Proceed to the next module in your course material CAB - Additional Programming Considerations (ACEOnly) Honeywell Confidential Describe Additional Execution Mode Considerations in ACE Copyright © 2018 Honeywell International Inc. 24 12 4/17/2018 Topic: CAB - Additional Programming Considerations (ACEOnly) Contents Configure CAB using Time and Math Functions ...................................................................................3 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 1 This page was intentionally left blank. 2 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 CAB - Additional Programming Considerations (ACEOnly) Configure CAB using Time and Math Functions Configure CAB using Time and Math Functions Objectives In this lab, you create a CAB which will calculate the average of three flow values at the desired time. This lab is performed from a SIM-ACE. Prerequisites Experion Flex Station installed with CAB Developer. SIM C300 Controller loaded on server. Application Control Environment installed and loaded on server. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 3 CAB - Additional Programming Considerations (ACEOnly) Configure CAB using Time and Math Functions Step Action 1 Open Control Builder from Configuration Studio, if not already open. 2 Build new CAB block using following path: File > New >Type > Custom Algorithm Block. 3 Enter the following information as given below. Library name: TEAM##_CAB Type name: SHIFTCALC Click OK. 4 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 CAB - Additional Programming Considerations (ACEOnly) Configure CAB using Time and Math Functions Step 4 Action In the Parameter Definition Editor select Value CDP’s tab and enter the parameters and information as given below. Parameter 1 Parameter Name: LASTRUNTIME Parameter Description: time of last shift calculation Data Type: TIME First dimensional Array Size: 0 Access Lock: VIEWONLY Configuration Load: NOLOAD Parameter 2 Parameter Name: NEXTHOUR Parameter Description: next shift hour Data Type: INT32 First dimensional Array Size: 0 Access Llock: OPERATOR Configuration Load: NOLOAD Parameter 3 Parameter Name: DUMMYHOUR Parameter Description: user entered hour to test CAB Data Type: INT32 First dimensional Array Size: 0 Access Lock: OPERATOR Configuration Load: LOAD Default Value: 18 Parameter 4 4/15/2018 Parameter Name: CURRENTHR Parameter Description: current hour Data Type: INT32 First dimensional Array Size: 0 Access Lock: VIEWONLY Configuration Load: NOLOAD Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 5 CAB - Additional Programming Considerations (ACEOnly) Configure CAB using Time and Math Functions Step Action Parameter 5 5 6 6 Parameter Name: AVERAGEFLOW Parameter Description: average flow Data Type: FLOAT64 First dimensional Array Size: 0 Access Lock: VIEWONLY Configuration Load: NOLOAD From the Parameter References tab, create 3 parameters: FLOW1 flow 1 FLOAT64 IN/OUT FLOW2 flow 2 FLOAT64 IN/OUT FLOW3 flow 3 FLOAT64 IN/OUT Save the PDE Data. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 CAB - Additional Programming Considerations (ACEOnly) Configure CAB using Time and Math Functions Step 7 Action Click on Symbol Attribute tab, enter the following information: Parameter 1 Parameter Name: NEXTHOUR Monitoring Face: 2 Parameter 2 Parameter Name: CURRENTHR Monitoring Face: 3 Parameter 3 Parameter Name: DUMMYHOUR Monitoring Face: 4 Parameter 4 Parameter Name: AVERAGEFLOW Monitoring Face: 5 Parameter 5 8 4/15/2018 Parameter Name: LASTRUNTIME Monitoring Face: 6 Save the PDE Data. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 7 CAB - Additional Programming Considerations (ACEOnly) Configure CAB using Time and Math Functions Step Action Write Coding for CAB 9 Click on the CABlock.vb tab to open the VB Development Environment. 10 Enter the following code into the Public overide area. ATTENTION The CAB program given below is also available in the text file C:\Student\CAB Scripts\Configure CAB Block for Time.txt. You can optionally copy the code from this text file and paste it in CABlock.vb window. Ensure that you delete all existing code in CABlock.vb window and then select all text in the script text file and paste it in CABlock.vb window. Public Class CABlock Inherits BlockBase Dim NextCalcHour As Integer ‘Declare variable for next hour Public Overrides Sub Execute() Dim CurrentTime As DateTime Dim CurrentHour As Integer If Restart <> RestartEnum.None Then 'Calculate next shift change on startup 'Shift changes are midnight, 8:00am and 4:00pm NextCalcHour = Now.TimeOfDay.Hours NextCalcHour = (NextCalcHour + 8 - NextCalcHour Mod 8) Mod 24 NEXTHOUR.Value = NextCalcHour End If CurrentTime = Now CurrentHour = CurrentTime.TimeOfDay.Hours 'Current hour to be displayed on faceplate CURRENTHR.Value = CurrentHour 8 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 CAB - Additional Programming Considerations (ACEOnly) Configure CAB using Time and Math Functions Step Action Continued :-'For the Lab Exercise, we modified "CurrentHour = NextCalcHour" 'from the User Guide to "DUMMYHOUR.Value = NextCalcHour" 'in order to test your program unless you want to wait 8 hours! 'If CurrentHour = NextCalcHour Then If DUMMYHOUR.Value = NextCalcHour Then 'calculate the next shift change NextCalcHour = (CurrentHour + 8) Mod 24 'Note that your Normal Shift change would be calculated 'as midnight, 8:00am and 4:00pm if we used CurrentHour. 'Because we used DUMMYHOUR to test program, 'your NEXTHOUR.value will not be midnight, 8:00am and 4:00pm NEXTHOUR.Value = NextCalcHour LASTRUNTIME.Value = CurrentTime.ToUniversalTime 'Do some shift calculations and DoShiftCalculations() End If End Sub Private Sub DoShiftCalculations() ' Do shift calculations. PRefList.Read() AVERAGEFLOW.Value = CABMath.Avg(FLOW1.Value, FLOW2.Value, FLOW3.Value) PRefList.Write() End Sub End Class 4/15/2018 11 When complete, click the Build Solution Icon and ensure that there are NO Errors. 12 Save to ERDB by Clicking its Icon. Close the Development Environment. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 9 CAB - Additional Programming Considerations (ACEOnly) Configure CAB using Time and Math Functions Step Action Create a CAB instance 13 Create a new Control Module using the following information Tag Name: SHIFT_CALC## Item Name: SHIFT_CALC## Parent Asset: Training (Use Point Picker to assign Asset) Click OK and Save the CM. 14 In the Library Tree expand CABLIB and drag the CAB Function Block named as SHIFTCALC into the Control Module SHIFT_CALC##. Add Three Numeric to Control Module SHIFT_CALC## and name them Flow1, Flow2, and Flow3. Assign Values to the Numerics that will be averaged by your program. 10 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 CAB - Additional Programming Considerations (ACEOnly) Configure CAB using Time and Math Functions Step 15 Action Double click the CAB Block and assign the Numerics to their respective Parameter References. Click OK Save and Close the CM. 4/15/2018 16 Assign SHIFT_CALC## to ACE. 17 Download and Activate SHIFT_CALC##. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 11 CAB - Additional Programming Considerations (ACEOnly) Configure CAB using Time and Math Functions Step Action Check for Values Update in CAB Block 18 On the monitoring side open the CM SHIFT_CALC##. Check if the Values are updating by using the CDP, DUMMYHOUR, and set it equal to NEXTHOUR. When DUMMYHOUR = NEXTHOUR, your Shift Calc Program runs and averages the Flow Values. Note that we used DUMMYHOUR to test our program rather than wait 8 hours for the actual shift time to occur. As a result, the program changes your NEXTHOUR Value to a time that will differ from the Normal Shift Change Times of midnight, 8 AM or 4 PM. 12 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Describe Dynamic Re-Referencing Configure Dynamic Re-Referencing (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. Describe Dynamic Re-Referencing 4/17/2018 1 What is Dynamic Re-Referencing? • When a Parameter is configured for Dynamic Re-referencing Capability, – The target for the reference can be changed “on the fly,” – Even though the instance is loaded and executing in ACE • Example: – Parameter reference RXFLOW is assigned a specific target, FI222.AI1.PV – CAB instance is loaded and executing in ACE – A program or operator could change or re-direct parameter reference RXFLOW from FI222.AI1.PV to FI333.AI1.PV FI222.AI1.PV RXFLOW reflux flow rate FI333.AI1.PV Parameter reference acts as an alias Target Values Configure Dynamic Re-Referencing (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 2 1 Describe Dynamic Re-Referencing 4/17/2018 Dynamic Re-Referencing Concepts • This function is supported only on CAB’s executing in ACE Node – CAB on C300 does not support Dynamic Re-referencing capability • Source of data can be changed on line, by multiple means; programmatically, manual or by external sources • Purpose is convenience of process control and code re-usability • Re-referenced parameters initially called based on present address assignment on the block parameters online Parameter References Tab • Data sources include Native Blocks and CDB Configure Dynamic Re-Referencing (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 3 Describe Dynamic Re-Referencing 4/17/2018 Dynamic Re-Referencing – Equipment Example • Assume a plant having two identical zones to be manned • A single operator manages both the zones and performs Repetitive Tasks Zone A and associated monitored Devices Zone B and associated monitored Devices Single Point of Control Performing Repetitive Tasks • The same can be achieved using Re-referencing Functionality of CAB Configure Dynamic Re-Referencing (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 4 2 Describe Dynamic Re-Referencing 4/17/2018 Dynamic Re-Referencing – Equipment Example ZONE A Parameters ZONE B Parameters CAB with Re-referencing Configure Dynamic Re-Referencing (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 5 Describe Dynamic Re-Referencing 4/17/2018 CAB Dynamic Re-Referencing – Monitoring View • Parameters can be Re-referenced Dynamically from Graphic Configure Dynamic Re-Referencing (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 6 3 Describe Dynamic Re-Referencing 4/17/2018 Conclusion Describe Dynamic Re-Referencing Completion Certificate Proceed to the next module in your course material Configure Dynamic Re-Referencing (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 7 Describe Dynamic Re-Referencing 4/17/2018 This page intentionally left blank Configure Dynamic Re-Referencing (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 8 4 Describe Dynamic Re-Referencing Topic: Configure Dynamic Re-Referencing (ACE Only) Contents Configure CAB for Dynamic Re-Referencing ........................................................................................3 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 1 This page was intentionally left blank. 2 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing Configure CAB for Dynamic Re-Referencing Objective The objective of this lab is to configure a CAB block with dynamic re-referencing. CAB Block configured in this lab must be used only in SIM-ACE node since dynamic rereferencing is not supported for CAB blocks executing in C300. Main Idea In this lab, the scenario discussed is as follows: 1. There are two zones, Zone A and Zone B. 2. Each zone has five temperature and position profiles associated to it. 3. The CAB blocks needs to be configured such that it detects the profile in a particular zone which has maximum temperature and the position associated to it. Similarly the CAB block also detects the profile where we have minimum temperature and the position and also the average temperature. 4. In run-time, we should be able to switch all the parameters from Zone A to Zone B. After manual committing of re-references, the same CAB block now detects the profile in Zone B that has maximum temperature and the position associated to it, minimum temperature and the position associated to it, and also the average temperature. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 3 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing Step 1 Action Create a CAB using the following information: Library Name: Select TEAM##_CAB from the drop down box Type Name: ZONESTATSCABR Click OK. 4 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing Step 2 Action The Parameter Definition Editor opens. Click the Fixed Tab and select X_REFMODE as MAN. ATTENTION The default mode for a CAB type for dynamic rereferencing is “automatic.” This mode allows each rereferencing to occur wholly on its own. That is not what we want for this example. We want all the references to point to either one zone, or another zone. If the references were allowed to change individually, we would get nonsensical results for the statistics. We want to set the mode for dynamic re-referencing for ZONESTATSCABR to “manual.” This means that the entity changing the references, whether a person or a program, must follow a prescribed protocol. The protocol ensures that all of the references are changed as one action for a zone change. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 5 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing Step Action 3 In the Parameter References tab enter the parameters and information as given below. ATTENTION The parameters mentioned below are also available in C:\Student\CDP and Pref.xls. Go to the sheet named ZONESTATSCABR. You can optionally copy the parameters from this sheet and paste it in Parameter References tab. You have to copy only one row at a time and paste it twice in the Parameter References tab in CAB developer environment. Parameter1 Parameter Name: POSITION01 Parameter Description: 01 position in zone Data Type: FLOAT64 Data Flow: IN/OUT Dynamic Reference: Checked Parameter2 Parameter Name: POSITION02 Parameter Description: 02 position in zone Data Type: FLOAT64 Data Flow: IN/OUT Dynamic Reference: Checked Parameter3 Parameter Name: POSITION03 Parameter Description: 03 position in zone Data Type: FLOAT64 Data Flow: IN/OUT Dynamic Reference: Checked Parameter4 Parameter Name: POSITION04 Parameter Description: 04 position in zone Data Type: FLOAT64 Data Flow: IN/OUT Dynamic Reference: Checked Parameter5 6 Parameter Name: POSITION05 Parameter Description: 05 position in zone Data Type: FLOAT64 Data Flow: IN/OUT Dynamic Reference: Checked Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing Step Action Similarly define five parameters for temperature in Parameter Reference Tab. Parameter6 Parameter Name: TEMP01 Parameter Description: 01 Temperature Data Type: FLOAT64 Data Flow: IN/OUT Dynamic Reference: Checked Parameter7 Parameter Name: TEMP02 Parameter Description: 02 Temperature Data Type: FLOAT64 Data Flow: IN/OUT Dynamic Reference: Checked Parameter8 Parameter Name: TEMP03 Parameter Description: 03 Temperature Data Type: FLOAT64 Data Flow: IN/OUT Dynamic Reference: Checked Parameter9 Parameter Name: TEMP04 Parameter Description: 04 Temperature Data Type: FLOAT64 Data Flow: IN/OUT Dynamic Reference: Checked Parameter10 4/16/2018 Parameter Name: TEMP05 Parameter Description: 05 Temperature Data Type: FLOAT64 Data Flow: IN/OUT Dynamic Reference: Checked Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 7 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing Step Action Similarly define five output parameters in Parameter Reference Tab. Parameter11 Parameter Name: MAXTEMP Parameter Description: Maximum Temp in zone Data Type: FLOAT64 Data Flow: OUTPUT Dynamic Reference: Checked Parameter12 Parameter Name: MAXPOS Parameter Description: Position in max temp Data Type: FLOAT64 Data Flow: OUTPUT Dynamic Reference: Checked Parameter13 Parameter Name: MINTEMP Parameter Description: Minimum Temp in zone Data Type: FLOAT64 Data Flow: OUTPUT Dynamic Reference: Checked Parameter14 Parameter Name: MINPOS Parameter Description: Position in min temp Data Type: FLOAT64 Data Flow: OUTPUT Dynamic Reference: Checked Parameter15 8 Parameter Name: AVGTEMP Parameter Description: Average temp in zone Data Type: FLOAT64 Data Flow: OUTPUT Dynamic Reference: Checked Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing Step Action The Parameter Reference tab in the Parameter Definition Editor appears. 4/16/2018 4 Save the PDE Data. 5 Click the CABlock.vb tab to open the VB Development Environment. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 9 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing Step 6 Action Enter the following code. ATTENTION Enumeration CABAccStatusEnum is predefined for use with the ReadStatus and WriteStatus properties of the parameter reference classes. CAB uses “IsNan” to test for “Not a Number”, the equivalent of a bad value. CAB uses “IsInfinity”, “IsNegativeInfinity”, “IsPositiveInfinity” to test for various categories of infinity. The CAB program given below is also available in the text file C:\Student\CAB Scripts\Configure CAB for Dynamic Re-referencing.txt. You can optionally copy the code from this text file and paste it in CABlock.vb window. Note that the CAB Code present in the Text file and code provided in this step is incomplete. You must add some statements to Check whether the MINTEMP parameter is NaN or value of TEMP(I) is less than MINTEMP parameter. If one of the above condition is true then assign the TEMP(I) value to the MINTEMP parameter and Position(I) value to MINPOS parameter. Ensure that you delete all existing code in CABlock.vb window and then select all text in the script text file and paste it in CABlock.vb window. TIP To add missing lines in code: Use an IF statement to check the conditions. Hint: It is similar to the code which is used for MAXTEMP parameter. You can copy, paste, and substitute MINTEMP for MAXTEMP and MINPOS for MAXPOS. 10 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing Step 4/16/2018 Action Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 11 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing 12 Step Action Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing Step 7 Action When complete, click on the Build Solution icon and ensure there are no errors. ATTENTION If you have not added the missing lines in the code, then the CAB code will not work as intended Ask your Instructor if you have any questions about the code you need to add. 8 Save the CAB to the ERDB by clicking on the correct Icon and close the Development Environment. 9 Create a new Control Module with the following properties: Tag name: CMZSTATS## Item name: CMZSTATS##_Item Parent Asset: Training (Use Point Picker to assign Asset) Click OK. Save the CM. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 13 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing Step 10 Action In the Library Tree expand TEAM##_CAB and drag the CAB function block named as ZONESTATSCABR into the control module. Save and Close the CM. 11 Assign CMZSTATS## to ACE. 12 Download the CMZSTATS##. 13 If Control Modules CMZA## and CMZB## that represent Zones A and B are not imported then Import the Control Modules in control builder. ATTENTION ## stands for your student group number. The control modules which need to be imported are present in C:\Student\Control Builder folder. 14 Assign CMZA## and CMZB## to the ACE CEE. 15 Download CMZA## and CMZB##. 16 Open the Station application, if not already open. Call up the CMZSTATS##.htm display by entering CMZSTATS## in the Command Zone and pressing the Enter key. 14 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing Step 17 Action Enter parameter references in the References column as shown below. Be sure to use your assigned team number as the example shows Team 01. ATTENTION The References column will be blank on first load of the display. Enter only the parameter name to be referenced. The Screen Capture shows <BUSY> as a prefix to the parameter name. Ensure that you press the ENTER key after entering the parameter. The <BUSY> prefix appears on entering the parameter name. The <BUSY> prefix is an indicator for a re-reference action in progress. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 15 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing Step 18 Action The Re-referenced parameters can also be entered in Control Builder on the Parameter References tab of ZONESTATSCABRA block. On the online change confirmation dialog box, click Yes. ATTENTION This is the alternate method to perform the Re-reference. While a re-reference action is in process, a parameter reference viewed on the Parameter Reference tab in Monitoring view will show as Error 2953 in the Configuration Form. The error will clear when you commit the changes in a later step. Click OK. 16 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing Step Action 19 While the tag names for CMZA## tags are being entered, the Re-Ref State of the CAB block is indicated as TRANSLATING on the HMIWeb display. 20 Re-Ref State of the CAB block can also be viewed on the Main tab of the CAB block properties. ATTENTION You will have to scroll down in the Main tab dialog to view the remaining properties. 21 4/16/2018 While re-referencing is being done Read Status is indicated as REREFBUSY on the HMIWeb display. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 17 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing 18 Step Action 22 The Main tab on the CAB block will indicate the same status as the graphic. 23 From the graphic display, click the drop down menu of Re-Ref Commit and select COMMIT for re-referencing to be committed. 24 Note: the same COMMIT operation can also performed from CAB block properties (Main tab) in Control Builder Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing Step 25 4/16/2018 Action The HMIWeb display will display the referenced parameters. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 19 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing Step 26 Action Click the Parameter References tab. After re-referencing has completed, the Parameter References tab shows the tag names that were entered earlier. Instead of Err 2953 appearing, tags appear indicating re-referencing has been completed. 20 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing Step Action 27 From Monitoring, open the CM named as CMZA##. Check if the MIN, MAX, AVG output values update based on changes you make to POSITION and TEMP values. ATTENTION MAXTEMP shows the value of maximum temperature and MAXPOS shows the position associated to the maximum temperature (MAXTEMP). Similarly MINTEMP shows the value of minimum temperature and MINPOS shows the position associated to minimum temperature (MINTEMP). 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 21 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing Step 28 Action In the HMIWeb display CMZSTATS## change the tag names to CMZB## as shown below, i.e., replace CMZA## by CMZB##, for all parameters. After entering CMZB## tags, <pending> suffixed parameters appear which indicates re-referencing is pending. The status then changes to <busy> 29 22 Click the drop down menu of Re-Ref Commit and select COMMIT on the display, for rereferencing to be committed. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing Step Action 30 After re-referencing has completed the Parameter References display shows the tag names that were entered earlier instead of parameter names with a <busy> prefix indicating that re-referencing has been completed. 31 From Monitoring side, open the CM named as CMZB##. Check if the MIN, MAX, AVG output values update based on changes you make to POSITION and TEMP values. ATTENTION MAXTEMP shows the value of maximum temperature and MAXPOS shows the position associated to the maximum temperature (MAXTEMP). Similarly MINTEMP shows the value of minimum temperature and MINPOS shows the position associated to minimum temperature (MINTEMP). 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 23 Configure Dynamic Re-Referencing (ACE Only) Configure CAB for Dynamic Re-Referencing 24 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Test and Debug CAB Test and Debug CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 1 Test and Debug CAB 4/17/2018 Overview • CAB debugging is the evaluation of a CAB • CAB debugging may be done in either of following two ways; – Off-process debugging – On-process debugging • Off-process debugging is a method of script testing using the inherent features of a MSVS developer – Off-process debugging can be equated to white-box testing – Breakpoints can be assigned to blocks of script – This method will affect the process, unless the ACE simulation mode has been enabled • On-process debugging is the conventional method of online monitoring of a CAB, as is the case with native blocks – On-process debugging can be equated to black-box testing – Internal/local variables can be monitored for validity of algorithm execution – This method will be oblivious to the process, as a monitoring system Test and Debug CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 2 1 Test and Debug CAB 4/17/2018 Off-process Debugging • Off-process debugging requires that the CAB must be built with solution configurations option set to Debug Solution Configurations • The debug build will append additional information to be used by the source level debugger • Post debug a final build with solutions configurations set to release can be generated Test and Debug CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 3 Test and Debug CAB 4/17/2018 Off-Process Debugging Setup • Remote Debug Monitor running on SIM-ACE is used for debugging • Remote Debug Monitor is configured to run as a process – If it is configured as service, then Visual Studio 2012 allows only the users with administrator access to attach the debugger remotely – Select Start > All Programs > Microsoft Visual Studio 2012 > Remote Debugger Configuration Wizard to configure the Remote Debugger Uncheck this option to run the Remote Debugger as a process Test and Debug CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 4 2 Test and Debug CAB 4/17/2018 Off-Process Debugging Setup • Configure the CAB Remote Debugger Service to Log on using the account in which the CDA-SP is running • In the Start Parameters box, type the users that you want to allow to debug their CAB types – -user <{domain\}user{;<user2>…}> {-timeout <value in seconds>} Test and Debug CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 5 Test and Debug CAB 4/17/2018 Off-Process Debugging Setup • Local security policy identifies the users who can attach to processes with a Debugger – User account in which the CAB Remote Debugger is running must be provided access for the Debug Programs Policy • Windows firewall must be configured in Flex Station to allow Remote Debugging – A batch file is provided to configure the windows firewall • Refer to CAB and CDB System Administration Remote Debugging in Visual Studio section in the CAB and CDB User Guide for more information Test and Debug CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 6 3 Test and Debug CAB 4/17/2018 Off-process Debugging Managed Code Option must be selected ACE.exe is attached for ATOMIC CABs cabclient.exe is attached for DISTRIBUTED CABs In case of Multiple SIM-ACE, the appropriate Process IDs can be evaluated Test and Debug CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 7 Test and Debug CAB 4/17/2018 Off-process Debugging • A “Step into” action can be performed from a breakpoint • The step under current execution is by default indicated in yellow • The current step can be drag and dropped to any desirable location, taking data integrity into consideration • The watch window lists the data available in the current context Test and Debug CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 8 4 Test and Debug CAB 4/17/2018 Off-process Debugging - Exceptions • An exception is any error condition or unexpected behavior encountered by an executing program • Exceptions can be raised because of – Fault in code or in code that is being called – Unavailable operating system resources – Unexpected conditions in the common language runtime • An Exception is thrown from an area of code where a problem has occurred • The Exception is passed up the stack until the application handles it or the program terminates • The catch statements are user defined actions on an Exception Test and Debug CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. Test and Debug CAB 4/17/2018 9 On-process Debugging • Monitoring allows Control Builder to view the CAB online • Any Parameter requiring analysis can be brought out on the Block Parameter Monitored as a Faceplate Object Parameter Monitored as a Pin Test and Debug CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 10 5 Test and Debug CAB 4/17/2018 On-process Debugging – Alternate Methods • Definition of visible parameters is under user control • Define specific parameters to make internal data visible • Define parameters permanently to form characteristic attributes of the Block, or temporarily to support Debug • Use the Send() Subroutine to forward information to the message display of Experion Station Test and Debug CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 11 Test and Debug CAB 4/17/2018 Debugging with CAB on C300 • CAB/C300 Programs can be Debugged in any of the three target environments – C300, SIM C300, or SIM ACE • C300 and SIM-C300 Platforms, support “black box” Debugging – State data is published through CDPs or through message send • Source Level Debugging is supported only when the CAB/C300 type runs in SIM-ACE – Run-time used for source Debugging is different from the Run-time for Process-connected Control • It is recommended to include a step of validation on the C300 itself after Debugging programs of CAB/C300 Type in SIM-ACE Test and Debug CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 12 6 Test and Debug CAB 4/17/2018 Conclusion Test and Debug CAB Completion Certificate Proceed to the next module in your course material Test and Debug CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 13 Test and Debug CAB 4/17/2018 This page intentionally left blank Test and Debug CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 14 7 Test and Debug CAB This page was intentionally left blank. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary Topic: Test and Debug CAB (ACE Only) Contents Test and Debug CAB .............................................................................................................................3 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 1 This page was intentionally left blank. 2 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Test and Debug CAB (ACE Only) Test and Debug CAB Test and Debug CAB Pre-requisites: A pre-configured CAB type present in the Library that creates errors and exceptions, allowing you a way to practice the steps to debug a program. You need to access a pre-configured and downloaded ACE that is active in the Monitoring window of the Control Builder. A Control Module should also be assigned to the CEEACE, which contains the CAB type for which the debugging will be done. The Control Module should also be downloaded. It should be active in the Monitoring window of the Control Builder. This lab can be performed only on ACE node, since SIM-C300 does not support debugging. IMPORTANT NOTE: Some training centers may have more than one ACE (up to 4) running on a physical ACE node. In that case, you will need to be careful to run one debugger at a time on that ACE node. Introduction: 4/15/2018 Once you create your application and resolve the build errors, you must now correct those logic errors that keep your application or stored procedures from running correctly. Using the MSVS debugger, o You can monitor the variables in your program without adding special debugging code. o You can insert breakpoints to freeze code execution at points of interest. When the program is halted in the break mode, you can view local variables and other relevant data. o You can even edit your code and change variable values when halted at a breakpoint. In this particular exercise, a log file write is being performed with exception handling. The code shall be first debugged to locate the actual path of the log file being written into. This requires that you become familiar with the intent of the code when you analyze the script. Further exceptions, if any, can be resolved depending on the output log file. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 3 Test and Debug CAB (ACE Only) Test and Debug CAB Step Action 1 Before Debugging CAB Block, need to start CAB Remote Debug service in ACE node. 2 Login into ACE node and open services.msc in Run window. Open the properties of CAB Remote Debug service. 3 Select the Logon tab and select the radio button This Account and put mngr user credentials 4 Click on the General Tab, select Startup Type as Manual and click Apply button to save the changes. Enter the Start Parameters as “–user student” and Start the service. Click OK. TIP Refer Experion PKS R501.1 PDF Collection > Configuration > Custom Algorithm Block and Custom Data Block Users Guide >Configuring the CAB Remote Debug Service 4 5 Login to Flex Station 6 Launch Control Builder from Configuration Studio, if not already open. 7 Create a new CM with following details. Name: CM_FILEEDIT## Item Name: CM_FILEEDIT## Parent Asset: TRAINING Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Test and Debug CAB (ACE Only) Test and Debug CAB Step 8 Action Open a previously configured CAB type from the Library tree window. Double-click on the CAB type FILE_EDIT to open its development environment. ATTENTION Use the CAB type FILE_EDIT present in the TEAMI_CAB library. 4/15/2018 9 Open the CAB type FILE_EDIT. 10 Perform a Save to ERDB As… operation on the CAB FILE_EDIT. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 5 Test and Debug CAB (ACE Only) Test and Debug CAB Step 11 6 Action Save the CAB Type to your respective library. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Test and Debug CAB (ACE Only) Test and Debug CAB Step 12 Action Open the newly created FILE_EDIT from your respective library if not already open. Open the PDE and append the FILE_NAME parameter default value with the respective team number. ATTENTION The FILE_NAME parameter is modified to avoid conflict of multiple student groups using the same CAB type to generate multiple output files. In the FILE_NAME parameter value “TextFile##_”, ## represents your student number. Save PDE Data. When complete, click the Build Solution icon and ensure that there are no errors. 13 4/15/2018 Save the CAB to the ERDB by clicking the Save to ERDB icon and then close the Development Environment. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 7 Test and Debug CAB (ACE Only) Test and Debug CAB Step Action 14 Instantiate the CAB FILE_EDIT from your library to the newly created CM_FILEEDIT##. Save and load the CM to the ACE CEE. Activate the Control Module. 15 8 Open the CAB if not already open: Click Debug Select Attach to Processes Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Test and Debug CAB (ACE Only) Test and Debug CAB Step 16 Action From the Process Window: Enter the Qualifier Name as “<Computer Name of ACE Node>. Eg: E16ACEXX ATTENTION After entering the Qualifier Name, if an error occurs, then check the following in ACE Node: a) Ensure that CAB Remote Debugger Service and msvsmon.exe is running in the ACE Node b) Ensure that Visual Studio 2012 Remote Debugger is added in the Firewall Exception List on Flex Station If the error again occurs, follow the procedure in Experion R501.1 PDF Collection Configuration Custom Algorithm Bock and Custom Data Block Users Guide CAB and CDB System Administration Remote Debugging using Visual Studio in PDF Collection. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 9 Test and Debug CAB (ACE Only) Test and Debug CAB Step 17 Action From the Process window: Click the Select button for the Attach to Option and ensure that only Managed(v4.5, 4.0) code is selected. Check the Show Process from all users checkbox if not checked. ATTENTION If there is more than one SIM ACE running, you identify the Process ID from the ACE’s CEE Properties in Monitoring. To debug an Atomic mode CAB, the debugger is attached to the ACE.exe process of the respective ACE in which the CAB block is loaded. For this lab exercise, we are debugging a Distributed mode CAB, so you need to find and identify the Process ID of cabclient.exe process. 18 10 Select the cabclient.exe for your Process ID and click Attach. In the present program, we are attempting to write the CAB log into a file and the file name is the DATE and TIME stamp on the file creation. What is not understandable from the program is the path of file creation which is NULL in the argument to Path.GetFullPath function. This must be identified by debugging. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Test and Debug CAB (ACE Only) Test and Debug CAB Step 19 20 Action In the Development Environment, click the CABlock.vb tab to view the code. Next, you insert breakpoints for the CAB program. To insert the breakpoints in the program, select the RestartEnum.None line, since the CAB is already running. Right-click the line of code and select Breakpoint Insert Breakpoint. Next, step into the code from this point towards DoWriteToTextFile function to monitor the log file path being written into. The “Step Into” button is available on the Debug Toolbar which can be enabled from View > Toolbars > Debug: Note: Step into can also be commanded by pressing F11 on your keyboard. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 11 Test and Debug CAB (ACE Only) Test and Debug CAB Step Action 21 Stepping into the DoWriteToTextFile function will display the lpath string variable in the watch window. You can note that as the default path for the file storage. ATTENTION The path indicated resides on the ACE, although debugging is performed from the FLEX STATION. 12 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Test and Debug CAB (ACE Only) Test and Debug CAB Step 22 Action The File Name displays its Date and Time Stamp. ATTENTION The File Name will be appended with your student team number, such as TextFile##_ since we had modified the same while creating a copy of the CAB FILE_EDIT. “Program Data” is a hidden folder. To view the Program Data folder, from File Explorer, select Organizer Folder and Search Options. In the View tab, select Show Hidden Files and Folders, click OK. 23 When the contents of the file are evaluated, you will be able to see that the script has been throwing exceptions, and the exception count has been increasing with every cycle of the CAB execution. Next, debug the entire program to evaluate the cause of the exception. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 13 Test and Debug CAB (ACE Only) Test and Debug CAB Step 24 Action Continue the Step into operation. Perform the Step Into operation until you reach Line 148 in the script. In this case, observe that the execution jumps script line 147 to the Exception handler, without executing lines 150 through to 154. ATTENTION Script line number may vary depending on the code arrangement within the Development Environment. Refer to the screen example for the correct line. The script line number can be seen on the status bar. Result: Line 148 is the point of exception as the RUN_COUNT.Value has not been given the ToString member access. The error definition is one of type conversion, which can be also verified from the watch window. 14 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Test and Debug CAB (ACE Only) Test and Debug CAB Step 25 Action Next, Stop the Debugger to implement the script changes. To end the Debugging process 4/15/2018 Click the Debug option on the menu bar. Select Stop Debugging Close the Development Environment without saving any changes to the ERDB, by first selecting the YES option from the “CAB Build Manager” and then selecting the DISCARD option from the “Saving data to the ERDB” dialog box if it appears Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 15 Test and Debug CAB (ACE Only) Test and Debug CAB Step Action 26 Reopen the FILE_EDIT CAB type from the library. 27 Add the ToString member to the RUN_COUNT parameter to solve the exception. Modify the following in the CAB script at line 148. sw.WriteLine("CAB Runs : " + RUN_COUNT.Value.ToString) 28 Build the Solution and Save to ERDB. Click Yes in the CAB Build Manager. 29 Reload and activate the CM_FILEEDIT to ACECEE. 30 As an implementation of the above debugging, you have an exception free script, the result of which is the CAB log file in the ACE. ATTENTION A new file will be generated in the ACE node, as the previous execution has been terminated. The new file will be named with the latest Date and Time stamp. 16 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Describe History Access Using CAB Access History Using a CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 1 Describe History Access Using CAB 4/17/2018 Overview • CAB Program can access history data from several history sources – Runs in Distributed Mode • CAB running on C300 does not support History Access • Honeywell provides Wrapped Methods for CL-like convenience – Similar in concept to Background CL/AM – Easier to use than the direct OPC .NET API • Raw (unwrapped) Methods for History Data Access (HDA) – Mostly used for 3rd Party HDA Server Access – Supports advanced functionality apart from that provided by Wrapped Methods – Function Limiter prevents use of any constructs that are not allowed Access History Using a CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 2 1 Describe History Access Using CAB 4/17/2018 History Access Sources • CAB Block can access Process Data History from these sources: – Experion Server History – PHD Server History – General OPC History Data Access Server ACE CM CAB Block Experion Server History PHD Server History Access History Using a CAB (ACE Only) General OPC History Data Access Servers Honeywell Confidential Copyright © 2018 Honeywell International Inc. 3 Describe History Access Using CAB 4/17/2018 History Access Concept • Implemented using the OPC .Net API instead of direct COM Programming • Data Access Methods in two forms – Wrapped and – Raw (unwrapped) OPC Calls CAB Programs • Functionality Provided: .Net Client – Read of data in absolute terms – Read of data in relative terms – Read of averaged data .Net Wrapper COM \ DCOM Hidden from User OPC HDA Server Experion Server PHD Server 3rd Party HDA Server Access History Using a CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 4 2 Describe History Access Using CAB 4/17/2018 History Access – General Steps • Configure Execution Mode as DISTRIBUTED • Configure Custom Parameters for storing and displaying History Data – Transfer history data to parameters from CAB program Access History Using a CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 5 Describe History Access Using CAB 4/17/2018 History Access – General Steps • Configure CAB Block to display Custom Parameter’s History Data – Use Symbol Attribute tab in Parameter Definition Editor Access History Using a CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 6 3 Describe History Access Using CAB 4/17/2018 General Coding Steps to Access History Data • Create an Instance of the OPC HDA Server used to access History Data – Dim ExperionServer As Opc.Hda.Server – ExperionServer = New Opc.Hda.Server • Connect to the History Server – History.ConnectToHDAServer(ExperionServer) • Read the History Data (Wrapped Method Syntax follows) – GetHistory(HistoryServer, PointParameterName, BeginTime, EndTime, NumValues, Values, TimeStampArray, HistStatusArray, StatusArray) as Opc.ResultID • Disconnect from the History Server – Use disconnect method or delete CM containing the CAB • Refer to Custom Algorithm Block and Custom Data Block User's Guide > CAB API Reference > History APIs for more details Access History Using a CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 7 Describe History Access Using CAB 4/17/2018 History Access - Example • Refer to example scenarios in the Custom Algorithm Block and Custom Data Block User's Guide Declare Declare variables variables used used later later in program in program withwith GetHistory GetHistory method method Specify SpecifyServer Server Host Host Name Name Property PropertyisisProgId ProgIdofof HwHsc.OPC HwHsc.OPCserver server Access History Using a CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 8 4 Describe History Access Using CAB 4/17/2018 History Access - Example • Connect to the Server hosting the historian database – Utilizes Try-catch to Catch Exceptions Instantiates and and connects connects using using Instantiates the ConnecttoHDAServer ConnecttoHDAServer the Wrapped Method Method Wrapped A good good practice practice is is to to use use Try-catch Try-catch Block Block to to catch catch any any A Exception that that the the OPC OPC .NET .NET API API calls calls may may throw. throw. Exception Throwing exceptions exceptions is is the the mechanism mechanism that that OPC OPC uses uses to to Throwing report serious serious errors. errors. report Access History Using a CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. Describe History Access Using CAB 4/17/2018 9 History Access - Example • On successful connection to the intended Server, – History retrieved using the GetHistory Method – Data transferred to CDPs GetHistory GetHistory Method Method Historized HistorizedPoint Point NameName Access History Using a CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 10 5 Describe History Access Using CAB 4/17/2018 History Access – General Steps Instantiate CAB Type Change Value to be Historized Access History Using a CAB (ACE Only) Values updated in CAB block Instance Honeywell Confidential Copyright © 2018 Honeywell International Inc. 11 Describe History Access Using CAB 4/17/2018 Troubleshooting History Access Problems • Refer to Custom Algorithm Block and Custom Data Block User's Guide > CAB API Reference > History APIs for more details. Use the following tables – “Exceptions Thrown by ConnectToHDAServer” table – “Return Values for the GetHistory Method” table • Exceptions Thrown by ConnectToHDAServer example – CoCreateInstanceEx: Access is denied. Cause and Solution: Experion PKS CDA-SP Process on the ACE is not executing under mngr Account • Return Values for the GetHistory Method example – E_INVALIDHANDLE. Cause and Solution: Point specified is not a valid point or the point is not being Historized Access History Using a CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 12 6 Describe History Access Using CAB 4/17/2018 Conclusion Describe History Access using CAB Completion Certificate Proceed to the next module in your course material Access History Using a CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 13 Describe History Access Using CAB 4/17/2018 This page intentionally left blank Access History Using a CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 14 7 Describe History Access Using CAB This page was intentionally left blank. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary Topic: Access History Using a CAB (ACE Only) Contents Configure CAB Block for History Access ...............................................................................................3 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 1 This page was intentionally left blank. 2 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access History Using a CAB (ACE Only) Configure CAB Block for History Access Configure CAB Block for History Access Introduction In this lab, you will configure a CM and CAB Block for accessing the Experion Server History Values. Note that History Access is not supported in C300. This lab must be performed using an ACE Node. Process Overview The above diagram shows a CAB block used to access Experion Server history using the distributed function. Note that the CDA-SP on ACE should run under mngr account for accessing Experion Server History. Scenario 1: Build the CM with the NUMERIC block and configure the NUMERICA.PV value for FAST history. Scenario 2: CAB block with the Distributed execution mode accesses the history value of Experion Server. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 3 Access History Using a CAB (ACE Only) Configure CAB Block for History Access Lab Overview 4 1 Build a CM named as CAB_Hist##. 2 TEAM##_FLOW_CDP.NUMERICA.PV has been assigned to FAST history as a part of an earlier lab exercise. 3 Create a CAB block with the Distributed Execution mode to access the History value. 4 In the Value CDPs, define different parameters for accessing the history. 5 Experion server name for accessing the history will be specified in the CAB script; enter the Experion server name whose history needs retrieving. 6 Parameter name definition must be as point.parameter name for which you need to access history values. Enter the point.parameter name in CAB scripts. 7 The starting time from where you want to retrieve the history values and the ending time for the history value are default mentioned as 15 minutes prior to current time. 8 Parameter name as HISTCOUNT will display the number (count) of history values retrieved from Experion Server. 9 A maximum of 100 history values displays in the specified time range entered. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access History Using a CAB (ACE Only) Configure CAB Block for History Access Step Action 1 Open Control Builder from Configuration Studio, if not already open. 2 Build a new CAB block using following path File > New >Type > Custom Algorithm Block. 3 Enter the following information as given below. Custom Library name: TEAM##_CAB Block Type name: HISTORY_READ Click OK. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 5 Access History Using a CAB (ACE Only) Configure CAB Block for History Access Step 4 Action In the Parameter Definition Editor select Value CDPs tab and enter the parameters and information as given below. ATTENTION The parameters mentioned below are also available in C:\Student\CDP and Pref.xls. Go to the sheet named HISTORY_READ. You can optionally copy the parameters from this sheet and paste it in Value CDPs tab. Parameter 1 Parameter name: HISTVALUES Parameter Description: History values Data Type: Float64 First dimensional Array size: 500 Access lock: OPERATOR Configuration load: NOLOAD Parameter 2 Parameter name: HISTTSS Parameter Description: History Time Stamps Data Type: Time First dimensional Array size: 500 Access lock: OPERATOR Configuration load: NOLOAD Parameter 3 Parameter name: HISTSTS Parameter Description: History value Status Data Type: INT32 First dimensional Array size: 500 Access lock: OPERATOR Configuration load: NOLOAD Parameter 4 6 Parameter name: HISTCOUNT Parameter Description: Number of values to retrieve Data Type: INT32 First dimensional Array size: 0 Access lock: OPERATOR Configuration load: NOLOAD Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access History Using a CAB (ACE Only) Configure CAB Block for History Access Step Action Parameter 5 4/16/2018 Parameter name: ERRORSTATUS Parameter Description: Additional status information Data Type: STRING Size: 255 First dimensional Array size: 0 Access lock: OPERATOR Configuration load: NOLOAD 5 Click on fixed tab in Parameter Definition Editor and change the X_EXECMODE to Distributed. 6 Save the PDE data. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 7 Access History Using a CAB (ACE Only) Configure CAB Block for History Access Step 7 Action Click on Symbol Attribute tab, enter the following information: Parameter 1 Parameter name: HISTCOUNT Monitoring face: 2 Parameter 2 Parameter name: HISTVALUES[0] Monitoring face: 3 Parameter 3 Parameter name: HISTVALUES[1] Monitoring face: 4 Parameter 4 Parameter name: HISTVALUES[2] Monitoring face: 5 Parameter 5 Parameter name: HISTTSS[0] Monitoring face: 6 Parameter 6 Parameter name: HISTSTS[0] Monitoring face: 7 Parameter 7 8 Parameter name: ERRORSTATUS Monitoring face: 8 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access History Using a CAB (ACE Only) Configure CAB Block for History Access Step 8 Action Save the PDE Data. Write Coding for CAB 9 4/16/2018 Click on the CABlock.vb Tab to open the VB Development Environment. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 9 Access History Using a CAB (ACE Only) Configure CAB Block for History Access Step 10 Action Enter the following code into the Public overide area. ATTENTION The CAB program given below is also available in the text file C:\Student\CAB Scripts\Configure CAB Block for History Access.txt. You can optionally copy the code from this text file and paste it in CABlock.vb window. Note that the CAB Code present in the Text file and code provided below is incomplete. You must add a line to Connect to Experion Server. Ensure that you delete all existing code in CABlock.vb window and then select all text in the script text file and paste it in CABlock.vb window. TIP To add the missing line: Refer “Describe History Access using CAB” lesson to know the syntax of the command which is used to connect to Experion Server. 10 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access History Using a CAB (ACE Only) Configure CAB Block for History Access Step Action Continued :-- ATTENTION Enter the Server name that is assigned to you to replace “E16ESVXX” in the highlighted text. Enter the tag name as per your student team number in the highlighted area in this page. CAB_HIST## and TEAM##_Flow_CDP Control Modules should reside in same Control Execution Environment. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 11 Access History Using a CAB (ACE Only) Configure CAB Block for History Access Step Action 11 ATTENTION If you have not added the missing line in the code, then CAB code will not work properly. Contact the Instructor if you have any questions on how or what to add as the missing line of code. When complete, click on the Build Solution icon and ensure that there are no errors. 12 12 Save the CAB to the ERDB by clicking on the Save to ERDB Icon and then close the Development Environment. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access History Using a CAB (ACE Only) Configure CAB Block for History Access Step Action Create a CAB instance 13 Create a new Control Module with the following properties: Tag name: CAB_Hist## Item name: CAB_Hist##_Item Parent Asset: Training (Use Point Picker to assign Asset) Click OK and Save the CM. 14 In the Library Tree expand CABLIB and drag the CAB function block named as HISTORY_READ into the Control Module CAB_Hist##. Save and Close the CM. 4/16/2018 15 Assign CAB_Hist## to ACE. 16 Download CAB_Hist##. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 13 Access History Using a CAB (ACE Only) Configure CAB Block for History Access Step Action Check for Values update in CAB Block 17 14 On the monitoring side, open TEAM##_FLOW_CDP Control Module. Check if the values are updating. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access History Using a CAB (ACE Only) Configure CAB Block for History Access Step 18 Action Open Station application, if not already open. Open History Assignment from Configure > History > History Assignment 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 15 Access History Using a CAB (ACE Only) Configure CAB Block for History Access Step 19 Action Use the point browser to select the TEAM##_FLOW_CDP. Select Apply to load the point and hence select the corresponding parameter and click on Close button to close the Point Browser Window. 16 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access History Using a CAB (ACE Only) Configure CAB Block for History Access Step 20 Action Repeat the same for the Fast History and the Extended History tabs. ATTENTION This is the alternate method to initiate historization of a point, which is intended to have initiated from Control Builder. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 17 Access History Using a CAB (ACE Only) Configure CAB Block for History Access Step 21 Action Open the CAB_Hist Control Module and check if the history values are updating. ATTENTION If CAB block shows Cannot Connect to Server in ERRORSTATUS, then check Experion PKS HCI Server component is deleted from the System Management display in Server system. If History Data is not populating under HISTVALUES[0], HISTVALUES[1], HISTVALUES[2] then check the Time Zones , Date &Time in three nodes Server, ACE & Flex nodes are same or not. If not same then configure same time zone, Date and Time in all three nodes. 18 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access History Using a CAB (ACE Only) Configure CAB Block for History Access Step 22 Action Double click on CAB_Hist block, click on Value CDPs tab to check for the value update. ATTENTION Your CAB block is collecting History Values every one second to demonstrate history functionality. At your site, you may decide to collect data at a slower rate. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 19 Access History Using a CAB (ACE Only) Configure CAB Block for History Access This page was intentionally left blank. 20 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Describe File Access with Read/Write Functionality Using CAB Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 4/17/2018 1 Overview • File Access lets you create CAB Blocks that Input-Output data to files – Runs in Distributed Execution mode • CAB running on C300 does not support File Access • CAB running on ACE supports file access – Only R300 and later releases supports CAB accessing the content of the file • Can Access Binary, Text, and XML Files – Both Local and Remote File Access are supported Read/write Control Module ACE CAB Block PID Block Content File Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 2 1 4/17/2018 Directory for CAB files • When doing CAB file IO, the files are created on the ACE node where the CAB is running • CAB runs with the same security permissions as Experion PKS CDA-SP service – If CDA-SP is configured to run as MNGR for OPC access, it will not have administrator privileges. This affects where you can create files on ACE from within CAB • Recommended directory structure for creating CAB files is under – C:\ProgramData\Honeywell\Experion PKS\FileIO\<ACE Server name> – User needs permission to create a file in different directory Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 3 4/17/2018 File Access Write – General Steps • Configure the CAB Execution Mode as Distributed – Select the “Fixed” tab in Parameter Definition Editor – X_EXECMODE is selected as Distributed Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 4 2 4/17/2018 File Access Write – General Steps • Configure Custom Parameters for displaying and interacting with user – Examples include filename and path, time of day, actual data Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 5 4/17/2018 File Access Write – General Steps • Configure CAB Block to display text file data – Use “Symbol Attribute” in Parameter Definition Editor – Examples include filename, and write-enabled Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 6 3 4/17/2018 File Access Write – General Steps • Insert the code for your algorithm in CABLOCK.vb tab Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 7 4/17/2018 General Planning Steps to Write to a Text File • Determine if text file needed is text, xml, or binary – Examples: StreamWriter, XmlTextWriter, BinaryWriter Classes – Used when you need to generate an entire text file from start to finish • Find more information about the class and its functions – Help>Search in CAB Developer Visual Studio environment – System.IO namespace, System.xml namespace • Determine if file is local to ACE or remote – The ACE (and cabclient.exe) process must be executing under a userid that has network credentials, – Appendix C: Configuring CAB to support accessing files on remote systems • Consider using "Try…Catch…Finally" to handle any exceptions that may occur during file I/O • Consider usage of CABCOMMAND.Value = CABCommandEnum.Quit to avoid exception loops • Refer to Custom Algorithm Block and Custom Data Block User's Guide > Use of File I/O in CAB for more details Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 8 4 4/17/2018 General Coding Steps to Write to a Text File • Create an instance of the textwriter used to access file – Dim sw as StreamWriter = new StreamWriter (“myfile.txt”) – Dim xw as XmlTextWriter xw = new XmlTextWriter (path, System.Text.Encoding.ASCII) • For xml files, write the xml declaration node – Xw.WriteStartDocument(true) -- produces <?xml version="1.0" encoding="us-ascii" standalone="yes"?> • Create the file – sw = File.CreateText(path) • Write the elements and sub-elements (xml) or lines (text) – xw.WriteElementString(“InitialPT”, PT.Value) – sw.WriteLine(FloatCDP.Value) • Close the textwriter and the file – Typically use WriteEndDocument()*, flush(), close() methods • Refer to documentation – More ways than one to do things! – Custom Algorithm Block and Custom Data Block User's Guide > Use of File I/O in CAB. Use CAB Developer Visual Studio Help in IDE. *xml method Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 4/17/2018 9 File Access Write – Script Example Send message to Message Summary File name will be created later. You must first ensure file name and path is set. Create xw object as XmltextWriter. A File name is created as per the data provided in the string “path” as well as the file’s encoding Creates declaration node and follows W3C standard. Should declare if XML file used by others expecting XML data. writer class methods used to write to the file Access File Using a CAB (ACE Only) Writer and file closes after completion of successful writes. File is over-written when CAB re-executes. Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 10 5 4/17/2018 Let the Methods Do the Work for You! • Become familiar with the textwriter methods and their result – some additional XmlTextwriter methods shown in table. Refer to MSVS Help Access File Using a CAB (ACE Only) WriteStartDocument Writes the XML declaration with the version "1.0" and encoding WriteStartElement Writes the specified start tag. WriteElementString Writes an element containing a string value. WriteEndElement Closes one element. WriteEndDocument Closes any open elements or attributes. Close Closes the writer and file WriteString Writes a string. WriteAttributes Writes an attribute with the specified value. WriteComment Writes out a comment <!-...--> containing the specified text. WriteWhitespace Writes white space. Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 11 4/17/2018 File Access Write – Configuration • Instantiate the CAB block into a Control Module • Enter a file name including path • Enter the Point Name, Engineering unit, SP, PV for the values to be written into the file Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 12 6 4/17/2018 File Access Write – General Steps • Open the xml File in ACE – Observe that the values entered appear correct Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 13 4/17/2018 File Access Read – General Steps • Configure the CAB Execution Mode as Distributed – Select the “Fixed” tab in Parameter Definition Editor – X_EXECMODE is selected as Distributed Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 14 7 4/17/2018 File Access Read – General Steps • Configure custom parameters for displaying and interacting with user – Examples include filename and path, time parameters Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 15 4/17/2018 File Access Read – General Steps • Configure CAB block to display text file data – Use “Symbol Attribute” in Parameter Definition Editor – Examples include filename, read times Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 16 8 4/17/2018 File Access Read – General Steps • Insert the code for your algorithm in CABLOCK.vb tab Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 17 4/17/2018 General Comments about Reading a Text File • Determine if text file needed is text, xml, or binary – Examples: StreamReader, XmlTextReader, BinaryReader Classes – Useful when files are small or application needs to read entire file • Find more information about the class and its functions – Help>Search in CAB Developer Visual Studio environment – System.IO namespace, System.xml namespace • Class may not provide validation, assumes (as in XmlTextReader) that what is being read is valid • Often requires a loop to iteratively read the contents of the file – Example: XmlTextReader does not provide a means of randomly reading a specific XML node Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 18 9 4/17/2018 File Access Read – Script behavior An object is created as XmlTextreader and points to the file to be read . The object members are used to verify the file record limits and to perform the file read. An iterative loop is used to read all of the elements. . The file records are stored in the CDPs. The CDP is an array of 16 string elements (PS1-PS16) . The file is read on time basis as specified in the RTIMER parameter. Only read file when lower than the time elapsed since last read. Complete example shown in lab exercise Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 19 4/17/2018 File Access Read – General Steps • Instantiate the CAB block in a Control Module • Enter the appropriate file name in module properties • CAB in monitoring mode reads the data from the specified file Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 20 10 4/17/2018 Conclusion Describe File Access with Read/Write Functionality using CAB Completion Certificate Proceed to the next module in your course material Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 21 4/17/2018 This page intentionally left blank Access File Using a CAB (ACE Only) Honeywell Confidential Describe File Access with Read/Write Functionality Using CAB Copyright © 2018 Honeywell International Inc. 22 11 This page was intentionally left blank. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary Topic: Access File Using a CAB (ACE Only) Contents Describe File Access with Read/Write Functionality Using CAB...........................................................3 Configure CAB Block for File Access with Write Functionality ..............................................................5 Configure CAB Block for File Access with Read Functionality ............................................................19 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 1 This page was intentionally left blank. 2 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access File Using a CAB (ACE Only) Describe File Access with Read/Write Functionality Using CAB Describe File Access with Read/Write Functionality Using CAB Process Overview The diagram shown above is for the Experion blend controller (EBC), Recipe file and the CAB block with the file read / write functionality. Scenario 1: A CAB block is configured for writing to a XML file. Scenario 2: A CAB block is configured for reading the XML file. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 3 Access File Using a CAB (ACE Only) Describe File Access with Read/Write Functionality Using CAB Control Overview Scenario 1 LAB for Write Functionality 1 In this lab, assume an ACE is already built and downloaded. 2 Create the CAB block with the Distributed Execution mode to write in the xml file. 3 Define a parameter named as FILE_NAME used to define the file name with full path. In the lab, the file name path is defined as C:\Student\ReadWrite\WriteXML1.xml. 4 User needs to create a folder in the ACE node named as ReadWrite in the C:\Student drive. CAB block will create xml file named as WriteXML1.xml under this folder. 5 Parameter named as PVL is defined for PV low value, enter the PV low value in the CAB block to which file this will be written. 6 Parameters named as EU are defined for engineering unit, PN for Point name, SP for set point value, and PVH for PV high value. 7 WRITEERROPT is configured as EVENT, so that an event is reported whenever WRITESTATUS <> OK. 8 READERROPT is configured as EVENT, so that an event is reported whenever READSTATUS <> OK. 9 During the CAB instance, enter the values for PVL, EU, PN, SP, and PVH. These values are written in the xml files, which will be read by EBC. 10 During run time, the CAB block will check for the file in the path specified in the CAB; if the file already exists, it will update the xml file with new values and if there is no file existing, CAB will create new xml file with the name specified in the CAB block. Scenario 2 LAB for Read functionality 4 11 In this lab, assume that an ACE is already built and downloaded. 12 Create the CAB block with the Distributed Execution mode to write in the xml file. 13 Parameter named as FILE_NAME is defined as the file name with full path name from where CAB will read the content of the file. During the CAB creation, the default value is left blank so you can enter the file name with full path during CAB Instance. 14 Use Parameter named as RL to read the number of line from the file. 15 Use Parameter PS to read the number of strings from the file. 16 READERROPT is configured as EVENT, so that an event is reported whenever READSTATUS <> OK. 17 WRITEERROPT is configured as EVENT, so that an event is reported whenever WRITESTATUS <> OK. 18 During the CAB instance enter the file name with the full path C:\Student\ReadWrite\WriteXML1.xml. The CAB block will read the content of the existing file. 19 CAB block will read the content of the xml file and it will be shown in the Value CDP tab. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Write Functionality Configure CAB Block for File Access with Write Functionality Main Idea The CAB created in this lab must be used only in ACE node since C300 does not support File Access The objective of this Lab Exercise is to demonstrate the file write capability executed by a CAB. The script in this particular example creates an XML file at a pre-specified location on the ACE. In this lab, the scenario discussed is as follows: 1. A pre-specified folder is created on the ACE machine. 2. A set of values to be written into the file will be listed out and entered into the PDE. 3. The set of values to be written into will be CDPs and will be initialized during run time. 4. A CAB program is written on the ACE which will perform the following tasks; a. Check for the activation time of the CAB and log it as the Start Time of the CAB. b. Check if any file name with a valid path has been specified, otherwise which the program shall not execute. c. On valid availability of the path indicate to the user about file creation using the send function to send a message to Station’s Message Summary.. d. Initiate a handle as xw to the indicated file path and initiate a file write. e. Append all relevant data to the file. f. Create the end of file parameter and close the file successfully using the close function. 5. After a successful file write the program shall loop back for another write session. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 5 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Write Functionality Step Action Create CAB Block 1 Verify that a folder named ReadWrite is on C:\Student of the ACE machine. ATTENTION For your lab, this may not need to be done as it should already be configured for you. 2 Build a new CAB block. Select File > New >Type > Custom Algorithm Block. ATTENTION Always create a new CAB block on Flex Machine. 3 Enter the following information. Custom Library name: Select TEAM##_CAB Block Type name: FILE_WRITE Click OK. Result: Microsoft Visual Studio - Parameter Definition Editor opens. 6 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Write Functionality Step 4 Action To add a column in the Value CDPs tab click: View > Configure PDE View… Select the following parameter attributes: 1. First dimension array lower bound Click OK. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 7 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Write Functionality Step 5 Action In the Value CDP’s tab enter the following parameter details: ATTENTION The parameters used are also available in C:\Student\CDP and Pref.xls. Use the sheet named FILE_WRITE. You can optionally copy the parameters from this sheet and paste it into the Value CDPs tab. Parameter 1 Parameter name: FILE_NAME Parameter description: File name including path Data type: STRING Size: 64 First dimension array size: 0 Access lock: OPERATOR Configuration load: LOAD Default value: C:\Student\ReadWrite\WriteXML##.xml (note ## is your team number) Parameter 2 Parameter name: PVL Parameter description: PV Low value Data type: FLOAT64 First dimension array size: 0 Access lock: OPERATOR Configuration load: LOAD Parameter 3 8 Parameter name: PN Parameter description: Point name Data type: STRING Size: 32 First dimension array size: 0 Access lock: OPERATOR Configuration load: LOAD Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Write Functionality Step Action Parameter 4 Parameter name: EU Parameter description: Engineering unit Data type: STRING Size: 32 First dimension array size: 0 Access lock: OPERATOR Configuration load: LOAD Parameter 5 Parameter name: SP Parameter description: SP Value Data type: FLOAT64 First dimension array size: 0 Access lock: OPERATOR Configuration load: LOAD Parameter 6 4/16/2018 Parameter name: PVH Parameter description: PV High Value Data type: FLOAT64 First dimension array size: 0 Access lock: OPERATOR Configuration load: LOAD Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 9 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Write Functionality Step Action Parameter 7 Parameter name: PT Parameter description: Time parameter Data type: TIME First dimension array size: 0 Access lock: PROGRAM Configuration load: LOAD Parameter 8 Parameter name: PTOD Parameter description: Time of day parameter Data type: TIMEOFDAY First dimension array size: 0 Access lock: PROGRAM Configuration load: LOAD Parameter 9 10 Parameter name: START_TIME Parameter description: Time CAB was activated Data type: TIME First dimension array size: 0 Access lock: OPERATOR Configuration load: NOLOAD Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Write Functionality Step Action Parameter 10 6 Parameter name: WF Parameter description: Write flag, true = write to file Data type: BOOLEAN First dimension array size: 0 Access lock: OPERATOR Configuration load: LOAD Click the Fixed tab in the Parameter Definition Editor and change the following Default Values. a. X_EXECMODE to DISTRIBUTED b. READERROPT to EVENT c. WRITEERROPT to EVENT 7 Save the PDE data File > Save PDE data. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 11 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Write Functionality Step 8 Action Click Symbol Attribute tab and enter following information: ATTENTION The parameters mentioned below are also available in C:\Student\CDP and Pref.xls. Use the sheet named FILE_WRITE. You can optionally copy the parameters under the Symbol Attributes heading and paste it in Symbol Attributes tab Parameter 1 Parameter name: DESC Config face: 0 Monitor face: 0 Parameter 2 Parameter name: FILE_NAME Config face: 1 Monitor face: 1 Parameter 3 Parameter name: WF Monitor face: 2 Parameter 4 Parameter name: CABSTATE Monitor face: 3 Parameter 5 Parameter name: CABCOMMAND Monitor face: 4 Parameter 6 Parameter name: PVL Monitor face: 5 Parameter 7 Parameter name: PN Monitor face: 6 Parameter 8 Parameter name: EU Monitor face: 7 Parameter 9 12 Parameter name: SP Monitor face: 8 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Write Functionality Step Action Parameter 10 9 Parameter name: PVH Monitor face: 9 Save the PDE data. Write Coding for CAB 10 Click the CABlock.vb tab to open the VB development environment. 11 Enter the following into the Public Overrides area. ATTENTION The CAB program given below is also available in the text file C:\Student\CAB Scripts\Configure CAB Block for File Access Write Functionality.txt. You can optionally copy the code from this text file and paste it in CABlock.vb window. Ensure that you delete all existing code in CABlock.vb window and then select all text in the script text file and paste it in CABlock.vb window. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 13 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Write Functionality Step 12 14 Action When you complete the coding click the Build Solution icon and ensure there are no errors. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Write Functionality Step 13 Action Save the CAB to the ERDB, by clicking the Save to ERDB icon, and close the development environment. Create a CAB instance 14 Create a new Control Module. Select File > New > Control Module 15 Open the Control Module properties window; enter the following information. Tag name: CAB_Write## Item name: CAB_Write##_Item Parent Asset: Training (Use Point Picker to assign Asset) Save the CM. 16 In the Library Tree expand TEAM##_CAB and drag the CAB function block named as FILE_WRITE into the CAB_Write## Control Module Save and Close the CM. 4/16/2018 17 Assign CAB_Write## to ACE. 18 Download and then activate the CAB_Write## Control Module. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 15 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Write Functionality Step 19 Action From monitoring, open the CM CAB_Write##. Double click on the parameters mentioned below and enter the corresponding values. Click Yes in the online value change message box. PVL: - 0.0 PN: - 11_FC01 EU: - M3/hr SP: - 254 PVH: - 500.0 Click OK and Close the CM. ATTENTION Values entered as a part of this step are cleared when the CM is deactivated. 16 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Write Functionality Step Action Check for File update 20 Logon to the ACE PC as Student Explore to following path: C:\Student\ReadWrite\WriteXML##.xml Open the WriteXML##.xml file. Result: You will see the values update when the CM executes. ATTENTION For this file write to be successful, the folder (ReadWrite) where this file is to be created should reside on the C:\ drive of the ACE machine. Additionally, you may have to remove the “Read Only” attribute of the folder and/or file. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 17 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Write Functionality This page was intentionally left blank. 18 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Read Functionality Configure CAB Block for File Access with Read Functionality Main Idea The CAB created in this lab must be used only in ACE node since C300 does not support File Access The objective of this LAB is to demonstrate the file read capability executed by a CAB. The script in this particular example reads an XML file from a pre-specified location on the ACE. For continuity, the read is performed on the same file that has been created in the write example In this lab, the scenario discussed is as follows. 1. In the main loop the program checks if the CAB has just loaded. If it has, then initialize the CDPs. 2. The initialize subroutine indicates to the user the CAB activation status using the send function. This status can be seen in Station’s Message Summary. 3. Next the initialize subroutine clears out the string parameter array with a dummy string and resets all timers. 4. If the CAB has finished the initialization then; a. The CAB begins a normal run b. The DoReadXmlFile function is called on the basis that the time to begin Read (TBR) variable entered is lower than the time elapsed since the CABs last read to the file 5. The DoReadXmlFile performs the file read using the xr as an object of the XmlTextReader class. 6. The file is read is performed as follows; a. A single string for a new line is read. b. DoReadXmlFile function performs the operation of extracting single lines of the file read into the String Parameter (PS) variable 7. The timers are now reset by the DoReadXmlFile, which now shall measure the time to the next file read. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 19 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Read Functionality Step Action Create CAB Block 1 Build a new CAB Block. Select File > New >Type > Custom Algorithm Block 2 Enter the following information: Custom Library Name: Select TEAM##_CAB Block Type Name: FILE_READ Click OK. Result: Microsoft Visual Studio- Parameter Definition Editor opens. 3 Click View > Configure PDE view. Select the following parameter attributes: 1. First dimension array lower bound 2. Size Click OK. 20 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Read Functionality Step 4 Action In the Value CDP’s tab enter the parameters and information related to them as shown. ATTENTION The parameters mentioned below are also available in C:\Student\CDP and Pref.xls. Use the sheet named FILE_READ. You can optionally copy the parameters from this sheet and paste it into the Value CDPs tab. Parameter 1 Parameter name: AC Parameter description: Array counter Data type: INT32 First dimension array size: 0 Access lock: OPERATOR Configuration load: LOAD Parameter 2 Parameter name: FILE_NAME Parameter Description: File name including path to the file Data Type: STRING Size: 64 First dimension array size: 0 Access lock: OPERATOR Configuration load: LOAD Parameter 3 4/16/2018 Parameter name: PD Parameter description: Run time Data type: DELTATIME First dimension array size: 0 Access lock: PROGRAM Configuration load: NOLOAD Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 21 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Read Functionality Step Action Parameter 4 Parameter name: PD1 Parameter description: Time it took to read a XML file Data type: DELTATIME First dimension array size: 0 Access lock: PROGRAM Configuration load: NOLOAD Parameter 5 Parameter name: PS Parameter description: String parameter Data type: STRING Size: 32 First dimension array size: 16 First dimension array lower bound: 1 Access lock: PROGRAM Configuration load: NOLOAD Parameter 6 22 Parameter name: RC Parameter description: Run counter Data type: INT32 First dimension array size: 0 Access lock: PROGRAM Configuration load: NOLOAD Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Read Functionality Step Action Parameter 7 Parameter name: RDC Parameter description: Read counter Data type: INT32 First dimension array size: 0 Access lock: PROGRAM Configuration load: NOLOAD Parameter 8 Parameter name: READT Parameter description: Time it took to read a XML file Data type: STRING Size: 32 First dimension array size: 0 Access lock: PROGRAM Configuration load: NOLOAD Parameter 9 4/16/2018 Parameter name: RL Parameter description: Number of lines read from XML file Data type: INT32 First dimension array size: 0 Access lock: PROGRAM Configuration load: NOLOAD Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 23 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Read Functionality Step Action Parameter 10 Parameter name: RTIMER Parameter description: Read XML file timer Data type: DELTATIME First dimension array size: 0 Access lock: OPERATOR Configuration load: LOAD Parameter 11 Parameter name: START_TIME Parameter description: Time CAB was activated Data type: TIME First dimension array size: 0 Access lock: PROGRAM Configuration load: NOLOAD Parameter 12 Parameter name: TBR Parameter description: Time span for reading a XML file Data type: INT32 First dimension array size: 4 First dimension array lower bound: 1 Access lock: OPERATOR Configuration load: LOAD Default value: Array[4] Parameter 13 24 Parameter name: TIME1 Parameter description: Starting time for the read timer Data type: TIME First dimension array size: 0 Access lock: PROGRAM Configuration load: NOLOAD Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Read Functionality Step Action Parameter 14 5 Parameter name: DTS Parameter description: Read timer Data type: STRING Size: 32 First dimension array size: 0 Access lock: PROGRAM Configuration load: NOLOAD Click the Fixed tab in Parameter Definition Editor, change the following default values: a. X_EXECMODE to DISTRIBUTED. b. READERROPT to EVENT c. WRITEERROPT to EVENT 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 25 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Read Functionality Step 6 Action Save the PDE Data. Click File > Save PDE data. 7 Click the Symbol Attribute Tab and enter following information: ATTENTION The parameters mentioned below are also available in C:\Student\CDP and Pref.xls. Use the sheet named FILE_READ. You can optionally copy the parameters from this sheet and paste it in Symbol Attributes tab. Parameter 3 Parameter name: DESC Config face: 0 Monitor face: 2 Parameter 4 Parameter name: FILE_NAME Config face: 1 Monitor face: 3 Parameter 5 Parameter name: RL Monitor face: 4 Parameter 6 Parameter name: RDC Monitor face: 5 Parameter 7 Parameter name: READT Monitor face: 6 Parameter 8 Parameter name: DTS Monitor face: 7 Parameter 9 26 Parameter name: RC Monitor face: 8 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Read Functionality Step Action Parameter 10 8 Parameter name: PROGSTSDESC Monitor face: 9 Save the PDE data. Write the Code for the CAB Block 9 4/16/2018 Click the CABlock.vb Tab to open the VB development environment. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 27 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Read Functionality Step 10 Action Enter the following into the Public Overrides area. ATTENTION The CAB program given below is also available in the text file C:\Student\CAB Scripts\Configure CAB Block for File Access Read Functionality.txt. You can optionally copy the code from this text file and paste it in CABlock.vb window. Ensure that you delete all existing code in CABlock.vb window and then select all text in the script text file and paste it in CABlock.vb window. 28 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Read Functionality Step 4/16/2018 Action Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 29 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Read Functionality Step Action 11 When you complete the coding, click the Build Solution icon to ensure that there are no errors. 12 Finally save the CAB to the ERDB by clicking on the Save to ERDB the development environment. icon. Close Create a CAB instance 13 Create a new Control Module. Select File > New > Control Module. 14 Open the Control Module properties window; enter the following information. Tag name: CAB_Read## Item name: CAB_Read##_Item Parent Asset: Training (Use Point Picker to assign Asset) Click OK and Save the CM. 15 30 In the Library Tree expand TEAM##_CAB and drag the CAB function block FILE_READ into the Control Module CAB_Read## Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Read Functionality Step 16 Action Double-click FILE_READA function block, click on Value CDPs and check the Show Parameter Names, enter the following file name in FILE_NAME field: FILE_NAME: C:\Student\ReadWrite\WriteXML##.xml (where ## is your team number) Click OK. Save and Close the CM. 4/16/2018 17 Assign CAB_Read## to CEE of ACE. 18 Download and activate CAB_Read##. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 31 Access File Using a CAB (ACE Only) Configure CAB Block for File Access with Read Functionality Step Action Check for Values update in CAB Block 19 32 In monitoring, open the CM named as CAB_Read##. Double-click the FILE_READA function block and select Value CDPs tab, check the Show Parameter Names checkbox on left bottom. After some delay, it will display the information in the PS field from the XML file. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Manage Custom Algorithm Blocks Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 1 Manage Custom Algorithm Blocks 4/17/2018 Verify CAB / CDB Instance Version • Verify match of CAB program in ERDB – Compare parameter BLOCKTYPEID to verify that version running is the same as version in ERDB – Use the Parameter Comparison and Reconciliation function Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 2 1 Manage Custom Algorithm Blocks 4/17/2018 Parameter Comparison and Reconciliation • The Compare Parameters (Parameter Comparison and Reconciliation) function extends the load functionality of Control Builder • Allowing you to view the list of parameters with difference in database and live values • Select the parameters that you want to download based on the following criteria – The parameter must be controller (CEE) resident, or system repository (SR) resident – The parameter being downloaded (from the database) must be different from the value in the controller prior to the download • You can invoke Parameter Comparison and Reconciliation (PCR) from a controller, CEE, FIM, FFLINK, CM or at the device-level during – Reload operation – Standalone operation • For more detail refer Control Building Users Guide in PDF Collection Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 3 Manage Custom Algorithm Blocks 4/17/2018 If CAB Instance Version Changed • BLOCKTYPEID in controller is different than BLOCKTYPEID in ERDB – Indicates that the type was modified and not loaded to the instance. • PROGNAME(0) parameter is also different – Parameter is a Globally Unique Identifier (GUID) associated with the CAB dll – Mismatch is a further indication that the type and instance versions do not correspond • If the CM contains more than one custom block, the Compare Parameters function shows parameter differences for all blocks Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 4 2 Manage Custom Algorithm Blocks 4/17/2018 Verify CAB / CDB Instance Version • Or simply check and compare of the BLOCKTYPEID parameter of the loaded block and the block in the ERDB Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 5 Manage Custom Algorithm Blocks 4/17/2018 View a CAB / CDB Type as Read-Only • To open the Microsoft Development Environment for a CAB or CDB in read only mode: – Select the CAB or CDB you want to view in the Library tab in Control Builder – In the menu bar select View > Type • A right click on the CAB or CDB type and selection of View Type option will also open the CAB or CDB in read only mode Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 6 3 Manage Custom Algorithm Blocks 4/17/2018 Delete a CAB / CDB Block from the ERDB • If a CAB / CDB type is no longer needed, you can delete it from the ERDB • You can also delete Custom CAB / CDB Libraries from the ERDB • If any of the following conditions exist, you cannot delete CAB / CDB types: – The CAB / CDB type is open for edit – An instance of the CAB / CDB type in use – Templates of the CAB / CDB type exist • Anyone with Engineering access can delete CAB / CDB types Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 7 Manage Custom Algorithm Blocks 4/17/2018 Renaming a CAB Instance • You can rename a CAB / CDB unless either of the following conditions exists: – The CAB / CDB type is open for edit – The CAB / CDB type has an instance loaded to the Monitoring tab Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 8 4 Manage Custom Algorithm Blocks 4/17/2018 Recover a CAB with Checkpoint Restore • When using checkpoint restore command – All data and programs associated with a CAB are recovered – No different than using a checkpoint that contains only native blocks • Select the ACE of interest and command a restore Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 9 Manage Custom Algorithm Blocks 4/17/2018 Recover a CAB with Checkpoint Restore • If the checkpoint restore is commanded to an ACE with a preexisting database – The existing CAB programs will be deleted and – Only those CAB programs that were loaded to the ACE when the checkpoint save operation was executed are reloaded • Data restored with checkpoint restore is a unified set – The restored data was captured at one instant in time between block executions • Note: If you have a variable that is critical and needs to be restored after a checkpoint save, you can use a CDP to store the value instead of a local variable – Locally defined variable values are not checkpointed and therefore are not restored. – CDP values are checkpointed and restored – PRef values are not saved – PRef connections are saved IF the PRef is dynamic re-reference enabled Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 10 5 Manage Custom Algorithm Blocks 4/17/2018 Recovering CAB Source Code • If you have a CAB loaded and running in the CEE, but have overwritten (saved over) the source code in the ERDB, it is possible to recover the source Right click on CAB Copy on-line source code Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 11 Manage Custom Algorithm Blocks 4/17/2018 Protecting CAB Source Code • CAB Types can be exported without the source code • When these CAB Types are installed on systems, other users cannot edit or view the CAB Type source code • Exporting CAB Types without source is performed using the Export without Source option present in File menu in Visual Studio Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 12 6 Manage Custom Algorithm Blocks 4/17/2018 Export Without Source • Export without Source option is enabled only when – CAB Type is in a completed state – CAB Type is built with a clean compile and the configuration is in “Release” mode Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 13 Manage Custom Algorithm Blocks 4/17/2018 Protecting CAB Source Code • An error occurs if the user tried to open the CAB present in the library • Instance of the CAB does not show the source code in the configuration properties Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 14 7 Manage Custom Algorithm Blocks 4/17/2018 Discover CAB / CDB Dependency Relationships • You can perform a search, from the configuration studio search tool, to show where CAB and CDB types are used. CAB Type used as instance CAB Type Instance name CAB Type used as template Manage Custom Algorithm Blocks (ACE Only) Template name Honeywell Confidential Copyright © 2018 Honeywell International Inc. 15 Manage Custom Algorithm Blocks 4/17/2018 Clipboard functions in a CAB / CDB Block • A CAB / CDB type performs the following PDE functions in clipboard – Data duplication within the PDE – Data duplication to another PDE – Data duplication with Microsoft Excel • All the clipboard functions are compatible to Windows standards of “CTRL + C” for copy and “CTRL + V” for paste • Data duplication within a PDE is of the following types – Copy / Paste of selected parameter will create only a new field – Copy parameters / Paste parameters will duplicate all the attributes, which are internally managed • A right click within the PDE will invoke the clipboard functions Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 16 8 Manage Custom Algorithm Blocks 4/17/2018 Conclusion Manage Custom Algorithm Blocks Completion Certificate Proceed to the next module in your course material Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 17 Manage Custom Algorithm Blocks 4/17/2018 This page intentionally left blank Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 18 9 Manage Custom Algorithm Blocks Describe QVCS Operations for CAB and CDB Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 19 Describe QVCS Operations for CAB and CDB 4/17/2018 QVCS • QVCS – Qualification and Version Control System • QVCS provides version management for all tagged objects and a customer defined lifecycle management – Use lifecycle management: • To define the qualification states objects will go through from inception to decommissioning • For the approvals required to move from one qualification state to another • To control what qualification state a strategy must be in for downloading into a control execution environment such as the C300 controller Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 20 10 Describe QVCS Operations for CAB and CDB 4/17/2018 QVCS Support for Custom Blocks • QVCS supports versioning of Custom Block Types (CBT) and Instances • CBT Objects in the Library Tree can be versioned like any other objects in the Project/Library tree Libraries are not versioned, but are subject to renaming and deletion constraints. Custom Block Type (CBT) Library cannot be renamed once a CBT is in QVCS – Changes to the CBT Objects can be tracked in the QVCS Database New tab added for Custom Block Types Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 21 Describe QVCS Operations for CAB and CDB 4/17/2018 Check In – Check Out • QVCS Manager is used to Check In/Check Out the Custom Blocks to/from QVCS • Once Checked In, a Custom Block has to be Checked Out for Changes Right Click and select QVCS Manager Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 22 11 Describe QVCS Operations for CAB and CDB 4/17/2018 Editing CBT in QVCS • CAB and CDB has to be Checked Out for making changes – CAB opens in Read-only Mode while Checked In • If a CBT has an Instance, then a Save As Operation is required if one of the following changes are performed – – – – Re-name a Parameter Delete a Parameter Change a Parameter Data Type Change a Parameter Dimension • Save Operation is Permitted for other changes • If Save Operation is performed after a major change, and the error shown below occurs Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 23 Describe QVCS Operations for CAB and CDB 4/17/2018 QVCS Lockdown of Edits of CAB/CDB • CM’s containing CAB/CDB Instances can also be checked into QVCS • Once Checked In: – You Cannot Rename a CAB Type that has Instances in CMs checked into QVCS – You Cannot Delete a CAB Type that has Instances in CMs checked into QVCS – You Cannot Edit a CAB Type that has Instances in CMs checked into QVCS – You Cannot Save a CAB Type that has Instances in CMs checked into QVCS (assuming that the Type is still Open for Edit when the CM is Checked In) – You Cannot Rename a Custom Library that includes a CAB Type that has instances in CMs checked into QVCS Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 24 12 Describe QVCS Operations for CAB and CDB 4/17/2018 Load and Delete • Loading of the Object which contains the Instance of Custom Block Type (CBT) is permitted only when the Object is Checked In • Deletion of an Object which contains the Instance of CBT is permitted only when the Object is Checked In • Deletion of CBT in the Library is permitted only when the Instances of the CBT is Removed from ERDB • Refer to Qualification Version Control System User Guide for information related to other operations Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 25 Describe QVCS Operations for CAB and CDB 4/17/2018 Conclusion Describe QVCS Operations for CAB and CDB Completion Certificate Proceed to the next module your course material Manage Custom Algorithm Blocks (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 26 13 Describe QVCS Operations for CAB and CDB 4/17/2018 This page was intentionally left blank. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary Topic: Manage Custom Algorithm Blocks (ACE Only) Contents Export and Import a CAB ......................................................................................................................3 Verify Instance and Recover Source Code ...........................................................................................5 Perform Basic QVCS Operations Using CAB......................................................................................13 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 1 This page was intentionally left blank. 2 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Manage Custom Algorithm Blocks (ACE Only) Export and Import a CAB Export and Import a CAB Objectives Understand the Export/Import Operations. Prerequisites Experion PKS server with Configuration Studio installed. Experion Flex Station installed with CAB Developer. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 3 Manage Custom Algorithm Blocks (ACE Only) Export and Import a CAB Step 1 Action Using PDF Collection, go to: Experion R501.1 PDF Collection > Configuration > Custom Algorithm Block and Custom Data Block Users guide > CAB Configuration > Manage CAB’s Use the information here to practice importing and exporting CABs. TIP Manage CABs section, in the PDF Collection, explains about the “Export without Source” Option in Procedure to export CAB without the source section. You can follow this procedure to understand the usage of this option. 4 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Manage Custom Algorithm Blocks (ACE Only) Verify Instance and Recover Source Code Verify Instance and Recover Source Code Objectives In this lab, students will create a CAB which will count the number of times the CAB has been executed after activation of the Control Module. CAB Block created in this lab must be used only on SIM-ACE. Prerequisites Experion Flex Station installed with CAB Developer. SIM-ACE in loaded and Activated on server. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 5 Manage Custom Algorithm Blocks (ACE Only) Verify Instance and Recover Source Code Step 1 Action Create a new CAB as SEC_COUNT with custom library name set to CABEDIT. In the Value CDPs tab enter the parameters and information related to them as given below: Parameter 1 2 Parameter Name : CABRUNS Parameter Description : Number of Seconds Data Type : FLOAT64 Size : Not applicable First Dimension Array Size :0 Access Lock : OPERATOR Configuration Load : LOAD Default Value : 0.0 Click the Symbol Attribute tab and enter following information: Parameter 3 6 Parameter Name : CABRUNS Config face :2 Monitor face :2 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Manage Custom Algorithm Blocks (ACE Only) Verify Instance and Recover Source Code Step 3 Action Click the CABlock.vb tab to open the VB development environment and enter the following into the Public Class CABlock. ATTENTION The CAB program given below is also available in the text file. C:\Student\CAB Scripts\Verify Instance and recover source code.txt. You can optionally copy the code from this text file and paste it in CABlock.vb window. Note that the CAB code present in the text file and code provided in this step is incomplete. You must add a line to read the "seconds" value from CurrentTime parameter and assign it to CurrentSec parameter. Ensure that you delete all existing code in CABlock.vb window and then select all text in the script text file and paste it in CABlock.vb window. TIP To add missing lines in code: Use TimeOfDay function to read the “seconds” value. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 7 Manage Custom Algorithm Blocks (ACE Only) Verify Instance and Recover Source Code Step 4 Action When you complete the code, click on the build solution icon to ensure that there are no errors. ATTENTION If you have not added the missing lines in the code, then CAB code might not work as intended. Contact the instructor to enter the missing lines in the code. Verify for a Build Succeeded message in the output window. ATTENTION If an error occurs saying “Option Strict ON disallows implicit conversions from Double to Integer”, then go to Project CABlock properties from the menu bar. Select Compile in the left pane and select OFF for the Option Strict. 5 6 Save the CAB to the ERDB by clicking on the environment. icon and close the development Create and enter the following information as given below in a new CM Properties window: Tag Name : CM_SHIFT## Item Name : CM_SHIFT##_item Parent Asset : Training Click OK. Assign the CM to the ACE_EXP16 CEE. 8 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Manage Custom Algorithm Blocks (ACE Only) Verify Instance and Recover Source Code Step Action 7 In the Library Tree, expand CAB library and drag the CAB function block SEC_COUNT into the Control Module CM_SHIFT##. 8 Download and activate CM_SHIFT##. 9 Open the SEC_COUNTA CAB from the library and add the following code after Private Sub DoShiftCalculations() CABRUNS.Value += 1 10 Click on the build solution icon to ensure that there are no errors. Save the CAB to the ERDB, and acknowledge the CAB Build Manager dialog box. Close the Microsoft Visual Studio 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 9 Manage Custom Algorithm Blocks (ACE Only) Verify Instance and Recover Source Code 10 Step Action 11 Verify that the source code gets updated in the ERDB, by viewing the Source tab in the CAB Project Properties Window. 12 Reload the CM containing CAB to the ACE CEE, and activate the CM online. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Manage Custom Algorithm Blocks (ACE Only) Verify Instance and Recover Source Code Step 13 4/15/2018 Action Now verify that the source gets updated in the RTDB, by viewing the Source tab in the CAB Monitoring Properties Window. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 11 Manage Custom Algorithm Blocks (ACE Only) Verify Instance and Recover Source Code This page was intentionally left blank. 12 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Manage Custom Algorithm Blocks (ACE Only) Perform Basic QVCS Operations Using CAB Perform Basic QVCS Operations Using CAB Objectives Understand the basic operations of QVCS. CAB Block created in this lab can be used in both SIM-C300 and SIM-ACE. Prerequisites Experion PKS Flex installed with CAB Developer. ACE and C300 Controller loaded and activated on server. Introduction In this lab, you will perform the following: Create a CAB block and Control Module. Perform Check In and Check Out operations for both the Custom Block Type (CBT) and the Control Module (CM). o Understand the limitations while performing these operations. 4/15/2018 Perform the revert operation to restore the deleted Control Module into a library. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 13 Manage Custom Algorithm Blocks (ACE Only) Perform Basic QVCS Operations Using CAB Step Action 1 Launch Configuration Studio and open Control Builder, if not already open. 2 Double click on custom block named FLOW in library. 3 Select File Save to ERDB As.. option from the toolbar. 4 In the Save As ERDB To dialog box, enter the Block Type Name as CAB##_QVCS Click OK. 5 Build the CAB block and save it to ERDB. Close the CAB Developer environment. TIP If the developer environment is not closed, then the QVCS Check-in operation cannot be performed. 6 Create a new Control Module with the following properties: Name: CM##_QVCS Item Name: CM##_QVCS_Item Asset: Training 14 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Manage Custom Algorithm Blocks (ACE Only) Perform Basic QVCS Operations Using CAB Step 7 Action In the library tree, expand TEAM##_CAB and drag the CAB function block named as CAB##_QVCS into the control module. Save and Close the CM. Assign CM##_QVCS to ACE. 8 There are two ways to launch QVCS Manager: a. Click on CM##_QVCS and select Tools QVCS Manager OR b. Right click on CM##_QVCS and select QVCS Manager. 9 4/15/2018 Right click CM##_QVCS and select Check In. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 15 Manage Custom Algorithm Blocks (ACE Only) Perform Basic QVCS Operations Using CAB Step 10 Action In the Check In dialog box, enter Comments as Initial Check-in and click OK. Note: The Revision Type selection affects how revision data appears. If the Revision Type is Major, the version is incremented by 1 (for example, v1.00 to v2.00). If the Revision Type is selected as Minor, then the revision will be incremented by 0.01.(for example, v1.00 to v1.01) 16 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Manage Custom Algorithm Blocks (ACE Only) Perform Basic QVCS Operations Using CAB Step 11 Action On selecting OK, the following error occurs. This error occurs since the CAB block present in the Control Module is not checked in. TIP The CAB Block Type (present in its library) must be checked in before the CM (which contains the instance of CAB block) is checked in. 12 Click OK in the QVCS Report dialog box. Click Cancel in the Check In dialog box. 13 Right click CAB##_QVCS CAB Block in the library and select QVCS Manager. 14 Select Check In. 15 In the Check In dialog box, enter Comments as “Initial Check-in” and click OK. Result: The QVCS Manager shows the version as 1.0 with comments and other details. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 17 Manage Custom Algorithm Blocks (ACE Only) Perform Basic QVCS Operations Using CAB Step Action 16 Repeat Steps 12 to 15 to check in the CM##_QVCS Control Module. 17 Double Click CM##_QVCS in Control Builder. A message occurs which allows the CAB to open only in Read-only Mode. Click Cancel. TIP To edit an object (CM or CAB) which is checked into QVCS, the object (CM or CAB) has to be checked out. 18 In QVCS Manager, right click CM##_QVCS and select Check Out. TIP Repeat steps 8 through 10 to open QVCS Manager and select Check Out option. 18 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Manage Custom Algorithm Blocks (ACE Only) Perform Basic QVCS Operations Using CAB Step 19 4/15/2018 Action In the check out dialog box, enter Check out comments as “Add Block Pin” and Click OK. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 19 Manage Custom Algorithm Blocks (ACE Only) Perform Basic QVCS Operations Using CAB 20 Step Action 20 Observe that the status in the QVCS Manager shows Checked Out. Also observe that the “+” symbol shown in the Control Builder for CM##_QVCS indicates that the object is checked out. 21 Double click CM##_QVCS. Open the properties of the CAB##_QVCSA block. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Manage Custom Algorithm Blocks (ACE Only) Perform Basic QVCS Operations Using CAB Step 4/15/2018 Action 22 From the Block Pins tab, add the FLOW parameter as an Output Pin. Click OK in the block properties. 23 Save and Close the Control Module. 24 In the library, right click CAB##_QVCS and select QVCS Manager. 25 In QVCS Manager, right click CAB##_QVCS and select Check Out. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 21 Manage Custom Algorithm Blocks (ACE Only) Perform Basic QVCS Operations Using CAB Step Action 26 Enter the Check Out comments as “Change the rate of increase of the Flow parameter”. On selecting OK, the following error occurs: The error occurs since the CM which contains the instance of the CAB block is not checked in. 27 Click OK in the QVCS Report dialog box. Click Cancel in the Check Out Dialog box. 28 In Control Builder, right click CM##_QVCS and select QVCS Manager. 29 In QVCS Manager, right click CM##_QVCS and select Check In. Enter the Check In Comments as “Added Flow Parameter as Block Pin” and click OK. 30 Note that the CM##_QVCS revision is incremented to 2. TIP Since we had selected the Revision Type as Major in an earlier lab step, the version is incremented by 1 (v1.00 to v2.00).If the Revision Type is selected as Minor, then the revision will be incremented by 0.01 (v1.00 to v1.01). 22 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Manage Custom Algorithm Blocks (ACE Only) Perform Basic QVCS Operations Using CAB Step 31 Action Repeat steps 23 to 25 to check out the CAB##_QVCS. Observe that the CM (which contains the instance of CAB block) is automatically checked out, when the CAB block is checked out. 32 4/15/2018 Double click CAB##_QVCS in its library. Select the CABlock.vb tab. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 23 Manage Custom Algorithm Blocks (ACE Only) Perform Basic QVCS Operations Using CAB Step 33 24 Action Change FLOW’s decrementing Value from 3.5 to 2.5. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Manage Custom Algorithm Blocks (ACE Only) Perform Basic QVCS Operations Using CAB Step 4/15/2018 Action 34 Build and save the CAB block to ERDB. Close the Microsoft Visual Studio editor. 35 Check in the CAB##_QVCS block from QVCS Manager. Enter the Check In comments as “Rate of decrement of the Flow parameter is changed to 2.5”. 36 The version of the CAB##_QVCS will be incremented to 2. Note that the CM which contains the CAB instance will remain checked out, though the CAB block is checked in. 37 Open the CM##_QVCS Control Module. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 25 Manage Custom Algorithm Blocks (ACE Only) Perform Basic QVCS Operations Using CAB Step Action 38 Open the properties of the CAB block. Select the Source tab and check whether the increment value is updated to 2.5. 39 Click OK in the block properties window. Save and close the Control Module. Check in CM##_QVCS using the QVCS Manager. Enter Check In comments as “CAB block (Parent) changes. Increment rate of the FLOW parameter in the CAB block is changed to 2.5”. 26 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Hardware Requirements for CAB and CDB Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 1 Hardware Requirements for CAB and CDB 4/17/2018 Hardware Requirements • For the latest in Hardware Requirements, speak with your personal Honeywell Representative or consult the Spec and Tech Manuals for the release you are running • ACE Node must have a minimum of 2 Gigabytes of Memory Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 2 1 Hardware Requirements for CAB and CDB 4/17/2018 Hardware Requirements • An important part of hardware planning is to determine the: – Number of ACE Nodes and C300 Controllers needed – Number of CB Clients needed for CAB and other strategy development – Number of CAB Developer Licenses needed • These choices depends on the level of your CAB, CDB, and Native Block Development and use – If you have CAB Development done by a third party or Import CAB Instances, you only need to be concerned with ACE and/or C300 issues • Honeywell recommends SIM-ACE Node(s) for Off-process CAB Debug – SIM-ACE can have the MSVS Debugger attached for Source Code Debug, whereas ACE, C300, and SIM-C300 cannot Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 3 Hardware Requirements for CAB and CDB 4/17/2018 Additional Information • To determine your ACE Node Requirements, try to estimate your anticipated CAB usage. More information can be found in PDF Collection: – Experion R501.1 PDF Collection > Configuration > Custom Algorithm Block and Custom Data Block Users Guide > CAB and CDB System Planning and Design Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 4 2 Hardware Requirements for CAB and CDB 4/17/2018 Conclusion Hardware Requirements for CAB and CDB Completion Certificate Proceed to the next module in your course material Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 5 Hardware Requirements for CAB and CDB 4/17/2018 This page intentionally left blank Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 6 3 Hardware Requirements for CAB and CDB Design the Usage of the CAB Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 7 Design the Usage of the CAB 4/17/2018 Design the Usage of Your CAB / CDB • Take the following certain considerations into account when designing your CAB / CDB: – Will it be Instantiated multiple times? – Will it be used at multiple sites? – Will it be used identically every time? – Will it be used as a Standalone Block or an Insertion Point? (CABs only) • These criteria could influence the CAB Design in terms of generality – Is it for one specific usage, or will you need to adapt it so it is applicable to different equipment or process variations? Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 8 4 Design the Usage of the CAB 4/17/2018 Conceptual Design • In developing a conceptual design, the control engineer should: – Develop a solid design concept, including the data content, algorithm, processing flow, and interaction with other blocks – Document the concept in sufficient detail so team members can review and use as a design specification Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 9 Design the Usage of the CAB 4/17/2018 Memory Usage Definitions • CAB Applications use the following Types of Memories on the ACE OS Memory CEE Memory Pool Recoverable Unrecoverable This memory is a part of the memory managed by the Operating System. A typical size for this memory for an ACE is 2GB. This memory is a part of the CEE executable, and managed by the CEE. The size of this memory in current CEEs is 32MB Memory labeled as recoverable can be returned for later use, when no longer needed for type or instance storage Memory labeled as unrecoverable cannot be returned for later use. An ACE node reboot is required to "recover" unrecoverable memory. • CAB/C300 differs from CAB/ACE in the memory used – Both Block Type and Block Instance comes exclusively from the CEE’s User Memory Pool – No additional memory drawn from a separate pool managed by the C300 OS Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 10 5 Design the Usage of the CAB 4/17/2018 Determine CAB Memory Usage • CAB Instances require memory from the Block of Memory reserved within ACE for Instances • In addition, unlike Native Blocks, CAB Instances also require memory taken from the general .NET Memory Pool • If you anticipate significant CAB and Native Block Utilization, do an ACE Memory Analysis • Allocations created with the VB.NET “New” Operator are stored in Long Term Heap for CAB running on ACE • In CAB/C300, allocations created with the VB.NET “New” Operator are stored in Short Term Heap and lasts until the current Execution Cycle Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 11 Design the Usage of the CAB 4/17/2018 “Shutdown Horizon” • Shutdown Horizon is applicable only for CAB on ACE – CAB/C300 does not have any “shutdown horizon” which must be tracked by the user • Both the Recoverable OS Memory and the CEE Memory Pool Memory associated with an Instance is reclaimed when that instance is deleted • Each time a CAB Type is modified and the Instance loaded into the CEE, Unrecoverable OS Memory is used – Unrecoverable OS memory used for the old CAB Type cannot be reclaimed until the ACE Node is shut down and restarted • Unrecoverable OS Memory gets used up, as new CAB Types are added and loaded, and Existing Types modified and reloaded – Eventually, the ACE will need to be Shut Down and restarted to reclaim the memory used by obsolete CAB Types Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 12 6 Design the Usage of the CAB 4/17/2018 “Shutdown Horizon” • The system is designed such that under normal to heavy CAB engineering activities, shutdown and restart will not be required for at least two years • Testing and debugging a CAB Instance on a SIM-ACE prior to loading them to an On Process ACE may lead to an increase in time for the shutdown horizon due to a decrease in loads and reloads required • For additional reading on the subject of Designing the Usage of a CAB, refer to PDF Collection – Experion R501.1 PDF Collection > Configuration > Custom Algorithm Block and Custom Data Block > CAB and CDB System Planning and Design Honeywell Confidential Copyright © 2018 Honeywell International Inc. Planning CAB and CDB (ACE Only) 13 Design the Usage of the CAB 4/17/2018 MU and PU Calculations for CAB/ACE • CAB/ACE can be used to write a variety of applications which account for corresponding variations in Memory Usage – Use the following three categories to understand the characterization of the size variation Size Category Line Count CDP Count PRef Count Representative CAB-ACE Type Size (kilobytes) Representative CAB-ACE Instance Size (kilobytes) Small 20 1 10 73 31 Medium 100 15 65 74 61 Large 200 35 140 84 103 Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 14 7 Design the Usage of the CAB 4/17/2018 Performance and Capacity • CAB configurations are limited by the Total Memory Capacity of the ACE Sr. No Feature Typical ACE Maximum Comment ACE 200 400 Enforced limit as a constraint on the ACE Memory CAB Instances Per Type 5 100 Limited on Memory Utilization with ACE Memory 3 CAB Instances (All Types) 1000 2000 Limited on Memory Utilization with ACE Memory 4 Fixed Definition Parameters (FDP) - 200 Enforced limit 50 in use 150 reserved 5 User Defined Parameters - 2800 CDP counts as one parameter PRef counts as two parameters Array counts as one parameter 1 Loaded CAB Types 2 Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 15 Design the Usage of the CAB 4/17/2018 Conclusion Design the Usage of the CAB Completion Certificate Proceed to the next module in your course material Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 16 8 Design the Usage of the CAB 4/17/2018 Design the Usage of the CDB Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 17 Design the Usage of the CDB 4/17/2018 Design Usage • As with the CAB, you must ask certain questions when designing a CDB: – Will it be Instantiated multiple times? – Will it be used at different sites? – Will the usage be identical in each case? Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 18 9 Design the Usage of the CDB 4/17/2018 Conceptual Design • Use CDBs in places where “Native” Blocks cannot accomplish a given task and the Algorithmic Power of the CAB Block is not needed • Use CDBs when developing new applications, modifying existing applications, or migrating applications from legacy systems to Experion • CDBs do not require a license and come standard with Control Builder • Use CDBs in conjunction with CABs or just for generic data storage in applications that do not involve CABs Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 19 Design the Usage of the CDB 4/17/2018 Conclusion Design the Usage of the CDB Completion Certificate Proceed to the next module in your course material Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 20 10 Design the Usage of the CDB 4/17/2018 Describe Planning Required for QVCS Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 21 Describe Planning Required for QVCS 4/17/2018 Specific Rules for CBT Support in QVCS • It is Not possible for QVCS to revert an earlier version of a Custom Block Type (CBT) if there are Instances of the Custom Block in the ERDB – Example: • Version 1.0 of CBT contains 1 Parameter, and Version 2 contains 2 Parameters • In the ERDB, there is an Instance of Version 2 of the CBT • Reverting to older version of CBT (to Version 1.0) would lead to fewer parameters than what the Instance has – If the CBT has been Deleted from the Library, a Revert Operation can restore it • CBT can be Deleted from Library only when the Instances of the CBT does Not Exist in ERDB Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 22 11 Describe Planning Required for QVCS 4/17/2018 Specific Rules for CBT Support in QVCS • It is Not possible to Check Out an earlier version of a Custom Block Type (CAB or CDB), even if the Instances of the CBT are Not present in ERDB – Check Out can lead to a state where a later version of a CBT has fewer parameters (and/or different parameters) than an earlier version • It is Not possible for QVCS to Check Out or revert an Instance of a CBT, if its version is greater than the version of the CBT in the Library Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 23 Describe Planning Required for QVCS 4/17/2018 CBT Check In Considerations • When an Object containing an Instance of a CBT is Checked In, QVCS records the CBT version “Dependencies” of that Object • Rule: Parent (CBT) must be Checked In before the Child (Instance) • CBT Can be Checked In independently • Instances of CBT Cannot be Checked In unless the CBT is Checked In • CBT Cannot be Checked In, if it is Opened for Editing Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 24 12 Describe Planning Required for QVCS 4/17/2018 CBT Check Out Considerations • When a CBT or UDT is Checked Out, all the Instances get Checked Out Automatically – If any instance is already checked out, an error is generated • Check Out of non-current version of CBT less than current version is not allowed • Check Out an Control Module which contains Instance of CBT or UDT that Does Not Exist in the Library Cannot be done Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 25 Describe Planning Required for QVCS 4/17/2018 Instantiation Rules • CBT Can be Instantiated in a Container Object – Container Can Control Module, Recipe Control Module (RCM), Sequential Control Module (SCM), and so on • If the CBT Object is Not in QVCS and Container is in QVCS, then Error Occurs while Checking In the Container • If the CBT Object is in QVCS and Container is Not in QVCS, then – There are No Restrictions on the Container – Changes made to the CBT when it is Checked Out are propagated to the instances automatically Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 26 13 Describe Planning Required for QVCS 4/17/2018 QVCS and CAB/CDB • CAB/CDB Type or its Library Cannot be Edited or Renamed even if all CMs containing Instances of CAB/CDB are Checked Out • An Older Version of a CM Can be Restored – Either by using the QVCS Revert Function, or – By Checking Out an Earlier Version, with assurance that it will behave in the same way as when it was Checked Into QVCS • For this Restore to Work, it is necessary that all CAB Types must exist in the Custom Library Type exactly as they existed when the CMs containing Instances of the Types were Checked Into QVCS • For more information about QVCS Support for Custom Blocks, refer the Qualification and Version Control System User Guide Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 27 Describe Planning Required for QVCS 4/17/2018 Conclusion Describe Planning Required for QVCS Completion Certificate Proceed to the next module in your course material Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 28 14 Describe Planning Required for QVCS 4/17/2018 Describe Migration and Interoperability Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 29 Describe Migration and Interoperability 4/17/2018 Interoperability Rules • R3xx and R4xx ACE running on an R500 System is supported until the CAB’s are Not re-compiled For R3XX intermediate Migration need to be done for compatibility with R500.. • CAB Types created on R500 Control Builder Cannot be loaded on R3xx and R4xx ACE • CDB Types created with R500 Control Builder Can still be loaded to R3xx and R4xx ACE • If you migrate a strategy that includes CAB/CDB from an R3xx and R4xx System to R500 and you do not edit the CAB, that strategy will still load and operate on R3xx and R4xx ACE Controllers – Edit, Compile and Save of an R3xx and R4xx CAB Type using the R500 CAB Developer makes it usable only on R500 System – CDB’s edited using the R500 Control Builder can still be loaded to R3xx ACE Node • With R500 and R431 backward Compatibility is supported Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 30 15 Describe Migration and Interoperability 4/17/2018 Interoperability of ACE and Different CAB types Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 31 Describe Migration and Interoperability 4/17/2018 Conversion of CAB Types • If pre-R500 CAB Type is edited in R500 Control Builder, it provides the following message – On selecting OK, Visual Studio Conversion Wizard is launched which allows the user to convert the CAB Type to new format compatible with R500 • After conversion, these CAB types cannot be used in R4xx ACE nodes Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 32 16 Describe Migration and Interoperability 4/17/2018 Conclusion Describe Migration and Interoperability Completion Certificate Proceed to the next lesson in your course material Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 33 Describe Migration and Interoperability 4/17/2018 This page intentionally left blank Planning CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 34 17 Describe Migration and Interoperability This page was intentionally left blank. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary Describe How to Migrate a CL Program to CAB Migrate a CL Program to CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 1 Describe How to Migrate a CL Program to CAB 4/17/2018 CL to CAB Migration - Introduction • CAB (Control Algorithm Block) scripted in Visual Basic .NET Language is the Experion equivalent of a Total Plant Solutions (TPS) Control Language (CL) • ACE (Application Control Environment) is equivalent to Application Module (AM) in the TPS • Background Execution in CL/AM is performed by using the Distributed Execution in CAB – Distributed Execution is Not Supported in CAB running on C300 Migrate a CL Program to CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 2 1 Describe How to Migrate a CL Program to CAB 4/17/2018 CAB Programs in Sequence Control Applications • Sequence Block Types or Sequence Programs are designed with Builtin Preemption Mechanisms that accommodate the Wait Operations in Sequence Control • CAB Programs Does Not offer such inherent support – Could be done by explicitly managing state within the program design • “Steps" could be exited and re-entered with each call to Execute() – It would be a time consuming design – SCM’s are used for this purpose • More information is available in the user’s guide under the topic “CAB Programs in Sequence Control Applications” Migrate a CL Program to CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 3 Describe How to Migrate a CL Program to CAB 4/17/2018 CL to CAB Migration – Scripting Differences • Initializing Values when the Point first runs – AM/CL Points to the Restart Values as assignment of local variables – ACE/CAB supports Restart as an Application Program Interface (API) which provides a VB Property and can be accessed within the Execute Routine • Accessing Time Values – Programs in the AM can use the Date and Time Parameters and it is necessary to identify the type of the parameter to the compiler – CAB uses the .NET structure DateTime • Accessing Array Values – The ArrayIndices in a CL are determined by the User – In VB.Net, Arrays are Zero-based which means that the starting index is always 0 Migrate a CL Program to CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 4 2 Describe How to Migrate a CL Program to CAB 4/17/2018 CL to CAB Migration – Example Programs CL Program CAB Program Migrate a CL Program to CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 5 Describe How to Migrate a CL Program to CAB 4/17/2018 CL to CAB Migration – Scripting Differences • Converting Values from Integer to String – In AM/CL, this can be done using the Built-in subroutine CALL NUMBER_TO_STRING – In VB.net, a Method performs the action for an Object of String Type and the Method acts like a function in AM/CL • Housekeeping in an HPM Secondary – The Verification of the Point Status and Writes are Non-sequential due to the Poststore Mechanism of the AM. This is overcome by setting the Point Processing Special (PPS) Parameter – The CAB requires a OPC Gateway with TPN Server, and the OPC Access Mechanism takes care of the Non-sequential Writes • Converting Enumeration Values to a Number – The AM/CL uses the built-in function ORD(e), where ‘e’ is the enumeration – A CAB can use the native TYPECONVERT block, or in VB.NET by defining a Parameter Reference (ENUM_IN) and its Property Value Migrate a CL Program to CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 6 3 Describe How to Migrate a CL Program to CAB 4/17/2018 CL to CAB Migration – Function Equivalence • Certain Functions covered in CL/AM have been adapted for the CAB under .NET Environment • For instance following Data Types – Number in CL with Multiple Type Support has equivalence as double – TIME Date Type of CL is supported with the .NET DateTime Class • Functionality – Number_To_String Subroutine creates a Human Readable Characterization of a Real Number which is supported as "ToString" Method for the "Double" Class Migrate a CL Program to CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 7 Describe How to Migrate a CL Program to CAB 4/17/2018 CL to CAB Migration – Function Equivalence • Arithmetic Functions – ABS as abs(x) is supported with the Math Class Library used as Math.Abs(x) – MAX as Max(x, y,…) is supported as CABMath.Max(x, y, z) • Certain functions have not been supported such as Multifunction Controller (MC) • More information is available at Contents > Experion R501.1 PDF Collection > Configuration > Custom Algorithm Block and Custom Data Block User’s guide > Appendix A Migrate a CL Program to CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 8 4 Describe How to Migrate a CL Program to CAB 4/17/2018 CL to CAB Migration – Reserved Words • Point Properties equated to a Parameter Definition Editor (PDE) in a CL – – – – – – – – ACCESS is Access Lock Attribute in PDE BLD_VISIBLE is Configuration Load Attribute in PDE ENGINEER is equated as Access Lock Attribute in PDE EXTERNAL are Parameter References (PRefs) LOCAL are Any Variables defined within Execute() PARAM_LIST is the list of names and types as listed in the PDE VALUE is the Default Value at Load Time POINT is the Dynamic Re-referencing Feature of the PRef • More information is available at Experion R501.1 PDF Collection > Configuration > Custom Algorithm Block and Custom Data Block User’s guide > Appendix B Migrate a CL Program to CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 9 Describe How to Migrate a CL Program to CAB 4/17/2018 Conclusion Describe How to Migrate a CL Program to CAB Completion Certificate Proceed to the next module in your course material Migrate a CL Program to CAB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 10 5 Describe How to Migrate a CL Program to CAB 4/17/2018 This page was intentionally left blank. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary Topic: Migrate a CL Program to CAB (ACE Only) Contents Migrate a CL Program to CAB ...............................................................................................................3 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 1 This page was intentionally left blank. 2 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB Migrate a CL Program to CAB Main Idea The CAB created in this lab must be used only in an ACE node. The objective of this lab exercise is to demonstrate the migration of a Control Language (CL) Program to a Custom Algorithm Block (CAB). A sample CL Program is converted into a CAB in the VB.NET Scripts, and some recommended Step Sequences are suggested. The CL Program in the lab represents an Interlock Handler where a set of process points are monitored for healthy status, otherwise which a Pre-defined Sequence of Operations is to be performed. The approach requires that certain Process Points be set to the Program Mode Attribute. Attention: Although the CAB Lab Exercise uses a CL/HPM Program as the migration example, in many cases SCMs are better suited as the migration path for Sequence Programs. Review the guidelines in the user guide to determine whether an SCM or CAB is best suited as the migration path for your specific application. The lab exercise has as its main goal an Introduction to Migration Concepts. In this lab, the scenario is the following: 1. A Pre-specified CL Program is available. As a standard practice, the CL Program will be copied into the CAB Scripts as a commented cross reference. 2. A set of points accessed by the “external” identifier will be converted to CAB Parameter References (PRefs). 3. The local variables will be identified and converted appropriately. 4. The CL Program Body is analyzed and equivalent identifiers will be replaced in the corresponding CAB. 5. Equivalent functions from CL will be replaced with CAB Class Members. 6. The CAB is then compiled and loaded to verify the logic execution in a debug mode. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 3 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB Step 1 Action Observe that the CL program to be migrated monitors process status and takes action if necessary. --****************************************************************************--- LOGIC 2301 - --****************************************************************************-SEQUENCE IL2301 (HPM;POINT IL2301) EXTERNAL F2303,PC2301A,P2301,BYP2301,BYP2303,BYP702J EXTERNAL P2302,PC2302,BYP2302,LC23700,23C702J PHASE MAIN SET FL(01)=ON SET FL(02)=ON --LOGIC FOR LIQUID CL2 FLOW AND CL2 PRE TO GWL. CHEM. INTERLOC PHASE START IF (F2303.PV <= F2303.PVLLTP AND BYP2303.PV=NORMAL) OR & (P2301.PV >= P2301.PVHHTP AND BYP2301.PV=NORMAL) & THEN (SET PC2301A.MODATTR=PROGRAM;WAIT 1 SECS; & SET PC2301A.OP=0;SET FL(01)=OFF) ELSE (SET PC2301A.MODATTR=OPERATOR;SET FL(01)=ON) IF (P2302.PV <= P2302.PVLLTP AND BYP2302.PV=NORMAL) THEN & (WAIT 1 SECS;SET PC2302.MODATTR=PROGRAM;WAIT 1 SECS; & SET PC2302.OP=0;SET FL(02)=OFF) ELSE (SET PC2302.MODATTR=OPERATOR;SET FL(02)=ON) --LOGIC FOR LC23700 WITH FREON COMPRESSOR TRIP IF (23C702J.PV=TRIP AND BYP702J.PV=NORMAL) THEN & (WAIT 1 SECS;SET LC23700.MODATTR=PROGRAM;SET LC23700.MODE=MAN;WAIT 1 SECS; & SET LC23700.OP=0) ELSE (SET LC23700.MODATTR=OPERATOR) GOTO PHASE START END IL2301 4 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB Step 2 Action Open a new CAB block under a new Custom Library Name. Custom Library Name : TEAM##_CAB_MIGRATE Block Type Name : IL2301 Tip The Block Type Name can be entered as the same name as the CL program for migration traceability. 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 5 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB Step 3 Action Convert the Local Flags to Value CDPs with the following attributes in the Value CDP’s tab. Parameter 1 Parameter name: FL_01 Parameter description: FL(01) Data type: BOOLEAN First dimension array size: 0 Access lock: OPERATOR Configuration load: LOAD Default value: FALSE (Unchecked) Parameter 2 6 Parameter name: FL_02 Parameter description: FL(02) Data type: BOOLEAN First dimension array size: 0 Access lock: OPERATOR Configuration load: LOAD Default value: FALSE (Unchecked) Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB Step 4 Action Convert the EXTERNALs to PReFs with the following attributes in the Parameter References Tab ATTENTION The parameters mentioned below are also available in C:\Student\CDP and Pref.xls. Use the sheet named IL2301. You can optionally copy the parameters from this sheet and paste it in the Parameter References Tab. You have to copy only one row at a time and paste it in the Parameter References Tab in CAB Developer Environment. Parameter 1 Parameter name: F2303_PV Parameter description: F2303 Process Variable Data type: FLOAT64 Size: 0 Data Flow: INPUT Dynamic Reference: DISABLED (Unchecked) Parameter 2 Parameter name: F2303_PVLLTP Parameter description: F2303 PV Low Low Trip Point Data type: FLOAT64 Size: 0 Data Flow: INPUT Dynamic Reference: DISABLED (Unchecked) Parameter 3 Parameter name: BYP2303_PV Parameter description: BYP2303 Process Variable Data type: BOOLEAN Size: 0 Data Flow: INPUT Dynamic Reference: DISABLED (Unchecked) Parameter 4 4/15/2018 Parameter name: P2301_PV Parameter description: P2301 Process Variable Data type: FLOAT64 Size: 0 Data Flow: INPUT Dynamic Reference: DISABLED (Unchecked) Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 7 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB Step Action Parameter 5 Parameter name: P2301_PVHHTP Parameter description: P2301 PV High High Trip Point Data type: FLOAT64 Size: 0 Data Flow: INPUT Dynamic Reference: DISABLED (Unchecked) Parameter 6 Parameter name: BYP2301_PV Parameter description: BYP2301 Process Variable Data type: BOOLEAN Size: 0 Data Flow: INPUT Dynamic Reference: DISABLED (Unchecked) Parameter 7 Parameter name: PC2301A_MODATTR Parameter description: PC2301A Mode Attribute Data type: FLOAT64 Size: 0 Data Flow: OUTPUT Dynamic Reference: DISABLED (Unchecked) Parameter 8 8 Parameter name: PC2301A_MODE Parameter description: PC2301A Mode Data type: FLOAT64 Size: 0 Data Flow: OUTPUT Dynamic Reference: DISABLED (Unchecked) Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB Step Action Parameter 9 Parameter name: PC2301A_OP Parameter description: PC2301A Output Data type: FLOAT64 Size: 0 Data Flow: OUTPUT Dynamic Reference: DISABLED (Unchecked) Parameter 10 Parameter name: P2302_PV Parameter description: P2302 Process Variable Data type: FLOAT64 Size: 0 Data Flow: INPUT Dynamic Reference: DISABLED (Unchecked) Parameter 11 Parameter name: P2302_PVLLTP Parameter description: P2302 PV Low Low Trip Point Data type: FLOAT64 Size: 0 Data Flow: INPUT Dynamic Reference: DISABLED (Unchecked) Parameter 12 4/15/2018 Parameter name: BYP2302_PV Parameter description: BYP2302 Process Variable Data type: BOOLEAN Size: 0 Data Flow: INPUT Dynamic Reference: DISABLED (Unchecked) Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 9 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB Step Action Parameter 13 Parameter name: PC2302_MODATTR Parameter description: PC2302 Mode Attribute Data type: FLOAT64 Size: 0 Data Flow: OUTPUT Dynamic Reference: DISABLED (Unchecked) Parameter 14 Parameter name: PC2302_MODE Parameter description: PC2302 Mode Data type: FLOAT64 Size: 0 Data Flow: OUTPUT Dynamic Reference: DISABLED (Unchecked) Parameter 15 Parameter name: PC2302_OP Parameter description: PC2302 Output Data type: FLOAT64 Size: 0 Data Flow: OUTPUT Dynamic Reference: DISABLED (Unchecked) Parameter 16 Parameter name: C23C702J_PV Parameter description: C23C702J Process Variable Data type: BOOLEAN Size: 0 Data Flow: INPUT Dynamic Reference: DISABLED (Unchecked) ATTENTION Parameter 16 represents TPS Tag 23C702J but is renamed as C23C702J because CAB does Not allow labels starting with a number 10 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB Step Action Parameter 17 Parameter name: BYP702J_PV Parameter description: BYP702J Process Variable Data type: BOOLEAN Size: 0 Data Flow: INPUT Dynamic Reference: DISABLED (Unchecked) Parameter 18 Parameter name: LC23700_MODATTR Parameter description: LC23700 Mode Attribute Data type: FLOAT64 Size: 0 Data Flow: OUTPUT Dynamic Reference: DISABLED (Unchecked) Parameter 19 Parameter name: LC23700_MODE Parameter description: LC23700 Mode Data type: FLOAT64 Size: 0 Data Flow: OUTPUT Dynamic Reference: DISABLED (Unchecked) Parameter 20 4/15/2018 Parameter name: LC23700_OP Parameter description: LC23700 Output Data type: FLOAT64 Size: 0 Data Flow: OUTPUT Dynamic Reference: DISABLED (Unchecked) Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 11 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB 12 Step Action 5 Click the Fixed tab in Parameter Definition Editor and change the following default value of X_EXECMODE to DISTRIBUTED. 6 Save the PDE Data. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB Step 7 Action Click the Symbol Attribute tab and enter the following information: Parameter 3 Parameter name: FL_01 Monitor face: 2 Parameter 4 8 4/15/2018 Parameter name: FL_02 Monitor face: 3 Click the CABlock.vb tab to open the VB Development Environment. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 13 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB Step 9 Action Enter the following into the Public Overrides area. ATTENTION The CAB program given below is also available in the text file C:\Student\CAB Scripts\Migrate a CL program to CAB.txt. You can optionally copy the code from this text file and paste it in CABlock.vb window. Ensure that you delete all existing code in CABlock.vb window and then select all text in the script text file and paste it in CABlock.vb window. 14 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB Step 4/15/2018 Action Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 15 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB Step Action ATTENTION The function PRef_operate performs a repetitive task and has been incorporated to enhance the readability and usability of the CAB program. 10 Compile and Save the CAB to the ERDB. Close the Microsoft Visual Studio. 11 Create a new Control Module. Select File > New > Control Module. 12 Open the Control Module properties window; enter the following information. Tag name: CM_Migrate## Item name: CM_Migrate## Parent Asset: Training (Use Point Picker to assign Asset) Click OK and Save the CM. 16 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB Step Action 13 In the Library Tree expand TEAM##_CAB_MIGRATE and drag the CAB Function Block named as IL2301A into the Control Module named as CM_Migrate##. Save the CM. 14 If CM_CLPOINTS## is not there in the Control Builder then Import CM_CLPOINTS## from Ixport Folder. Download and then activate the CM_CLPOINTS## Note: Your lab system may not have LCN Points available, instead CM_CLPOINTS## has Process Values that can be used to illustrate the concepts involved in CL Migration. Tip The path for Ixport folder C:\Users\Public\Documents\Honeywell\Experion PKS\Ixport\ 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 17 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB Step Action 15 Double click CM_Migrate## and open the Properties of IL2301A. On the Parameter References Tab, assign the respective Control Parameters (using the Point Picker) from CM_CLPOINTS## as follows: Click on the Check box of Show Parameter Names to view Parameter Names. F2303_PV: CM_CLPOINTS##.F2303.PV F2303_PVLLTP: CM_CLPOINTS##.F2303.PVLOLM BYP2303_PV: CM_CLPOINTS##.BYP2303.PV P2301_PV: CM_CLPOINTS##.P2301.PV P2301_PVHHTP: CM_CLPOINTS##.P2301.PVHILM BYP2301_PV: CM_CLPOINTS##.BYP2301.PV PC2301A_MODATTR: CM_CLPOINTS##.PC2301A.MODEATTR PC2301A_MODE: CM_CLPOINTS##.PC2301A.MODE PC2301A_OP: CM_CLPOINTS##.PC2301A.OP P2302_PV: CM_CLPOINTS##.P2302.PV P2302_PVLLTP: CM_CLPOINTS##.P2302.PVLOLM BYP2302_PV: CM_CLPOINTS##.BYP2302.PV PC2302_MODATTR: CM_CLPOINTS##.PC2302.MODEATTR PC2302_MODE: CM_CLPOINTS##.PC2302.MODE PC2302_OP: CM_CLPOINTS##.PC2302.OP C23C702J_PV: CM_CLPOINTS##.23C702J.PV BYP702J_PV: CM_CLPOINTS##.BYP702J.PV LC23700_MODATTR: CM_CLPOINTS##.LC23700.MODEATTR LC23700_MODE: CM_CLPOINTS##.LC23700.MODE LC23700_OP: CM_CLPOINTS##.LC23700.OP And Click OK. 18 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB Step Action Save and Close the CM . 4/15/2018 16 Assign CM_Migrate## to your SIM_ACE. 17 Download and then activate the CM_Migrate## Block. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 19 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB Step 18 Action Open CM_CLPOINTS## in monitoring and perform the following operations: Set the Process Variable of following FLAGS to TRUE. a. BYP2303 b. BYP2301 c. BYP2302 d. 23C702J e. BYP702J 20 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB Step Action 19 Put the following loops into auto mode and enter a Setpoint (SP), so that the loops can operate. a. PC2301A b. PC2302 c. LC23700 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 21 Migrate a CL Program to CAB (ACE Only) Migrate a CL Program to CAB Step 20 Action Test the example Interlock Execution by setting any one of the scripted conditions to a True Condition. For example, if you need to assert the first condition, from CM_CLPOINTS## perform the following steps: 1. F2303.PV = 5 (the condition represents the low level trip point) 2. BYP2303.PV = OFF Result: The condition will result in stopping the PC2301A loop and its output is cut-off. 22 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Troubleshooting CAB and CDB Troubleshooting CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 1 Troubleshooting CAB and CDB 4/17/2018 CAB and CDB Troubleshooting and Maintenance • Trouble Shooting Approaches and Tools – CAB Instance States – CAB Alarms – Debug with SIM-ACE – CAB Fault Handling Troubleshooting CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 2 1 Troubleshooting CAB and CDB 4/17/2018 CAB States • Monitor the CABSTATE Parameter to determine if the CAB is operating normally or if an exception has occurred • CABSTATE is a Read-only Parameter that provides summary information on the operating state of the CAB Instance Troubleshooting CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 3 Troubleshooting CAB and CDB 4/17/2018 CAB Instance States Troubleshooting CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 4 2 Troubleshooting CAB and CDB 4/17/2018 CAB Instance States Contd… Troubleshooting CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 5 Troubleshooting CAB and CDB 4/17/2018 CAB Alarm States • CAB Programs can work in conjunction with other Blocks to generate Process Alarms • CABs also have Four Alarms built into the CAB Infrastructure. These alarms are – CAB State Terminated – CAB State Exception – Read Error – Write Error Troubleshooting CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 6 3 Troubleshooting CAB and CDB 4/17/2018 Debugging Interlocks and Precautions • Must only use Source Level Debugging with an Off-process SIM-ACE • Never attach the MSVS Source Level Debugger to an On-process ACE because of the possibility of debugger activity freezing control processing – Debugger attachment to On-process ACE can be prevented during installation • Select the Remote Debugger Option only on Nodes that will run SIMACE but Not ACE • CAB Remote Debug Service allows you to Set Breakpoints Troubleshooting CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 7 Troubleshooting CAB and CDB 4/17/2018 Debugging Interlocks and Precautions (….Contd.) • If the Debugger is installed on a node that is configured as ACE and the CAB Remote Debug Service is running, activation of the ACE CEE is prevented in CB • If the CAB Remote Debug Service is started after the ACE CEE is activated, a System Alarm is generated stating that the Debugger is running – Disable CAB Remote Debug Service on On-process ACE Nodes • For additional reading on CAB and CDB Troubleshooting, refer to the following location in PDF Collection: – Experion R501.1 PDF Collection > Configuration > Custom Algorithm Block and Custom Data Block User’s Guide > CAB and CDB Troubleshooting and Maintenance > Debug with SIM-ACE Troubleshooting CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 8 4 Troubleshooting CAB and CDB 4/17/2018 CAB Fault Handling • The CAB System has Built-in Fault Handling Mechanism, which are based on the following principles – A Run-time Fault by a CAB Instance affects only the Source Instance – CAB Processing is not disrupted as result of external process and system disruptions, but are optionally notified • CAB Implements Function Limiter to ascertain the Validity of Code • The Standard Faults that have been pre-defined are – – – – – – Parameter Access Faults Divide-by-zero Handling Unbounded Recursion Exception Handling Overlong Execution Loops in "Catch" or "Finally" Clauses Troubleshooting CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 9 Troubleshooting CAB and CDB 4/17/2018 CAB Fault Handling • Honeywell recommends the application of following standard practices – – – – – .NET constructs allowed for CAB on ACE and CAB on C300 applications Summary of CAB fault handling Summary of site responsibilities for fault handling Techniques for reporting CAB errors CAB error messages and codes • Information on the above practices is available at – Experion R501.1 PDF Collection > Configuration > Custom Algorithm Block and Custom Data Block User’s Guide > CAB and CDB Troubleshooting and Maintenance > CAB Fault Handling Troubleshooting CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 10 5 Troubleshooting CAB and CDB 4/17/2018 CAB and CDB Troubleshooting • For additional information on CAB and CDB troubleshooting, refer to the following location in PDF Collection: – Experion R501.1 PDF Collection > Configuration > Custom Algorithm Block and Custom Data Block User’s Guide > CAB and CDB Troubleshooting and Maintenance • For additional information on the MSVS Debugger, refer to the following location, using the MSVS Help Menu Bar: – Help > Contents • Visual Basic (from the Filtered by list) – Development Tools and Languages > Visual Studio > Application Development in Visual Studio > Building, Debugging, and Testing > Debugging in Visual Studio Troubleshooting CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 11 Troubleshooting CAB and CDB 4/17/2018 Conclusion Troubleshooting CAB and CDB Completion Certificate Proceed to the next module in your course material Troubleshooting CAB and CDB (ACE Only) Honeywell Confidential Copyright © 2018 Honeywell International Inc. 12 6 Troubleshooting CAB and CDB 4/17/2018 Topic: Troubleshooting CAB and CDB (ACE Only) Contents ACE Node Behavior for Some Critical Problems ..................................................................................3 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 1 This page was intentionally left blank. 2 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Troubleshooting CAB and CDB (ACE Only) ACE Node Behavior for Some Critical Problems ACE Node Behavior for Some Critical Problems Objectives Understand CAB Troubleshooting Concepts. The CAB Block created in this lab can be used only on SIM-ACE. The CAB used in this lab is for training purpose only and is intended to show you run time problems. Do not use this CAB Block in an On-process ACE node as it introduces run time exceptions and errors. Prerequisites Experion PKS Server with Configuration Studio installed. Experion Flex Station installed with CAB Developer. Prerequisites In this lab, you will create the following issues manually and check how the CAB/ACE reacts to these problems: Divide by Zero Infinite Loop High Memory Allocation 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 3 Troubleshooting CAB and CDB (ACE Only) ACE Node Behavior for Some Critical Problems Step Action 1 ATTENTION Do not use this CAB Block in an On-process ACE Node as it introduces run time exceptions and errors. It must be performed only with SIM-ACE Nodes Launch Configuration Studio and open Control Builder, if not already open. 2 Import the following Custom block & Control Module from the database if not already there in the Control builder.( Path for database is : C:\Users\Public\Public Documents\Honeywell\Experion PKS\IXPORT\) Custom Block: TEAMI_CAB:ERROR_SIML CM Name: CM_ERR_SIM 3 Load and activate the CM_ERR_SIM Control Module to SIM-ACE. 4 In Monitoring, open the CM_ERR_SIM Control Module. 5 Double click on the RUNAWAYMEM Block Pin. In the Request Value Change Dialog Box, select the “set to true to create a CAB termination due to runaway memory usage” checkbox. 6 Click Yes in the Change Online Value Dialog and click OK. Result: The CAB will terminate because of runaway memory usage. 4 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Troubleshooting CAB and CDB (ACE Only) ACE Node Behavior for Some Critical Problems Step 7 4/16/2018 Action Observe that the CABSTATE Parameter changed from NORMAL to TERMINATED. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 5 Troubleshooting CAB and CDB (ACE Only) ACE Node Behavior for Some Critical Problems Step 8 Action Double click ERROR_SIMLA to open its properties. Observe that the Exception Type and Exception Message Parameters provides the information about the error which has occurred. The OutOfMemory Exception means that the ACE Node does not have enough memory to execute this Block. ATTENTION Also note that due to the exception in this block, the execution of other blocks within the ACE Node is not affected. To check this, open any control module in the ACE Node which was created in the previous lab(s) and verify that they continue to operate. 9 Next, return the CAB to its normal state. Double click the RUNAWAYMEM Pin and uncheck the “set to true to create a CAB termination due to runaway memory usage” Checkbox. Click Yes in the Change Online Value Dialog Box and click OK. 10 6 Double click the CABCOMMAND Parameter in the Block. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Troubleshooting CAB and CDB (ACE Only) ACE Node Behavior for Some Critical Problems Step Action 11 Select RUN as the CAB Command. Click Yes in the Change Online Value Dialog Box. 12 Observe that the CAB State changes to NORMAL. 13 Double click on DIV0ERROR Block pin. Select the “Set to true to cause a divide by zero exception” Checkbox and click Yes Click OK 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 7 Troubleshooting CAB and CDB (ACE Only) ACE Node Behavior for Some Critical Problems Step 14 Action Note that the CABSTATE changes to EXCEPTION. Open its block properties. Result: The Exception Type and Exception Message shows the information about the exception that occurred. 15 8 Observe that the Exception Line Num Parameter shows the line where the error occurred. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Troubleshooting CAB and CDB (ACE Only) ACE Node Behavior for Some Critical Problems Step Action 16 Click OK in the block properties. 17 Double click on ERROR_SIML Block in library and go to CABlock.vb tab. In line 34, you will be able to locate the Divide by Xero expression. 18 Close Microsoft Visual Studio. 19 Next, return the CAB to normal. In Control Builder, double click the DIV0ERRPR pin and uncheck the “Set to true to cause a divide by zero exception” checkbox. 20 Click Yes in the Change Online Value Dialog Box and click OK. Result: The CABSTATE Parameter automatically changes to NORMAL. 4/16/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 9 Troubleshooting CAB and CDB (ACE Only) ACE Node Behavior for Some Critical Problems Step 21 Action Next, cause an overrun error. Double click the LONGOVERRUN Block Pin and select the checkbox. Click Yes in the Confirmation Dialog Box and click OK. Result: The CABSTATE changes to TERMINATED. 22 Open its Block Properties and check the error details using the Exception Type and Exception Message Parameters. The Exception Line Num also shows the line at which the error has occurred. 23 10 Return the CAB to its Normal state. Turn OFF the LONGOVERRUN Block Pin and repeat steps 10 to 12 to change the CABSTATE back to NORMAL. Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/16/2018 Topic: Final Project Contents Create a CAB to Calculate Feed Enthalpy ............................................................................................3 4/15/2018 Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 1 This page was intentionally left blank. 2 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Final Project Create a CAB to Calculate Feed Enthalpy Create a CAB to Calculate Feed Enthalpy Step 1 4/15/2018 Action Diagram of Enthalpy Control Simulation. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 3 Final Project Create a CAB to Calculate Feed Enthalpy Step Action Legend: FC70### Feed Flow Controller FC71### Fuel Flow Controller TIS### Inlet Temperature Simulator TI### Inlet Temperature Indicator TO### Outlet Temperature Indicator HV### Fuel Heat Value Numeric Description of Enthalpy Control Simulation Enthalpy is the amount of energy contained per unit of mass of some material and varies depending on the heat capacity of the material involved. For example, the amount of energy contained in one pound of water at 200°F (water has a heat capacity of approximately 1 (BTU/Lb°F) is more than the amount of energy contained by one pound of oil at 200°F (oil has a heat capacity of approximately 0.6 BTU/Lb°F). Therefore, if the composition of the product that is being heated in the furnace is subject to change, it may be desirable to control the furnace to a constant enthalpy instead of a constant temperature. In the present project, we have an existing system with an implementation of feed forward based furnace control. We shall now generate a CAB based enthalpy control which can take over from the feed forward control. Formula used for calculating Enthalpy out: Hp = (Cp * Factor1) * (Tin-Tref) + (Efficiency * Factor2) * Hval * (Fuel flow / Feed flow) where Hp = Feed Enthalpy out in KBTU/Gal Cp = Specific heat of Feed = 6.25 BTU/Gal DEGF Tin = Temperature of Feed inlet in DEGF Tref = Reference temperature = 0 DEGF Hval = Heating value of Fuel in KBTU/SCF Feed flow in KB/SD Fuel flow in KSCF/HR Efficiency = 0.8 Factor1 = 0.001 Factor2 = 0.571 Factors are used for EU conversion. 2 4 Implement the enthalpy equation as; HP = (CP * Factor1) * TI.PV + (Efficiency * Factor2) * HV.PV * (FC71.PV/FC70.PV) Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 Final Project Create a CAB to Calculate Feed Enthalpy Step 3 Action Create a CAB ENTHALPY_CTRL within TEAM1_PRJ. ATTENTION If you are declaring Enthalpy variables in code then set the CAB Block properties as follows: Project CABlock properties from the menu bar. Select Compile in the left pane and select OFF for the Option Strict. 4/15/2018 4 Implement the enthalpy equation in the CAB ENTHALPY_CTRL. 5 Import CM_furnace## and CM_FFD## to ACE CEE. 6 Observe the Feed Forward (FFD) Control generated by CM_FFD## on the fuel flow. 7 Instantiate the CAB Enthalpy inside CM_furnace##. Attach the required inputs to the CAB block and assign the enthalpy value generated by the CAB to the IN[2] of SP_MUX. 8 Load the CM, Change the fuel flow setpoint from the FFD control to Enthalpy Control, by changing K selector value of SP_MUX to 1. 9 Observe the Enthalpy Control generated by the CAB block on the fuel flow. Copyright © 2018 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 5 Final Project Create a CAB to Calculate Feed Enthalpy This page was intentionally left blank. 6 Copyright © 2017 Honeywell International Inc. HPS Automation College written permission required to distribute Honeywell Confidential and Proprietary 4/15/2018 More Information To learn more about Automation College, view a list of global locations and available training, visit www.automationcollege.com or email HPSWeb@Honeywell.com . Honeywell Performance Materials & Technologies Honeywell Process Solutions Automation College www.honeywellprocess.com January 2018 © 2018 Honeywell International Inc.